Poznaj swoją sieć od podszewki, regularnie sprawdzając otwarte porty za pomocą tych poleceń systemu Linux.

Otwarte porty sieciowe to najłatwiejsze punkty wejścia do Twojej sieci. Czasami na portach widocznych z zewnątrz w Internecie mogą działać niechciane usługi. Jeśli te usługi są podatne na ataki, Twoja sieć byłaby stale zagrożona atakiem, ponieważ każdego dnia cały Internet jest masowo skanowany w poszukiwaniu wrażliwych usług na otwartych portach.

Dowiedz się, jak skanować i wyświetlać otwarte porty w systemach Linux, aby chronić swoją sieć przed zagrożeniami.

Co to są porty sieciowe?

Porty sieciowe to logiczne punkty dostępu do systemu, które można wykorzystać jako kanał do hostowania wielu usług. Port jest reprezentowany przez 16-bitową liczbę całkowitą, więc najwyższy numer portu to 65535.

Możesz myśleć o portach, takich jak okna i drzwi domu - w zasadzie wszystkie różne punkty wejścia do domu lub komputera. Istnieją trzy rodzaje portów: porty systemowe (1-1023), porty zarejestrowane (1024-49151) oraz porty efemeryczne lub dynamiczne (49152-65535).

instagram viewer

Po uruchomieniu aplikacji wymagającej połączenia z Internetem używa ona portów dynamicznych do przesyłania i odbierania danych przez sieć. Jednak po uruchomieniu serwera WWW lub serwera SSH zwykle wiąże się on z portami systemowymi lub zarejestrowanymi portami.

W przypadku serwerów WWW obsługujących protokół HTTP domyślny port systemowy to 80, a w przypadku protokołu SSH — 22. Te przepisy, takie jak zakresy portów, są opracowywane przez Internet Assigned Numbers Authority (IANA). Możesz przejść przez RFC dotyczące portów aby uzyskać pełną listę wszystkich portów i ich funkcji.

Ważne jest, aby znać tzw najczęściej narażone porty aby upewnić się, że są zamknięte lub chronione.

1. Sprawdź otwarte porty za pomocą netstat

netstat to popularne narzędzie, za pomocą którego można przeglądać statystyki sieciowe systemu Linux. Jest częścią pakietu net-tools.

Pakiet net-tools jest obecnie amortyzowany z powodu braku odpowiedniej konserwacji ze strony dewelopera. Jest to również powód, dla którego możesz się spotkać błąd „ifconfig: nie znaleziono polecenia”. podczas uruchamiania popularnego polecenia ifconfig w systemie Linux.

Tak więc w nowoczesnych systemach być może będziesz musiał najpierw zainstalować pakiet net-tools, a następnie będziesz mógł uruchomić polecenie netstat. Oto jak sprawdzić otwarte porty za pomocą netstat:

netstat -tuln

Wyjaśnienie polecenia:

  • -T pokazuje porty TCP.
  • -u pokazuje porty UDP.
  • -l pokazuje porty nasłuchujące. Zastąp to A jeśli chcesz zobaczyć wszystkie porty, niezależnie od ich stanu.
  • -N pokazuje wartość numeryczną portów zamiast nazw usług. Na przykład pokaż port 22 zamiast SSH, czyli usługę działającą na porcie.

2. Sprawdź otwarte porty za pomocą ss

ss to nowoczesny odpowiednik narzędzia netstat. Znajdziesz to preinstalowane we wszystkich nowoczesnych dystrybucjach Linuksa. Składnia sprawdzania otwartych portów za pomocą ss jest identyczna jak w przypadku netstat.

Oto jak sprawdzić otwarte porty za pomocą ss:

ss-tuln

Wyjaśnienie polecenia:

  • -T pokazuje porty TCP.
  • -u pokazuje porty UDP.
  • -l pokazuje porty nasłuchujące. Zastąp to A jeśli chcesz zobaczyć wszystkie porty, niezależnie od ich stanu.
  • -N pokazuje wartość numeryczną portów zamiast nazw usług. Na przykład pokaż port 21 zamiast FTP, czyli usługę działającą na porcie.

3. Sprawdź otwarte porty za pomocą Nmap

Nmap to jedno z najpopularniejszych narzędzi w cyberbezpieczeństwie i sieciach. To podstawowa nazwa, jeśli chodzi o testy penetracyjne bezpieczeństwa sieci. Jego głównym przypadkiem użycia jest skanowanie portów, więc nie tylko uzyskasz informacje o portach otwartych w twoim systemie, ale także o tym, czy są one podatne na ataki i czy można je wykorzystać.

Co więcej, jeśli chcesz sprawdzić otwarte porty w systemie zdalnym z skonfigurowanym IDS/IPS i zaporami ogniowymi, nie martw się, ponieważ Nmap może również ominąć zapory ogniowe i IDS/IPS za pomocą odpowiednich przełączników.

Sprawdź to obszerny przewodnik po Nmap dla początkujących aby poznać różnorodne funkcje Nmap i dowiedzieć się, jak z nich korzystać. Chociaż możesz, nie zaleca się prób omijania zapór ogniowych, ponieważ nie jest to całkowicie niezawodne, więc najlepiej jest połączyć się przez SSH ze zdalnym serwerem, a następnie uruchomić na nim lokalnie Nmap.

Oto polecenie sprawdzania otwartych portów za pomocą Nmap:

nmap -sTU -sV  -T 5 --min-rate 9000 --min-parallelism 9000 --initial-rtt-timeout 50ms --max-rtt-timeout 3000ms --max-retries 50 -Pn --disable-arp-ping -n -- script vuln, exploit, auth -v -oX 

Wyjaśnienie polecenia:

  • -sTU ustawia typ skanowania na TCP Connect i UDP scan.
  • -T 5 ustawia szablon taktowania na agresywny dla błyskawicznego skanowania (niezalecane w niechronionym systemie, ponieważ może to spowodować atak DoS).
  • -sV włącza skanowanie usług.
  • --min-stawka 9000 każe Nmapowi wysyłać 9000 pakietów na sekundę.
  • --initial-rtt-timeout 50ms mówi Nmapowi, aby początkowo czekał 50 ms na odpowiedź na każdy wysłany pakiet SYN.
  • --max-rtt-limit czasu 3000ms każe Nmapowi czekać maksymalnie 3000 ms na odpowiedź.
  • --min-równoległość 9000 ustawia minimalną liczbę jednoczesnych uruchomień skryptu na 9000.
  • --max-ponowne próby 50 mówi Nmapowi, aby ponowił próbę 50 razy, aby połączyć się z portem.
  • -Pn wyłącza sondowanie ping.
  • --disable-arp-ping wyłącza sondowanie ARP.
  • -N wyłącza rozpoznawanie DNS.
  • --script vuln, exploit, auth uruchamia trzy skrypty do testowania różnych typów luk w wykrytych portach.
  • -w zwraca szczegółowe dane wyjściowe.
  • -wół zapisuje wyniki do pliku XML.
  • -6 Opcjonalny parametr do skanowania adresów IPv6.

4. Sprawdź otwarte porty za pomocą lsof

Polecenie lsof w systemie Linux służy do wyświetlania listy otwartych plików. Jeśli jednak dodasz do niego kilka przełączników, będziesz mógł zobaczyć otwarte połączenia internetowe i porty na komputerze lokalnym. Oto jak sprawdzić otwarte porty za pomocą lsof:

lsof -i -n

Wyjaśnienie polecenia:

  • -I zawiera listę wszystkich plików sieciowych i internetowych.
  • -N nie rozwiązuje nazw hostów.

5. Sprawdź otwarte porty za pomocą netcat

netcat to narzędzie wiersza poleceń, które umożliwia odczyt i zapis z i do połączeń TCP/UDP. Zauważ, że to tylko jedna z funkcji netcat. Możesz sprawdzić jego stronę podręcznika za pomocą kot sieciowy polecenie, aby poznać wszystkie jego funkcje i dowiedzieć się, jak z nich korzystać.

Oto jak możesz użyć netcat do skanowania otwartych portów:

nc -zv  | grep -v "odmówiono"

Wyjaśnienie polecenia:

  • -z ustawia netcata w tryb skanera.
  • -w zwraca szczegółowe dane wyjściowe.
  • grep -v "odmówiono" zwraca linie wyjściowe bez słowa „odmowa”. Ma to na celu zapobieżenie zablokowaniu terminala komunikatami „odmowa połączenia”, gdy netcat nie otrzymuje danych wyjściowych z portu.
  • 2>&1: Jest to opcjonalny przełącznik, którego włączenie może być konieczne, aby grep działał podczas uruchamiania netcat w trybie pełnym. netcat zwraca wyjście do stderr (oznaczone przez 2). Aby więc grepować dane wyjściowe, musiałbyś przekierować stderr na stdout (oznaczone przez 1), a następnie przesłać je do grep.

Im głębiej znasz swoją sieć, tym lepiej możesz jej bronić

Wiedza o tym, które porty są otwarte i jakie usługi są uruchomione w twoim systemie, to świetny krok do obrony go przed potencjalnymi atakami zewnętrznymi. Pozwala to wyszukiwać i zamykać niepotrzebne usługi, znajdować nieaktualne usługi, a także wykryć, czy na twoim komputerze działają złośliwe pliki, takie jak backdoory typu bind lub reverse shell system.

Jeśli poważnie myślisz o bezpieczeństwie sieci, powinieneś rozważyć zainstalowanie i skonfigurowanie rozwiązania IDS do monitorowania całej aktywności w sieci i egzekwowania zestawów reguł, aby zapobiegać niechcianym połączeniom.