Powrót do bloga

Podstawy UFW: Nauka podstawowych poleceń zapory sieciowej

Podstawy UFW: Nauka podstawowych poleceń zapory sieciowej

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:

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:

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:

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:

Z drugiej strony, możesz również wykonać to polecenie, określając zamiast tego numer portu usługi SSH:

  • 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ć:

  • 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:

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:

Możesz również użyć numeru portu (port 80), aby określić usługę HTTP w poleceniu:

  • 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:

Podobnie jak w poprzednim poleceniu, możesz zastąpić ‘https’ numerem portu usługi HTTPS:

  • 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:

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:

  • 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:

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:

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:

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:

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:

  • 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:

  • Zezwalanie na przychodzący ruch IMAPS

Użyj tego polecenia, aby zezwolić serwerowi na odpowiadanie na połączenia IMAPS na porcie 993:

  • Zezwalanie na przychodzący ruch POP3

To polecenie umożliwia serwerowi odpowiadanie na wszystkie połączenia POP3 przez port 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:

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!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.