Po uruchomieniu dockera pojawia się pytanie jak ograniczyć dostęp do niektórych usług. O ile takie aplikacje jak np. WordPress powinny być widoczne dla wszystkich to np. MySQL już niekoniecznie. Poniżej pozwoliłem sobie skrótowo opisać jak ograniczyć dostęp do wybranego serwisu wyłącznie dla jednego hosta w sieci lokalnej.
W systemie Ubuntu zaporą sieciową jest ufw / iptables. Konfiguracja dockera powinna się znaleźć w łańcuchu „DOCKER-USER”. Nie zaleca się modyfikowanie łańcucha „DOCKER”. Kolejność ról jest taka, że te znajdujące się wyżej w łańcuchu nadpisują te poniższe. W przykładzie najniżej znajduje się reguła blokująca wszystkich, a nad nią reguła pozwalająca na dostęp z wybranego IP. Aby uzyskać następujący efekt wywołaj poniższe komendy.
Zezwolenie hostowi „192.168.27.7” na dostęp do portu „3306”.
iptables -A DOCKER-USER -s 192.168.27.7/32 -d 172.18.0.3/32 ! -i br-d49ded88470c -o br-d49ded88470c -p tcp -m tcp --dport 3306 -j ACCEPT
Blokada wszystkich hostów na porcie „3306”.
iptables -A DOCKER-USER -d 172.18.0.3/32 ! -i br-d49ded88470c -o br-d49ded88470c -p tcp -m tcp --dport 3306 -j DROP
Pamiętaj aby podmienić IP oraz nazwę interfejsu na właściwą, taka jaka występuje u Ciebie. U mnie jest to „br-d49ded88470c”. Aby uzyskać nazwę interfejsu możesz użyć komendy iptables -L DOCKER
gdzie widać podstawową konfigurację.
PRZYDATNE KOMENDY
Podgląd konfiguracji łańcucha.
iptables -L DOCKER-USER;
iptables -L DOCKER
Lista ról wykorzystanych do skonfigurowania łańcucha. Na jej podstawie można w łatwy sposób odbudować konfigurację.
iptables -S DOCKER-USER;
iptables -S DOCKER
Uwaga! Należy usunąć
iptables -L DOCKER-USER
RETURN all -- anywhere anywhere
iptables -S DOCKER-USER
-A DOCKER-USER -j RETURN
WIĘCEJ O SAMYM DOCKERZE
Opis przydatnych komend znajduje się w artykule PRZYGODA Z DOCKEREM