Strona główna
» LINUX
»
Jak zablokować określone porty w systemie Linux za pomocą UFW lub firewalld
Jak zablokować określone porty w systemie Linux za pomocą UFW lub firewalld
Aby zablokować konkretny port w systemie Linux, dodaj regułę zapory sieciowej dla portu i protokołu, który chcesz zatrzymać. Na przykład w systemie Ubuntu z UFW sudo ufw deny 8080/tcpnowe połączenia przychodzące TCP są blokowane na porcie 8080. W systemach z firewalld możesz usunąć istniejący limit portów lub dodać jawną regułę odrzucającą. Ważne jest, aby zmienić zaporę sieciową, z której system faktycznie korzysta, zamiast mieszać reguły UFW, firewalld i niskopoziomowe reguły nftables.
Zanim zablokujesz port
Najpierw sprawdź numer portu i upewnij się, że aplikacja korzysta z protokołu TCP, UDP, czy obu. Reguła TCP nie blokuje automatycznie protokołu UDP na tym samym numerze. Możesz również sprawdzić gniazda nasłuchujące za pomocą:
sudo ss -lntup
Reguła zapory sieciowej kontroluje ruch sieciowy; nie uniemożliwia aplikacji nasłuchiwania lokalnego. Jeśli w ogóle nie potrzebujesz tej usługi, jej zatrzymanie lub wyłączenie jest zazwyczaj lepszym rozwiązaniem niż poleganie wyłącznie na regule zapory sieciowej.
Jeśli łączysz się z komputerem przez SSH, zabezpiecz regułę dostępu zdalnego przed włączeniem lub zaostrzeniem zapory sieciowej. Aktualny podręcznik UFW wyraźnie ostrzega, że włączenie UFW może zakłócić istniejące połączenia SSH i zaleca wcześniejsze dodanie wymaganego limitu SSH.
Jeśli wynik jest taki sam Status: inactivei chcesz włączyć UFW, najpierw zezwól na usługę zdalnego zarządzania, z której korzystasz. W przypadku standardowego profilu OpenSSH:
sudo ufw allow OpenSSH
sudo ufw enable
Przed zmianą zasad sprawdź, czy UFW jest aktywny, zwłaszcza na komputerze zarządzanym zdalnie.
2. Dodaj regułę odmowy dla portu
Wpisz 8080port, który chcesz zablokować. Podaj protokół, aby reguła była jednoznaczna:
sudo ufw deny 8080/tcp
W przypadku protokołu UDP użyj:
sudo ufw deny 8080/udp
Jeśli aplikacja używa obu protokołów, dodaj obie reguły. UFW obsługuje również reject; w przeciwieństwie do cichej odmowy, odrzucenie informuje nadawcę, że połączenie zostało odrzucone.
Reguła odmowy UFW blokuje ruch TCP przychodzący do wybranego portu.
3. Zweryfikuj lub usuń regułę UFW
sudo ufw status numbered
Na wyjściu powinien pojawić się wpis DENY IN dla zablokowanego portu. Oficjalna składnia UFW obsługuje również usuwanie reguły poprzez powtórzenie jej za pomocą delete:
sudo ufw delete deny 8080/tcp
Użyj ponumerowanego wyniku stanu, aby potwierdzić, że zamierzona reguła UFW jest aktywna.
Zablokuj port za pomocą firewalld
Jeżeli Twoja instalacja Linuxa korzysta z firewalld, zacznij od znalezienia strefy aktywnej:
Zastąp publicponiższy kod, jeśli Twój interfejs należy do innej strefy. Jeśli port 8080 został jawnie otwarty, usuń ten limit i przeładuj stałą konfigurację:
Za pomocą firewalld wprowadź zmiany w odpowiedniej strefie aktywnej i ponownie załaduj stałe reguły.
Jeśli port jest nadal dozwolony pośrednio przez definicję usługi lub chcesz konkretnie wprowadzić wyraźną blokadę, dodaj rozbudowaną regułę odrzucenia:
Dokumentacja firewalld rich-rule obsługuje dopasowanie portów za pomocą akcji rejectlub . W podręczniku firewall-cmd wyjaśniono również oddzielne konfiguracje środowiska wykonawczego i konfiguracji stałych.drop
Aby później usunąć tę wyraźną blokadę firewalld, usuń tę samą rozbudowaną regułę i załaduj ponownie:
Uruchom sudo ss -lntupponownie, jeśli chcesz sprawdzić, czy aplikacja nadal nasłuchuje. Następnie przetestuj z innego komputera w odpowiedniej sieci. Jeśli Netcat jest zainstalowany, sprawdzenie TCP może wyglądać następująco nc -vz SERVER_IP 8080: Przetestuj z tej samej ścieżki sieciowej, z której korzystają Twoi prawdziwi klienci; test z poziomu hosta lokalnego nie dowodzi, że ruch zewnętrzny jest blokowany.
Jeśli usługa nigdy nie powinna zostać ujawniona, należy ją również wyłączyć lub ponownie skonfigurować. Zapora sieciowa to warstwa kontroli dostępu, a nie substytut usuwania zbędnych odbiorników.