Проверка на отворени и слушащи портове в Linux с помощта на netstat и ss
Наблюдението на отворените и слушащите портове в системата Linux е от съществено значение за сигурността, отстраняването на проблеми в мрежата и системната администрация. Знанието за това кои портове се използват и от кои услуги може да помогне за откриване на потенциални уязвимости или неоторизиран достъп. Два често използвани за тази цел инструмента са netstat и ss.
В тази статия ще разгледаме как да използваме командите netstat и ss за проверка на отворените и слушащите портове в Linux система.
1. Разбиране на портовете и техните типове
Преди да се потопим в инструментите, е важно да разберем основните типове портове, които може да срещнете:
- Отворени портове: Това са портове, на които приложенията активно слушат за връзки.
- Слушащи портове: Това са портове, към които дадена услуга или приложение се е свързало и активно очаква входящ мрежов трафик.
- Общи протоколи:
- TCP: Протокол за контрол на предаването (надежден, базиран на връзки).
- UDP: Протокол за потребителски данни (без връзка, по-малко надежден, но по-бърз).
2. Проверка на портове с netstat
Какво представлява netstat?
netstat е класически инструмент за команден ред, който предоставя мрежова статистика и информация за мрежовите връзки, включително отворени и слушащи портове. Въпреки че е изоставен в полза на по-нови инструменти като ss, той все още се използва широко.
Инсталиране на netstat
netstat е част от пакета net-tools. В съвременните дистрибуции на Linux може да се наложи да го инсталирате ръчно:
- Debian/Ubuntu:
- CentOS/RHEL:
Използване на netstat за проверка на отворени и слушащи портове
За да проверите всички слушащи портове на вашата система, включително TCP и UDP, използвайте следната команда:
- –t: Покажете TCP портовете.
- –u: Показва UDP портове.
- –l: Показва само портове за слушане.
- –n: Показване на цифрови адреси вместо разрешаване на имена на хостове и услуги.
Примерен изход:
- Локален адрес: IP адресът и портът, на който услугата слуша.
- Чужд адрес: IP адресът и портът на отдалечения клиент (за активни връзки).
- Състояние: Състоянието на връзката (напр. LISTEN за отворени портове).
Филтриране на определени портове или услуги с netstat
Можете да филтрирате изхода, за да се фокусирате върху конкретни портове или услуги. Например, за да проверите портове, свързани с HTTP (порт 80):
Това ще покаже всички услуги, които слушат на порт 80.
3. Проверка на портове с ss
Какво е ss?
ss е модерна програма, която замени netstat в много дистрибуции на Linux. Тя е по-бърза и по-ефективна от netstat, особено при работа с голям брой връзки. ss може да показва отворени портове, информация за мрежови гнезда и др.
Използване на ss за проверка на отворени и слушащи портове
Синтаксисът на ss е доста подобен на този на netstat. За да проверите всички слушащи TCP и UDP портове, използвайте:
- –t: Показва TCP сокети.
- –u: Показва UDP сокети.
- –l: Показва само слушащи сокети.
- –n: Показване на цифрови адреси (не разрешават имена на хостове).
Примерен изход:
Този изход показва всички слушащи портове и техните състояния (подобно на netstat).
Разширена употреба на ss
ss предоставя по-разширени опции за филтриране и показване на връзки въз основа на различни критерии.
Показване само на слушащи TCP портове:
Показване само на UDP портове за слушане:
Показване на портове за слушане по идентификатор на процеса (PID):
За да видите кой процес е свързан с даден слушащ порт, използвайте:
Опцията p показва процеса, който използва порта, което е полезно за отстраняване на неизправности.
4. Сравняване на netstat и ss
И netstat, и ss служат за подобни цели, но има разлики, които си струва да се отбележат:
- Бързина и ефективност: ss е по-бърз от netstat и консумира по-малко ресурси. Той може да обработва по-ефективно голям брой връзки.
- Наличност: ss е включен по подразбиране в повечето съвременни дистрибуции на Linux, докато за netstat е необходимо инсталиране на пакета net-tools в някои системи.
- Формат на изхода: И двете предоставят подробна информация за портовете и връзките, но ss има повече опции за филтриране и показване на специфична информация.
Кога да използвате netstat:
- Когато работите с по-стари Linux системи.
- Когато сте запознати със синтаксиса на netstat и не искате да превключвате.
Кога да използвате ss:
- Когато се нуждаете от по-добра производителност, особено в системи с голям брой връзки.
- За по-усъвършенствано филтриране и мрежов анализ.
5. Други инструменти за проверка на отворени портове
Освен netstat и ss има и други инструменти, които можете да използвате за проверка на отворените и слушащите портове в Linux:
lsof изброява отворени файлове, които могат да включват мрежови сокети. Можете да го използвате, за да проверите кой процес слуша на определен порт
Това показва процесите, използващи порт 80.
nmap е инструмент за сканиране на мрежи, който може да се използва за проверка на отворени портове в системата.
Тази команда сканира TCP портовете на локалния хост.
Заключение
Наблюдението на отворените и слушащите портове е важна задача за системните администратори, а инструменти като netstat и ss улесняват това. Въпреки че netstat все още се използва в по-старите системи, ss се превърна в предпочитан инструмент поради своята бързина и ефективност. Независимо дали отстранявате проблеми в мрежата или защитавате вашия Linux сървър, тези инструменти ще ви помогнат да следите активните услуги и да гарантирате, че портовете ви се управляват правилно.
Използвайте netstat, ако сте по-запознати с него, или преминете към ss за по-бързо и по-ефективно наблюдение на отворените и слушащите портове на вашата система.
Уведомете ме, ако имате нужда от допълнителни разяснения или помощ!