nmap — полезная утилита для сканирования открытых наружу на целевом хосте портов. Утилита имеет множество настроек (ограничить диапазон портов, узнать тип ОС)
Устанавливается при помощи brew:
$ brew install nmap
И далее достаточно задать имя хоста для проведения проверки:
$ nmap ip-host Starting Nmap 7.80 ( https://nmap.org ) at 2020-01-19 15:35 CET Nmap scan report for ip-host Host is up (0.045s latency). Not shown: 995 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http 443/tcp open https 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.88 seconds
Как мы видим к примеру сервисы SSH, MySQL торчат наружу на стандартных номерах портов. Для безопасности рекомендуется менять номера портов если их нужно открывать наружу и использовать файрволл который будет блокировать соединения с неподходящих источников.
При помощи дополнительных ключей запуска в nmap мы можем узнать версию операционной системы и установленного ПО:
80/tcp open http nginx 1.12.2 |_http-server-header: nginx/1.12.2 | http-title: example.com - title |_Requested resource was http://ip-host/index 443/tcp open http nginx 1.12.2 |_http-server-header: nginx/1.12.2 |_http-title: Did not follow redirect to http://ip-host/index 3306/tcp open mysql MySQL 5.5.61 | mysql-info: | Protocol: 10 | Version: 5.5.61 | Thread ID: 1434746 | Capabilities flags: 63487 | Some Capabilities: Speaks41ProtocolNew, LongPassword, Support41Auth, FoundRows, Speaks41ProtocolOld, SupportsTransactions, SupportsLoadDataLocal, IgnoreSigpipes, ODBCClient, DontAllowDatabaseTableColumn, IgnoreSpaceBeforeParenthesis, ConnectWithDatabase, InteractiveClient, SupportsCompression, LongColumnFlag, SupportsAuthPlugins, SupportsMultipleResults, SupportsMultipleStatments | Status: Autocommit | Salt: n6aga1o]d^+Y_R]Z.u$P |_ Auth Plugin Name: mysql_native_password Service Info: Host: ExampleHost; OS: Linux; CPE: cpe:/o:linux:linux_kernel