Linux/Bash: проверьте, открыт ли мой сервер в Интернет программно / через CLI

RHEL 6 и Bash. Было бы легко, если бы у меня был удаленный сервер, чтобы просто запустить nmap от или даже curl/wget, но у меня есть доступ только к серверам на нашей стороне брандмауэра.

Я знаю, что могу вручную проверить с помощью интернет-инструментов сканирования портов, и я предполагаю, что ответом будет один из тех сайтов, которые предоставляют сценарий, к которому можно получить доступ через командную строку. Как проверить, какие порты открыты для доступа в Интернет на сервере, используя оболочку Bash этого сервера?

TL; DR Я хочу иметь возможность проверить, какие порты доступны на моем сервере, используя Bash на этом сервере.

2 ответа

Ты можешь использовать netstat -Wplunt получить список всех процессов, прослушивающих порты TCP или UDP. Это перечислит немного больше, чем вы хотите знать. Вы можете игнорировать все порты, связанные с ::1 или же 127.0.0.1 так как они доступны только для самого сервера. Остальные, возможно, доступны снаружи.

Как проверить правила брандмауэра - это отдельный вопрос. Я не знаю инструмента, который вполне готов для этого, но этот вопрос уже задавался, и есть некоторые предложения о том, как это можно сделать.

Запуск сканирования портов извне не даст вам наиболее полезных данных, которые вы могли бы хотеть. Для внешнего мира порт, заблокированный брандмауэром, должен выглядеть так же, как порт, открытый в брандмауэре, но сервер не прослушивает. Это означает, что вам нужно сделать две ошибки конфигурации, прежде чем они будут видны для сканирования внешнего порта.

Если вы правильно настроили брандмауэр или сервер, сканирование внешнего порта никогда не обнаружит ошибку конфигурации, которую вы сделали в другом месте.

Это не означает, что сканирование внешних портов совершенно бесполезно, но в стандартных процедурах вы должны сосредоточиться на двух уровнях отдельно. Одноразовое сканирование портов можно легко выполнить с помощью интернет-соединения дома.

Вы можете использовать внешнюю службу сканирования портов, как вы упомянули, которая предоставляет API, который вы можете вызвать с помощью Curl / Wget. Вот две службы, которые я нашел

  1. http://viewdns.info/api/docs/
  2. http://hackertarget.com/port-check/

Было бы много других подобных сервисов, или вы могли бы даже разместить что-то подобное самостоятельно, например - http://codehill.com/2012/07/a-simple-port-scanner-in-php/

Другие вопросы по тегам