1

В течение последних нескольких дней очень настойчивый человек постоянно пытается получить (несанкционированный) доступ к моей системе ... Есть множество записей, как в /var/log/auth.log:

Jun 21 03:55:15 cloudy sshd[32487]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root
Jun 21 03:55:16 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:19 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Received disconnect from 116.31.116.20: 11:  [preauth]
Jun 21 03:55:21 cloudy sshd[32487]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root

Я хотел бы попросить несколько советов о том, как заблокировать этого пользователя от использования ресурсов компьютера, есть ли возможность "жестко заблокировать" IP-адрес даже от открытия ssh-соединения? Обратите внимание, я использую Debian 8 в качестве ОС.

5 ответов5

1

Вы также можете использовать iptables

Создайте файл с IP-адресами, которые вы хотите заблокировать как заблокированный blocked.ips.txt

Теперь создайте и запустите скрипт, содержащий следующее:

blocked=$(egrep -v -E "^#|^$" ./blocked.ips.txt)
for ip in $blocked
do
    iptables -I INPUT -s $ip -p tcp --dport ssh -j DROP
done

Запуск iptables -L должен дать вывод отброшенных пакетов

1

Подход iptables - самый прямой. Эрик Хэндрикс предложил это как сценарий.

Два «но»: сценарий должен запускаться после каждого перезапуска (если для таблиц внутреннее резервное копирование не выполняется с помощью iptables). - вызов сценария как есть, дважды или более будет дублировать записи.

Попробуйте просто прибить плохого парня:

iptables -I INPUT -s BAD_IP -p tcp --dport ssh -j DROP

В большинстве дистрибутивов iptables имеет собственный механизм правил-сохранения-восстановления. Посмотрите, присутствует ли /var /lib /iptables /rules-save. Для вашего дистрибутива он может находиться где-то еще (gentoo здесь).

После добавления каждого BAD IP попробуйте:

iptables-save> /var /lib /iptables /rules-save

После перезагрузки проверьте с помощью 'iptables -L', что там ...

0

Вы можете использовать Fail2Ban для мониторинга журналов и автоматической блокировки IP. Можно указать период времени и счетчик ошибок, чтобы заблокировать IP-адрес, сообщить администратору, отправить жалобу владельцу IP и т.д.

См. Для получения дополнительной информации: https://www.upcloud.com/support/install-fail2ban-on-debian-8-0/

0

На моем сервере (Ubuntu 16.04) я использую UFW (UncomplicatedFireWall), слой упрощения по сравнению с iptables), который, по-видимому, является довольно стандартной проблемой на серверах Ubuntu (но должен быть доступен для других дистрибутивов). Для этих случаев я использую:

ufw insert 1 deny from nnn.nnn.nnn.nnn

UFW также позволяет ограничить количество подключений

ufw limit ssh/tcp

Обратите внимание, что это также относится к успешным соединениям, поэтому, если вы используете сценарии, которые используют несколько команд ssh, вы должны отключить это ограничение для вашего IP, выполнив:

ufw insert 1 allow in from nnn.nnn.nnn.nnn

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .