У меня проблема.
Кто-то пытается проникнуть на мой сервер, и это происходит слишком часто. Например:
Aug 19 14:11:42 oplot sshd[18373]: input_userauth_request: invalid user oracle
Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): check pass; user unknown
Aug 19 14:11:42 oplot sshd[18372]: pam_unix(sshd:auth): authentication failure;
logname= uid=0 euid=0 tty=ssh ruser= rhost=211.38.137.44
Aug 19 14:11:44 oplot sshd[18372]: Failed password for invalid user oracle from
211.38.137.44 port 36 841 ssh2
Aug 19 14:11:45 oplot sshd[18373]: Received disconnect from 211.38.137.44: 11:
Bye Bye
Aug 19 14:11:47 oplot sshd[18374]: Invalid user test from 211.38.137.44
Aug 19 14:11:47 oplot sshd[18375]: input_userauth_request: invalid user test
Aug 19 14:11:47 oplot sshd[18374]: pam_unix(sshd:auth): check pass; user unknown
Aug 19 14:11:47 oplot sshd[18374]: pam_unix(sshd:auth): authentication failure;
logname= uid=0 euid=0 tty=ssh ruser= rhost=211.38.137.44
А также этот
Aug 19 14:58:51 oplot sshd[19543]: Failed password for root from 202.117.56.29
port 43025 ssh2
Aug 19 14:58:52 oplot sshd[19544]: Received disconnect from 202.117.56.29: 11:
Bye Bye
Aug 19 14:58:55 oplot sshd[19546]: reverse mapping checking getaddrinfo for
56h29.xjtu.edu.cn [202.117.56.29] failed - POSSIBLE BREAK-IN ATTEMPT!
Не могли бы вы объяснить мне, что означает "проверка обратного отображения getaddrinfo"?
И как я могу заблокировать IP после нескольких таких попыток?
fail2ban - популярный способ заблокировать множество ложных попыток входа в систему по ssh. Я бы посоветовал вам сосредоточиться на том, чтобы люди не забивали ваш порт ssh, а не беспокоились о плохом обратном поиске DNS.
То, что ssh называет «возможной попыткой взлома», является просто сигналом того, что рассматриваемый адрес настроен неправильно. Вы можете проверить:
~% host 202.117.56.29
29.56.117.202.in-addr.arpa domain name pointer 56h29.xjtu.edu.cn.
~% host 56h29.xjtu.edu.cn
Host 56h29.xjtu.edu.cn not found: 3(NXDOMAIN)
Записи DNS PTR представляют собой своего рода проблему безопасности, потому что нет абсолютно ничего, что мешает вам сказать, что вашим адресным именем хоста является все, что вы хотите, даже "google.com" или "nsa.gov". Таким образом, SSH выполняет эту дополнительную проверку, чтобы убедиться, что существует правильная двунаправленная связь между адресом и именем хоста.
Не пытайтесь блокировать несколько попыток, не защитив предварительно свой сервисный порт SSH. Вам следует рассмотреть возможность отключения службы SSH или, по крайней мере, ее межсетевого экрана. Если вы не можете использовать брандмауэр, попробуйте использовать решение для блокировки портов, чтобы скрыть его от случайных атак. Также отключите аутентификацию по паролю и заставьте всех использовать аутентификацию с открытым ключом.
Проверять, выписываться DenyHost. Это отличный способ запретить IP-адреса, которые пытаются подобрать SSH-вход. Вы также получаете выгоду от общего черного списка IP-адресов, которые пытались выполнить трюк на других хостах по всему миру.
Если вы предпочитаете более легкое решение, вы можете использовать iptables, чтобы заблокировать повторные попытки ssh. Предполагая, что у вас уже есть правила iptables, настроенные с политикой DROP по умолчанию и разрешающие только определенные порты, следующее правило откроет порт 22 (ssh), так что он будет временно блокировать SSH-соединения с определенных IP-адресов при наличии более трех подключений. в минуту:
iptables -A INPUT -m hashlimit --hashlimit 3/min --hashlimit-burst 3 --hashlimit-mode srcip --hashlimit-name inputssh -p tcp --dport 22 -j ACCEPT
Обратите внимание, что это также остановит успешные входы в систему, если они превысят порог частоты, поэтому вам нужно будет выбрать соответствующее значение.
Для получения дополнительной информации вы можете попробовать "человек iptables" или "iptables -m hashlimit --help". Кроме того, поиск в Google "iptables tutorial" и "iptables hashlimit" должен стать хорошей отправной точкой, если вы не знакомы с iptables.