✔ CentOS 7: Проверка открытых портов с помощью утилиты nmap.

Содержание:

1. Постановка задачи.
2. Описание утилиты.
3. Решение задачи.
4. Оригиналы источников информации.


1. Постановка задачи.

Задача: организовать базовое обследование хоста. Потому что после настройки всегда можно что-то забыть заблокировать, а потом удивляться почему хост брутфорсят боты.

2. Описание утилиты.

Nmap — свободная утилита, предназначенная для разнообразного настраиваемого сканирования IP-сетей с любым количеством объектов, определения состояния объектов сканируемой сети (портов и соответствующих им служб).

3. Решение задачи.

Поставьте nmap на какой-то внешний хост и с него по cron раз в неделю запускайте проверку с отправкой результата вам на почту:

# nmap -T4 -A -v xxx.xxx.xxx.xxx | mail -s "Nmap Scan xxx.xxx.xxx.xxx" admin@mail.com

Как сделать возможность получать письма с сервера описано в статье: «CentOS 7: Postfix 3 для отправки электронной почты с внутреннего системного «почтового ящика».

Получите подробный ответ по своему IP-адресу и его открытых портах на свою электронную почту.

Открыть электронное письмо.
Starting Nmap 7.10 ( https://nmap.org ) at 2020-06-16 15:03 +05
NSE: Loaded 138 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:03
Completed NSE at 15:03, 0.00s elapsed
Initiating NSE at 15:03
Completed NSE at 15:03, 0.00s elapsed
Initiating Ping Scan at 15:03
Scanning ххх.ххх.хх.хх [4 ports]
Completed Ping Scan at 15:03, 0.20s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 15:03
Completed Parallel DNS resolution of 1 host. at 15:03, 0.04s elapsed
Initiating SYN Stealth Scan at 15:03
Scanning vds-ch32770.timeweb.ru (ххх.ххх.хх.хх) [1000 ports]
Discovered open port 443/tcp on ххх.ххх.хх.хх
Discovered open port 22/tcp on ххх.ххх.хх.хх
Discovered open port 80/tcp on ххх.ххх.хх.хх
Discovered open port 3000/tcp on ххх.ххх.хх.хх
Discovered open port 9090/tcp on ххх.ххх.хх.хх
Discovered open port 9100/tcp on ххх.ххх.хх.хх
Completed SYN Stealth Scan at 15:03, 7.63s elapsed (1000 total ports)
Initiating Service scan at 15:03
Scanning 5 services on vds-ch32770.timeweb.ru (ххх.ххх.хх.хх)
Completed Service scan at 15:04, 82.31s elapsed (6 services on 1 host)
Initiating OS detection (try #1) against vds-ch32770.timeweb.ru (ххх.ххх.хх.хх)
Retrying OS detection (try #2) against vds-ch32770.timeweb.ru (ххх.ххх.хх.хх)
Initiating Traceroute at 15:04
Completed Traceroute at 15:04, 3.03s elapsed
Initiating Parallel DNS resolution of 7 hosts. at 15:04
Completed Parallel DNS resolution of 7 hosts. at 15:04, 0.07s elapsed
NSE: Script scanning ххх.ххх.хх.хх.
Initiating NSE at 15:04
Completed NSE at 15:04, 3.92s elapsed
Initiating NSE at 15:04
Completed NSE at 15:04, 1.04s elapsed
Nmap scan report for vds-ch32770.timeweb.ru (ххх.ххх.хх.хх)
Host is up (0.026s latency).
Not shown: 994 filtered ports
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 4d:76:a1:0e:86:5b:96:52:45:d7:65:d0:b9:01:e6:45 (RSA)
|_  256 21:b6:23:bb:47:e8:21:75:8e:06:9e:be:03:f9:85:09 (ECDSA)
80/tcp   open  http        nginx
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: nginx
|_http-title: Did not follow redirect to https://xxxxxxxxx.ru/
443/tcp  open  ssl/http    nginx
| http-methods: 
|_  Supported Methods: GET HEAD POST
| http-robots.txt: 1 disallowed entry 
|_/unsubscribe.html
|_http-server-header: nginx
|_http-title: \xD0\x90\xD0\xB1\xD0\xB8\xD1\x82\xD1\x83\xD1\x80\xD0\xB8\xD0\xB5\xD0\xBD\xD1\x82\xD1\x83.\xD1\x80\xD1\x83 | \xD0\x92\xD1\x81\xD0\xB5 \xD0\xBA\xD0\xBE\xD0\xBB\xD0\xBB\xD0\xB5\xD0\xB4\xD0\xB6\xD0\xB8 \xD0\xB8 \xD1\x82\xD0\xB5\xD1...
| ssl-cert: Subject: commonName=abiturientu.ru
| Issuer: commonName=Let's Encrypt Authority X3/organizationName=Let's Encrypt/countryName=US
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2020-05-25T07:50:48
| Not valid after:  2020-08-23T07:50:48
| MD5:   635d 600d 7277 fb95 da81 60b2 9a08 2f6a
|_SHA-1: a19b 8957 8a61 d18f 6ecc cfe4 7776 3e13 9e17 8970
3000/tcp open  ppp?
9090/tcp open  zeus-admin?
9100/tcp open  jetdirect?
2 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at https://nmap.org/cgi-bin/submit.cgi?new-service :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port3000-TCP:V=7.10%I=7%D=6/16%Time=5EE898ED%P=x86_64-redhat-linux-gnu%
SF:r(GenericLines,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\
SF:x20text/plain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20B
SF:ad\x20Request")%r(GetRequest,132,"HTTP/1\.0\x20302\x20Found\r\nCache-Co
SF:ntrol:\x20no-cache\r\nContent-Type:\x20text/html;\x20charset=utf-8\r\nE
SF:xpires:\x20-1\r\nLocation:\x20/login\r\nPragma:\x20no-cache\r\nSet-Cook
SF:ie:\x20redirect_to=%2F;\x20Path=/;\x20HttpOnly;\x20SameSite=Lax\r\nX-Fr
SF:ame-Options:\x20deny\r\nDate:\x20Tue,\x2016\x20Jun\x202020\x2010:03:25\
SF:x20GMT\r\nContent-Length:\x2029\r\n\r\n<a\x20href=\"/login\">Found\
SF:.\n\n")%r(Help,67,"HTTP/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\
SF:x20text/plain;\x20charset=utf-8\r\nConnection:\x20close\r\n\r\n400\x20B
SF:ad\x20Request")%r(HTTPOptions,370C,"HTTP/1\.0\x20404\x20Not\x20Found\r\
SF:nCache-Control:\x20no-cache\r\nContent-Type:\x20text/html;\x20charset=U
SF:TF-8\r\nExpires:\x20-1\r\nPragma:\x20no-cache\r\nX-Frame-Options:\x20de
SF:ny\r\nDate:\x20Tue,\x2016\x20Jun\x202020\x2010:03:30\x20GMT\r\n\r\n<!DO SF:CTYPE\x20html>\n<html\x20lang=\"en\">\n\x20\x20\n\x20\x20\x20\x20
SF:\n\x20\x20\x20\x20<meta\x20charset=\"utf-8\"\x20/>\n\x20\x20\x
SF:20\x20<meta\x20http-equiv=\"X-UA-Compatible\"\x20content=\"IE=edge,chro SF:me=1\"\x20/>\n\x20\x20\x20\x20<meta\x20name=\"viewport\"\x20content=\"w SF:idth=device-width\"\x20/>\n\x20\x20\x20\x20<meta\x20name=\"theme-color\ SF:"\x20content=\"#000\"\x20/>\n\n\x20\x20\x20\x20\n
SF:\n\x20\x20\x20\x20<base\x20href=\"/\"\x20/>\n\n\x20\x20\x20\x20<link\n\
SF:x20\x20\x20\x20\x20\x20rel=\"preload\"\n\x20\x20\x20\x20\x20\x20href=\"
SF:public/fonts/roboto/RxZJdnzeo3R5zSe");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port9090-TCP:V=7.10%I=7%D=6/16%Time=5EE898ED%P=x86_64-redhat-linux-gnu%
SF:r(GetRequest,A6,"HTTP/1\.0\x20302\x20Found\r\nContent-Type:\x20text/htm
SF:l;\x20charset=utf-8\r\nLocation:\x20/graph\r\nDate:\x20Tue,\x2016\x20Ju
SF:n\x202020\x2010:03:25\x20GMT\r\nContent-Length:\x2029\r\n\r\n<a\x20href SF:=\"/graph\">Found\.\n\n")%r(HTTPOptions,60,"HTTP/1\.0\x20200\x20OK\
SF:r\nAllow:\x20GET,\x20OPTIONS\r\nDate:\x20Tue,\x2016\x20Jun\x202020\x201
SF:0:03:36\x20GMT\r\nContent-Length:\x200\r\n\r\n")%r(RTSPRequest,67,"HTTP
SF:/1\.1\x20400\x20Bad\x20Request\r\nContent-Type:\x20text/plain;\x20chars
SF:et=utf-8\r\nConnection:\x20close\r\n\r\n400\x20Bad\x20Request")%r(FourO
SF:hFourRequest,B0,"HTTP/1\.0\x20404\x20Not\x20Found\r\nContent-Type:\x20t
SF:ext/plain;\x20charset=utf-8\r\nX-Content-Type-Options:\x20nosniff\r\nDa
SF:te:\x20Tue,\x2016\x20Jun\x202020\x2010:03:44\x20GMT\r\nContent-Length:\
SF:x2019\r\n\r\n404\x20page\x20not\x20found\n");
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 4.0 (94%), Linux 3.10 - 4.1 (92%), Linux 3.2 - 4.2 (92%), Linux 3.18 (90%), Crestron XPanel control system (90%), Linux 3.1 (87%), Linux 3.2 (87%), HP P2000 G3 NAS device (87%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (87%), Linux 3.13 (86%)
No exact OS matches for host (test conditions non-ideal).
Uptime guess: 1.158 days (since Mon Jun 15 11:16:44 2020)
Network Distance: 9 hops
TCP Sequence Prediction: Difficulty=254 (Good luck!)
IP ID Sequence Generation: All zeros

TRACEROUTE (using port 443/tcp)
HOP RTT      ADDRESS
1   0.44 ms  192.168.0.1
2   ...
3   0.85 ms  ae10-440.bbr01.ertelecom.ru (212.33.233.91)
4   17.68 ms msk.ertelecom.ru (195.208.209.132)
5   18.75 ms m9-3-gw.runnet.ru (194.190.254.141)
6   ...
7   29.69 ms timeweb.runnet.ru (xxx.xxx.xxx.xxx)
8   26.50 ms 172.17.1.3
9   26.07 ms vds.timeweb.ru (ххх.ххх.ххx.хxх)

NSE: Script Post-scanning.
Initiating NSE at 15:04
Completed NSE at 15:04, 0.00s elapsed
Initiating NSE at 15:04
Completed NSE at 15:04, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 104.52 seconds
           Raw packets sent: 3086 (140.230KB) | Rcvd: 89 (7.347KB)

При наличии не очень большого автохозяйства, разок другой в месяц просматривать ситуацию бывает вполне достаточно. Или делать сканирование хоста после ввода его в эксплуатацию.

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

4. Оригиналы источников информации.

  1. serveradmin.ru «Проверка открытых портов с помощью Nmap».

Читайте также: