资讯详情

对MAC地址、多端口匹配、IP范围等扩展条件的防火墙规则设置

问题

本案要求熟悉针对MAC地址,多端口匹配,IP设置防火墙规则,完成以下任务: 1)根据MAC一些主机在内网指定的地址封 2)通过一个防火墙规则打开多个TCP提高规则编写效率 3)根据指定IP地址范围设置封锁或放行规则

方案

采用三台RHEL6虚拟机svr5、gw1、pc如图-1所示,120。其中,虚拟机svr5作为局域网络的测试机,访问NAT网络(virbr0);虚拟机pc120作为Internet接入隔离网络的测试机(virbr1);虚拟机gw配置为网关/路由器eth0、eth12张网卡分别访问两个网络virbr0、virbr1。

内网测试机svr55还需要指向默认网关Linux网关内网接口192.168.4.1:

[root@svr5 ~]# route -n | grep UG 0.0.0.0         192.168.4.1     0.0.0.0         UG    0      0        0 eth0 

网关gw1开启路由转发:

[root@gw1 ~]# vim  /etc/sysctl.conf  net.ipv4.ip_forward = 1 [root@gw1 ~]# sysctl -p net.ipv4.ip_forward = 1 .. .. 

步骤

要实现这种情况,需要遵循以下步骤。 步骤一:根据MAC一些主机在内网指定的地址封锁 1)整理测试环境 外网测试机pc120添加到192.168.4.0/24网段路由:

[root@pc120 ~]# route add default gw 174.16.16.1 [root@pc120 ~]# route -n | grep UG 0.0.0.0         174.16.16.1     0.0.0.0         UG    0      0        0 eth0 

清理网关gw1.防火墙恢复到零规则状态:

[root@gw1 ~]# service iptables stop iptables:将链条设置为政策 ACCEPT:raw filter                [确定] iptables:清除防火墙规则:                                 [确定] iptables:卸载模块:                                   [确定] [root@gw1 ~]# 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 

2)在内网机svr5测试ping外网机pc能正常连接120

[root@svr5 ~]# ping -c4 -W2 174.16.16.120 PING 174.16.16.120 (174.16.16.120) 56(84) bytes of data. 64 bytes from 174.16.16.120: icmp_seq=1 ttl=63 time=2.29 ms 64 bytes from 174.16.16.120: icmp_seq=2 ttl=63 time=0.764 ms 64 bytes from 174.16.16.120: icmp_seq=3 ttl=63 time=0.887 ms 64 bytes from 174.16.16.120: icmp_seq=4 ttl=63 time=1.12 ms  --- 174.16.16.120 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 0.764/1.268/2.299/0.608 ms 

3)在gw1上添加MAC禁止转发内网机svr5的ping数据包 获得主机svr5的MAC地址(00:0c:29:65:21:3c):

[root@gw1 ~]# ping -c2 192.168.4.5 &> /dev/null     ///做网络访问 [root@gw1 ~]# arp -an | grep 192.168.4.5      //从ARP缓存提取MAC ? (192.168.4.5) at 00:0c:29:65:21:3c [ether] on eth0 

添加限制MAC地址防火墙规则:

[root@gw1 ~]# iptables -A FORWARD -p icmp -m mac --mac-source 00:0c:29:65:21:3c -j DROP  [root@gw1 ~]# iptables -nL FORWARD Chain FORWARD (policy ACCEPT) target     prot opt source               destination   DROP       icmp --  0.0.0.0/0            0.0.0.0/0     MAC 00:0C:29:65:21:3C 

4)在内网机svr5再测试ping外网机pc120,将被阻止

[root@svr5 ~]# ping -c4 -W2 174.16.16.120 PING 174.16.16.120 (174.16.16.120) 56(84) bytes of data.  --- 174.16.16.120 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 5000ms 

第二步:通过一个防火墙规则打开多个TCP提高规则编写效率 1)外网测试机pc120开放多个端口 允许访问本机SSH、FTP(16501:16800501:16800)、邮件、网站服务:

[root@pc120 ~]# iptables -A INPUT -p tcp -m multiport --dport 20:25,80,110,143,16501:16800 -j ACCEPT   拒绝对其他TCP访问端口时,可以使用上一条规则!取反,操作改为REJECT(方便查看效果): [root@pc120 ~]# iptables -A INPUT -p tcp -m multiport ! --dport 20:25,80,110,143,16501:16800 -j REJECT 

确认规则结果:

[root@pc120 ~]# iptables -nL INPUT Chain INPUT (policy ACCEPT) target     prot opt source           destination   ACCEPT     tcp  --  0.0.0.0/0    0.0.0.0/0   multiport    dports 20:22,25,80,110,143,16501:16800  REJECT     tcp  --  0.0.0.0/0    0.0.0.0/0   multiport    dports ! 20:25,80,110,143,16501:16800 reject-with icmp-port-unreachable 

2) 测试外网机pc120上的Web服务 将主机pc120上的httpd服务端口改为81:

[root@pc120 ~]# vim /etc/httpd/conf/httpd.conf Listen 81             ///修改监听端口 .. .. [root@pc120 ~]# service httpd restart      //重启服务 .. .. [root@pc120 ~]# netstat -anpt | grep httpd     ///确认监听状态 tcp        0      0 :::81             :::*          LISTEN      8425/httpd 由于pc120防火墙规则20防火墙规则,所以从其他主机(例如gw1)访问此Web服务失败: [root@gw1 ~]# elinks --dump http://174.16.16.120:81 ELinks: 拒绝连接 

将主机pc120上的httpd服务端口改为80:

[root@pc120 ~]# vim /etc/httpd/conf/httpd.conf Listen 80             ///修改监听端口 .. .. [root@pc120 ~]# service httpd restart      //重启服务 .. .. [root@pc120 ~]# netstat -anpt | grep httpd     ///确认监听状态 tcp        0      0 :::80             :::*         LISTEN      8499/httpd
从网关gw1可成功访问pc120上的Web网页:
[root@gw1 ~]# elinks --dump http://174.16.16.120
   Test Page 120.

步骤三:根据指定的IP地址范围设置封锁或放行规则 1)在外网机pc120上添加IP范围封锁 在INPUT链的最前面插入一条规则,禁止IP地址位于174.16.16.240~172.16.16.254范围的主机访问本机的Web服务:

[root@pc120 ~]# iptables -I INPUT -p tcp --dport 80 -m iprange --src-range 174.16.16.240-174.16.16.1 -j REJECT

[root@pc120 ~]# iptables -nL INPUT --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 source IP range 174.16.16.240-174.16.16.1 reject-with icmp-port-unreachable 
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 20:22,25,80,110,143,16501:16800 
3    REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports ! 20:22,25,80,110,143,16501:16800 reject-with icmp-port-unreachable 
[root@pc120 ~]#

2)测试从网关gw1上访问pc120的Web服务,将会失败(地址受限)

[root@gw1 ~]# elinks --dump http://174.16.16.120
ELinks: 拒绝连接

3)测试从内网机svr5上访问pc120的Web服务,可成功浏览(地址未受限)

[root@svr5 ~]# elinks --dump http://174.16.16.120
   Test Page 120.

标签: pc120光控开关继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司