以下为教材里使用的命令:
保存规则:#iptables-save >/etc/iptables-script
恢复规则:#iptables-restore>/etc/iptables-script
保存和恢复的位置只要是两者一致就可以了,如果iptables-script没有则需要创建。
若想开机自动启用脚本,则可以使用以下命令放到系统初始化Shell脚本/etc/rc.d/rc.local中
#echo '/sbin/iptables-restore /etc/iptables-script' >>/etc/rc.d/rc.local
但近日查看一些资料,发现规则保存的位置在/etc/sysconfig/iptables下,所以一些资料就有了
保存规则:#iptables-save >/etc/sysconfig/iptables
恢复规则:#iptables-restore>/etc/sysconfig/iptables
若想开机自动启用脚本,则可以使用以下命令放到系统初始化Shell脚本/etc/rc.d/rc.local中
#echo '/sbin/iptables-restore /etc/sysconfig/iptables' >>/etc/rc.d/rc.local
此外还有一命令保存规则 #service iptables save,如下图:
规则自动保存到了/etc/sysconfig/iptables,用此命令保存的规则开机会自动生效,所以为了统一期间,建议以后规则的保存都保存在/etc/sysconfig/iptables下。
因为懒,我们选择增加一个iptables规则
首先增加规则如下:
发现不起作用,排查ip_forward也没问题,那就只能加日志
查看日志
居然没有,居然没有匹配这条规则
参考 终于搞定Linux的NAT即时生效问题
因为linux通过conntrack记录第一个packet的nat结果,后续的packet都不走nat,所以nat规则没有即时生效。揣测这么做的目的是提高iptables效率,毕竟一个link的所有packet都走nat规则实在没必要。
pre{overflow-x: auto}
docker有自己的防火墙吗?
有的,开启防火墙端口:firewall-cmd --zone=public --add-port=80/tcp --permanent。但是docker的部分网络功能是通过iptables转发来完成的,转发规则是docker进程启动后动态添加的,也就意味着如果你重启iptables,将会丢失docker的转发规则。
有两种解决办法:
1、动态添加iptables规则,然后保存到防火墙软件配置文件中
动态添加iptables规则可以使规则立即生效(重启失效)
sudo iptables -I INPUT 1 -p tcp --dport 46379 -j ACCEPT
这条命令会将规则添加到input规则的第一位 ,-I参数指定插入位置。不要使用-A参数,该参数会将规则添加到input的最后一条,一般原来的最后一条都是reject规则,所以新插入的规则无法生效。
sudo service iptables save
2、重启iptable后重新启动docker
影响:重启docker会导致全部容器重启,有可能造成短时间的业务故障。
此方法不建议使用,如果已经重启防火墙,导致docker业务故障,使用下面命令重启dcoker。
systemctl restart docker
它的基本 *** 作是什么?
1、启动服务:systemctl start firewalld.service
2、关闭服务:systemctl stop firewalld.service
3、重启服务:systemctl restart firewalld.service
4、显示服务的状态:systemctl status firewalld.service
5、开机自动启动:systemctl enable firewalld.service
6、禁用开机自动启动:systemctl disable firewalld.service
7、查看版本: firewall-cmd --version
8、查看帮助: firewall-cmd --help
9、显示状态: firewall-cmd --state
10、查看所有打开的端口: firewall-cmd --zone=public --list-ports
11、更新防火墙规则: firewall-cmd --reload
12、查看区域信息: firewall-cmd --get-active-zones
13、查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
14、拒绝所有包:firewall-cmd --panic-on
15、取消拒绝状态: firewall-cmd --panic-off
16、查看是否拒绝: firewall-cmd --query-panic
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)