一:根据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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)