# 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