Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Защита SSH с помощью Fail2ban

  1. Установка Fail2ban
  2. Основы Fail2ban
  3. Настройка тюрьмы
  4. Настройка действия
  5. Блокировка повторных преступников с несколькими тюрьмами
  6. Заключение

SSH позволяет войти на удаленный компьютер или сервер и управлять им через интерфейс командной строки

SSH позволяет войти на удаленный компьютер или сервер и управлять им через интерфейс командной строки. Тем не менее, потому что SSH открыт для Интернета; Злоумышленники могут попытаться войти, используя различные комбинации имени пользователя и пароля.

Хороший способ защитить SSH - запретить вход по IP-адресу, если слишком много неудачных попыток входа. Для этой цели вы можете использовать пакет с именем fail2ban, и он работает с минимальной конфигурацией. Кроме того, вы можете даже настроить Fail2ban для защиты других приложений, таких как веб-серверы ,

Мы расскажем, как защитить SSH с помощью Fail2ban в этом посте. Эти инструкции должны работать на современных версиях Ubuntu (16.04 и выше), Debian и CentOS 7.

Установка Fail2ban

В Debian и Ubuntu вы можете установить Fail2ban с:

Обновление sudo apt Установка sudo apt fail2ban

В CentOS вы должны сначала включить EPEL репозиторий и установите Fail2ban.

sudo yum -y установить epel-release sudo yum -y установить fail2ban

Теперь создайте /etc/fail2ban/jail.local с помощью текстового редактора, такого как nano:

sudo nano /etc/fail2ban/jail.local

В текстовом редакторе введите следующий текст:

[sshd] enabled = true banaction = iptables-multiport

Сохраните содержимое файла и выйдите из текстового редактора. Затем включите службу Fail2ban и запустите ее с помощью:

sudo systemctl включить fail2ban sudo systemctl перезапустить fail2ban

Это оно! В этой минимальной конфигурации Fail2ban заблокирует IP-адрес на 10 минут, если он обнаружит пять неудачных попыток входа в систему за 10-минутный период.

Основы Fail2ban

Так как это работает? Проще говоря, Fail2ban - это демон, который отслеживает журналы и выполняет действия на основе их содержимого. Это обусловлено тремя типами конфигурации:

  • Фильтры определяют определенные шаблоны текста, которые Fail2ban должен распознавать в файлах журнала.
  • Действия - это то, что может сделать Fail2ban.
  • Джейлы сообщают Fail2ban о соответствии фильтра в некоторых журналах. Когда количество совпадений выходит за пределы определенного предела, указанного в тюрьме, Fail2ban выполняет действие, указанное в тюрьме.

Fail2ban поставляется с джейлом, который инструктирует его просматривать системные журналы и предпринимать действия против атак на SSH. Действие по умолчанию (которое обсуждается позже подробно) добавляет Iptables правила, чтобы заблокировать злоумышленников.

В предыдущем разделе мы установили для параметра «enabled» тюрьмы «sshd» значение true, чтобы Fail2ban мог блокировать эти атаки. В следующем разделе мы увидим, как вы можете настроить некоторые аспекты Fail2ban.

Настройка тюрьмы

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

Скажем, вы хотите заблокировать IP-адреса на день, если они попытались сделать 10 попыток входа в систему в течение 12 часов. Для этого откройте файл /etc/fail2ban/jail.local. Ранее мы установили настройку «включён» в этом файле. Теперь мы добавим следующие настройки в конец файла:

maxretry = 10 findtime = 43200 bantime = 86400

Файл будет выглядеть так:

[sshd] enabled = true banaction = iptables-multiport maxretry = 10 findtime = 43200 bantime = 86400

Вот:

  • maxretry контролирует максимальное количество разрешенных попыток.
  • findtime указывает временное окно (в секундах), которое следует учитывать для запрета IP. (43200 секунд - 12 часов)
  • bantime указывает временное окно (в секундах), в течение которого IP-адрес будет заблокирован (86400 секунд - 24 часа).

Если вы переместили SSH на другой порт, вы также можете указать номер порта с помощью port = <номер_порта> в этом файле.

Перезапустите Fail2ban, чтобы эти изменения вступили в силу с помощью следующей команды:

перезапуск sudo systemctl fail2ban

Настройка действия

В разделе «Установка Fail2ban» мы настроили Fail2ban для использования действия «iptables-multiport». По умолчанию он отклоняет пакеты с сообщением «Порт недоступен». Если вы хотите отбросить пакеты, а не отклонять их, создайте /etc/fail2ban/action.d/iptables-common.local и введите следующее:

[Init] blocktype = DROP

Если вы хотите выполнить полностью настраиваемое действие, вы должны сначала определить файл действия в /etc/fail2ban/action.d/my-action.local. (Вы можете назвать файл как угодно, если он имеет расширение .local.) Типичный файл действий выглядит следующим образом:

[Определение] actionstart = ... actionstop = ... actioncheck = ... actionban = ... actionunban = ...

Как следует из их имен, actionstart и actionstop позволяют вам указать команды инициализации, которые будут запускаться при запуске и завершении работы Fail2ban. actionban и actionunban определяют команды, которые будут выполняться, когда Fail2ban хочет заблокировать IP. Кроме того, Fail2ban может также потребоваться проверить, заблокирован ли уже IP-адрес, и команда, указанная в actioncheck, помогает ему в этом.

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

При указании этих команд вы можете использовать заполнитель <ip>, чтобы получить IP-адрес злоумышленника.

После того, как вы написали свой файл действий, в SSH-тюрьме, определенной в /etc/fail2ban/jail.local, вы можете установить действие, установив следующее:

banaction = my-action

Блокировка повторных преступников с несколькими тюрьмами

Как администратор сервера, вы, возможно, заметили, что есть некоторые IP-адреса, которые продолжают перебирать грубо, несмотря на запреты. Вы можете обойти эту проблему, установив низкое значение maxretry и findtime и высокое значение bantime, но это рискует заблокировать законных пользователей. К счастью, вы можете заблокировать эти атаки, настроив несколько тюрем.

В нашем примере мы определим тюрьму с именем sshlongterm. Он заблокирует IP-адрес на неделю, если в течение 3 дней было совершено 35 неудачных попыток входа.

Однако, прежде чем мы начнем, нам нужно настроить джейл по умолчанию. Откройте /etc/fail2ban/jail.conf и найдите строку, содержащую только [sshd]. Конфигурация по умолчанию упоминается ниже этой строки. В Ubuntu 16.04 конфигурация по умолчанию выглядит следующим образом:

[sshd] port = ssh logpath =% (sshd_log) s

Скопируйте эти правила в /etc/fail2ban/jail.local в соответствии с определением тюрьмы sshlongterm. Файл должен выглядеть примерно так:

[sshd]; правила для тюрьмы SSH по умолчанию [sshlongterm] port = ssh logpath =% (sshd_log) s

Теперь вам нужно установить основные правила для тюрьмы. Это включает в себя настройку типа фильтра, а также значений для maxretry, findtime и bantime. Добавьте следующие строки:

banaction = iptables-multiport maxretry = 35 findtime = 259200 bantime = 608400 enabled = true filter = sshd

Эти настройки позволяют выполнить до 35 неудачных попыток входа в систему в течение 3 дней, а затем блокировать IP на неделю.

Полная тюрьма будет выглядеть так:

[sshlongterm] port = ssh logpath =% (sshd_log) s banaction = iptables-multiport maxretry = 35 findtime = 259200 bantime = 608400 включено = true filter = sshd

Перезапустите fail2ban, чтобы эти изменения вступили в силу.

Тюрьма по умолчанию, а также тюрьма sshlongterm теперь должны работать совместно. Краткосрочные атаки будут обрабатываться тюрьмой по умолчанию, а долгосрочные атаки - нашей собственной тюрьмой.

Заключение

Как мы уже видели, Fail2ban защищает SSH сразу. С небольшой настройкой, это может сделать массовые атаки грубой силой тривиальной проблемой.

Если вам понравился этот пост, пожалуйста, поделитесь им 🙂

Похожие

fail2ban: для SSH и не только
... ban - это один из нескольких инструментов, предназначенных для защиты других сервисов путем блокировки нежелательных и, возможно, повторяющихся действий. Наиболее распространенным вариантом его использования, вероятно, является защита SSH-сервера от грубых атак, когда неоднократно неудачные попытки входа в систему будут щедро вознаграждены запретом брандмауэра iptables или каким-либо другим вариантом блокировки или нулевой маршрутизацией. Отслеживая правильный набор файлов журналов и применяя
Настройка виртуальной машины Windows 8
С запуском Windows 8's Consumer Preview Вам, наверное, не терпится потратить некоторое время на последнюю операционную систему Microsoft. Хотя вы, возможно, уже скачал ISO Спорим, некоторые из вас еще не решили, как вы собираетесь его установить. Учитывая, что вы только что встретились, мы
Создание простого AI Chatbot с помощью Web Speech API и Node.js
... спользование голосовых команд стало вездесущим в наши дни, поскольку все больше пользователей мобильных телефонов используют голосовых помощников, таких как Siri и Cortana, а устройства, такие как Amazon Echo и Google Home, вторгаются в наши жилые комнаты. Эти системы построены с программным обеспечением распознавания речи, которое позволяет их пользователям давать голосовые команды. Теперь наши веб-браузеры познакомятся с Web Speech API, который позволяет пользователям интегрировать
Как заменить Windows XP на Linux бесплатно
Пользователь XP, я говорю с вами. В апреле 2014 года ваша любимая операционная система остановился будучи официально поддерживаемым Microsoft. Теперь нет причин для паники, но это хорошая возможность начать рассматривать альтернативы. Не вдаваясь в подробности, бесплатный и захватывающий вариант - попробовать Linux. Сегодня мы продемонстрируем, как выполнить двойную загрузку существующей установки Windows
Wi-Fi камера D-Link Mini HD (DCS-8000LH)
Мини HD Wi-Fi камера DCS-8000LH ($ 59,99), последнее дополнение D-Link к своей линейке камеры домашней безопасности , это его самое маленькое и наиболее доступное по цене предложение. Это камера с разрешением 720p и функцией обнаружения движения и звука, которая показала относительно четкое дневное и ночное видео в наших тестах. Тем не менее, ему не хватает некоторых функций, которые вы получаете с
Тест WD My Cloud EX2 Ultra: наше мнение
На протяжении многих лет семейство NAS (Network Attached Storage), решения для сетевого хранения My Cloud of Western Digital (WD) продолжало расти. Модель EX2 Ultra дополняет большое семейство, которое уже насчитывает около девяти продуктов. Модели, ориентированные на широкую публику и продвинутых пользователей: WD My Cloud (отсек,) первое поколение WD My Cloud Mirror (два отсека),
Создание чата на Facebook с Node и Heroku
Создание бота на Facebook с Node и Heroku было проверено Джоан Инь а также Камило Рейес , Спасибо всем рецензентам SitePoint за то, что сделали контент SitePoint как можно лучше! На прошлогодней конференции F8 Facebook запустил
Обзор Microsoft Lumia 550: бюджетная Lumia, которая не обеспечивает
... свое мероприятие Devices, запуск всех своих продуктов с громкими именами, включая Lumia 950, 950 XL, Surface Pro 4, Surface Book и Band 2 , Возможно, вы моргнули и пропустили это, но они также объявили о Lumia 550, бюджетном предложении. В Lumia 550 нет ничего невероятного. В конце концов, это бюджетное предложение. Устройство появилось в магазинах Microsoft
Доступ к FTP-серверам с помощью собственного браузера файлов
Реклама FTP, сокращение от File Transfer Protocol, является одним из самых распространенных протоколов для передачи файлов. Вы будете использовать HTTP при просмотре веб-страниц, но FTP при общении с файловым сервером. Обычно для этого вы используете FTP-клиент. Особенно, когда вы много работаете по FTP (например, веб-разработчикам), стоит использовать специализированный клиент, который поддерживает избранное, синхронизацию и улучшенные пакетные передачи. Мы перечислили некоторые из
RT 7 Lite: настройка и обновление образов Windows 7
Чтобы настроить эталонную установку Windows 7, которая затем будет захвачена и распространена в сети, вы можете автоматизировать установку с помощью файла ответов. альтернатива вы устанавливаете Windows 7 в интерактивном режиме на виртуальной машине и настраивает его вручную в соответствии с индивидуальными требованиями. Интересная альтернатива этим двум методам предлагает бесплатный
Создайте план вашего сайта в 4 простых шага
За все годы создания веб-сайтов с клиентами я обнаружил, что единственным наиболее полезным шагом в подготовке создания веб-сайта является создание плана сайта. Кажется, многие люди, работающие самостоятельно, пропускают этот шаг, что является огромной ошибкой. Ничто не может ускорить создание вашего сайта, кроме продуманного плана сайта. Чтобы создать план сайта, вам нужно выполнить 4 основных шага. Шаг 1: Мозговой штурм идей для вашего сайта.