UFW nie blokuje ruchu przychodzącego

2

Mam serwer Debian 9 z systemem UFW i chciałbym blokować wszystkie przychodzące żądania oprócz portu 2122 (SSH) i 80/443 (dla HTTP).

Uruchomiłem następujące polecenia:

ufw reset
ufw default deny incoming
ufw default allow outgoing
ufw allow incoming 2122/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Który kompiluje się do:

ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
2122/tcp                   ALLOW IN    Anywhere
80/tcp                     ALLOW IN    Anywhere
443/tcp                    ALLOW IN    Anywhere
2122/tcp (v6)              ALLOW IN    Anywhere (v6)
80/tcp (v6)                ALLOW IN    Anywhere (v6)
443/tcp (v6)               ALLOW IN    Anywhere (v6)

Wydaje się, że wszystko jest w porządku, przynajmniej dla mnie. Ale po uruchomieniu kontenera dokującego na porcie 2424 (lub, naprawdę, na dowolnym innym porcie), nadal mogę uzyskać dostęp do http: //domain.tld: 2424 , pomimo zapory ogniowej.

Próbowałem zrestartować komputer, zrestartować iptables, ... Brak kości. Jakieś sugestie ? Wielkie dzięki !

Łobuz
źródło

Odpowiedzi:

3

Docker otwiera porty w samej zaporze, dla wszystkich portów, które są EKSPOZYCJA przez działające kontenery. Nie pojawiają się one w ufwdanych wyjściowych, ale można je wyświetlić w iptables.

Powinieneś:

  • Upewnij się, że tylko porty, które muszą być dostępne dla Internetu, są EKSPOZYCYJNE.
  • Użyj narzędzia dokującego-skomponuj, aby zorganizować tworzenie i uruchamianie wielu powiązanych kontenerów. Mogą rozmawiać ze sobą bez konieczności ujawniania portów.
Michael Hampton
źródło
To ma sens. Nie wiedziałem, że Docker wchodzi w interakcje z iptables! Działa jak urok, gdy używasz exposeinstancji ports. Dzięki !
Łotrzyk