# Jak zarządzać firewalld?

Na wszystkich nowszych szablonach z rodziny Linux rolę zapory sieciowej spełnia usługa firewalld.

Jest to nakładka na iptables, jednak jej konfiguracja przebiega inaczej i do wprowadzenia zmian configu bez specjalnych zamiarów nie zaleca się mieszania poleceń. Usługa firewalld używa stref i usług zamiast łańcucha i reguł jak ma to miejsce w iptables. Pełną dokumentację rozwiązania dostarcza producent (opens new window).

Po inicjalizacji nowej maszyny wszystkie porty poza portem 22 są domyślnie zablokowane.

# Weryfikacja stanu i konfiguracji

Żeby sprawdzić czy usługa jest aktywna wystarczy wydać w terminalu polecenie:

firewall-cmd --state 

W odpowiedzi powinniśmy otrzymać status "running".

Jeżeli chcielibyśmy wyświetlić konfigurację strefy na maszynie wydajemy polecenie:

firewall-cmd --zone=public --list-all

W odpowiedzi otrzymamy listę, która będzie zawierać odblokowane serwisy oraz porty.

# Odblokowywanie portów

Aby odblokować dowolnie wybrany port należy wydać polecenie:

firewall-cmd --zone=public --add-port=<numer_portu>/<nazwa_protokołu> --permanent

Przykładowo dla portu 5000 i tcp polecenie powinno wyglądać:

firewall-cmd --zone=public --add-port=5000/tcp

Zamiast portów odblokowywać możemy również poszczególne usługi. Dla HTTP będzie to polecenie:

firewall-cmd --zone=public --add-service=http --permanent

W każdym przypadku do zapisania zmian konieczne jest przeładowanie ustawień firewalla poleceniem:

firewall-cmd --reload

Nie jest wymagany restart instancji, a zmiana zostaje zapisana trwale.

Czasami pomimo poprawnego dodania reguł i przeładowania usługi firewalla połączenia w dalszym ciągu są blokowane. Rozwiązaniem jest flush iptables poleceniem: `iptables -F`

# Wyłączenie i włączenie usługi

W celu zatrzymania zapory jedynie na czas obecnej sesji należy wydać polecenie:

systemctl stop firewalld

Chwilowe zatrzymanie usługi firewalld może być przydatne podczas diagnozowania problemów z dostępem do maszyny - wyklucza błędną konfigurację jako ich przyczynę.

Jeżeli chcemy wyłączyć usługę firewalld na stałe wydajemy dodatkowo drugie polecenie:

systemctl disable firewalld

W przypadku całkowitego wyłączenia zapory zalecamy instalację i konfigurację innego wybranego rozwiązania, które zabezpieczy maszynę przez nieautoryzowanym dostępem.

Ponowne wznowienie usługi firewalld możemy osiągnąć poleceniem:

systemctl enable firewalld

Natomiast ponowny start zapory sieciowej uzyskamy wydając polecenie:

systemctl start firewalld