Брут-форс атака – метод хакерской атаки или взлома компьютерной системы путем подбора паролей путем перебора всех возможных комбинаций символов до нахождения комбинации, подходящей в качестве пароля.

Защита с помощью DenyHosts

Установка:

# cd /usr/ports/security/denyhosts
# make install clean

Отредактируйте файл /etc/hosts.allow:

sshd : /etc/hosts.denied : deny (запрет доступа по ssh с хостов из файла /etc/hosts.denied)  

sshd : ALL : allow (разрешение доступа)  

В конфигурационном файле denyhosts - /usr/local/etc/denyhosts.conf укажите опцию:

HOSTS_DENY = /etc/hosts.denied  

Расскоментируйте строку, иначе denyhosts не запустится:

BLOCK_SERVICE = ALL  

Добавьте в автозагрузку:

# echo 'denyhosts_enable="YES"' >> /etc/rc.conf

Чтобы denyhosts не ругался во время запуска об отсутствующем файле, создадим его:

# touch /etc/hosts.denied

И сразу запустим denyhosts :

# /usr/local/etc/rc.d/denyhosts start

Настройка завершена.

Защита с помощью inetd

Установка:

Centos

# yum install inetd

Debian/Ubuntu

# apt-get install xinetd

Параметры inetd:

  • -c maximum

Определение максимального числа одновременных запусков каждой службы; по умолчание не ограничено.
Может быть переопределено индивидуально для каждой службы при помощи параметра max-child.

  • -C rate

Определение по умолчанию максимального количества раз, которое служба может быть вызвана с одного
IP-адреса в минуту; по умолчанию не ограничено. Может быть переопределено для каждой службы
параметром max-connections-per-ip-per-minute.

  • -R rate

Определяет максимальное количество раз, которое служба может быть вызвана в минуту; по умолчанию
256. Частота, равная 0, не ограничивает число вызовов.

  • -s maximum

Задает максимальное количество процессов, одновременно обслуживающих один сервис для одного IP
адреса; по умолчанию не ограничено. Может переопределяться для каждой службы параметром max-child-per-ip.

Строки в файле /etc/inetd.conf имеют такой формат:

service-name  
socket-type  
protocol  
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]  
server-program  
server-program-arguments  

Реализация

Модифицируем параметры для сервисов FTP и SSH следующим образом:

Centos/Debian/Ubuntu

# /etc/xinetd.conf

Содержимое:

ftp     stream  tcp     nowait/5/1/2    root    /usr/local/sbin/in.proftpd      proftpd  
ssh     stream  tcp     nowait/5/1/2    root    /usr/sbin/sshd          sshd -i -4  

Перезапускаем inetd:

Debian/Ubuntu

# /etc/init.d/xinetd restart

Centos 7

# systemctl restart xinetd

В данном случае к службам одновременно могут обратиться 5 клиентов, с одного IP-адреса возможно одновременно 2 подключения, причем c одного IP-адреса нельзя будет подключиться чаще 1 раза в минуту.

Дополнительная защита для ssh

В файл /etc/sshd_config добавляем следующую опцию:

MaxAuthTries 1  

Это означает, что пользователь имеет право на MaxAuthTries + 1 = 2 попытки авторизации.
Чтобы разрешить только одну попытку авторизации, необходимо выставить значение MaxAuthTries в 0:

MaxAuthTries 0  

Дополнительная защита для proftpd

В файл /usr/local/etc/proftpd.conf добавляем:

MaxLoginAttempts 1  

Теперь при соединении возможна только 1 попытка авторизации

Защищаем почту (dovecot) с помощью inetd

Для этого останавливаем dovecot:

# /usr/local/etc/rc.d/dovecot stop

После чего в файле /etc/rc.conf закомментируйте запись про dovecot:

#dovecot_enable="YES"

И добавляем в /etc/inetd.conf следующие записи:

imap           stream  tcp     nowait/5/1/2  root    /usr/libexec/tcpd /usr/local/libexec/dovecot/imap-login  
imaps          stream  tcp     nowait/5/1/2  root    /usr/libexec/tcpd /usr/local/libexec/dovecot/imap-login --ssl  
pop3           stream  tcp     nowait/5/1/2  root    /usr/libexec/tcpd /usr/local/libexec/dovecot/pop3-login  
pop3s          stream  tcp     nowait/5/1/2  root    /usr/libexec/tcpd /usr/local/libexec/dovecot/pop3-login --ssl  

Перезапустите inetd:

Debian/Ubuntu

# /etc/init.d/xinetd restart

Centos 7

# systemctl restart xinetd
Обновлено 1 августа 2018 г.