FreeBSD

Bruteblock — защита от перебора паролей по ssh

Bruteblock — написан на C, на основе анализа лога auth.log блокирует злоумышленников, которые пробуют подобрать пароль по ssh.

1. Ставим.

# cd /usr/ports/security/bruteblock && make install clean

2. Редактируем. /usr/local/etc/bruteblock/ssh.conf

# cat /usr/local/etc/bruteblock/ssh.conf

# regexp - регулярное выражение, по которому производится поиск ip адресов
# при попытках подбора паролей. Формат регулярных выражений - PCRE.
# "regexp0","regexp1",... "regexp9" . опциональные поля, содержащие до 10
# дополнительных регулярных выражений при попытках подбора паролей.
# Формат регулярных выражений - PCRE.

regexp = sshd.*Illegal user S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp1 = sshd.*Failed password for (?:illegal user )?S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp2 = sshd.*error: PAM: authentication error for illegal user S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp3 = "sshd.*Failed keyboard-interactive/pam for S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})"
regexp4 = sshd.*Invalid user S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp5 = sshd.*error: PAM: authentication error for S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp6 = sshd.*Did not receive identification string from (d{1,3}.d{1,3}.d{1,3}.d{1,3})
regexp7 = sshd.*User S+ from (d{1,3}.d{1,3}.d{1,3}.d{1,3}) not allowed because not listed in AllowUsers

# Количество неудачных попыток входа в течении времени within_time,
# после которых bruteblock добавляет ip в таблицу ipfw2.

max_count = 2

# Время, в секундах в течении которого должны произойти max_count
# неудачных попыток входа.

within_time = 300

# Время жизни правила блокировки, по истечению которого bruteblockd
# удаляет правило из таблицы.

# 30 минут
reset_ip = 1800

# Номер таблицы ipfw2
ipfw2_table_no = 101

Отключить резолвинг ДНС-имен для ssh

# echo 'UseDNS no' >> /etc/ssh/sshd_config
# sh /etc/rc.d/sshd restart

3. /etc/syslog.conf

auth.info;authpriv.info |exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf

4. Добавляем в автозапуск.

# echo '# Syslogd settings change' >> /etc/rc.conf
# echo 'syslogd_flags="-c"' >> /etc/rc.conf
# sh /etc/rc.d/syslogd restart
# echo '# Bruteblockd' >> /etc/rc.conf
# echo 'bruteblockd_enable="YES"' >> /etc/rc.conf
# echo 'bruteblockd_table="101"' >> /etc/rc.conf
# echo 'bruteblockd_flags="-s 5"' >> /etc/rc.conf

5. Правило в файрвол.

# ipfw add 11 deny all from "table(101)" to me

6. Запускаем.

# sh /usr/local/etc/rc.d/bruteblockd start

7. Проверяем.

# tail -f /var/log/auth.log | grep bruteblock

Насколько полезным был этот пост?

Нажмите на звезду, чтобы оценить!

Средний рейтинг / 5. Голосов:

Пока оценок нет! Будьте первым, поставь свою оценку этому посту.

Мы сожалеем, что этот пост не был полезен для вас!

Давайте улучшим этот пост!

Теги

Оставить комментарий

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Подписаться  
Уведомление о
Back to top button
Close
Close