Как защитить SSH с помощью fail2ban в CentOS

{title}

{title}


Серверы не существуют изолированно, и большинство из них устанавливаются и настраиваются только с помощью базовой конфигурации SSH, которая может быть уязвима для атак методом перебора.
Утилита fail2ban позволяет автоматически защищать сервер от предполагаемых атак и вредоносного программного обеспечения.
Программа работает путем сканирования файлов журнала и помогает реагировать на такие действия, как повторные неудачные попытки подключения.
Мы начнем установку fail2ban
Поскольку fail2ban недоступен в CentOS, мы должны начать с загрузки репозитория:
 rpm- Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 

Затем мы устанавливаем fail2ban из командной строки с помощью следующей команды
 ням установить fail2ban 

Копируем файл конфигурации
Файл конфигурации fail2ban по умолчанию находится в /etc/fail2ban/jail.conf. Однако в этом файле не следует выполнять настройку, а вместо этого следует создать его локальную копию для резервного копирования.
 cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.local 

Как только файл скопирован, мы можем внести все изменения в новый файл jail.local. Многие из возможных служб, которые могут нуждаться в защите, уже заданы в этом файле. Каждый из них находится в своем собственном разделе, настроен и выключен.
Настройте значения по умолчанию в Jail.Local
Откройте новый файл конфигурации fail2ban:
 vi / etc / fail2ban / jail.local 

Первый раздел настроек по умолчанию охватывает основные правила, которым будет следовать fail2ban. Если вы хотите настроить наиболее персонализированную защиту вашего виртуального частного сервера, вы можете настроить детали каждого раздела.
Вы можете увидеть в разделе по умолчанию некоторые детали, такие как следующие.
 [ПО УМОЛЧАНИЮ] # "Ignoreip" может быть IP-адресом, маской CIDR или узлом DNS. Fail2ban не # запрещает серию, которая соответствует адресу в этом списке. Несколько адресов могут быть # Определены с помощью разделителя пробелов. ignoreip = 127.0.0.1 # "Bantime" - это количество секунд, в течение которых хосту запрещен доступ или он заблокирован. bantime = 3600 # Время в секундах, в течение которого хост будет заблокирован, если он выполнит максимальное количество неудачных запросов. findtime = 600 # «Maxretry» - это количество сбоев, разрешенных до того, как его заблокировали. maxretry = 3 

Введите свой IP-адрес в строке персонала ignoreip. Вы можете разделить каждый адрес пробелом. IgnoreIP вносит в белый список определенные IP-адреса и следит за тем, чтобы они не были исключены из вашего VPS. Включение вашего адреса гарантирует, что вы случайно не запретите себе собственный виртуальный частный сервер.
Следующим шагом является определение времени запрета, количества секунд, в течение которых хост падает на сервере, если они нарушают какое-либо из правил. Это особенно полезно в случае роботов, которые когда-то запрещали доступ, просто переходят к следующей цели. Значение по умолчанию составляет 10 минут, вы можете увеличить его до одного часа, если хотите.
Maxretry - это число неверных попыток доступа, которые хост может предпринять до того, как его попытки доступа будут заблокированы на время запрета.
Время поиска относится к тому времени, когда хост должен ввести значение по умолчанию, равное 10 минутам, что означает, что если была предпринята попытка получить доступ к серверу с хоста, и он не смог, войти в систему, превышающее максимальную сумму 3 раза в назначенные 10 минут ваш IP будет заблокирован, и вы не сможете получить доступ.
Настройте раздел ssh - iptables в Jail.Local
Раздел сведений о SSH находится чуть ниже в конфигурации и уже установлен и активирован. Хотя от вас не требуется вносить какие-либо изменения в этот раздел, вы можете найти подробности о каждой строке ниже.
 [ssh - iptables] включен = истинный фильтр = действие sshd = iptables [имя = SSH, порт = ssh, протокол = tcp] sendmail-whois [имя = SSH, dest = root, ] logpath = / var / log / secure maxretry = 5 

Включено означает, что защита SSH включена. Вы можете отключить его словом «ложь».
Фильтр, который вы используете по умолчанию для sshd, ссылается на файл конфигурации, который содержит правила, в которых fail2banuses находят совпадения. Название является сокращенной версией расширения файла. Например, это относится к sshd /etc/fail2ban/filter.d/sshd.conf
Действие, описывает шаги, которые fail2ban предпримет, чтобы заблокировать соответствующий IP-адрес. Как и запись фильтра, каждое действие ссылается на файл в каталоге action.d. Действие запрета по умолчанию, iptable можно найти по адресу /etc/fail2ban/action.d/iptables.conf
В iptables вы можете настроить еще больше fail2ban. Например, если вы используете нестандартный порт, вы можете изменить номер порта в квадратных скобках на высоту, сделав линию обзора того же семейства:
например. iptables [имя = SSH, порт = 30000, протокол = tcp]
Вы также можете изменить протокол с TCP на UDP на этой линии, в зависимости от того, какой из них вы хотите fail2ban для мониторинга.
Если на виртуальном частном сервере настроен почтовый сервер, fail2ban может отправить вам электронное письмо, когда IP-адрес запрещен. В случае пропуска sendmail-whois ссылается на действия, расположенные в / etc / fail2ban / action.d / sendmail-whois.conf.
Путь к реестру относится к местоположению реестра, который будет отслеживать fail2ban.
Линия максимальной повторной попытки в разделе SSH имеет то же определение, что и опция по умолчанию. Однако, если служба была включена, и вы хотите иметь конкретные значения для каждого из них, вы можете установить новую максимальную сумму повторов для SSH здесь.
Перезапустите fail2ban
После внесения любых изменений в конфигурацию fail2ban всегда обязательно перезапускайте fail2ban:
 sudo перезапустить сервис fail2ban 

Вы можете увидеть правила, которые fail2ban вводит в действие в таблице IP:
 Iptables- L 

  • 0