Ноя 112012
 


На только что переданной мне пару впс`ок с установленной системой FreeBSD 9 на них, решил обезопасить ssh от подбора пароля.
Выбор пал мой на порт fail2ban, в Linux я им пользуюсь, он меня устраивал всем.
Конечно для большой нагрузки он не годиться, с выше 10тыс. операций, он не сможет обработь, будет пропускать.
Но все же, мне его хватило.
Если идет жесткий подбор свыше 10 тыс, то уже разумнее установить ipsec.
С помощью fail2ban не только ssh можно защищать, но и ftp, web, voip и т.д.
Приступим.

# cd /usr/ports/secuity/py-fail2ban && make install clean

Разрешим запуск сервису fail2ban.

# echo 'fail2ban_enable="YES"' >> /etc/rc.conf

Установили порт, теперь его нужно настроить.
Мне нужно было настроить только защиту ssh, вы можете не только ssh обезопасить.

# cat /usr/local/etc/fail2ban/jail.conf 
[DEFAULT]
# Укажим к кам ИП не будет распространяться правило блокировки.
ignoreip = 127.0.0.1 192.168.1.0/24 41.158.24.78
# На какой время баним.
bantime = 6000
# В какой промежуток времени будет отлавливать брут, то-есть если за 3 минуты  пришло свыше 5 не правельных попыток ввода логина, то бан.
findtime = 180
# Укажим сколько неверных попыток разрешается.
maxretry = 5
backend = auto

[ssh-ipfw]
# Включаем фильтр.
enabled  = true
# используем фильтр и примеров в conf.d
filter   = bsd-sshd
# Указываем профиль bsd-ipfw.
action   = bsd-ipfw[table=100, tablearg=22]
# Уведомляем себя, что фильтр заблокировал вражеский ИП адрес.
           sendmail-whois[name="SSH,IPFW", dest=useris@mail.ccom]
# Лог бана
logpath  = /var/log/auth.log
# Тут можно индивидуально указать какие ип не будет банить, чисто для этого правила.
ignoreip = 127.0.0.1 127.21.151.8

Теперь подредактируем наш фильтр.

# nano /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf
# Баним ИП адрес, при срабатывании ИП добавляется в таблицу table.
actionban = /sbin/ipfw table <table> add <ip> <tablearg>
# Удаляем IP из таблицы table.
actionunban = /sbin/ipfw table <table> delete <ip>
# У меня ssh весит на порту 22999, так что указываем его мониторинг.
port = 22999

Осталось только подредактировать наш брандмауэр ( ipfw ).
Добавим такую ствройку к скрипту ipfw, я ее добавил после loopbaсk петли.

# cat /etc/ipfw.rules | grep table
$cmd add deny ip from table'(100)' to any

Запустим сервис.

# /usr/local/etc/rc.d/fail2ban start

Вот и все.

 Leave a Reply

(required)

(required)

37 Запросов к базе. 0,357 Генерации страницы, 36MB Использование памяти.
Вы зашли с IP: 54.198.210.67