Защита консоли сервера (sshd)

Обнаружение попыток взлома пароля консоли сервера

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

Одной из таких брешей является недостаточно защищенный ssh (secure shell — безопасная оболочка) — протокол, позволяющий из командной строки подключаться и управлять сервером. Вообще, пользуясь тем, что ssh шифрует весь траффик, его можно использовать много зачем, в частности передавать видео, однако мы будем рассматривать его именно в смысле протокола удоленного управления.

Еще чуть-чуть теории: обычно ssh работает на 22 порту TCP протокола. Обычно в настройках разрешен прямой логин рута (PermitRootLogin). Все это делается для того, чтобы после установки новой системы админ мог попасть на сервер. Однако, этим-то пытаются воспользоваться взломщики.

Итак, посмотрим, что происходит в логах (в нашем случае файл /var/log/secure):

sshd[7233]: Invalid user 1234 from 123.31.35.116
sshd[7234]: input_userauth_request: invalid user 1234
sshd[7233]: pam_unix(sshd:auth): check pass; user unknown
sshd[7233]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=123.31.35.116
sshd[7233]: Failed password for invalid user 1234 from 123.31.35.116 port 64018 ssh2
sshd[7234]: Received disconnect from 123.31.35.116: 11: Closed due to user request.
sshd[7237]: Invalid user test1 from 123.31.35.116
sshd[7238]: input_userauth_request: invalid user test1
sshd[7237]: pam_unix(sshd:auth): check pass; user unknown
sshd[7237]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=123.31.35.116
sshd[7237]: Failed password for invalid user test1 from 123.31.35.116 port 51253 ssh2
sshd[7238]: Received disconnect from 123.31.35.116: 11: Closed due to user request.
sshd[7240]: Invalid user user from 123.31.35.116
sshd[7241]: input_userauth_request: invalid user user
sshd[7240]: pam_unix(sshd:auth): check pass; user unknown
sshd[7240]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=123.31.35.116
sshd[7240]: Failed password for invalid user user from 123.31.35.116 port 56572 ssh2
sshd[7241]: Received disconnect from 123.31.35.116: 11: Closed due to user request.
sshd[7243]: Invalid user vyatta from 123.31.35.116
sshd[7244]: input_userauth_request: invalid user vyatta
sshd[7243]: pam_unix(sshd:auth): check pass; user unknown
sshd[7243]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=123.31.35.116
sshd[7243]: Failed password for invalid user vyatta from 123.31.35.116 port 57966 ssh2
sshd[7244]: Received disconnect from 123.31.35.116: 11: Closed due to user request.

Что же тут происходит? С одного хоста (123.31.35.116) к нам стучится злоумышленник под разными пользователями (1234, test1, user, vyatta), пытаясь подсунуть пароль, видимо, из списка простых паролей. Наш сервер сообщает нам в логах, что такого пользователя не существует.
Проведём несложное расследование. На сайте https://www.nic.ru/whois забьем этот адрес в поисковую строку и увидим, что этот адрес в составе целой подсети адресов 123.30.0.0 — 123.31.255.255 зарегистрирован за Вьетнамской компанией VietNam Data Communication Company
Заходим на их сайт и видим что это сайт Вьетнамского национального регистратора. Повторив whois-запрос у них (https://vnnic.vn/en/whois-information?lang=en) видим, что интересующий нас адрес принадлежит
International name: Vietnam Post and Telecommunication Corp
Email: huypt@vnpt.vn
Homepage: www.vnpt.com.vn

Для чего вообще проводить такие изыскания? Во-первых, постараться понять, с кем имеешь дело. Во вторых, по возможности предупредить своих коллег о возможных неприятностях на их стороне.
Ну что ж, для начала забаним этот айпи. Делается это по-разному. Можно через правила iptables, но для совсем ленивых есть файл /etc/hosts.deny
Заходим в него и пишем

sshd:123.31.35.116

Обязательно оставляем пустую строку в конце файла, сохраняем, запускаем команду

sudo service sshd force-reload

И снова обращаемся к логам:

sshd[6123]: Received signal 15; terminating.
sshd[7263]: Server listening on 0.0.0.0 port 22.
sshd[7263]: Server listening on :: port 22.
sshd[7266]: refused connect from 123.31.35.116 (123.31.35.116)
sshd[7268]: refused connect from 123.31.35.116 (123.31.35.116)
sshd[7269]: refused connect from 123.31.35.116 (123.31.35.116)
sshd[7271]: refused connect from 123.31.35.116 (123.31.35.116)
sshd[7272]: refused connect from 123.31.35.116 (123.31.35.116)

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

(текст письма не привожу)

Посмотрев логи повнимательней можно увидеть список имен пользователей, популярных у этого и других взломщиков, а так же список адресов, с которых совершаются попытки подбора пароля. За полтора часа это выглядит примерно так: (конечно, чем больше зараженных хостов в заинтересовавшемся Вашим сервером ботнете, тем больше попыток)

Oct 3 13:22:08 sshd[5424]: Invalid user 1234 from 212.83.140.141
Oct 3 13:22:11 sshd[5426]: Invalid user admin from 212.83.140.141
Oct 3 13:22:13 sshd[5429]: Invalid user support from 212.83.140.141
Oct 3 13:30:07 sshd[5453]: Invalid user 1234 from 212.129.52.127
Oct 3 13:30:10 sshd[5455]: Invalid user support from 212.129.52.127
Oct 3 13:30:16 sshd[5468]: Invalid user admin from 212.129.52.127
Oct 3 13:30:21 sshd[5470]: Invalid user monitor from 212.129.52.127
Oct 3 13:30:25 sshd[5472]: Invalid user guest from 212.129.52.127
Oct 3 13:30:32 sshd[5474]: Invalid user david from 212.129.52.127
Oct 3 13:30:36 sshd[5476]: Invalid user pi from 212.129.52.127
Oct 3 13:30:39 sshd[5480]: Invalid user user from 212.129.52.127
Oct 3 13:30:45 sshd[5482]: Invalid user admin from 212.129.52.127
Oct 3 13:30:52 sshd[5487]: Invalid user prueba from 212.129.52.127
Oct 3 13:30:56 sshd[5489]: Invalid user user from 212.129.52.127
Oct 3 13:30:59 sshd[5491]: Invalid user ubnt from 212.129.52.127
Oct 3 13:31:02 sshd[5497]: Invalid user 123 from 212.129.52.127
Oct 3 13:31:05 sshd[5499]: Invalid user admin from 212.129.52.127
Oct 3 13:31:08 sshd[5519]: Invalid user test from 212.129.52.127
Oct 3 13:31:13 sshd[5525]: Invalid user library from 212.129.52.127
Oct 3 13:31:17 sshd[5536]: Invalid user ftpuser from 212.129.52.127
Oct 3 13:31:24 sshd[5540]: Invalid user enrique from 212.129.52.127
Oct 3 13:31:29 sshd[5547]: Invalid user nagios from 212.129.52.127
Oct 3 13:31:33 sshd[5550]: Invalid user admin from 212.129.52.127
Oct 3 13:59:26 sshd[5804]: Invalid user pi from 193.201.225.85
Oct 3 14:00:29 sshd[5806]: Invalid user user from 193.201.225.85
Oct 3 14:00:41 sshd[5822]: Invalid user odroid from 193.201.225.85
Oct 3 14:00:46 sshd[5824]: Invalid user mother from 193.201.225.85
Oct 3 14:01:08 sshd[5826]: Invalid user admin from 193.201.225.85
Oct 3 14:01:12 sshd[5833]: Invalid user admin from 193.201.225.85
Oct 3 14:01:16 sshd[5835]: Invalid user odoo from 193.201.225.85
Oct 3 14:01:20 sshd[5837]: Invalid user ftpuser from 193.201.225.85
Oct 3 14:01:24 sshd[5839]: Invalid user admin from 193.201.225.85
Oct 3 14:01:28 sshd[5841]: Invalid user ubnt from 193.201.225.85
Oct 3 14:01:32 sshd[5843]: Invalid user support from 193.201.225.85
Oct 3 14:01:36 sshd[5845]: Invalid user test from 193.201.225.85
Oct 3 14:01:39 sshd[5847]: Invalid user guest from 193.201.225.85
Oct 3 14:01:51 sshd[5853]: Invalid user anonymous from 193.201.225.85
Oct 3 14:01:57 sshd[5857]: Invalid user server from 193.201.225.85
Oct 3 14:02:01 sshd[5859]: Invalid user admin from 193.201.225.85
Oct 3 14:02:12 sshd[5866]: Invalid user user from 193.201.225.85
Oct 3 14:02:15 sshd[5868]: Invalid user admin from 193.201.225.85
Oct 3 14:10:38 sshd[5901]: Invalid user 1234 from 212.83.165.111
Oct 3 14:10:41 sshd[5903]: Invalid user admin from 212.83.165.111
Oct 3 14:10:42 sshd[5905]: Invalid user support from 212.83.165.111
Oct 3 14:34:01 sshd[5993]: Invalid user 1234 from 123.31.34.96
Oct 3 14:34:06 sshd[5995]: Invalid user admin from 123.31.34.96
Oct 3 14:46:13 sshd[7181]: Invalid user 1234 from 123.31.35.116
Oct 3 14:46:26 sshd[7185]: Invalid user support from 123.31.35.116
Oct 3 14:46:35 sshd[7189]: Invalid user ubnt from 123.31.35.116
Oct 3 14:46:41 sshd[7192]: Invalid user admin from 123.31.35.116
Oct 3 14:47:03 sshd[7198]: Invalid user pi from 123.31.35.116
Oct 3 14:47:11 sshd[7200]: Invalid user guest from 123.31.35.116
Oct 3 14:47:19 sshd[7205]: Invalid user admin from 123.31.35.116
Oct 3 14:47:27 sshd[7208]: Invalid user user from 123.31.35.116
Oct 3 14:47:35 sshd[7210]: Invalid user admin from 123.31.35.116
Oct 3 14:47:43 sshd[7213]: Invalid user user from 123.31.35.116
Oct 3 14:47:50 sshd[7217]: Invalid user ftpuser from 123.31.35.116
Oct 3 14:48:16 sshd[7226]: Invalid user test from 123.31.35.116
Oct 3 14:48:33 sshd[7233]: Invalid user 1234 from 123.31.35.116
Oct 3 14:48:42 sshd[7237]: Invalid user test1 from 123.31.35.116
Oct 3 14:48:51 sshd[7240]: Invalid user user from 123.31.35.116
Oct 3 14:48:57 sshd[7243]: Invalid user vyatta from 123.31.35.116
Oct 3 15:03:49 sshd[7390]: Invalid user 1234 from 14.182.11.202
Oct 3 15:03:54 sshd[7392]: Invalid user support from 14.182.11.202
Oct 3 15:04:01 sshd[7394]: Invalid user ubnt from 14.182.11.202
Oct 3 15:04:07 sshd[7396]: Invalid user admin from 14.182.11.202
Oct 3 15:04:17 sshd[7400]: Invalid user pi from 14.182.11.202
Oct 3 15:04:23 sshd[7402]: Invalid user guest from 14.182.11.202
Oct 3 15:04:28 sshd[7404]: Invalid user admin from 14.182.11.202
Oct 3 15:04:34 sshd[7406]: Invalid user user from 14.182.11.202
Oct 3 15:04:40 sshd[7408]: Invalid user admin from 14.182.11.202
Oct 3 15:04:46 sshd[7410]: Invalid user user from 14.182.11.202
Oct 3 15:04:51 sshd[7412]: Invalid user ftpuser from 14.182.11.202
Oct 3 15:05:07 sshd[7420]: Invalid user test from 14.182.11.202
Oct 3 15:05:15 sshd[7429]: Invalid user info from 14.182.11.202
Oct 3 15:05:21 sshd[7431]: Invalid user 1234 from 14.182.11.202
Oct 3 15:05:33 sshd[7434]: Invalid user user from 14.182.11.202
Oct 3 15:05:41 sshd[7436]: Invalid user vyatta from 14.182.11.202
Oct 3 15:05:57 sshd[7442]: Invalid user remoto1 from 14.182.11.202
Oct 3 15:06:04 sshd[7445]: Invalid user admin from 14.182.11.202
Oct 3 15:06:12 sshd[7447]: Invalid user admin from 14.182.11.202
Oct 3 15:06:18 sshd[7450]: Invalid user enrique from 14.182.11.202
Oct 3 15:06:25 sshd[7452]: Invalid user git from 14.182.11.202
Oct 3 15:06:32 sshd[7455]: Invalid user guest from 14.182.11.202
Oct 3 15:06:37 sshd[7457]: Invalid user Isabel from 14.182.11.202
Oct 3 15:06:44 sshd[7459]: Invalid user nagios from 14.182.11.202
Oct 3 15:06:50 sshd[7462]: Invalid user prueba from 14.182.11.202
Oct 3 15:06:55 sshd[7464]: Invalid user www from 14.182.11.202

Становится вполне понятной поговорка «читал логи. много думал»

to be continued…

Добавить комментарий