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 -tulnpTutaj,
-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 LISTEN2. Używanie ss (Zalecane)
ss jest szybszą i bardziej nowoczesną alternatywą dla netstat.
sudo ss -tulnpTo 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/tcpOdmów dostępu do określonych portów:
sudo ufw deny 23/tcp
Włącz zaporę sieciową:
sudo ufw enableAby 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 --reloadZablokuj port:
sudo firewall-cmd --remove-port=23/tcp --permanent
sudo firewall-cmd --reloadUżywając iptables
Zezwól na SSH z określonego adresu IP:
sudo iptables -A INPUT -p tcp --dport 22 -s <ALLOWED-IP> -j ACCEPTZablokuj cały ruch przychodzący oprócz SSH:
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTZapisz reguły zapory:
sudo iptables-save > /etc/iptables.rules3. 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: