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

编程入门 行业动态 更新时间:2024-10-27 15:27:52

对MAC地址、多端口匹配、IP范围等扩展条件的<a href=https://www.elefans.com/category/jswz/34/1771117.html style=防火墙规则设置"/>

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

问题

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

方案

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

内网测试机svr5还需要将默认网关指向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外网机pc120,能够正常连通

[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:16800)、邮件、网站服务:

[root@pc120 ~]# iptables -A INPUT -p tcp -m multiport --dport 20:22,25,80,110,143,16501:16800 -j ACCEPT  
拒绝对其他TCP端口的访问时,可以对上一条规则利用!取反,操作改为REJECT(方便查看效果):
[root@pc120 ~]# iptables -A INPUT -p tcp -m multiport ! --dport 20:22,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:22,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的防火墙规则并未开放81端口,因此从其他主机(比如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.120Test 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-numbersChain 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.120Test Page 120.

更多推荐

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

本文发布于:2023-07-28 16:33:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1251007.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:防火墙   规则   条件   地址   多端

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!