Назад | Перейти на главную страницу

Как вывести список открытых, но не используемых (процессом / программой) портами?

У меня есть VPS с установленным debian wheezy. На нем активен брандмауэр, все порты по умолчанию не разрешены. Брандмауэром можно управлять через веб-интерфейс поставщика VPS, и недавно я открыл порт через этот веб-интерфейс. На самом деле к этому порту не привязаны никакие процессы.

Поскольку у меня есть доступ по SSH, я хотел бы знать, есть ли у меня команда или способ получить список разблокированных портов моего VPS с терминала.

Это полностью зависит от природы рассматриваемого межсетевого экрана.

Если это физически отдельное устройство, то единственный надежный способ определить порт как «открытый» в смысле «не заблокирован» - это фактически отправить на него трафик извне и посмотреть, поступает ли он внутрь. Все остальное дает в лучшем случае косвенные доказательства, поскольку брандмауэр может свободно отвечать на трафик на заблокированный порт любым способом, который он считает нужным. Это может сделать порт "открытым" в смысле "обслуживаемым процессом", "закрытым" в смысле "ни один процесс не прослушивает" или "фильтруемым" в смысле "вообще не отвечает".

Если это действительно реализовано на самом сервере через iptables, то, имея root-доступ, вы можете прочитать и проанализировать текущую конфигурацию iptables, чтобы извлечь из нее информацию о том, какие порты передаются без изменений. Вам нужно будет решить для себя, будете ли вы включать порты, которые обрабатываются каким-либо нетривиальным образом (например, NAT), в категорию «разблокированные», «заблокированные» или другую.

Это зависит, в основном, от того, как брандмауэр блокирует закрытые порты.

Методом может быть удаленное сканирование портов. А закрыто Порт, который не заблокирован вашим брандмауэром, но с которым не связан процесс, активно прослушивающий и принимающий соединения, может быть определен таким образом.

В руководстве по nmap есть исходная информация на том.