Я думаю, люди, которые водят Серверы Linux они знают и знают о DenyHOSTS y Fail2ban. Для тех, кто его не знает, я буду объяснять немного об этих двух применения. |
Мы установим и настроим эти два приложения, чтобы в дальнейшем избежать головной боли. Прежде всего, мы объясним, что это за два приложения и каковы их функции:
Fail2Ban
Это анализатор журнала, который ищет неудачные попытки регистрации и блокирует IP-адреса, с которых эти попытки исходят. Он распространяется под лицензией GNU и обычно работает во всех системах, которые взаимодействуют с системой контроля атак или локальным межсетевым экраном.
Fail2Ban имеет отличную конфигурацию, а также может создавать правила для программ.
собственные или третьи стороны.
DenyHOSTS
Это инструмент безопасности, написанный на Python, который отслеживает журналы сервера доступа для предотвращения атак грубой силы на виртуальный сервер. Программа работает путем запрета IP-адресов, превышающих определенное количество неудачных попыток подключения.
Эти приложения Linux - DenyHosts и Fail2ban - можно использовать по отдельности или вместе. В моем случае они оба работают вместе.
Установка и настройка каждого из них зависит от используемого вами дистрибутива. Этот пост ориентирован на CentOS 6.3, хотя различия между другими дистрибутивами не очень заметны.
Ну что ж, приступим к работе.
Установка и настройка Fail2Ban
Это приложение генерирует динамические правила в самом брандмауэре Linux и отвечает за создание действующих правил в IpTables.
Установка
Для установки:
yum установить fail2ban
Если пакет не появился, мы должны добавить необходимый репозиторий:
об/мин -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
После этого вы должны начать установку приложения вместе с его зависимостями.
Теперь нам нужно настроить Fail2Ban для анализа нужных нам журналов и блокировки
IP-адреса, отправка уведомлений по электронной почте. Для этого мы должны изменить файл jail.conf, который мы находим в / etc / fail2ban.
cd / etc / fail2ban
нано jail.conf
В этом файле нужно сделать следующее:
- Modify - время запрета, это значение определяет время в секундах, в течение которого IP атакующего будет заблокирован, по умолчанию значение составляет 600 секунд.
- Найдите значение maxretry, которое будет количеством раз, когда IP-адрес может иметь неудачную аутентификацию перед блокировкой.
- Добавьте наш ip в параметр ignoreip. Здесь приложение будет игнорировать наши аутентифицированные IP-адреса в этом параметре.
[ПО УМОЛЧАНИЮ]
# ignoreip может быть IP-адресом, маской CIDR или хостом DNS. Fail2ban не будет
# запретить хост, который соответствует адресу в этом списке. Может быть несколько адресов
# определяется с использованием разделителя пробелов.
игнорип = 127.0.0.1
# "bantime" - количество секунд, в течение которых хост заблокирован.
бантайм = 600
# Хост забанен, если он сгенерировал "maxretry" в течение последнего "findtime"
# секунды.
найти время = 600
# "maxretry" - это количество сбоев до того, как хост будет забанен.
максимальная попытка = 3
Вот пример того, как это может быть:
игнорировать ip = 127.0.0.1 190.25.242.75 192.168.1.0/24
бантайм = 800
максимальная попытка = 2
Настроить Fail2Ban и SSH
Чтобы найти неудачные попытки входа в систему SSH, мы модифицируем файл, пока он не будет выглядеть следующим образом:
[ssh-iptables]
включено = верно
фильтр = sshd
action = iptables [name = SSH, port = 22, protocol = tcp] sendmail-whois [name = SSH, dest=FredySnake@outlook.com, sender = fail2ban @ localhost] logpath = / var / log / secure # Это журнал, который будет анализировать fail2ban
maxretry = 3 # любой IP-адрес с тремя или более неудачными попытками будет заблокирован.
bantime = 86400 # 24-часовое время запрета в секундах
Не забывайте, что если вы измените порт, на котором прослушивает SSH, вы также должны изменить параметр порта.
Это приложение работает не только для несанкционированного доступа к SSH, но и для apache, для чтения журналов Asterisk и т. Д.
Установка и настройка DenyHOSTS
Его работа основана на использовании файла /etc/hosts.deny, то есть на блокировке адресов «атакующих» хостов, создании списка запрещенных хостов.
Установку из репозиториев можно получить с помощью следующей команды:
ням установить denyhosts
Файл конфигурации находится в /etc/denyhosts.conf
Прежде чем продолжить, поскольку люди, мы можем делать ошибки и делать типичный «уровень 8» при доступе к любой из служб и блокировке самих себя. Чтобы этого избежать, мы редактируем файл /etc/hosts.allow и добавляем IP-адреса машин, с которых мы не хотим быть ограничены из-за сбоя доступа.
Измените файл denyhosts.conf
Чтобы не углубляться в настройки, в этом файле мы будем редактировать и раскомментировать только некоторые параметры. Эти:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 час
SYNC_UPLOAD = да
SYNC_DOWNLOAD = да
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 часов
Таким образом, мы оставим конфигурацию практически по умолчанию, но с большой защитой от атак SSH.
нано /etc/hosts.allow
пример:
сшд: 127.0.0.1
сшд: 192.168.1.10
sshd: 192.168.0. *
После этого перезапускаем сервис:
/etc/init.d/denyhosts перезапуск
Этим мы даем разрешение на IP, диапазон IP и, конечно же, на наш интерфейс обратной связи. То, что я не пробовал - поэтому не знаю, работает ли это, - это добавить DNS в этот файл; то есть с такими сервисами, как DynDNS. Если я это сделаю, я расскажу, как все прошло.
С помощью определенных параметров и настроек мы также позаботимся о том, чтобы по истечении периода времени, который мы указываем в конфигурации DenyHOSTS, сохраненные адреса очищаются и обновляются другими списками, созданными другими - если мы укажем это - предоставление разрешения на доступ сервер DenyHOSTS.
Чтобы время от времени очищать сохраненные адреса, как настроено, демон должен запускаться с параметром –purge:
/etc/init.d/denyhosts запустить --purge
Вдобавок к этому мы должны включить его при запуске системы:
chkconfig denyhosts на