Wprowadzenie
UFW oznacza „uncomplicated firewall” (nieskomplikowaną zaporę sieciową). Jest to platforma frontendowa, która umożliwia łatwe zarządzanie funkcjami i poleceniami zapory sieciowej. UFW otrzymujesz jako domyślną opcję ze swoim serwerem Ubuntu . Maksymalne wykorzystanie potencjału poleceń i funkcji zapory sieciowej może być trudne, jeśli nie znasz jeszcze tego narzędzia.
Naszym celem jest dostarczenie wszechstronnego przewodnika, z którego możesz korzystać jako osoba początkująca. Wyjaśnienia uzupełnimy przykładami różnych działań, które można wykonać za pomocą UFW. Wiele z tych reguł będzie bardzo przydatnych w codziennych usługach i czynnościach. Zaczynajmy!
Wymagania wstępne
Zanim przejdziesz dalej, upewnij się, że Twój UFW jest ustawiony na domyślny zestaw reguł. Oznacza to, że zapora sieciowa zezwala na ruch wychodzący, ale blokuje ruch przychodzący. Zaletą tego domyślnego ustawienia jest to, że możesz wybrać, który ruch ma być przepuszczany przez zaporę. Jeśli nie masz pewności co do stanu bieżącego zestawu reguł w swoim UFW, użyj tego polecenia, aby to sprawdzić: sudo ufw status. Możesz również użyć tego polecenia:
|
1 |
sudo ufw status verbose |
Poza tym możesz swobodnie przejść do dowolnej sekcji, która jest najbardziej odpowiednia dla Twoich wymagań. Nie musisz koniecznie używać każdego polecenia podanego w tym przewodniku. Możesz je dowolnie łączyć i dopasowywać do swoich osobistych potrzeb.
Jak zablokować adres IP
Zacznijmy od jednej z najbardziej podstawowych funkcji każdej zapory sieciowej: blokowania adresów IP. Istnieje bardzo proste polecenie, którego można użyć do zablokowania wszelkich połączeń sieciowych pochodzących z danego adresu IP. Załóżmy na przykład, że konkretnym adresem IP w naszym przypadku jest 15.15.15.51. Możesz zastąpić tę wartość adresem IP, który chcesz zablokować za pomocą UFW. Oto polecenie, którego należy użyć w tym celu:
|
1 |
sudo ufw deny from 15.15.15.51 |
W tym przypadku „from 15.15.15.51” wskazuje wyłącznie źródłowy adres IP, którym jest „15.15.15.51”. Jeśli zamiast tego chcesz określić podsieć, możesz dodać ją w następujący sposób: 15.15.15.0/24. Polecenie zadziała równie dobrze. Możesz określić ten źródłowy adres IP w dowolnej regule zapory sieciowej, na przykład w regule zezwalającej (allow).
- Blokowanie połączeń z interfejsu sieciowego
Czasami wymagane może być zablokowanie połączeń sieciowych pochodzących z określonego adresu IP do określonego interfejsu sieciowego. W takim przypadku będziemy musieli określić interfejs sieciowy wraz ze źródłowym adresem IP. W tym przykładzie przyjmijmy, że źródłowy adres IP to 15.15.15.51, a interfejs sieciowy to eth0:
|
1 |
sudo ufw deny in on eth0 from 15.15.15.51 |
Podobnie jak w przypadku źródłowego adresu IP, interfejs sieciowy można określić w dowolnej regule zapory sieciowej. Celem tych specyfikacji jest ograniczenie danej reguły zapory wyłącznie do określonej sieci lub połączenia.
Jak zezwolić na połączenia SSH
Ta sekcja jest istotna, jeśli korzystasz z serwera w chmurze. Aby móc nawiązać połączenie z serwerem w chmurze, zapora sieciowa musi zezwalać na przychodzące połączenia SSH. Połączenia te odbywają się przez port 22. Możesz skorzystać z tego samouczka, aby dowiedzieć się, jak używać SSH do łączenia się z serwerem zdalnym w systemie Ubuntu.
Nawizując połączenia SSH, możesz z powodzeniem zarządzać swoim serwerem w chmurze za pomocą lokalnego urządzenia. Tutaj omówimy różne reguły związane z konfiguracją zapory sieciowej dla SSH:
- Zezwalanie na SSH
Użyj następującego polecenia, aby zezwolić na wszystkie przychodzące połączenia SSH:
|
1 |
sudo ufw allow ssh |
Z drugiej strony, możesz również wykonać to polecenie, określając zamiast tego numer portu usługi SSH:
|
1 |
sudo ufw allow 22 |
- Zezwalanie na przychodzące połączenia SSH z określonego adresu IP
W przypadku, gdy chcesz zezwolić na przychodzące połączenia SSH tylko z określonego adresu IP lub podsieci, masz możliwość określenia źródła. Na przykład załóżmy, że podsieć, na którą chcesz zezwolić, to 15.15.15.0/24. Oto polecenie, które należy uruchomić:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 22 |
- Zezwalanie na przychodzące połączenia Rsync z określonego adresu IP
Działając na porcie 873, Rsync umożliwia przesyłanie plików z jednego systemu komputerowego do drugiego. Jeśli chcesz zezwolić na połączenie Rsync pochodzące tylko z określonego adresu IP lub podsieci (w tym przykładzie 15.15.15.0/24), możesz to zrobić za pomocą tego polecenia:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 873 |
Oznacza to, że cała podsieć 15.15.15.0/24 będzie mogła korzystać z Rsync do Twojego serwera. Oto również obszerny poradnik, jak wykorzystać Rsync do synchronizacji lokalnych i zdalnych katalogów na serwerze.
How to Configure Web Server Requests
Następnie przejdziemy do reguł związanych z usługą serwera WWW. Serwery WWW, takie jak Apache i Nginx zazwyczaj przyjmują żądania połączeń HTTP i HTTPS z dwóch portów: portu 80 i portu 443. Port 80 obsługuje żądania HTTP. Port 443 jest odpowiedzialny za żądania HTTPS.
Jak omówiliśmy w wymaganiach wstępnych, używasz domyślnego zestawu reguł dla UFW. Na podstawie tego zestawu reguł zapora sieciowa blokuje lub odrzuca cały ruch przychodzący. Dlatego musisz skonfigurować nowe reguły, które pozwolą serwerowi przyjmować i odczytywać te przychodzące żądania.
- Zezwalanie na cały ruch HTTP
Jeśli chcesz zezwolić na wszystkie połączenia i żądania HTTP pochodzące z portu 80, użyj polecenia:
|
1 |
sudo ufw allow http |
Możesz również użyć numeru portu (port 80), aby określić usługę HTTP w poleceniu:
|
1 |
sudo ufw allow 80 |
- Zezwalanie na cały ruch HTTPS
Jeśli chcesz zezwolić na wszystkie połączenia i żądania HTTPS pochodzące z portu 443, uruchom to polecenie:
|
1 |
sudo ufw allow https |
Podobnie jak w poprzednim poleceniu, możesz zastąpić ‘https’ numerem portu usługi HTTPS:
|
1 |
sudo ufw allow 443 |
- Zezwalanie na cały ruch HTTP i HTTPS
W przypadku, gdy chcesz zezwolić zarówno na żądania HTTP, jak i HTTPS, możesz użyć wspólnej reguły dla obu z nich. Za pomocą tego jednego polecenia możesz zezwolić na ruch przychodzący zarówno z portu 80, jak i portu 443:
|
1 |
sudo ufw allow proto tcp from any to any port 80,443 |
Polecenie proto tcp jest wymagane, gdy określasz wiele portów jednocześnie.
Możesz również skorzystać z tych szczegółowych poradników dotyczących zabezpieczania Nginx i Apache za pomocą Let’s Encrypt na Ubuntu.
Jak zezwolić na połączenia MySQL
MySQL – połączenia przychodzą przez port 3306. Będziesz musiał użyć reguły zezwalającej na ruch przychodzący, jeśli klient korzysta z Twojej bazy danych MySQL na zdalnym serwerze. Skorzystaj z naszego poradnika, aby poznać podstawy MySQL i dowiedzieć się, jak skonfigurować MySQL na serwerze.
- Zezwalanie na połączenia MySQL z określonego adresu IP
Jak już widzieliśmy w poprzednich regułach, musisz określić źródło, aby zezwolić na przychodzące połączenia MySQL. Źródłem może być konkretny adres IP lub podsieć. W naszym przykładzie użyjemy całej podsieci 15.15.15.0/24 do uruchomienia polecenia:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 3306 |
- Zezwalanie na połączenia MySQL do określonego interfejsu sieciowego
Użyjesz innego polecenia, jeśli musisz również określić interfejs sieciowy, dla którego zezwalasz na połączenia MySQL. Załóżmy, że używany interfejs sieciowy to prywatny interfejs sieciowy o nazwie eth1. Możesz zastąpić tę wartość nazwą własnego interfejsu sieciowego:
|
1 |
sudo ufw allow in on eth1 to any port 3306 |
Jak zezwolić na połączenia PostgreSQL
Połączenia PostgreSQL przychodzą przez port 5432. Podobnie jak w przypadku połączeń MySQL, jeśli klient korzysta z bazy danych PostgreSQL na zdalnym serwerze, musisz zezwolić na ruch przychodzący. Możesz to zrobić za pomocą poniższych poleceń.
- Zezwalanie na połączenia PostgreSQL z określonego adresu IP
Jeśli wiesz, że połączenia PostgreSQL pochodzą z określonej podsieci lub adresu IP, musisz określić źródło. Tutaj ponownie użyjemy przykładu podsieci 15.15.15.0/24:
|
1 |
sudo ufw allow from 15.15.15.0/24 to any port 5432 |
W przypadku, gdy polityka OUTPUT nie jest ustawiona na ACCEPT, konieczne będzie uruchomienie drugiego polecenia. To polecenie zezwala na ruch wychodzący dla już ustanowionych połączeń PostgreSQL.
- Zezwalanie na PostgreSQL dla określonego interfejsu sieciowego
Podobnie jak w poprzedniej regule, zezwolimy na połączenia PostgreSQL dla określonego interfejsu sieciowego. W naszym przypadku jest to eth1:
|
1 |
sudo ufw allow in on eth1 to any port 5432 |
W przypadku, gdy polityka OUTPUT nie jest ustawiona na ACCEPT, konieczne będzie uruchomienie drugiego polecenia. To polecenie zezwala na ruch wychodzący dla już ustanowionych połączeń PostgreSQL. Możesz dowiedzieć się, jak skonfigurować PostgreSQL na Ubuntu, postępując zgodnie z naszym szczegółowym samouczkiem.
Jak skonfigurować serwery pocztowe
Możesz również używać serwerów pocztowych takich jak Sendmail i Postfix w swoim systemie. Serwery te są otwarte na kilka portów. Porty, na których nasłuchują, zależą od protokołów ustawionych do dostarczania poczty. Dlatego najpierw musisz ustalić, jakie protokoły działają w Twoim systemie dostarczania poczty. Następnie, na podstawie tych informacji, zezwolisz na odpowiednie rodzaje ruchu.
- Blokowanie wychodzącej poczty SMTP
Zanim przejdziemy do poleceń zezwalających na ruch przychodzący dla serwerów pocztowych, zobaczmy, jak można zablokować wychodzącą pocztę SMTP. Możesz użyć tego polecenia, jeśli nie chcesz, aby Twój serwer wysyłał jakąkolwiek pocztę wychodzącą. Poczta SMTP korzysta z portu 25. Użyj tego polecenia, aby zablokować ten ruch:
|
1 |
sudo ufw deny out 25 |
W wyniku uruchomienia tego polecenia zapora sieciowa odrzuci cały ruch wychodzący na porcie 25. Jeśli chcesz zablokować inny port, po prostu zastąp port „25” odpowiednim numerem portu.
- Zezwalanie na przychodzący ruch SMTP
Skoro już wiesz, jak blokować ruch wychodzący, zezwalanie na ruch przychodzący wyda się równie proste. Użyj tego polecenia, aby zezwolić serwerowi na odbieranie połączeń SMTP na porcie 25:
|
1 |
sudo ufw allow 25 |
- Zezwalanie na przychodzący ruch IMAP
Jeśli chcesz zezwolić serwerowi na nawiązywanie połączeń IMAP na porcie 143, użyj następującego polecenia:
|
1 |
sudo ufw allow 143 |
- Zezwalanie na przychodzący ruch IMAPS
Użyj tego polecenia, aby zezwolić serwerowi na odpowiadanie na połączenia IMAPS na porcie 993:
|
1 |
sudo ufw allow 993 |
- Zezwalanie na przychodzący ruch POP3
To polecenie umożliwia serwerowi odpowiadanie na wszystkie połączenia POP3 przez port 110:
|
1 |
sudo ufw allow 110 |
- Zezwalanie na przychodzący ruch POP3S
Na koniec możesz zezwolić swojemu serwerowi na odbieranie żądań z portu 995 dla połączeń POP3S za pomocą tego polecenia:
|
1 |
sudo ufw allow 995 |
Podsumowanie
Ten przewodnik pomoże Ci zapoznać się z podstawowymi funkcjami UFW. Omówiliśmy niezbędne polecenia, z którymi musisz się zapoznać, aby móc skonfigurować swoją zaporę sieciową. Możesz wybrać polecenia, które najlepiej odpowiadają Twoim konkretnym wymaganiom, aby stworzyć spersonalizowane rozwiązanie zapory sieciowej. Elastyczny charakter UFW pozwala na taką personalizację. Eksperymentuj, aby dowiedzieć się, co działa najlepiej dla Ciebie.
Miłego korzystania z komputera!
Komentarze
Brak komentarzy. Bądź pierwszy.