Konfiguracja firewalld dla kontenerów Docker na Raspberry Pi (przykład z Nextcloud)

Wprowadzenie

Docker na Raspberry Pi to wygodny sposób na samodzielne hostowanie usług, takich jak Nextcloud. Aby zapewnić bezpieczeństwo, warto kontrolować, które porty i podsieci mogą się komunikować – do tego służy firewalld.

W tym przewodniku przeprowadzimy cię przez proces konfiguracji firewalld dla Dockera na Raspberry Pi.

Wymagania wstępne

  • Raspberry Pi z zainstalowanym Dockerem
  • firewalld zainstalowany i uruchomiony
  • dostęp do konta z uprawnieniami sudo

Krok 1: Przywracanie dostępu do portu (np. dla Nextcloud)

Jeśli Nextcloud nie działa, sprawdź czy port jest otwarty:

sudo firewall-cmd --permanent --zone=public --add-port=8181/tcp
sudo firewall-cmd --reload

Krok 2: Strefa dla Dockera i przypisanie interfejsu

Utwórz dedykowaną strefę i przypisz do niej interfejs docker0:

sudo firewall-cmd --permanent --new-zone=docker
sudo firewall-cmd --permanent --zone=docker --add-interface=docker0

Krok 3: Zezwól na komunikację między kontenerami

Zezwól na podsieć Docker i otwórz wymagane porty (np. MySQL dla Nextcloud):

sudo firewall-cmd --permanent --zone=docker --add-source=172.18.0.0/24
sudo firewall-cmd --permanent --zone=docker --add-port=3306/tcp
sudo firewall-cmd --reload

Krok 4: Weryfikacja konfiguracji

Sprawdź aktywne strefy i przypisane interfejsy:

sudo firewall-cmd --get-active-zones

Przykładowy wynik:

docker
  interfaces: docker0
  sources: 172.18.0.0/24
public
  interfaces: eth0

Podsumowanie

Udało ci się zabezpieczyć ruch kontenerów Docker na Raspberry Pi przy użyciu firewalld. Najważniejsze korzyści:

Wyraźne rozdzielenie ruchu zewnętrznego i wewnętrznego

Lepsza kontrola nad otwartymi portami

Elastyczne zarządzanie ruchem dzięki strefom

Regularnie przeglądaj i dostosowuj reguły zapory do zmieniającego się środowiska.