Wyszukiwanie w witrynie

Jak sprawdzić i zabezpieczyć otwarte porty w systemie Linux


Zrozumienie otwartych portów jest ważne dla zarządzania aplikacjami i zabezpieczania systemu. Otwarte porty mogą umożliwiać komunikację między usługami, ale mogą też narażać system na zagrożenia. W tym przewodniku wyjaśnimy, jak sprawdzać otwarte porty i zabezpieczać je w systemie Linux, korzystając z reguł zapory ogniowej i najlepszych praktyk.

Powiązana lektura: Powszechne numery portów w sieciach komputerowych

Jak sprawdzić otwarte porty w systemie Linux

Istnieje kilka sposobów, aby sprawdzić, które porty są otwarte i nasłuchują w twoim systemie.

1. Używanie netstat

netstat może wyświetlać aktywne porty i powiązane z nimi usługi.

sudo netstat -tulnp

Tutaj,

  • -t: Pokaż porty TCP.
  • -u: Pokaż porty UDP.
  • -l: Pokaż porty nasłuchujące.
  • -n: Pokaż numeryczne adresy zamiast rozwiązywać nazwy hostów.
  • -p: Pokaż identyfikatory procesów i nazwy.

Przykładowy wynik:

tcp6       0      0 :::8006                 :::*                    LISTEN      1826/pveproxy       
tcp6       0      0 :::8080                 :::*                    LISTEN      4744/syncthing      
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1022/cupsd  
[...]

Regularnie sprawdzaj nieoczekiwanie otwarte porty, aby wykryć nieautoryzowany dostęp:

sudo netstat -tulnp | grep LISTEN

2. Używanie ss (Zalecane)

ss jest szybszą i bardziej nowoczesną alternatywą dla netstat.

sudo ss -tulnp

To polecenie zapewnia podobny wynik, ale z lepszą wydajnością.

3. Używanie lsof

lsof wyświetla otwarte pliki, w tym gniazda sieciowe.

lsof -i -P -n
  • -i: Pokaż połączenia sieciowe.
  • -P: Nie tłumacz numerów portów na nazwy.
  • -n: Nie przekształcaj adresów IP na nazwy hostów.

4. Użycie nmap (Do Zdalnego Skanowania)

Aby sprawdzić otwarte porty na zdalnym systemie:

nmap -p- <IP-ADDRESS>
  • -p-: Skanuj wszystkie 65535 portów.

Jak zabezpieczyć otwarte porty w systemie Linux

1. Zamknij niepotrzebne porty

Jeśli usługa nie jest potrzebna, wyłącz ją.

sudo systemctl stop <service>
sudo systemctl disable <service>

2. Użyj zapory sieciowej

Zapora sieciowa kontroluje ruch, blokując lub zezwalając na porty.

Używanie ufw (dla Ubuntu/Debian)

Zezwól na określone porty:

sudo ufw allow 22/tcp

Odmów dostępu do określonych portów:

sudo ufw deny 23/tcp

Włącz zaporę sieciową:

sudo ufw enable

Aby uzyskać bardziej szczegółowy poradnik, sprawdź następujący link:

  • Jak Skonfigurować Zaporę Sieciową Za Pomocą UFW Na Linuxie

Używanie firewalld (dla systemów opartych na RHEL)

Zezwól na port:

sudo firewall-cmd --add-port=22/tcp --permanent
sudo firewall-cmd --reload

Zablokuj port:

sudo firewall-cmd --remove-port=23/tcp --permanent
sudo firewall-cmd --reload

Używając iptables

Zezwól na SSH z określonego adresu IP:

sudo iptables -A INPUT -p tcp --dport 22 -s <ALLOWED-IP> -j ACCEPT

Zablokuj cały ruch przychodzący oprócz SSH:

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Zapisz reguły zapory:

sudo iptables-save > /etc/iptables.rules

3. Wdrożenie Port Knocking

Port knocking dodaje dodatkową warstwę bezpieczeństwa, wymagając sekwencji prób połączeń przed otwarciem portu.

Omówimy ten temat w osobnym artykule wkrótce.

Wniosek

Sprawdzanie i zabezpieczanie otwartych portów jest podstawową praktyką w administracji systemami Linux i DevOps. Regularne monitorowanie oraz odpowiednia konfiguracja zapory sieciowej pomogą chronić system przed zagrożeniami.

Zalecana lektura:

  • Jak poprawić bezpieczeństwo systemów Linux za pomocą Firejail
  • Jak zapobiegać atakom brute force SSH przy użyciu fail2ban w Linuksie
  • Jak Ograniczyć Dostęp Do Serwerów Linux Za pomocą TCP Wrappers
  • Automatyczna instalacja aktualizacji i poprawek bezpieczeństwa w Ubuntu