Weryfikacja nasłuchiwanych portów w systemach linux

Sieć Internet to od dawna nie jest bezpieczne miejsce, warto zobaczyć dla kogo zostawiamy otwarte drzwi i do czego one prowadzą. Takim odpowiednikiem drzwi jest w sieciach komputerowych są porty.

Gdy będziemy wiedzieli z jakich aplikacji korzystamy, będziemy wtedy wiedzieli co dodać do własnych regułek firewalla iptables lub whitelisty UDP:

Jak to zrobić?

W większości systemów wystarczy polecenie:

Jak to czytać?

Na początku wydaje się to włoskim daniem makaronowym ale wystarczy przyjrzeć się bliżej że wynik tego polecenia to kopalnia wiedzy

Po tym wyniku możemy stwierdzić że na tym systemie działa baza MySQL i MongoDB.

Tu mamy MySQL:

MySQL używa domyślnie portu 3306 i jest to dość znana od wielu lat aplikacja dlatego aplikacja od razu zamiast tego numeru portu mówi nam że jest to port używany przez MySQL

A tu MongoDB:

Mongo jest mniej znane i znacznie młodsze, tu zostaje nam wyświetlony port 27017.

Możemy też użyć netstat -ln, wtedy uzyskamy listę wszystkich portów bez wykrywania od czego jest co.

Obie aplikacje mają localhost: przed portem więc nasłuchują tylko lokalnie, czyli nie można dostać się do nich z zewnątrz z sieci. Jest to bezpieczne rozwiązanie gdyż lepiej nie dawać dostępu obcym do naszej bazy nawet jeśli jest zabezpieczona hasłem.
Przykładowo jeśli zezwolimy na dostęp z zewnątrz, może okazać się kiedyś w przyszłości że jest luka która umożliwia zalogowanie się bez hasła a my zapomnimy o aktualizacji i problem gotowy.

Tu możemy zobaczyć nasłuchujący serwer SSH na standardowym porcie:

Jest wystawiony na zewnątrz ale SSH to sprawdzona aplikacja i jakoś musimy się też dostać do serwera więc nie ma co się za bardzo obawiać o ile mamy długie i losowo wygenerowane hasło lub logujemy się parą kluczy (publicznego i prywatnego).

Na dole mamy jeszcze ciekawostkę:

Jest to port ale nie do końca. Jest to socket (wtyczka) która umożliwia łączenie się aplikacji nie poprzez standardowy adres sieciowy lecz plik. Niektóre aplikacje obsługują łączenie się przez UNIXowe sockety i tu właśnie mamy tego przykład. Te pliki nie są w żaden sposób wystawione na świat, są dobrym rozwiązaniem aby połączyć ze sobą usługi na jednym serwerze z różnymi użytkownikami gdyż można zmieniać uprawnienia użytkowników do tego zasobu jak każdemu innemu plikowi na dysku.

To nie działa!

Jeśli nie mamy takiego polecenia w systemie jak netstat, należy doinstalować paczkę net-tools.
W przypadku Debiana i pochodnych np. Ubuntu wystarczy wykonać te komendy aby ją zainstalować:

Dla CentOS i innych pochodnych RHEL wystarczy:

Jak przydatny był ten wpis?

Kliknij gwiazdkę, abygo ocenić!

Średnia ocena / 5. Liczba głosów:

Jak dotąd brak głosów! Oceń ten wpis jako pierwszy.