Защита от брутфорса

Руководство по защите вашего сервера от подбора паролей - Брут-форс атаки

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

Защита с помощью 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
Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам