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

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

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

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

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

Ты можешь использовать 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/