Sobes.tech
Middle

Kako možete da pogledate otvorene portove i odredite sa kojih IP adresa se na njih može pristupiti, bez korišćenja komande netstat?

sobes.tech АИ

Одговор од АИ

Можно использовать утилиту 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).