Советы по защите вашего Linux-сервера от внешних атак

Я думаю, люди, которые водят Серверы Linux они знают и знают о DenyHOSTS y Fail2ban. Для тех, кто его не знает, я буду объяснять немного об этих двух применения.

Джон Фреди Перес - один из Победители нашего еженедельного конкурса: «Поделитесь своими знаниями о Linux«. Поздравляю! Беспокоясь о участвовать и внести свой вклад в сообщество, как это сделал Джон?

Мы установим и настроим эти два приложения, чтобы в дальнейшем избежать головной боли. Прежде всего, мы объясним, что это за два приложения и каковы их функции:

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 на

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.