咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
docker容器映射的端口无法用firewalld防火墙管理的问题
蓝队云小课堂:
1. 设置docker服务参数,禁止使用iptables。
编辑docker服务的配置文件/etc/docker/daemon.json,如果没有这个文件,需要创建一个空文件,添加以下内容:
{
... ,
"iptables":false
}
保存配置文件。在命令行执行以下命令重启docker服务:
# systemctl restart docker
2. 设置防火墙参数,允许地址转发
在命令行执行以下命令,开启防火墙的地址转发:
# firewall-cmd --add-masquerade --permanent
# firewall-cmd -reload
重启服务器,让配置生效。
3. 限制端口仅允许特定IP地址访问,例如设置9200端口只能被192.168.0.184访问
3.1 查看防火墙是否开启了9200端口。
# firewall-cmd --list-all
3.2从防火墙中删除9200端口,如果没有,可忽略这一步。
在命令行执行命令
# firewall-cmd --remove-port=9200/tcp --permanent
# firewall-cmd --reload
# firewall-cmd --list-all
已经没有9200端口。
3.3 添加rich-rules防火墙规则,仅允许192.168.0.184 访问9200端口。
#firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.0.184" port protocol="tcp" port="9200" accept" --permanent
注意:上面的命令要在一行中输入,不能分行。
# firewall-cmd --reload
让修改及时生效。
#firewall-cmd --list-all
这样设置,即使重启操作系统,也仅有192.168.0.184能访问9200端口。
注意:如果添加rich-rule出现错误输入,可以把--add-rich-rule替换为--remove-rich-rule再执行一遍命令,就能删除这条错误的规则。
更多小知识,可联系蓝队云一起探讨。