iptables拓展规则(多端口、根据IP地址范围、MAC地址设置)

iptables拓展规则(多端口、根据IP地址范围、MAC地址设置),第1张

iptables在基本过滤条件的基础上还可以扩展其他条件,在使用时需要使用-m参数来启动这些扩展功能,语法如下:

一:根据MAC地址过滤

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

#设置规则禁止192.168.4.10使用ssh远程本机

但是,当client主机修改IP地址后,该规则就会失效,注意因为修改了IP,对client主机的远程连接会断开。 根据MAC地址过滤,可以防止这种情况的发生。

2)可以通过NMAP扫描对方的mac地址

拒绝52:54:00:65:44:B1 这台主机远程本机

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

一次需要过滤或放行很多端口

例:一次性开启20,25,80,110,143,16501到16800所有的端口

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

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

1)允许从 192.168.4.10-192.168.4.20 主机ssh远程登录本机

注意:这里也可以限制多个目标IP的范围,参数是--dst-range,用法与--src-range一致。

2)禁止从 192.168.4.0/24 网段其他的主机ssh远程登录本机

所有iptables规则都是临时规则,如果需要永久保留规则需要执行如下命令:

安装iptables-services并启动服务,保存防火墙规则。

防火墙规则存放文件:

/etc/sysconfig/iptables

iptables其他拓展模块还有很多,可以通过 man iptables-extensions 命令去查看。

你是在弄防火墙吧,

1,添加filter表

[root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT //开放21端口

出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。

2,添加nat表

[root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE

将源地址是 192.168.10.0/24 的数据包进行地址伪装,可根据自己实际IP修改

3,以下实例 :-A默认是插入到尾部的,可以-I来插入到指定位置

[root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT

[root@linux ~]# iptables -L -n --line-number

三,查下iptable规则

1,查看filter表

[root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便

5ACCEPT tcp -- 192.168.1.0/24 0.0.0.0/0 tcp dpt:21

如果不加-t的话,默认就是filter表,查看,添加,删除都是的

2,查看nat表

[root@linux ~]# iptables -t nat -vnL POSTROUTING --line-number

四,修改规则

[root@linux ~]# iptables -R INPUT 3 -j DROP//将规则3改成DROP

五,删除iptables规则

[root@linux ~]# iptables -D INPUT 3 //删除input的第3条规则

[root@linux ~]# iptables -t nat -D POSTROUTING 1 //删除nat表中postrouting的第一条规则

[root@linux ~]# iptables -F INPUT //清空 filter表INPUT所有规则

[root@linux ~]# iptables -F//清空所有规则

[root@linux ~]# iptables -t nat -F POSTROUTING //清空nat表POSTROUTING所有规则

六,设置默认规则

[root@linux ~]# iptables -P INPUT DROP //设置filter表INPUT默认规则是 DROP

iptables命令Usages可以直接通过-h查看

最简单的命令就是iptables -L

如果想更多详细信息可以使用如下命令

iptables -nL -v --line-numbers

如果需要查询指定的table,需要使用-t(默认是filter表)

如查询nat表中的规则

iptables -t nat -nL -v --line-numbers

使用-A添加规则

iptables -A DOCKER -t nat -p udp -m udp ! -i docker0 --dport 60535:65535 -j DNAT --to-destination 172.17.0.2:60535-65535

添加一个名字叫DOCKER的chain,在表nat中,映射的protocol为udp,-m表示扩展匹配:

!表示取非:非docker0入口的包,60535:65535端口,映射到172.17.0.2:60535-65535

举例:

Freeswitch-container的docker需要配置iptables,如下

添加完成后,效果如下:

查看chain的时候把--line-numbers参数带上,删除的时候指定好表(默认filter不需要),指定好Chain的名字,指定好number就可以了。

如上filter表里的DOCKER,删除命令如下

iptables -D DOCKER 1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11614290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存