防火墙扩展规则

3案例3:防火墙扩展规则

3.1问题

本案例要求熟悉使用iptables的扩展规则,实现更丰富的过滤功能,完成以下任务:

  1. 根据MAC地址封锁主机
  2. 在一条规则中开放多个TCP服务
  3. 根据IP范围设置封锁规则

3.2方案

iptables在基本过滤条件的基础上还扩展了很多其他条件,在使用时需要使用-m参数来启动这些扩展功能,语法如下:
iptables 选项 链名称 -m 扩展模块 --具体扩展条件 -j 动作

3.3步骤

实现此案例需要按照如下步骤进行。

步骤一:根据MAC地址过滤

1)根据IP过滤的规则,当对方修改IP后,防火墙会失效

[root@proxy ~]# iptables -F
[root@proxy ~]# iptables -I INPUT -s 192.168.4.100 -p tcp --dport 22 -j DROP
//设置规则禁止192.168.4.100使用ssh远程本机

但是,当client主机修改IP地址后,改规则就会生效,主义因为修改了IP,对client主机的远程连接会断开,需要使用virt-manager开启虚拟机操作:

[root@client ~]# ifconfig eth0  192.168.4.101
[root@client ~]# ssh 192.168.4.5

根据MAC地址过滤,可以防止这种情况发生

[root@client ~]# ip link show eth0                    //查看client的MAC地址
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 52:54:00:00:00:0b brd ff:ff:ff:ff:ff:ff
[root@proxy ~]# iptables  -A  INPUT  -p tcp --dport 22\
> -m   mac --mac-source  52:54:00:00:00:0b  -j  DROP
//拒绝52:54:00:00:00:0b这台主机远程本机

步骤二:基于多端口设置过滤规则

1)一次需要过滤或放行很多端口时会比较方便

[root@proxy ~]# iptables  -A  INPUT  -p tcp   \
> -m  multiport --dports  20:22,25,80,110,143,16501:16800  -j  ACCEPT
//一次性开启20,21,22,25,80,110,143,16501到16800所有的端口

提示,多端口还可以限制多个源端口,但因为源端口不固定,一般不会使用,限制多个源端口的参数是–sports

步骤三:根据IP地址范围设置规则

1)允许从192168.4.10-192.168.4.20登录

[root@proxy ~]# iptables  -A  INPUT  -p tcp  --dport  22  \
> -m  iprange  --src-range  192.168.4.10-192.168.4.20   -j  ACCEPT

注意,这里也可以限制多个目标IP的范围,参数是–dst-range,用法与–src-range一致。
2)禁止从192.168.4.0/24网段其他的主机登录

[root@proxy ~]# iptables -A INPUT -p tcp --dport 22  -s 192.168.4.0/24  -j  DROP
发布了145 篇原创文章 · 获赞 3 · 访问量 5330

猜你喜欢

转载自blog.csdn.net/weixin_41176080/article/details/104243862