Я установил контейнер док-станции pi-hole и открыл порты DNS и порт 80 на CentOS7.Однако теперь порты доступны для всех источников, что не очень удобно с момента его запуска на VPS.
Поэтому я пытаюсь, чтобы firewallD фильтровал трафик, идущий на мой докер-контейнер.
ИтакМой Docker-контейнер работает следующим образом:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
18881454da0c pihole/pihole:latest "/s6-init" 24 hours ago Up About an hour (healthy) 0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:53->53/udp pihole
на firewallD Я настроил следующий acl (трафик, идущий в CentOS, фильтруется этим):
sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: docker0
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="<home ip>/32" accept
И я установилинтерфейс docker0 для зоны public:
sudo firewall-cmd --permanent --zone=public --change-interface=docker0
sudo firewall-cmd --get-active-zones
public
interfaces: docker0
Но когда я выполняю сканирование портов из Интернета, я все еще вижу все порты, открытые для докеров.
Я могу решить эту проблему с помощью команд iptables:
sudo iptables -N CUSTOM_PIHOLE
sudo iptables -A CUSTOM_PIHOLE --source <home ip> --destination 172.17.0.2 -j ACCEPT
sudo iptables -R DOCKER 1 --source 0.0.0.0/0 --destination 172.17.0.2 -j CUSTOM_PIHOLE
sudo iptables -D DOCKER 3
sudo iptables -D DOCKER 2
Но тогда, когда firewallD перезагружается, эта конфигурация теряется.
Есть ли способ отфильтровать трафик в Docker-контейнер с помощью firewallD?