宿主机iptables策略实施
#基础策略
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT && \
iptables -A INPUT -p icmp -j ACCEPT && \
iptables -A INPUT -p udp -j ACCEPT && \
iptables -A INPUT -i lo -j ACCEPT
#允许某个IP地址访问
iptables -A INPUT -s IP地址 -j ACCEPT
#允许某个端口访问
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
#允许某个网段访问
iptables -A INPUT -s 网段地址/掩码 -j ACCEPT
#允许某个协议访问
iptables -A INPUT -p 协议名称 -j ACCEPT
#禁止某个IP地址访问
iptables -A INPUT -s IP地址 -j DROP
#禁止某个端口访问
iptables -A INPUT -p tcp --dport 端口号 -j DROP
#禁止某个网段访问
iptables -A INPUT -s 网段地址/掩码 -j DROP
#IP白名单及端口访问策略
iptables -A INPUT -s 网段地址/掩码 -p tcp --dport 端口号 -j ACCEPT
#默认拒绝所有策略
iptables -A INPUT -j REJECT
#查看INPUT链配置
iptables -nvL INPUT --line-numbers
#查看iptables规则
iptables -L
#清空iptables规则
iptables -F
#保存iptables配置。注意需要先安装iptables-services,centos系统安装命令:
yum install -y iptables-services
service iptables save
#iptables配置恢复命令为
iptables-restore < /etc/sysconfig/iptables
补充提醒:iptables规则是有顺序的,因此需要按照正确的顺序设置规则,避免出现冲突或者误操作。
docker容器iptables策略实施
#修改DOCKER链中对应容器端口的访问策略
iptables -R DOCKER 2 ! -i docker0 -o docker0 -p tcp -m tcp -s 网段地址/掩码 -d172.17.0.2 --dport 端口号 -j ACCEPT
#查看DOCKER链配置
iptables -L DOCKER -n --line-numbers
#禁止所有容器之间的网络通信:可以使用如下命令禁止所有容器之间的网络通信,可以有效防止恶意容器之间的攻击和数据泄露。
iptables -I FORWARD -i docker0 -o docker0 -j DROP
#允许某个容器访问外部网络:可以使用如下命令允许某个容器访问外部网络:
iptables -t nat -A POSTROUTING -s 容器IP地址/32 -j MASQUERADE
#允许某个容器访问指定端口:可以使用如下命令允许某个容器访问指定端口:
iptables -I DOCKER-USER -i eth0 -o docker0 -p tcp --dport 端口号 -d 容器IP地址/32 -j ACCEPT
总结:
1、在配置iptables规则之前,最好备份一下原来的规则,以便出现问题时可以恢复到原始状态。
2、为了方便管理,可以将iptables规则保存到一个文件中,比如/etc/sysconfig/iptables,然后使用
iptables-save>/etc/sysconfig/iptables 命令将当前规则保存到该文件中。
3、在配置iptables规则时,需要注意规则的顺序,因为iptables会按照规则的顺序依次匹配数据包,因此需要将最常用的规则放在前面