K
kenny
Гость
Исторически сложилось так что я на дух не переношу все что связано с Ms,моя любовь к unix-подобным системам в том что настроек ровно столько сколько у тебя знаний ну и конечно в гибкости операционной системы.
Сегодня мы поговорим о защите от брутфорса ssh на примере программы BruteBlock.
Ниже будет приведена установка,настройка в ос freebsd.
Приступим
!!!! Обновите порты !!!!
Установка
Ищим самы программу
Переходим и устанавливаем
Следующее что сделаем это приступим к настройки
Видим внутри примерно следующее
где
Правим /etc/syslog.conf
Должно получится следующее
Добавляем правила в фаервол
Редактируем rc.conf и запускаем демоны
Как советуют люди и я их понимаю, редактируем конфигурационный файл ssh
Смотрим логи
Сегодня мы поговорим о защите от брутфорса ssh на примере программы BruteBlock.
Ниже будет приведена установка,настройка в ос freebsd.
Приступим
!!!! Обновите порты !!!!
Установка
Ищим самы программу
Код:
test# whereis bruteblock
bruteblock: /usr/ports/security/bruteblock
Код:
cd /usr/ports/security/bruteblock && make install clean && rehash
Код:
ee /usr/local/etc/bruteblock/ssh.conf
Код:
# Sample configuration file for the OpenSSH daemon
# regexp rule. Please rember that you MUST specify only one match for
# ip address to block
#
# this regexp for the OpenSSH server matches lines like:
#
# comment: auth via key only
#sshd[72593]: Illegal user hacker from 1.2.3.4
#
# comment: pwd auth, but no such user
#sshd[72593]: Failed password for illegal user sammmm from 1.2.3.4
#
# comment: correct user, but wrong password
#sshd[72626]: Failed password for samm from 1.2.3.4
#
# comment: other messages
#sshd[41945]: error: PAM: authentication error for alice from 192.168.0.1
#sshd[41945]: error: PAM: authentication error for illegal user root from 192.168.0.1
#sshd[41945]: Failed keyboard-interactive/pam for invalid user root from 192.168.0.1 port 64507 ssh2
#sshd[16666]: Failed unknown for illegal user asdfasdfasd from 192.168.0.1 port 52652 ssh2
#sshd[16666]: Did not receive identification string from 192.168.0.1
#
regexp = sshd.*(?:Illegal|Invalid) user \S+ from (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
regexp1 = sshd.*Failed \S+ for (?:(?:illegal|invalid) user )?\S+ from (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
regexp2 = sshd.*error: PAM: authentication error for (?:(?:illegal|invalid) user )\S+ from (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
regexp3 = sshd.*Did not receive identification string from (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})
# Number of failed login attempts within time before we block
max_count = 4
# Time in seconds in which all failed login attempts must occur
within_time = 60
# Time in seconds to block ip in firewall
# 10 minutes
reset_ip = 600
# IPFW table number to add "bad" hosts
ipfw2_table_no = 1
У меня получилось следующееregexp - правила неправильной авторизации
max_count - сколько можно сделать ошибок
within_time -за какое време считается перебор, в данном примере надо сделать 4 ошибки за минуту
reset_ip - на сколько хост угадит в бан
ipfw2_table_no - номер таблице в фаерволе
Практически все уже готово последние штрихи# conf file kenny opennix.tula.su
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
#Кто знает пароли тот не делает больше двух ошибок
max_count = 2
# вполне достаточно 30 секунд
within_time = 30
# Убиваем на много
# Time in seconds to block ip in firewall
# много
reset_ip = 3000000
# у меня номер таблици 10, первая свободная
ipfw2_table_no = 10
Правим /etc/syslog.conf
Должно получится следующее
Код:
test# cat /etc/syslog.conf |grep auth
auth.info;authpriv.info /var/log/auth.log
auth.info;authpriv.info |exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf
Код:
ipfw add 11 deny all from "table(10)" to me
ipfw add 11 deny all from me to "table(10)"
Код:
echo 'syslogd_flags="-c"' >> /etc/rc.conf
echo 'bruteblockd_enable="YES"' >> /etc/rc.conf
echo 'bruteblockd_table="10"' >> /etc/rc.conf
echo 'bruteblockd_flags="-s 5"' >> /etc/rc.conf
/etc/rc.d/syslogd restart
/usr/local/etc/rc.d/bruteblockd start
Код:
echo 'UseDNS no' >> /etc/ssh/sshd_config
Вот теперь 85.17.76.159 посидит в банеJul 5 23:34:49 test sshd[31345]: Invalid user oracle from 85.17.76.159
Jul 5 23:34:49 test sshd[31348]: Invalid user pener from 85.17.76.159
Jul 5 23:34:49 test bruteblock[31347]: Adding 85.17.76.159 to the ipfw table 10