Linux: открытые порты
Как узнать открытые порты в Linux?
Linux предоставляет возможности для управления открытыми портами, что может быть полезным при настройке сетевых сервисов или обеспечении безопасности системы. Здесь я приведу развернутый ответ на вопрос о том, как узнать открытые порты в Linux, а также предоставлю примеры кода.
В Linux существует несколько способов узнать, какие порты открыты на вашей системе. Один из наиболее распространенных инструментов для этого - это утилита nmap (Network Mapper), которую вы можете установить из официальных репозиториев вашего дистрибутива. Nmap предлагает безопасный и гибкий способ сканирования портов.
Для начала, давайте установим nmap. В Ubuntu или других дистрибутивах, основанных на Debian, мы можем воспользоваться следующей командой:
sudo apt install nmap
Когда nmap установлен, мы можем запустить команду для сканирования портов. Для этого нам понадобится знать IP-адрес целевой машины. Предположим, что IP-адрес машины, которую мы хотим проверить, это 192.168.1.1. Выполним следующую команду:
nmap 192.168.1.1
Это выполнит сканирование всех портов на указанном IP-адресе и выдаст подробный отчет. В отчете вы найдете информацию о том, какие порты открыты, закрыты или фильтрованы. Пример отчета может выглядеть следующим образом:
Starting Nmap 7.80 ( https://nmap.org ) at 2021-09-01 12:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.001s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
В данном примере мы видим, что на машине с IP-адресом 192.168.1.1 открыты порты 22 (ssh), 80 (http) и 443 (https). Остальные порты считаются закрытыми.
Кроме использования утилиты nmap, в Linux также доступен более низкоуровневый способ проверки открытых портов. Для этого мы можем использовать утилиту netstat, которая предоставляет информацию о сетевых соединениях и слушающих портах на локальной машине.
Пример кода на Bash, который использует netstat для вывода открытых портов на локальной машине:
netstat -tuln | grep LISTEN
Эта команда выдаст список открытых портов, на которых слушаются соединения. Пример вывода может быть следующим:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
В данном примере видно, что порты 22 (ssh), 5432 (PostgreSQL) и 80 (http) открыты и слушаются на локальной машине.
В заключение, в Linux существует несколько способов узнать открытые порты. Утилита nmap предлагает удобный и подробный способ сканирования портов на указанном IP-адресе. А при использовании утилиты netstat можно получить информацию о слушающих портах на локальной машине.