Как настроить FirewallD для фильтрации трафика на незащищенный порт докера

Я установил контейнер док-станции и открыл порты DNS и порт 80 на CentOS7. Однако порты теперь доступны для всех источников, что не очень удобно, так как работает на VPS.

Поэтому я пытаюсь, чтобы firewallD фильтровал трафик, идущий на мой докер-контейнер.

Итак, мой докер-контейнер работает следующим образом:

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?

1 ответ

Нашел ответ. см. следующие ссылки:

Другие вопросы по тегам