Блокировка атак на SSH-сервер с помощью DenyHosts

LinuxSecurity

DenyHosts — это бесплатная программа безопасности для предотвращения вторжений с открытым исходным кодом для серверов SSH, разработанная Филом Шварцем на языке Python. Он предназначен для мониторинга и анализа журналов SSH-сервера на предмет недопустимых попыток входа в систему, атак на основе словаря и атак методом перебора, блокируя исходные IP-адреса путем добавления записи в файл /etc/hosts.deny на сервере и предотвращает IP-адрес от любых дальнейших попыток входа в систему.

DenyHosts — необходимый инструмент для всех систем на основе Linux, особенно когда мы разрешаем ssh-входы на основе паролей. В этой статье мы собираемся показать вам, как установить и настроить DenyHosts на RHEL 6.3/6.2/6.1/6/5.8, CentOS 6.3/6.2/6.1/6/5.8 и Fedora 17,16,15,14,13,12 системы, использующие репозиторий epel.

 

Установка DenyHosts в RHEL, CentOS и Fedora

По умолчанию инструмент DenyHosts не включен в системы Linux, его нужно установить с помощью стороннего репозитория EPEL. После добавления репозитория установите пакет, используя следующую команду YUM.

# yum --enablerepo=epel install denyhosts
OR
# yum install denyhosts

 

 

Настройка DenyHosts для белых адресов IP-адресов

После установки DenyHosts обязательно внесите в белый список свой собственный IP-адрес, чтобы вы никогда не были заблокированы. Для этого откройте файл /etc/hosts.allow.

# vi /etc/hosts.allow

 

 

Ниже описания добавьте каждый IP-адрес по отдельности в отдельной строке, который вы не хотите блокировать. Формат должен быть следующим.

#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 172.16.25.125
sshd: 172.16.25.126
sshd: 172.16.25.127

 

 

Настройка DenyHosts для оповещений по электронной почте

Основной файл конфигурации находится в /etc/denyhosts.conf. Этот файл используется для отправки оповещений по электронной почте о подозрительных входах в систему и ограниченных хостах. Откройте этот файл с помощью редактора VI.

# vi /etc/denyhosts.conf

 

 

Найдите «ADMIN_EMAIL» и добавьте свой адрес электронной почты здесь, чтобы получать уведомления по электронной почте о подозрительных входах в систему (для нескольких уведомлений по электронной почте используйте запятую). Пожалуйста, посмотрите файл конфигурации моего сервера CentOS 6.3. Каждая переменная хорошо документирована, поэтому настраивайте ее по своему вкусу.



############ DENYHOSTS REQUIRED SETTINGS ############
SECURE_LOG = /var/log/secure
HOSTS_DENY = /etc/hosts.deny
BLOCK_SERVICE = sshd
DENY_THRESHOLD_INVALID = 5
DENY_THRESHOLD_VALID = 10
DENY_THRESHOLD_ROOT = 1
DENY_THRESHOLD_RESTRICTED = 1
WORK_DIR = /var/lib/denyhosts
SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES
HOSTNAME_LOOKUP=YES
LOCK_FILE = /var/lock/subsys/denyhosts
<h6>###### DENYHOSTS OPTIONAL SETTINGS ############
ADMIN_EMAIL = [email protected]
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts <[email protected]>
SMTP_SUBJECT = DenyHosts Daily Report</h6>
<h6>###### DENYHOSTS OPTIONAL SETTINGS ############
DAEMON_LOG = /var/log/denyhosts
DAEMON_SLEEP = 30s
DAEMON_PURGE = 1h

 

 

Перезапуск сервиса DenyHosts

Когда вы закончите настройку, перезапустите сервис denyhosts для новых изменений. Мы также добавляем сервис denyhosts для запуска системы.

# chkconfig denyhosts on
# service denyhosts start

 

 

Проверка журналов DenyHosts

Информация о том сколько злоумышленников и хакеров пытаются получить доступ к вашему серверу, регистрируется в журналах denyhosts ssh. Используйте следующую команду для просмотра журналов в реальном времени.

# tail -f /var/log/secure

 

 

Nov 28 15:01:43 sedicomm sshd[25474]: Accepted password for root from 172.16.25.125 port 4339 ssh2
Nov 28 15:01:43 sedicomm sshd[25474]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 28 16:44:09 sedicomm sshd[25474]: pam_unix(sshd:session): session closed for user root
Nov 29 11:08:56 sedicomm sshd[31669]: Accepted password for root from 172.16.25.125 port 2957 ssh2
Nov 29 11:08:56 sedicomm sshd[31669]: pam_unix(sshd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 sedicomm atd[3417]: pam_unix(atd:session): session opened for user root by (uid=0)
Nov 29 11:12:00 sedicomm atd[3417]: pam_unix(atd:session): session closed for user root
Nov 29 11:26:42 sedicomm sshd[31669]: pam_unix(sshd:session): session closed for user root
Nov 29 12:54:17 sedicomm sshd[7480]: Accepted password for root from 172.16.25.125 port 1787 ssh2

 

 

Удалить заблокированный IP-адрес из DenyHosts

Если вы когда-нибудь случайно заблокировали IP-адрес и хотите его удалить из denyhosts, вам нужно остановить службу.

# /etc/init.d/denyhosts stop

 

 

Чтобы удалить заблокированный IP-адрес полностью, вам необходимо отредактировать следующие файлы и удалить IP-адрес.

# vi /etc/hosts.deny
# vi /var/lib/denyhosts/hosts
# vi /var/lib/denyhosts/hosts-restricted
# vi /var/lib/denyhosts/hosts-root
# vi /var/lib/denyhosts/hosts-valid
# vi /var/lib/denyhosts/users-hosts

 

 

После удаления забаненного IP-адреса перезапустите сервис еще раз.

# /etc/init.d/denyhosts start

 

 

Вредный IP-адрес добавляется ко всем файлам в каталоге /var/lib/denyhosts, поэтому очень сложно определить, какие файлы содержат его. Один из лучших способов узнать IP-адрес с помощью команды grep. Например, чтобы узнать IP-адрес 172.16.25.125, выполните.

cd /var/lib/denyhosts
grep 172.16.25.125 *

 

 

Белый список IP-адресов в DenyHosts

Если у вас есть список статических IP-адресов, которые вы хотите постоянно вносить в белый список, откройте файл /var/lib/denyhosts/allow-hosts. Какой бы IP-адрес не был указан в этом файле, он не будет забанен по умолчанию (считайте это белым списком).

# vi /var/lib/denyhosts/allowed-hosts

 

 

И добавьте каждый IP-адрес в отдельной строке. Сохраните и закройте файл.

# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
LinuxSecurity

Больше похожих постов

How-to-Manage-Snaps-in-Linux-–-Part-2

Как управлять Snaps в Linux — часть 2

285
0
Это вторая статья в серии статей о Snaps. В ней рассказывается, как запускать снапшоты из интерфейса командной строки, создавать и…
How-to-Enable-HTTP_2-in-Apache-on-Ubuntu

Как включить HTTP/2 в Apache в Ubuntu?

161
0
С момента создания Всемирной паутины (www) протокол HTTP на протяжении многих лет развивался для обеспечения безопасного и быстрого цифрового соединения…

Добавить комментарий

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню