Безопасность

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

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

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

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

netstat -lt

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

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

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

netstat -lu

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

netstat --listen

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

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

netstat -vatn

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

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

lsof -i 4 -a -p

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

lsof -i 4 -a -p 19327

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

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

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


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

nmap linuxhint.ком

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

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

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

nmap -p- linuxhint.ком

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

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

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

удачный удалить apache2

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

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

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

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

ufw отрицать 22

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

ufw отклонить 22

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

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

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

iptables -I INPUT -p tcp --dport 22 -j REJECT

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

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

iptables -A INPUT -p tcp --dport 22 -j DROP

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

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

  • Работа с UFW (несложный брандмауэр)
  • Учебное пособие по основам NMAP
  • Как вывести список открытых портов в Firewalld
  • Сетевое сканирование Nmap
  • Установка и использование Zenmap (Nmap GUI) в Ubuntu и Debian
  • Nmap: сканировать диапазоны IP-адресов
  • Использование скриптов nmap: захват баннера Nmap
  • 30 примеров Nmap
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...
Обзор беспроводной мыши Microsoft Sculpt Touch
Я недавно прочитал о Microsoft Sculpt Touch беспроводная мышь и решил ее купить. Побывав некоторое время, я решил поделиться своим опытом с ним. Эта б...

Свежие статьи об операционных системах. Множество интересных гайдов и полезных советов. Почувствуйте себя своим в мире современных технологий