Автоматически блокировать попытки взлома в CentOS?

Автоматически блокировать попытки взлома в CentOS?

Мой сервер подвергся атаке. Я регистрирую такие попытки:

Sep 22 06:39:11 s1574**** sshd[16453]: Failed password for invalid user amber from        64.215.17.4 port 35182 ssh2
Sep 22 04:39:11 s1574**** sshd[16454]: Received disconnect from 64.215.17.4: 11: Bye Bye
Sep 22 06:39:11 s1574**** sshd[16457]: Invalid user amber from 64.215.17.4
Sep 22 04:39:11 s1574**** sshd[16458]: input_userauth_request: invalid user amber
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): check pass; user unknown
Sep 22 06:39:11 s1574**** sshd[16457]: pam_unix(sshd:auth): authentication failure;     logname= uid=0 euid=0 tty=ssh ruser= rhost=dns2.rsd.com 
Sep 22 06:39:11 s1574**** sshd[16457]: pam_succeed_if(sshd:auth): error retrieving     information about user amber
Sep 22 06:39:14 s1574**** sshd[16457]: Failed password for invalid user amber from 64.215.17.4 port 35842 ssh2
Sep 22 04:39:14 s1574**** sshd[16458]: Received disconnect from 64.215.17.4: 11: Bye Bye

Что я могу сделать, чтобы заблокировать этот тип попыток доступа, что-то вроде блокировки IP, когда более 3 запретов?

решение1

  1. Вы можете ограничить количество попыток входа в минуту с помощью iptables. Такие правила будут блокировать IP на одну минуту после трех попыток входа (взято изДневник гика – Смягчение последствий атак методом подбора пароля SSH с помощью Netfilter и recentмодуля):

    iptables -A ВХОД -p tcp --dport 22 -m состояние --state НОВЫЙ -m недавний --set --name SSH
    iptables -A ВХОД -p tcp --dport 22 -m state --state НОВЫЙ -j SSH_WHITELIST
    iptables -A ВХОД -p tcp --dport 22 -m состояние --state НОВЫЙ -m недавний --update --seconds 60 --hitcount 4 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
    iptables -A ВХОД -p tcp --dport 22 -m состояние --state НОВЫЙ -m недавний --update --seconds 60 --hitcount 4 --rttl --name SSH -j ОТКАЗ
    
  2. Если вам нужна более настраиваемая версия sikytion, вы можете использоватьfail2banилиDenyHostsдля анализа журналов SSHd и блокировки подозрительных IP-адресов.

решение2

лучший практический способ - заблокировать все ненужные порты с помощью iptables и настроить ваш ssh на использование закрытого ключа для входа. Я знаю, что Putty и MobaXterm (оба бесплатных ssh-клиента) поддерживают вход с закрытым ключом. затем внутри вашего /etc/ssh/sshd_config удалите

PermitRootLogin yes

и добавить:

PermitRootLogin without-password

это приведет к тому, что даже если вы знаете пароль root, вы не сможете войти с ним в систему.

Вы можете использовать правила iptables, чтобы ограничить их, чтобы они не тормозили ваш сервер.

решение3

Установите программное обеспечение Denyhosts. Оно автоматически добавит такие хакерские IP в hosts.deny. Пакет доступен в репозитории epel.

Связанный контент