LinuxForum.Fans
Тема

бан за ошибки при авторизации SSH

Автор: Olej 16 сообщений 1762 просмотров
25.01.2017 18:49 #419321

Мне попадались на глаза 3 проекта, которые анализируют логи ошибочных подключений, и, когда число этих ошибочных попыток ввода пароля превосходит порог, банят это имя пользователя ... на временной интервал или навсегда.

fail2ban , denyhosts , sshutout

С fail2ban всё более-менее понятно...
denyhosts - последняя версия 2.6 это конец 2008г.
sshutout - по-моему, жил и живёт только в ALT Linux...

Кто может а). внести ясность по этим инструментам (2-м последним) или б). дополнить список подобных инструментов.

25.01.2017 19:18 · отредактировано #419333

Многие нынче fail2ban и пользуются, а про sshutout я, честно говоря, впервые слышу.

25.01.2017 19:40 #419337

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

25.01.2017 20:22 #419342
"Olej" написал:
банят это имя пользователя ..

Если стоит задача заблокировать пользователя на некоторое время можно попробовать pam_tally.so. И ничего устанавливать не прийдется.

26.01.2017 01:40 #419352
"Olej" написал:
fail2ban

Он конечно хорош, но чтоб добавить демона так черт ногу сломит.

З.ы. давно им не пользовался лет этак 6-7, если там поменялось то что я описал выше то прошу меня поправить.

26.01.2017 01:49 · отредактировано #419353
"lone_wolf" написал:
но чтоб добавить демона так черт ногу сломит.

Непонятно что значит "добавить демона"?
fail2ban сам по себе сервис, управляется как всякий сервис: service ...
Конфигурировать его под новую службу? ... может и сложно, но у него сейчас готовые конфигурации практически под любой сетевой сервис ... может только подправить там слегка.

"marik" написал:
Если стоит задача заблокировать пользователя на некоторое время можно попробовать pam_tally.so.

Как?

26.01.2017 01:51 · отредактировано #419354
"Olej" написал:
Конфигурировать его под новую службу? ... может и сложно, но у него сейчас готовые конфигурации практически под любой сетевой сервис ... может только подправить там слегка.

да именно это я и имел ввиду
И кстати последняя версия DENYHOSTS это 3.1

26.01.2017 02:43 · отредактировано #419355

И у DENYHOSTS есть килер фича (ИМХО) это то что можно задать интервал обновления его базы ip редисок
К примеру задаём что раз в 4 часа он будет ходить и выгружать на общий сервак ip тех кого забанил за 4 часа прошедших и скачивать обновленую базу ip редисок забаненых другими. И тем самым мы получаем защиту которая сразу будет отбрасывать подключения с ip редисок, не доводя их до ввода логина. Чего не умеет fail2ban

26.01.2017 03:03 · отредактировано #419356
"lone_wolf" написал:
И кстати последняя версия DENYHOSTS это 3.1

Где?
Я на их сайте проекта не нашёл позже 2.6 - это конец 2008г.

"Olej" написал:
Где?

В Fedora 23, правда, в стандартном репозитории обнаружилась версия 2.10:

text

[olej@dell home]$ dnf list denyhosts*
Последняя проверка окончания срока действия метаданных: 15 days, 13:30:53 назад, Tue Jan 10 12:29:09 2017.
Доступные пакеты
denyhosts.noarch                                                  2.10-6.fc23                                                   fedora
[olej@dell home]$ dnf info denyhosts*
Последняя проверка окончания срока действия метаданных: 15 days, 13:31:09 назад, Tue Jan 10 12:29:09 2017.
Доступные пакеты
Имя         : denyhosts
Архитектура : noarch
Эпоха       : 0
Версия      : 2.10
Релиз       : 6.fc23
Размер      : 96 k
Репозиторий : fedora
Краткое опи : A script to help thwart ssh server attacks
URL         : http://github.com/denyhosts/denyhosts/
Лицензия    : GPLv2
Описание    : DenyHosts is a Python script that analyzes the sshd server log
            : messages to determine which hosts are attempting to hack into your
            : system. It also determines what user accounts are being targeted. It
            : keeps track of the frequency of attempts from each host and, upon
            : discovering a repeated attack host, updates the /etc/hosts.deny file
            : to prevent future break-in attempts from that host.  Email reports can
            : be sent to a system admin.
26.01.2017 07:05 #419357
"Olej" написал:
Как?

В /etc/pam.d/ssh, перед секцией auth (@include common-auth) добавить

text
required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

В /etc/pam.d/ssh, перед секцией accaunt (@include common-account) добавить

text
account     required      pam_tally2.so

После 3-х неудачных попыток (deny=Х) пользователь блочится на 20 минут (unlock_time=Х). Даже root (even_deny_root).
На локльный вход это не распространяется.

26.01.2017 09:45 #419358

"Olej" написал:
Где?
Я на их сайте проекта не нашёл позже 2.6 - это конец 2008г.
Вроде здесь.
26.01.2017 12:17 #419360
"Olej" написал:
Где?
Я на их сайте проекта не нашёл позже 2.6 - это конец 2008г.

Вот тыц

26.01.2017 14:41 · отредактировано #419373
urfin написал:
[quote="Olej"]Где?
Я на их сайте проекта не нашёл позже 2.6 - это конец 2008г.
Вроде здесь.[/quote]
Да, в GIT-репозитории проекта версия 3.1.
"lone_wolf" написал:
Вот тыц

И это тоже ... 3.1
Хотя эта версия носит статус бэта:


Version 3.1 beta
This is a minor update to the DenyHosts 3.x series. This release fixes a bug when moving between Python 2 and Python 3 environments. DenyHosts should now work equally well under either version of Python.

Судя по этому анонсу, цель этого пакета - адаптация от Python 2 к Python 3.

Кроме того, как оказалось, пакет популярен, и есть в репозитории, например, Fedora 23:

text

[olej@dell home]$ dnf list denyhosts*
Последняя проверка окончания срока действия метаданных: 15 days, 13:30:53 назад, Tue Jan 10 12:29:09 2017.
Доступные пакеты
denyhosts.noarch                                                  2.10-6.fc23                                                   fedora

Похоже, что с версиями здесь дело обстоит так: 2.Х - под Python 2, 3.Х - под Python 3.

26.01.2017 17:13 #419415
marik написал:
[quote="Olej"]Как?

В /etc/pam.d/ssh, перед секцией auth (@include common-auth) добавить

text
required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

В /etc/pam.d/ssh, перед секцией accaunt (@include common-account) добавить

text
account     required      pam_tally2.so

После 3-х неудачных попыток (deny=Х) пользователь блочится на 20 минут (unlock_time=Х). Даже root (even_deny_root).
На локльный вход это не распространяется.[/quote]
Интересно...
- только там /etc/pam.d/ssh нет, а есть /etc/pam.d/sshd ...
- auth там 4...
- а account - 2 ...

Есть где об этом почитать?

26.01.2017 18:16 #419420
"Olej" написал:
только там /etc/pam.d/ssh нет, а есть /etc/pam.d/sshd ...

Возможно, в зависимости от системы расположение конфигов (и их содержание) может меняться.

"Olej" написал:
Есть где об этом почитать?

Про pam в общем рекомендую ознакомится с этой статейкой http://rus-linux.net/lib.php?name=/MyLDP/sec/pam.html
Оригинал - http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html

Войдите или зарегистрируйтесь, чтобы ответить.