Показать статистику
+1 голос
от (2.4тыс. баллов)
Проверяю логи своей системы и вижу в /var/log/auth.log тысячи попыток войти на сервер по SSH. Есть идеи как с этим бороться?
603 просмотров 2 ответов

2 Ответы

0 голосов
от (4.6тыс. баллов)

Для начала неплохо определить кто же лезет. Может это не боты, а какие то сетевые сканеры или еще что то такое?

grep sshd.\*Failed /var/log/auth.log | less

У меня лично на сервере вывод этой команда такой:

Jan 18 11:00:57 kkdvps sshd[5557]: Failed password for admin from 95.58.215.62 port 38980 ssh2
Jan 18 23:08:26 kkdvps sshd[5668]: Failed password for root from 91.205.129.15 port 38156 ssh2
Jan 18 23:08:30 kkdvps sshd[5740]: Failed password for nobody from 91.205.139.15 port 38556 ssh2
Jan 18 23:08:34 kkdvps sshd[5772]: Failed password for invalid user administator from 91.205.129.15 port 38864 ssh2
Aug 18 23:08:38 kkdvps sshd[5721]: Failed password for invalid user joomla from 91.205.129.15 port 39157 ssh2
Aug 18 23:08:42 kkdvps sshd[5742]: Failed password for root from 91.205.129.15 port 39467 ssh2

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

grep sshd.*Did /var/log/auth.log | less

Вывод будет таким (примерно):

Jan  5 21:19:10 kkdvps sshd[7348]: Did not receive identification string from 70.91.222.121
Jan 10 14:39:49 kkdvps sshd[1719]: Did not receive identification string from 50.57.168.154
Jan 13 22:08:04 kkdvps sshd[3362]: Did not receive identification string from 87.216.241.19
Jan 17 13:49:07 kkdvps sshd[5150]: Did not receive identification string from 211.22.67.238
Jan 19 05:28:43 kkdvps sshd[5038]: Did not receive identification string from 59.151.37.10

Если вы видите что это не сканер, переместите SSH со стандартного 22-го порта куда нибудь на другой порт, желательно повыше - что бы сложнее было найти. Мой любимый порт 22122 (легко запоминается).

Вы не сказали какой у вас сервер. Если Ubuntu, то можно прицепить fail2ban: https://apps.ubuntu.com/cat/applications/fail2ban/

–1 голос
от (17.4тыс. баллов)

Есть несколько вариантов. Я лично предпочитаю использовать штатные средства и не прибегать к дополнительному софту. Хотя, fail2ban тоже работает неплохо. Вернемся к iptables.

Во-первых, имеет смысл ограничить количество запросов на порт 22 через iptables:

iptables -A INPUT -p tcp --dport 22 -m recent --update --seconds 60 --hitcount 5 --name SSH --rsource -j DROP 
iptables -A INPUT -p tcp --dport 22 -m recent --set --name SSH --rsource -j ACCEPT 

Это правило говорит что можно пытаться зайти не более пяти раз в течение 60 секунд с одного ИП адреса

...