Как настроить FirewallD для фильтрации трафика на незащищенный порт докера - PullRequest
0 голосов
/ 01 октября 2018

Я установил контейнер док-станции 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?

1 Ответ

0 голосов
/ 27 октября 2018
...