- Как удаленно проверить открытые порты в Linux с помощью Nmap
- Как проверить наличие открытых портов в Linux локально
- Удаление служб в Debian 10 Buster
- Как закрыть открытые порты в Linux с помощью UFW
- Как закрыть открытые порты в Linux с помощью iptables
- Статьи по Теме
Как проверить наличие открытых портов в 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.ком:
Вывод упорядочен в 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:
Если требуется, нажмите Y чтобы закончить удаление.
Как закрыть открытые порты в Linux с помощью UFW
Если вы обнаружите открытые порты, вам не нужно их открывать, самое простое решение - закрыть их с помощью UFW (несложный брандмауэр)
Есть два способа заблокировать порт, используя опцию отказываться от и с возможностью отклонять, разница в том, что инструкция отклонения сообщит второй стороне, что соединение было отклонено.
Чтобы заблокировать порт 22 с помощью правила отказываться от просто беги:
Чтобы заблокировать порт 22 с помощью правила отклонять просто беги:
ufw отклонить 22
На Статьи по Теме в конце этого руководства вы можете найти хороший учебник по несложному брандмауэру.
Как закрыть открытые порты в Linux с помощью iptables
Хотя UFW - это самый простой способ управления портами, это интерфейс для Iptables.
В следующем примере показано, как отклонить подключения к порту 22 с помощью iptables:
Приведенное выше правило предписывает отклонить все входящие (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