Linux Firewalld 保护 Docker 容器对外端口
具体步骤
安装 Firewalld (注意卸载关闭除了 iptables 以外的防火墙)
1
2
3
4# 安装 firewalld
apt install firewalld
# 启动并设置开机自启
systemctl enable --now firewalld在 Docker 中禁用 iptables, 编辑文件
/etc/docker/daemon.json添加以下配置1
2
3{
"iptables": false
}重启 Docker
1
2# 重启 Docker
systemctl restart dockerFirewalld 启用当前区域下的伪装, 通常是
public1
2
3
4# 允许 public 区域伪装
firewall-cmd --zone=public --add-masquerade --permanent
# 重启 firewalld
firewall-cmd --reload为了让 Docker 能够重新访问端口, 将其接口添加到
trusted区域1
2
3
4
5
6
7
8
9# 查看 Docker 使用的网络接口, 一般为 docker0
ip link show
# 添加 docker0 接口到 trusted 区域
firewall-cmd --permanent --zone=trusted --add-interface=docker0
# 重启 firewalld
firewall-cmd --reload
# 重启 Docker
systemctl restart docker将主机接口添加到
public区域1
2
3
4
5
6
7# 查看主机使用的网络接口, 一般为 eth0
ip addr
# 添加 eth0 接口到 public 区域
firewall-cmd --permanent --zone=public --add-interface=eth0
# 重启 firewalld
firewall-cmd --reload此时防火墙应该设置完毕, 添加端口和删除端口操作和日常无异, 正常添加即可.
参考
https://dev.to/soerenmetje/how-to-secure-a-docker-host-using-firewalld-2joo
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 默世之夕!