Защита от брутфорса
Руководство по защите вашего сервера от подбора паролей - Брут-форс атаки
Брут-форс атака – метод хакерской атаки или взлома компьютерной системы путем подбора паролей путем перебора всех возможных комбинаций символов до нахождения комбинации, подходящей в качестве пароля.
Защита с помощью 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