Możemy spróbować zacząć od definicji firewalla, która jest potrzebna do zrozumienia „słownictwa portów”. Firewall to oprogramowanie lub firmware, które egzekwuje zestaw reguł dotyczących tego, jakie pakiety danych zostaną dopuszczone do wejścia lub wyjścia z sieci. Odpowiada on za zarządzanie regułami Allow i Deny dla portów.
Zgodnie z tematem tego przewodnika chcielibyśmy otworzyć porty w dystrybucjach Linuksa takich jak Ubuntu czy CentOS. Obie dystrybucje pozwalają na skonfigurowanie tego za pomocą różnych zestawów narzędzi (pakietów firewalli) ale z takimi samymi rezultatami.
Narzędzia, których będziemy używać:
– UFW
– Firewalld
Przyjrzyjrzyjmy się najpierw scenariuszowi dla Ubuntu:
Dystrybucja ta zawiera domyślnie preinstalowaną usługę UFW(Uncomplicated Firewall). Upraszcza to całą konfigurację i jest przyjazne dla każdego użytkownika.
Sprawdź status usługi za pomocą standardowej komendy systemctl:
$ sudo systemctl status ufw
Włącz UFW za pomocą komendy enable:
$ sudo ufw enable
Syntaktyka otwarcia określonego portu TCP:
$ sudo ufw allow (port)/tcp
na przykład:
$ sudo ufw allow 53/tcp
Syntaktyka obsługuje również nazwy, które odnoszą się do konkretnych portów:
$ sudo ufw allow https
Aby zezwolić na przychodzące pakiety tcp i udp na porcie 21, należy wpisać:
$ sudo ufw allow 21
Przykład dla konkretnego adresu IP:
$ sudo ufw allow from 190.34.21.113 to any port
Sprawdźmy konfigurację:
$ sudo ufw status verbose
Polecenie wyświetla tymczasową tabelę z trzema kolumnami:
Objaśnienia:
– To – opisuje dany protokół
– Action – mówi nam czy jest on dozwolony czy odrzucony
– From – Mówi o źródle np.g gdziekolwiek lub jeden adres ip jak w przypadku przedstawionym powyżej
Już czas na CentOS:
Firewalld jest bardziej zaawansowanym narzędziem, które w swojej konfiguracji wykorzystuje strefy. Odpowiadają one za opiekę nad pewnym obszarem, lub jednym „podpiętym” interfejsem sieciowym.
Firewalld jest kontrolerem frontend dla iptables, służącym do implementacji trwałych reguł ruchu sieciowego.
Przyjrzyjrzyjmy się garści poleceń, które opracowuje firewalld.
1. Uruchom naszą usługę poleceniem stardand systemctl:
$ sudo systemctl start firewalld
Włącz ją:
$ sudo systemctl enable firewalld
To polecenie informuje nas o stanie usługi. Może wyświetlić tylko dwa zdania: „działa” lub „nie działa”
$ sudo firewall-cmd --state
Domyślna strefa to public. W tym krótkim tutorialu nie będziemy tego zmieniać, ale jeśli chciałbyś to zrobić to użyj następujących komend:
$ sudo firewall-cmd --set-default-zone=work
Spróbujmy dodać ruch tcp na porcie 1112:
$ sudo firewall-cmd --zone=public --add-port=1112/tcp --permanent
Aby przeładować i uzyskać natychmiastowe zastosowanie tych zmian musimy przeładować stan firewalld.
$ sudo firewall-cmd --reload
Możemy uzyskać czytelny przegląd naszej nowej reguły za pomocą polecenia listing:
Aby zezwolić na połączenie ssh na określonym Ipv4 musimy użyć składni z „rich rule”
.