Защита средствами fail2ban на freebsd

Скачать Защита средствами fail2ban на freebsd
Недавно искали:

Itnull

Команда форума
Администратор
Регистрация
22.05.13
Сообщения
25.466
Реакции
9.450
Веб-сайт
itnull.me
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
Fail2Ban — простой локальный сервис, который просматривает логи на предмет попытки подоброать пароли к ssh, ftp, http-сервисам. Если такие попытки найдены, fail2ban блокирует ip-адрес источника. Сервис очень гибко настраивается, способен оповещать по email, писать лог, сбрасывать блокировку через заданное время и прочее.

1. Ставим:
Код:
# cd /usr/ports/security/py-fail2ban && make install clean
2. Добавляем в автозапуск:
Код:
# ee /etc/rc.conf
Код:
fail2ban_enable="YES"
3. Правим кофиг /usr/local/etc/fail2ban/jail.conf. Вначале идут дефолтные настройки, которые можно
переопределить в отдельных секциях.
Код:
[DEFAULT]
2    ignoreip = 127.0.0.1 192.168.1.0/24
3    # время бана в секундах
4    bantime  = 600
5    
6    # время проверки,за которое событие успеет повторится
7    findtime  = 900
8    
9    # максимальное число правонарушений
10    maxretry = 2
11    
12    # метод парсинга логов
13    backend = auto
14    usedns= no
15    
16    [ssh-ipfw]
17    enabled  = true
18    filter   = bsd-sshd
19    action   = bsd-ipfw[table=50]
20    #           sendmail[name=ssh, [email protected]]
21    logpath  = /var/log/auth.log
22    
23    [proftpd-ipfw]
24    enabled  = true
25    filter   = proftpd
26    action   = bsd-ipfw[table=51]
27    #           sendmail[name=proftpd, [email protected]]
28    logpath  = /var/log/auth.log
29    
30    [postfix-ipfw]
31    enabled  = true
32    filter   = postfix
33    action   = bsd-ipfw[table=52]
34    #           sendmail[name=postfix, [email protected]]
35    logpath  = /var/log/maillog
36    bantime  = 604800
37    maxretry = 3
38    
39    [wordpress]
40    enabled = true
41    filter = wordpress
42    action   = bsd-ipfw[table=53]
43    #           sendmail[name=wordpress, [email protected]]
44    logpath = /var/log/auth.log
4. Правим /usr/local/etc/fail2ban/action.d/bsd-ipfw.conf
Код:
1    [Definition]
2    actionstart =
3    actionstop =
4    actioncheck =
5    #
6    actionban = ipfw table <table> add <ip>
7    actionunban = ipfw table <table> delete <ip>
8    
9    [Init]
10    localhost = 127.0.0.
5. Ставим плагин WP fail2ban Cоздаём файл /usr/local/etc/fail2ban/filter.d/wordpress.conf
Код:
touch /usr/local/etc/fail2ban/filter.d/wordpress.conf
Код:
1    [INCLUDES]
2    #
3    before = common.conf
4    #
5    [Definition]
6    #
7    _daemon = wordpress
8    #
9    failregex = ^%(__prefix_line)sAuthentication failure for .* from $
10    #
11    ignoreregex =
6. Правим /etc/rc.firewall
Код:
1    #fail2ban table
2    sshd_ban_table="table(50)"
3    proftpd_ban_table="table(51)"
4    postfix_ban_table="table(52)"
5    wordpress_ban_table="table(53)"
6    
7    #fail2ban
8    ${fw} add 10 deny tcp from ${proftpd_ban_table} to me 21 via ${LanOut}
9    ${fw} add 11 deny tcp from ${sshd_ban_table} to me 22 via ${LanOut}
10    ${fw} add 12 deny tcp from ${postfix_ban_table} to me 25 via ${LanOut}
11    ${fw} add 13 deny tcp from ${wordpress_ban_table} to me 80 via ${LanOut}

7. Скрипт получения DNS имен из IP в таблице ipfw. Создаём файл dns.sh
Код:
1    touch dns.sh
view source
print?
1    #!/bin/sh
2    echo "Table 50 sshd"
3    ipfw table 50 list|awk -F '/' '{ print $1 }'| nslookup $@ |
4    grep "name =" | more
5    echo -e "\n"
6    echo -e "\n"
7    echo "Table 51 proftpd"
8    ipfw table 51 list|awk -F '/' '{ print $1 }'| nslookup $@ |
9    grep "name =" | more
10    echo -e "\n"
11    echo -e "\n"
12    echo "Table 52 postfix"
13    ipfw table 52 list|awk -F '/' '{ print $1 }'| nslookup $@ |
14    grep "name =" | more
15    echo -e "\n"
16    echo -e "\n"
17    echo "Table 53 wordpress"
18    ipfw table 53 list|awk -F '/' '{ print $1 }'| nslookup $@ |
19    grep "name =" | more
 
Назад
Сверху Снизу