Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя FreeBSD Защита от брутфорса с помощью inetd

Защита от брутфорса с помощью inetd

Через inetd запускаем FTP и SSH сервисы:
# /etc/inetd.conf
ftp     stream  tcp     nowait    root    /usr/local/sbin/in.proftpd      proftpd
ssh     stream  tcp     nowait    root    /usr/sbin/sshd          sshd   -i -4
Интересующие нас параметры 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 имеют такой формат:
s ervice-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 следующим образом:
# /etc/inetd.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:
# /etc/rc.d/inetd restart
В данном случае к службам одновременно могут обратиться 5 клиентов, с одного IP-адреса возможно одновременно 2 подключения, причем c одного IP-адреса нельзя будет подключиться чаще 1 раза в минуту.
Дополнительная защита для ssh
В файл /etc/sshd_config добавляем следующую опцию:
MaxAuthTries 1
Это означает, что пользователь имеет право на MaxAuthTries + 1 = 2 попытки авторизации.
Чтобы разрешить только 1 попытку авторизации, необходимо выставить значение MaxAuthTries в 0:
MaxAuthTries 0
Дополнительная защита для proftpd
В файл /usr/local/etc/proftpd.conf добавляем:
MaxLoginAttempts 1
Теперь при соединении возможна только 1 попытка авторизации
Защищаем почту (dovecot)
Для этого останавливаем 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:
# /etc/rc.d/inetd restart
Выставив лимиты, мы ограничиваем нежелательную активность  на  сервере.

Домашняя FreeBSD Защита от брутфорса с помощью inetd