Как проверить открытые порты в Linux

How Check Open Ports Linux



Проверка на наличие открытых портов - один из первых шагов по обеспечению безопасности вашего устройства. Службы прослушивания могут быть входом для злоумышленников, которые могут использовать уязвимости служб для получения доступа или нарушения работы системы. Служба прослушивания или порт прослушивания - это открытый порт с приложением, ожидающим подключения клиента (например, FTP-сервер, ожидающий FTP-клиента). Нет смысла держать веб-сервер в рабочем состоянии, если вы не обслуживаете веб-сайт, или чтобы оставить порт 22 открытым, если вы не используете ssh. В этом руководстве показано, как удаленно и локально проверять открытые порты и как их закрыть.

Команда netstat присутствует во всех компьютерных ОС (операционных системах) для мониторинга сетевых подключений. Следующая команда использует netstat для отображения всех прослушивающих портов, использующих протокол TCP:







netstat -lt



Где:
netstat: вызывает программу.
-The: перечисляет порты прослушивания.
-t: указывает протокол TCP.



Вывод удобен для человека, хорошо упорядочен в столбцах, показывающих протокол, полученные и отправленные пакеты, локальные и удаленные IP-адреса и состояние порта.





Если вы измените протокол TCP на UDP, результат, по крайней мере, в Linux, будет отображать только открытые порты без указания состояния, потому что в отличие от протокола TCP, протокол UDP не имеет состояния .

netstat -лу



Вы можете не указывать протоколы и использовать только опцию -l или –listen, чтобы получить информацию обо всех портах, которые слушают, независимо от протокола:

netstat --Слушать

Опция выше будет отображать информацию для протоколов сокетов TCP, UDP и Unix.

Все приведенные выше примеры показывают, как распечатать информацию о прослушивающих портах без установленных соединений. Следующая команда показывает, как отображать порты прослушивания и установленные соединения:

netstat -воды

Где:
netstat: вызывает программу
-v: многословие
-к: показывает активные соединения.
-t: показывает TCP-соединения
-n: показывает порты в числовом значении

Допустим, вы определили подозрительный процесс в своей системе и хотите проверить связанные с ним порты. Вы можете использовать команду lsof используется для вывода списка открытых файлов, связанных с процессами.

lsof 4 -п <Номер процесса>

В следующем примере я проверим процесс 19327:

lsof 4 -п 19327

Где:
lsof : вызывает программу
-я: перечисляет файлы, взаимодействующие с Интернетом, опция 4 предписывает печатать только IPv4, опция 6 доступен для IPv6.
-к: указывает, что результат должен быть объединен оператором AND.
-п: указывает номер PID процесса, который вы хотите проверить.

Как видите, процесс связан с прослушивающим портом smtp.

Как удаленно проверить наличие открытых портов в Linux


Если вы хотите обнаружить порты в удаленной системе, наиболее широко используемым инструментом является Nmap (Network Mapper). В следующем примере показано сканирование одного порта на Linuxhint.com:

nmaplinuxhint.com

Вывод упорядочен в 3 столбца, показывающих порт, состояние порта и службу, прослушивающую порт.

Не показано:988закрытые порты
ПОРТОВАЯ ГОСУДАРСТВЕННАЯ СЛУЖБА
22/tcp openssh
25/tcp открыть smtp
80/tcp открыть http
161/tcp отфильтрованный snmp
443/tcp открыть https
1666 г./TCP-фильтр netview-aix-6
1723 г./tcp отфильтрованный pptp
6666/tcp отфильтрованный irc
6667/tcp отфильтрованный irc
6668/tcp отфильтрованный irc
6669/tcp отфильтрованный irc
9100/tcp отфильтрованный jetdirect

По умолчанию Nmap сканирует только 1000 наиболее распространенных портов. Если вы хотите, чтобы Nmap сканировал все порты, запустите:

nmap -п-linuxhint.com

На Статьи по Теме В разделе этого руководства вы можете найти дополнительные руководства по Nmap для сканирования портов и целей с множеством дополнительных опций.

Удаление служб на Debian 10 buster

В дополнение к правилам брандмауэра для блокировки портов рекомендуется удалить ненужные службы. В Debian 10 Buster это можно сделать с помощью apt.
В следующем примере показано, как удалить службу Apache 2 с помощью apt:

удачно удалить apache2

Если требуется, нажмите А ТАКЖЕ чтобы закончить удаление.

Как закрыть открытые порты в Linux с помощью UFW

Если вы обнаружите открытые порты, вам не нужно их открывать, самое простое решение - закрыть их с помощью UFW (несложный брандмауэр).
Есть два способа заблокировать порт, используя опцию Отрицать и с возможностью отклонять , разница в том, что инструкция отклонения сообщит второй стороне, что соединение было отклонено.

Чтобы заблокировать порт 22 с помощью правила Отрицать просто беги:

ufw отрицать22

Чтобы заблокировать порт 22 с помощью правила отклонять просто беги:

ufw отклонить22

На Статьи по Теме в конце этого руководства вы можете найти хорошее руководство по несложному брандмауэру.

Как закрыть открытые порты в Linux с помощью iptables

Хотя UFW - это самый простой способ управления портами, это интерфейс для Iptables.
В следующем примере показано, как отклонить подключения к порту 22 с помощью iptables:

iptablesВХОД-пTCP--dport 22 -jОТКЛОНЯТЬ

Приведенное выше правило предписывает отклонить все входящие (INPUT) TCP-соединения с портом назначения (dport) 22. При отклонении источник будет проинформирован о том, что соединение было отклонено.

Следующее правило просто отбрасывает все пакеты, не сообщая источнику, что соединение было отклонено:

iptablesВХОД-пTCP--dport 22 -jУРОНИТЬ

Надеюсь, вы нашли это краткое руководство полезным. Следите за LinuxHint для получения дополнительных обновлений и советов по Linux и сети.

Статьи по Теме:

  • Работа с UFW (несложный брандмауэр)
  • Учебное пособие по основам NMAP
  • Как вывести список открытых портов в Firewalld
  • Сетевое сканирование Nmap
  • Установка и использование Zenmap (Nmap GUI) в Ubuntu и Debian
  • Nmap: сканировать диапазоны IP-адресов
  • Использование скриптов nmap: захват баннера Nmap
  • 30 примеров Nmap