Centos7及以上firewalld与docker冲突
jfatty
2022年03月25日 · 阅读 1,371
iptables替换firewalld
1、关闭firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service
2、安装 iptables
yum install -y iptables-services
3、修改配置
vim /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
4、启动并设置开机启动
systemctl restart iptables.service
systemctl enable iptables.service
5、只允许某些IP段访问为例
仅仅允许 172.17.0.0/16 IP段ssh登录,而禁止其他所有ip登录。
最简单的命令是:
iptables -I INPUT -p tcp --dport 22 -j DROP
iptables -I INPUT -s 172.17.0.0/16 -p tcp --dport 22 -j ACCEPT
第一句 禁止了所有对22端口的入访问,第二句允许 172.17.0.0/16 的访问。
6、用 iptables -L 列出所有规则
7、更安全的命令
iptables -I INPUT -s 172.17.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I INPUT 2 -p tcp --dport 22 -j DROP
即先执行允许访问,再显式的将禁止访问放在第二条。