Проверка на отворени и слушащи портове в Linux с помощта на Netstat и SS
Проверка на отворени и слушащи портове в Linux с netstat и ss
Мониторингът на отворени и слушащи портове в Linux система е съществена практика за поддържане на системна сигурност, извършване на мрежова диагностика и ефективно управление на вашата сървърна инфраструктура. Чрез редовна проверка на това кои портове са отворени и кои услуги ги използват, можете да идентифицирате потенциални рискове за сигурността, да откриете опити за неразрешен достъп и да се уверите, че вашата система не е изложена на ненужни уязвимости.
Разбирането на това кои услуги са свързани с конкретни портове също помага за откриване на неправилни конфигурации или неочаквано поведение, като например неизвестни процеси, които слушат на чувствителни портове. Тази информация значително намалява риска от пробив в сигурността, като ви позволява да затворите неизползвани портове или да осигурите активните.
В тази статия ще обясним как да използвате командите netstat и ss за проверка на отворени и слушащи портове в Linux система.
Разбиране на портовете и техните типове
Преди да използвате инструментите, е важно да разберете основните типове портове, с които можете да се сблъскате:
- Отворени портове: Портове, на които приложенията активно слушат за входящи връзки.
- Слушащи портове: Портове, свързани с услуга или приложение, което чака мрежов трафик.
- Общи протоколи:
- TCP: Протокол за управление на предаванията, ориентиран към връзка и надежден.
- UDP: Протокол за потребителски датаграми, без връзка, по-бърз, но по-малко надежден.
Проверка на портовете с netstat
Какво е netstat?
netstat е класически инструмент за команден ред, който предоставя мрежова статистика и информация за мрежовите връзки, включително отворени и слушащи портове. Въпреки че е остарял в полза на по-нови инструменти като ss, все още се използва широко на много системи.
Инсталиране на netstat
Командата netstat е част от пакета net-tools. На съвременни Linux дистрибуции, може да се наложи да бъде инсталирана ръчно.
Debian / Ubuntu
sudo apt install net-toolsCentOS / RHEL
sudo yum install net-toolsИзползване на netstat за проверка на отворени и слушащи портове
За да покажете всички слушащи TCP и UDP портове на вашата система, изпълнете:
sudo netstat -tuln- -t: Показване на TCP портове
- -u: Показване на UDP портове
- -l: Показване само на слушащи портове
- -n: Показване на числови адреси вместо разрешаване на имена на хостове
Разбиране на изхода
- Локален адрес: IP адресът и портът, на който услугата слуша.
- Чужд адрес: Отдалеченият IP и порт за активни връзки.
- Състояние: Състоянието на връзката, напримерза отворени портове.
LISTEN
Филтриране на специфични портове или услуги с netstat
Можете да филтрирате изхода, за да се фокусирате върху конкретен порт или услуга. Например, за да проверите услугите, които слушат на порт 80 (HTTP):
sudo netstat -tuln | grep ":80"Тази команда показва всички услуги, които слушат на порт 80.
Проверка на портовете с ss
Какво е ss?
ss е съвременен инструмент, който е заменил netstat на много Linux дистрибуции. Той е по-бърз и по-ефективен, особено на системи с голям брой мрежови връзки. Командата ss може да показва отворени портове, статистики на сокети и подробна мрежова информация.
Използване на ss за проверка на отворени и слушащи портове
Синтаксисът на ss е подобен на netstat. За да изброите всички слушащи TCP и UDP портове, изпълнете:
ss -tuln- -t: Показване на TCP сокети
- -u: Показване на UDP сокети
- -l: Показване на слушащи сокети
- -n: Показване на числови адреси
Изходът предоставя ясна представа за всички слушащи портове и техните състояния.
Разширено използване на ss
Командата ss предлага разширени опции за филтриране за по-подробен анализ.
Показване само на слушащи TCP портове
ss -tlПоказване само на слушащи UDP портове
ss -ulПоказване на слушащи портове с асоциирани идентификатори на процеси
За да идентифицирате кой процес използва конкретен порт, изпълнете:
ss -tulnpОпцията -p показва името на процеса и PID, свързани с всеки слушащ порт, което е полезно за диагностика.
Сравняване на netstat и ss
И двата инструмента служат за подобни цели, но има важни разлики:
- Производителност: ss е по-бърз и по-ефективен от netstat, особено на натоварени системи.
- Наличност: ss е включен по подразбиране в повечето съвременни Linux дистрибуции, докато netstat може да изисква ръчна инсталация.
- Опции за филтриране: ss предоставя по-напреднали възможности за филтриране и показване.
Кога да използвате netstat
- На по-стари Linux системи.
- Ако вече сте запознати с синтаксиса на netstat.
Кога да използвате ss
- Когато е необходима по-добра производителност.
- За разширен анализ на мрежата и филтриране.
Други инструменти за проверка на отворени портове
В допълнение към netstat и ss, могат да се използват и други инструменти за проверка на отворени и слушащи портове.
Използване на lsof
lsof изброява отворените файлове, включително мрежови сокети. За да проверите кой процес използва порт 80:
sudo lsof -i :80Тази команда показва процесите, свързани с порт 80.
Използване на nmap
nmap е инструмент за сканиране на мрежата, който може да се използва за откриване на отворени портове на система:
sudo nmap -sT localhostТова сканира TCP портовете на локалната машина.
Заключение
Мониторингът на отворени и слушащи портове е критична задача за администраторите на Linux системи. Инструменти като netstat и ss улесняват идентифицирането на активни услуги, диагностицирането на мрежови проблеми и повишаването на сигурността на сървъра.
Докато netstat все още е полезен на по-стари системи, ss е предпочитаният избор за съвременни Linux среди поради своята скорост и ефективност. Независимо дали осигурявате Linux сървър или диагностицирате мрежово поведение, тези инструменти предоставят необходимата видимост за ефективно управление на отворените портове.
