Як захистити ssh за допомогою fail2ban - ubuntu

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

VPS, що має обидві конфігурацію, може бути атакований методом підбору ключів. fail2ban допомагає захистити віртуальні сервери. Програма працює шляхом сканування лог-файлів і реагує на такі порушення як, наприклад, повторювані невдалі спроби входу.

Крок 1: установка Fail2Ban

Щоб встановити Fail2Ban, використовуйте команду apt-get:

sudo apt-get install fail2ban

Конфігураційний файл fail2ban за замовчуванням знаходиться в /etc/fail2ban/jail.conf. Проте, конфігурація не повинно проходити в даному файлі, тому потрібно створити його локальну копію.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Після того як файл скопійований, можна внести всі необхідні зміни в новий файл jail.local. Багато сервісів, яким може знадобитися захист, вже внесені в даний файл. Кожен з них знаходиться у власному розділі, конфігурований і відключений.

Крок 3: конфігурація замовчувань в Jail.Local

Відкрийте новий конфігураційний файл fail2ban:

sudo nano /etc/fail2ban/jail.local

Перший розділ замовчувань охоплює основні правила, яким буде слідувати fail2ban. Якщо віртуального сервера необхідна більш потужний захист, можна самостійно налаштувати параметри в кожному розділі.

Розділ за замовчуванням можна побачити нижче:

[DEFAULT]
# "Ignoreip" can be an IP address, a CIDR mask or a DNS host
ignoreip = 127.0.0.1/8
bantime = 600
maxretry = 3
# "Backend" specifies the backend used to get files modification. Available
# Options are "gamin", "polling" and "auto".
# Yoh: For some reason Debian shipped python-gamin did not work as expected
# This issue left ToDo, so polling is default backend for now
backend = auto
#
# Destination email address used solely for the interpolations in
# Jail. configuration files.
destemail = root @ localhost

Наступний крок - встановити bantime (час бана), тобто, кількість секунд, протягом яких хост буде заблокований на VPS в разі порушення будь-якого з правил. Це особливо корисно в разі ботів, які відразу переходять до наступної мети, як тільки їх блокують. За умовчанням встановлено 10 хвилин, але можна збільшити дане значення до години (і більше).

Maxretry - це кількість невдалих спроб входу, які може зробити хост перш ніж буде знову заблоковано.

У рядку backend можна залишити значення

Додаткові відомості: розділ Actions

Розділ Actions знаходиться за розділом за замовчуванням. Він починається так:

#
# ACTIONS
#
# Default banning action (e.g. iptables, iptables-new,
# Iptables-multiport, shorewall, etc) It is used to define
# Action_ * variables. Can be overridden globally or per
# Section within jail.local file
banaction = iptables-multiport
# Email action. Since 0.8.1 upstream fail2ban uses sendmail
# MTA for the mailing. Change mta configuration parameter to mail
# If you want to revert to conventional 'mail'.
mta = sendmail
# Default protocol
protocol = tcp
[. ]

MTA відноситься до програми електронної пошти, яку fail2ban буде використовувати для відправки листів, щоб привернути увагу до шкідливого IP.

У рядку protocol TCP-протокол можна замінити на UDP, залежно від того, який з них повинен бути видимим fail2ban.

Крок 4 (додатковий): конфігурація розділу ssh-iptables в Jail.Local

Розділ подробиць SSH знаходиться в файлі конфігурації трохи нижче, і він уже налаштований і приведений в дію.

Хоча вносити будь-які зміни в даному розділі необов'язково, тут приведена докладна інформація про кожну його рядку.

[Ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6

Enabled просто вказує, що захист SSH включена. Щоб вимкнути її, замініть «true» на «false».

Рядок port позначає порт, за яким спостерігає fail2ban. Якщо на віртуальний сервер встановлений нестандартний порт, замініть номер порту відповідним

Рядок filter з встановленим за замовчуванням значенням «sshd» посилається на конфігураційний файл, який містить правила, які fail2ban використовує для пошуку відповідників. sshd вказує на /etc/fail2ban/filter.d/sshd.conf.

log path вказує на місцезнаходження журналу, відслідковується fail2ban.

Рядок max retry в розділі SSH має те ж визначення, що і рядок за замовчуванням. Проте, якщо ви дозволили кілька сервісів і хочете встановити індивідуальне значення для кожного, нове максимальну кількість повторних спроб для SSH можна встановити тут.

Крок 5: перезапуск Fail2Ban

Fail2Ban необхідно перезапускати щоразу як були внесені будь-які зміни в конфігурації:

sudo service fail2ban restart

sudo iptables -L