Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Компьютеры > Операционные системы > Linux
Расширенный поиск

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 19:43 Вверх   #1
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
Хорошо Защита от брутфорса ssh, ftp, http: fail2ban

Защита от брутфорса ssh, ftp, http: fail2ban

fail2ban анализирует логи, и если встречает последовательности, определяемые регулярными выражениям, применяет правила iptables

Ставим
apt-get install fail2ban

Конфигурируем
nano /etc/fail2ban/jail.conf

Указываем свой почтовый ящик для алертов
destemail = root@yourdomain.tld

Если есть необходимость, то можно в включить логирование пакетов, попавших в бан
banaction = iptables-multiport-log

По умолчанию, проверяется и банится только ssh
В секциях, которые нам необходимы ставим
enabled = true

Например:
[proftpd]

enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 6

Для VPS openvz:
на ноде делаем следующее:

cp /etc/fail2ban/action.d/iptables-allports.conf /etc/fail2ban/action.d/iptables-allports-vps.conf


Копируем строки содержащие INPUT, и в скопированном INPUT меняем на FORWARD
и меняем на vps
также, в actionstart добавим проверку на существование записей в цепочках, чтобы начальные правила не дублировались.

nano /etc/fail2ban/action.d/iptables-allports-vps.conf

[Definition]
actionstart = iptables -N fail2ban-vps
iptables -n -L fail2ban-vps | grep RETURN || iptables -A fail2ban-vps -j RETURN
iptables -n -L INPUT | grep fail2ban-vps || iptables -I INPUT -p <protocol> -j fail2ban-vps
iptables -n -L FORWARD | grep fail2ban-vps || iptables -I FORWARD -p <protocol> -j fail2ban-vps

actionstop = iptables -D INPUT -p <protocol> -j fail2ban-vps
iptables -D FORWARD -p <protocol> -j fail2ban-vps
iptables -F fail2ban-vps
iptables -X fail2ban-vps

actioncheck = iptables -n -L INPUT | grep -q fail2ban-vps
iptables -n -L FORWARD | grep -q fail2ban-vps

actionban = iptables -I fail2ban-vps 1 -s <ip> -j DROP
actionunban = iptables -D fail2ban-vps -s <ip> -j DROP

[Init]
name = default
protocol = tcp
port = anyport

nano /etc/fail2ban/jail.conf

bantime = 3600
maxretry = 10
banaction = iptables-allports-vps
port = anyport

[ssh-local]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log

[1001-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1001/var/log/auth.log

[1001-proftpd]
enabled = true
filter = proftpd
logpath = /vz/private/1001/var/log/proftpd/proftpd.log

[1002-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1002/var/log/auth.log

[1002-proftpd]
enabled = true
filter = proftpd
logpath = /vz/private/1002/var/log/proftpd/proftpd.log

[1003-ssh]
enabled = true
filter = sshd
logpath = /vz/private/1003/var/log/auth.log

Теперь, при попытке перебора паролей на SSH или FTP, кулхацкеру будет закрыт TCP на все VPSы и ноду. Можно еще и UDP добавить, но в моем случае, в этом не было необходимости.

для проверки, реагиреут ли fail2ban на записи в логах можно воспользоваться утитлтой fail2ban-regex:

fail2ban-regex "line" "failregex"
fail2ban-regex /var/log/auth.log "Failed [-/\w]+ for .* from "
fail2ban-regex /vz/private/1002/var/log/auth.log /etc/fail2ban/filter.d/sshd.conf

Проверить конфигурацию
fail2ban-client -d

Автор: KRoM
  Ответить с цитированием
Старый 15.06.2010, 19:44 Вверх   #2
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
По умолчанию

Попробую на локалке прицепить для начала эту фишку, потом на сервак наверно поставлю )
  Ответить с цитированием
Старый 24.06.2010, 14:36 Вверх   #3
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
Хорошо

В дополние к материалм из первого сообщения добавляю новые материалы, для внесеняи полной ясности в настройку Fail2ban.

Итак, начнем сначала. Устанавливаем fail2ban:

sudo apt-get install fail2ban

Настраиваем fail2ban через правку конфига: jail.conf (/etc/fail2ban/jail.conf)

[Definition]

loglevel = 3 # уровень детализации логов (1-4)
logtarget = /var/log/fail2ban.log # лог-файл
socket = /var/run/fail2ban/fail2ban.sock # сокет демона



[DEFAULT]

ignoreip = 127.0.0.1 212.26.248.138 # Игнорируемые адреса - эти адреса не будут забанены никогда
bantime = 600 # Время бана в секундах
maxretry = 3 # Число разрешенных попыток по умолчанию

backend = polling # Способ слежения за изменением логов.
# В большинстве случаев нас устроит дефолтное значение polling (допустимы также gamin и auto).
# С методом gamin в Debian существуют некоторые проблемы.


destemail = user@test.ru # e-mail для отчетов о банах
banaction = iptables-multiport # С помощю чего блокируем
protocol = tcp # Протокол

# Действие - забанить и выслать whois информацию о брутфорсере на указанный выше e-mail
action = iptables[name=%(__name__)s, port=%(port)s]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]


# Далее идут настройки для каждого из сервисов

[ssh]

enabled = true # разрешен
port = ssh # можно указывать числовое значение (в данном случае - 22)
filter = sshd # название фильтра (см. директорию /etc/fail2ban/filter.d)
logpath = /var/log/auth.log # к какому лог-файлу применить фильтр
maxretry = 5 # разрешенное число неудачных попыток

# Список сервисов можно расширить самому (изучайте регулярные выражения!)

# Нашел в интернете готовый конфиг из которого выкинуто много мне ненужного для большинства серверов, т.к. по дефолту тут масса всего.

[pam-generic]
enabled = true
filter = pam-generic
port = all
banaction = iptables-allports
port = anyport
logpath = /var/log/auth.log
maxretry = 6

[xinetd-fail]

enabled = false
filter = xinetd-fail
port = all
banaction = iptables-multiport-log
logpath = /var/log/daemon.log
maxretry = 2

[ssh-ddos]

enabled = true
port = ssh
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 3

[apache]

enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3

[apache-multiport]

enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache*/*error.log
maxretry = 3

[apache-noscript]

enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache*/*error.log
maxretry = 3

[apache-overflows]

enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache*/*error.log
maxretry = 2

[proftpd]

enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = proftpd
logpath = /var/log/proftpd/proftpd.log
maxretry = 3
После конфигурирования сервиса нужное его перезапустить или запустить (если он небыл запущен). Список дополнительных команд которыйе могут пригодится:
  • invoke-rc.d fail2ban start # Старт сервиса fail2ban
  • /etc/init.d/fail2ban restart Перезапуск fail2ban
  • service fail2ban restart Перезапуск fail2ban

Материалы слиты с разных сайтов и собраны в кучу для удобства.

Последний раз редактировалось Serberg; 01.07.2010 в 01:41..
  Ответить с цитированием
Старый 26.11.2011, 16:13 Вверх   #4
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
Хорошо Установка fail2ban на CentOS 5.6

Установка fail2ban на CentOS 5.6

Установка немного отличается от убунту, но вроде разобрался и все заработало.

Итак, заходим под SSH на сервер. Предполагается что Вы в корневой директории. Переходим в папку tmp

cd /tmp

Качаем файл2бан

wget http://sourceforge.net/projects/fail...r.bz2/download

Извлекаем архив:

tar -xf fail2ban-0.8.4.tar.bz2

Переходим в папку с fail2ban:

cd fail2ban-0.8.4

Устанавливаем:

python setup.py install

Инициализируем, добавляем в автозагрузку и стартуем сервис:

cp files/redhat-initd /etc/init.d/fail2ban

chkconfig --add fail2ban

chkconfig fail2ban on

service fail2ban start

На последнюю команду должны получить ответ:

Код:
Starting fail2ban:                                         [  OK  ]
Значит все пучком, завелось.

Конфиг программы находится тут: /etc/fail2ban/jail.conf

Единственное что там стоит поправить, это файл логов в разделе:

Код:
[ssh-iptables]
 
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=tvoe_milo@mail.ru, sender=fail2ban]
logpath  = /var/log/secure
maxretry = 5
logpath = /var/log/secure - изначально обычно стоит auth.log, что не верно.

После правки конфига перезапускаем fail2ban:

service fail2ban restart

Все. параметры самого конфига в постах выше в данной теме.
  Ответить с цитированием
Старый 22.12.2011, 19:11 Вверх   #5
Уважаемая личность
 
Аватар для FreeD
FreeD вне форума
Доп. информация
По умолчанию

Еще есть APF+BFD, проще в установке, но по сути те же функции. APF - это надстройка над iptables, а BFD - это антибрутфорс.
  Ответить с цитированием
Ответ

Метки
fail2ban, ssh, защита

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Http прокси из компьютера на ubuntu 9.04 boxx Linux 1 03.04.2011 14:18
Вопрос по хостингу http://nextmail.ru kaba4ok Хостинг (Hosting) 0 05.03.2011 09:02
Помогите разобраться с установкой Fail2ban Serberg Linux 9 26.06.2010 00:20
[Статья] Защищаем SSH от брутфорса на любом порту Serberg Linux 0 19.06.2010 00:27
[Статья] Коды ошибки http веб-сервера Serberg Сайтостроение 0 26.05.2010 17:35


Текущее время: 01:23. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.13180 секунды с 14 запросами