防火墙实战

1.课程内容

  • 常见防火墙选用
硬件
开源软件:iptables (默认规则改为 INPUT DROP)
云服务器:安全组(阿里云 白名单[默认是拒绝])
  • Iptables使用 执行过程
  • Iptables 4表5链
filter nat mangle raw
filter    : INPUT
nat       : PREROUTING POSTROUTING
             pre prefix xxx之前
             routing route
             post xxx之后
  • 准备Iptables环境

  • Iptables功能之防火墙-filter
    封IP 封端口
    准许某个ip访问 网段访问

  • 实际生产iptables配置

  • Iptables功能之内网服务器上外网(共享上网)

  • Iptables功能之端口转发

2.常见防火墙选用

1.公司网站入口使用的硬件防火墙、三层路由带有防火墙功能
2.Iptables访问量小 C5 C6 默认,CentOS 7 Firewalld(关闭 安装iptables)
3.SELinux

3. 名词(关系)与单词

名词                          含义                         对比
容器                    存放内容/存放东西
Netfilter/iptables      Netfilter/iptables是表的容器        国家
表 (table)             表是用来存放链的容器                  省
链 (chain)              链存放 规则容器                      市
规则 ( policy )         准许/拒绝访问                      区县具体地点

4.防火墙执行过程

1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
2. 如果匹配上规则,即明确表示是阻止(DROP)还是通过(ACCEPT)数据包就不再向下匹配新的规则。
3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
4. 防火墙的默认规则是所有规则执行完才执行的。

image.png

5. 四表五链

  • 5.1 整体说明 4表及作用
表                    功能
Filter                过滤,默认的表,防火墙功能
NAT                   实现NAT转化:1.共享上网 2.端口转发
mangle                熟悉名字即可
raw                   熟悉名字即可

参考查询帮助: man iptables

  • 5.2 4表中的5链


    image.png
image.png
  • 5.2.1 filter表
filter表      企业工作场景:主机防火墙
INPUT         就是过滤进入主机的数据包
FORWARD       负责转发流经主机的数据包。
OUTPUT        就是处理从主机发出去的数据包
  • 5.2.2 nat表
PREROUTING          处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING         处理离开服务器的请求 源端口 源ip :共享上网
OUTPUT              和主机放出去的数据包有关,改变主机发出数据包的目的地址。
  • 5.2.3 Mangle表
主要负责修改数据包中特殊的路由标记,如TTL,TOS,MARK等,这个表定义了5个链
(chains):

6. 防火墙之filter表

  • 6.1 环境准备
    m01 iptables
    db01
yum install iptables iptables-services
[root@m01 ~]# rpm -qa iptables-services
iptables-services-1.4.21-28.el7.x86_64
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #iptables服务管理配置

启动防火墙:

1 systemctl start iptables.service
2 systemctl enable iptables.service

检查防火墙内核模块是否加载成功:

[root@m01 ~]# lsmod |egrep 'nat|ipt|filter'
ipt_REJECT 12541 2
nf_reject_ipv4 13373 1 ipt_REJECT
iptable_filter 12810 1
xt_nat 12681 1
iptable_nat 12875 1
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26787 2 nf_nat_ipv4,xt_nat
nf_conntrack 133095 4
nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ipv4
ip_tables 27126 2 iptable_filter,iptable_nat
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack

手动加载内核模块:

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
  • 6.2 配置规则-禁止访问22端口
[root@m01 ~]# iptables -F
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@m01 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

配置防火墙规则注意事项:
1. 去机房重启系统或者登陆服务器删除刚才的禁止规则。
2. 让机房人员重启服务器或者让机房人员拿用户密码登录进去
3. 通过服务器的远程管理卡管理(推荐)
4. 先写一个定时任务,每5分钟就停止防火墙
5. 测试环境测试好,写成脚本,批量执行

  • 6.3 iptables 命令及参数
iptables
-t                  指定表 filter(默认) nat
-A                  append 把规则追加到末尾
-I (大写字母I)       insert 把规则插入到规则的第1条 (添加拒绝类规则的时候)
-p                  protocal 指定协议:tcp /udp/icmp
--dport             destination port 目标端口
--sport             source port 源端口
-d                  dest ip address 目标ip地址
-s                  source ip address 源ip地址
-i                  input数据进来的时候通过的网卡

-j                  jump 方法 DROP(拒绝) ACCEPT(准许) REJECT(拒绝)的
iptables查看 删除
-F                            清除链中所有的规则
-X                            清空自定义链的规则
-Z                            清空计数器
-n                            不要把端口解析服务名字
-L                            显示表中的规则
--line-number                 给每个链中的规则加上行号
-D                            删除规则 根据规则的号码进行删除 -D INPUT 2
image.png
  • 6.4 filter表其他规则配置
    6.4.1 只让10.0.0.0/24网段进行访问
    只要是10.0.0.0/24 局域网的用户 访问m01 都ACCEPT
    此例子主要限制:网段或ip地址
[root@m01 ~]# iptables -I INPUT -p tcp ! -s 10.0.0.0/24 -j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
  • 6.4.2 准许或禁止端口
    多个端口:表示范围 1-1024范围
[root@m01 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp
dpts:!1:1024
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)

nc用法:
nc -l 指定监听端口
nc/telnet 连接
nc 服务端:

[root@m01 ~]# nc -l 99 >/tmp/new.txt
[root@m01 ~]# cat /tmp/new.txt
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.51 db01 db01.etiantian.org
172.16.1.61 m01

nc客户端

[root@m01 ~]# cat /etc/hostname |nc 10.0.0.61 99

多个端口 不连续 80,433,52113,22
-m multiport 指定多个端口

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -
j DROP
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 multiport
dports !80,443,22
DROP tcp -- !10.0.0.0/24 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 防火墙的概念iptables的简介iptables命令网络防火墙NATfirewalld服务 一、防火墙的概念 (...
    哈喽别样阅读 2,021评论 0 1
  • 一.防火墙概念 (一)安全技术介绍 (1) 入侵检测与管理系统(Intrusion Detection Syste...
    楠人帮阅读 1,623评论 0 3
  • 1.安全技术 (1)入侵检测与管理系统(Intrusion Detection Systems): 特点是不阻断任...
    尛尛大尹阅读 2,676评论 0 2
  • 学习时间:1小时 学习内容:现代文学作品,日更一篇 明日学习时间:2小时
    阅悦生阅读 368评论 2 9
  • 黑客攻击的蔓延使合法的正版软件更受欢迎,因为正版软件通常自动提供安全更新的升级。 WannaCrypt的目标很清晰...
    葛朗台商业简讯阅读 194评论 0 0

友情链接更多精彩内容