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

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

Ставим:

sudo 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

Перезапускаем fail2ban:

/etc/init.d/fail2ban restart

У меня нормально fail2ban не завёлся, вылетала ошибка, кусочек лога:

fail2ban.actions.action: ERROR  iptables -N fail2ban-ssh

Чтобы решить эту проблему открываем файлик /etc/fail2ban/action.d/iptables-multiport.conf и находим там строчку actionstart и приводим этот раздел к такому виду:

actionstart = sleep ${RANDOM:0:1}.${RANDOM: -1:1}
	iptables -N fail2ban-<name>
	iptables -A fail2ban-<name> -j RETURN
	iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>

Потом находим actionstop и приводим к виду:

actionstop = sleep ${RANDOM:0:1}.${RANDOM: -1:1}
	iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
	iptables -F fail2ban-<name>
	iptables -X fail2ban-<name>

После этого перезагружаем

/etc/init.d/fail2ban reload

и радуемся!


Конфигурируем для 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

Редактируем jail.conf:

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

Перезапускаем fail2ban:

/etc/init.d/fail2ban restart

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

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

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

Проверить конфигурацию:

fail2ban-client -d

一步一步地会到目的

I do not smoke or drink



Search for Extra-Terrestrial Intelligence at Home
Search for Extra-Terrestrial Intelligence at Home

User signature graphic BOINC Stars

Power by BOINC


International Space Station
Прямая трансляция переговоров космонавтов МКС с ЦУП.
Только голос | Голос и Видео
Говорят они не всегда, только по необходимости, так что не удивляйтесь, если на канале будет тишина.

Ubuntu 14.04 (Trusty Tahr) Daily Build

>>> Старые релизы Ubuntu <<<

Оглавление

Cisco Systems

Связь через консольный кабель
Сброс пароля на Catalyst 2950
Создание VLAN на Catalyst 2950
Создание и управление стеками коммутаторов

FreeBSD 8.2 - Сервер с "нуля"

Установка
Начальная настройка
Сборка ядра (c Kernel NAT)
Named
OpenVPN

Ubuntu Server

Настраиваем WEB-сервер
Apache2 + PHP5 + MySQL + phpMyAdmin
Пример для виртуальных хостов

VSFTPd + SSL Не закончено!
Установка TFTP сервера (tftpd)
Установка Midnight Commander
Установка Deluge с Web-интерфейсом
Бэкапим MySQL базы
MySQL шпаргалки
Резервное копирование - м1
Простой шлюз на Ubuntu Server
Сетевое радио на Icecast2
Объединение HDD дисков
Управление автозагрузкой
Настройка сети вручную
Защита от брутфорса
ssh, ftp, http: fail2ban

OpenVPN Installation Ubuntu

Ubuntu Desktop

Настройка Ubuntu Desktop 10.10
Раскукоживаем Менеждер обновлений
Раскладка - флажки вместо текста
QutIM - клиент ICQ, Jabber, MAgent, IRC
Температура железа на панеле

Горячие клавиши в Ubuntu Unity

Драйвера NVIDIA в Ubuntu
Радио лоток в области уведомлений
SSHFS - Монтируем удаленную FS
Резервное копирование Ubuntu Desk
Загрузочная флешка Ubuntu Server
Загрузочная USB из под Windows
Как найти нужный PPA-репозиторий
Видеонаблюдение под Ubuntu 10.04 для "чайников"
Видеонаблюдение легально!

Linux

Полезные команды Linux
Конфиг железа в Ubuntu
Мониторинг хостов в сети
Разное на одном листе
inotify - это подсистема ядра Linux, которая позволяет получать уведомления об изменениях в файловой системе.

Полезное под Windows

FTPS - защищённое соединение
PuTTY - Как сохранить настройки
VirtualBox - Клонирование виртуальных машин.

Скриптовые языки

AWK - Язык обработки структурированных текстов

Чит-листы или Шпаргалки

pdf css_cheat-sheet ver.1
pdf css_cheat-sheet ver.2
pdf php_cheat-sheet ver.1
pdf php_cheat-sheet ver.2
pdf javascript_cheat-sheet ver.1
pdf mysql_cheat-sheet ver.1
pdf html_cheat-sheet ver.1
pdf regular_expressions ver.1
pdf regular_expressions ver.2
pdf mod_rewrite_cheat-sheet ver.1
pdf mod_rewrite_cheat-sheet ver.2
pdf sql_server_cheat-sheet ver.1
pdf microformats_cheat-sheet ver.1
pdf seo_cheat-sheet ver.0.4
pdf wordpress_designer ver.1

Последовательное соединение проводников
Последовательное соединение проводников

Параллельное соединение проводников
Параллельное соединение проводников


Gedit style schemes

xml darktango.xml
xml emacs-darkslategrey.xml

HTML заметки

Разные валидные фичи
10 преступлений с HTML тегами
Заметки по установке
MaxSite CMS версия 0.42

Горизонтальное CSS Меню
.htacces паролим сайт
Противоугонный пакет

Коллекция jQuery plagins

Quovolver [?]
Custom Animation Banner [?]
Style my tooltips [?]


ipv6.nic.ru

QR Coder.ru
Генератор QR-кодов


2:5020/1209.12@FidoNet

Logo WebMoney
WMIDwmid 358066815673
pursewmzZ452007172362
wmrR568219491953
wmeE770110075404

Logo Yandex.Money
 Yndex purse4100178599238



Мои телефоны:
  1. Билайн AMPS/DAMPS - модели ERICSSON DH318,
    ERICSSON DH618
  2. Билайн GSM - Siemens C25 корпус "Хамелион" (тариф "Серебрянный")
  3. Мегафон GSM - SAMSUNG SGH-T400
  4. Мегафон GSM / AIS GSM Thailand - Qtek s100
  5. Мегафон GSM - SAMSUNG SGH-i900 WiTu 8Gb
  6. Мегафон GSM - HTC Wildfire S
  7. Мегафон GSM - HTC One S
  8. Мегафон GSM / Теле2 GSM - ASUS Zenfone 2 ZE550ML
  9. Мегафон GSM - Xiaomi Redmi Note 4 64Gb+4Gb