Если кого то раздражают брутчики или из за них не спиться ночами, то предлагаю защититься от них с помощью Bruteblock
Признак брута, это записи в логах /var/log/auth.log следующего вида
Apr 8 12:33:55 office sshd[52421]: error: PAM: authentication error for illegal user admin from mailserver.proscenio.it
Apr 8 12:33:55 office sshd[52421]: Failed keyboard-interactive/pam for invalid user admin from 62.48.34.204 port 37057 ssh2
Apr 8 12:34:21 office sshd[52425]: Invalid user admin from 213.155.3.16
Apr 8 12:34:21 office sshd[52425]: error: PAM: authentication error for illegal user admin from 213.155.3.16
Apr 8 12:34:21 office sshd[52425]: Failed keyboard-interactive/pam for invalid user admin from 213.155.3.16 port 48258 ssh2
Apr 8 12:35:11 office sshd[52443]: Invalid user admin from 189.17.110.2
Защищаемся от брута на стандартном порту 22 , Bruteblock'ером . Ставить будем из портов.
Переходим в папку и устанавливаем
1
2 |
cd /usr/ports/security/bruteblock/
make install clean |
Идем в /etc/syslog.conf и добавляем строчку
1
2 |
!*
auth.info;authpriv.info |exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf |
В /etc/rc.conf добавляем следующее
1
2 3 4 5 6 |
syslogd_flags="-c" bruteblockd_enable="YES" bruteblockd_table="1" # номер таблицы ipfw блокированых айпишек bruteblockd_flags="-s 5" |
Открываем /etc/ssh/sshd_config и добавляем
1
2 3 |
UseDNS no |
Лезем в настройку Брутблокера /usr/local/etc/bruteblock/ssh.conf и настраиваем
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# 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 = 4
# Время, в секундах в течении которого должны произойти max_count # неудачных попыток входа. within_time = 240 # Время жизни правила блокировки, по истечению которого bruteblockd # удаляет правило из таблицы. # 10 минут reset_ip = 600 # Номер таблицы ipfw2 ipfw2_table_no = 1 |
В фаервол добавим правило на блок IP из таблицы 1
Выполняем команду
1 |
ipfw add 5 deny all from table\(1\) to me 22 |
Все готово, осталось перезапустить сервисы, поочередно выполняем команды
1
2 3 |
/etc/rc.d/sshd restart
/etc/rc.d/syslogd restart /usr/local/etc/rc.d/bruteblockd start |
Уря, можно и покурить сходить.
==========================================
Если при запуске /etc/rc.d/syslogd restart
Stopping syslogd.
ln: /dev/log: Operation not permitted
Starting syslogd.
Подправьте в /etc/rc.d/syslogd вместо /dev/log на var/log
И запустите заново.
==========================================