Назад к вопросам
Middle
73
questionbank

Как можно посмотреть открытые порты и определить, с каких IP-адресов можно обращаться к ним, не используя команду netstat?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Можно использовать утилиту ss (socket statistics) или lsof (list open files).

Сравнение netstat и ss:

Особенность netstat ss
Скорость Медленнее при большом трафике Быстрее, напрямую работает с Netlink
Информация об inodes Нет Есть
Поддержка протоколов Ограниченная Широкая

Пример использования ss:

# Показать все слушающие сокеты TCP
ss -tuln

Для определения IP-адресов, с которых можно обращаться к портам, нужно смотреть правила файрвола. Чаще всего используется iptables или firewalld.

Пример просмотра правил iptables для INPUT цепочки:

# Показать все правила в цепочке INPUT с нумерацией строк
sudo iptables -L INPUT -n --line-numbers

В выводе нужно искать правила, разрешающие трафик на интересующие порты. В этих правилах может быть указан исходный IP-адрес или подсеть (-s).

Пример правила, разрешающего TCP трафик на порт 22 с IP 192.168.1.10:

# Пример вывода iptables -L INPUT
# 1    ACCEPT tcp -- 192.168.1.10 anywhere tcp dpt:ssh

Пример использования firewalld:

# Показать активные зоны
sudo firewall-cmd --get-active-zones

# Показать разрешенные сервисы и порты для конкретной зоны (например, public)
sudo firewall-cmd --zone=public --list-all

В выводе firewall-cmd --zone=<zone> --list-all будут указаны разрешенные сервисы и порты. Для определения исходных IP-адресов нужно смотреть правила "rich rules", которые дают более детализированный контроль.

Пример rich rule, разрешающего доступ к TCP порту 80 с IP 192.168.1.0/24:

# Пример вывода firewall-cmd --zone=public --list-all (секция rich rules)
# rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept

Таким образом, для определения открытых портов и адресов, с которых возможен доступ, используется комбинация утилит для просмотра сокетов (ss) и инструментов управления файрволом (iptables, firewalld).