Форум русскоязычного сообщества Ubuntu


Автор Тема: Fail2ban для блокировки по порту  (Прочитано 310 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн serdanton

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Fail2ban для блокировки по порту
« : 11 Апрель 2018, 18:33:18 »
Здравствуйте.
Хочу закрыть порт на сервере Debian 8 от внешнего подключения слишком активных подбирателей пароля.
Наше статью на хабре https://habrahabr.ru/sandbox/100317/.
Не срабатывают либо /etc/fail2ban/filter.d/rdp-bruteforce.conf либо  /etc/fail2ban/action.d/iptables-nat.conf.
Скорее всего дело в регулярных выражениях, никто подобное не пробовал настраивать?
Спасибо

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 25439
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #1 : 11 Апрель 2018, 18:41:08 »
Вас не затруднит уточнить, что именно за порт?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн serdanton

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #2 : 11 Апрель 2018, 18:59:41 »
3389 в локальную сеть
пример лога
Apr 11 19:16:58 DC kernel: [  119.285063] Iptables: hashlimit: IN=eth0 OUT= MAC=00:50:56:ab:e7:75:f8:f0:82:77:2a:8b:08:00 SRC=43.225.20.249 DST=XXX.XXX.XXX.XXX LEN=52 TOS=0x02 PREC=0x00 TTL=119 ID=24093 DF PROTO=TCP SPT=49900 DPT=3389 WINDOW=8192 RES=0x00 CWR ECE SYN URGP=0

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 25439
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #3 : 11 Апрель 2018, 20:52:46 »
Никогда.
Никогда.
Вообще никогда не выставляйте RDP в интернет.
У него просто физически отсутствуют механизмы самозащиты от брута.

Для всех остальных же сервисов, которые способны ограничивать брутфорс количеством попыток логина в одной сессии, не надо никаких особо сложных конструкций.
-A SSH_CHECK -m recent --set --name SSH --rsource
-A SSH_CHECK -m recent --rcheck --seconds 90 --reap --hitcount 4 --name SSH --rsource -j NOWAY
-A NOWAY -p tcp -j REJECT --reject-with tcp-reset
-A NOWAY -j REJECT --reject-with icmp-port-unreachable
И сбрасываете нужные соединения в цепочку SSH_CHECK перед тем, как разрешать доступ.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн serdanton

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #4 : 11 Апрель 2018, 21:16:52 »
Тут дело не в RDP, а в том почему не попадает в iptables.
Дело не в философии жизни, а в конкретном вопросе :-)

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 25439
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #5 : 11 Апрель 2018, 21:36:39 »
А вы где в iptables ищете?
Проблему нормально опишите с головы.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн serdanton

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #6 : 12 Апрель 2018, 09:22:06 »
Прошу прощения
Объясняю с самого начала.
Вы правильно сказали, что у RDP нет никакой защиты, в связи с этим её необходимо реализовать с помощью шлюза, на котором установлен Debian 8.
Нашел статью на хабре (которую указал выше в первом сообщении) и начал реализовывать. Сделал отдельный файл, куда теперь логи с префиксом Iptables: пишутся.
А вот с fail2ban не получилось. Как я понял, там все на питоне и важна версия, у меня
# python --version
Python 2.7.9
далее решил почитать документацию по синтаксису pyton (я с ним никогда не работал), нашел как составлять регулярные выражения в следствии чего строчка в файле
/etc/fail2ban/filter.d/rdp-bruteforce.conf
а именно failregex = hashlimit: .* SRC=<HOST> ну вроде как верная
далее начал рассматривать файл
/etc/fail2ban/action.d/iptables-nat.conf
в частности на строчки
actionban   = <iptables> -t nat -I f2b-<name> 1 -s <ip> -j DNAT --to <ip>
                      <iptables> -I FORWARD -s <ip> -d <ip> -j ACCEPT
первое, что смутило, так это почему ACCEPT в ban?
второе, посмотрел соседние файлы в /etc/fail2ban/action.d и увидел, что iptables везде написано без ковычек.

итог какой
строки в логе с меткой hashlimit есть, а вот срабатываний по ним нет судя по выводу команд
iptables -L
iptables -t nat -L

Chain fail2ban-rdp-bruteforce (0 references)
target     prot opt source               destination

P.S. почему-то все коннекты на 3389 ставятся с меткой hashlimit (но это я уж сам разберусь)

спасибо


Пользователь добавил сообщение 12 Апрель 2018, 11:56:51:
небольшое добавление/поправка
сейчас проверил и действительно, на Centos 6.9 у меня работает <iptables> , в дебиане iptables. Вот такой вот он fail2ban для разный версий Linux  :)
Хотя может дело и в pyton, хотя на centos 6.9 команда pyton --version говорит, что незнама я такое  :)
при этом
ls -l /usr/bin/python
-rwxr-xr-x. 2 root root 4864 Авг 18  2016 /usr/bin/python
« Последнее редактирование: 12 Апрель 2018, 11:56:51 от serdanton »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 25439
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #7 : 12 Апрель 2018, 16:40:56 »
Вы правильно сказали, что у RDP нет никакой защиты, в связи с этим её необходимо реализовать с помощью
Невозможно реализовать функционал программы, которого программа в принципе не имеет, мало того что снаружи программы, так ещё и на другом компьютере.
Как вы себе это представляете? Расшифровать трафик RDP, найти пакеты авторизации и считать их по пальцам?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Онлайн oermolaev

  • Старожил
  • *
  • Сообщений: 1443
    • Просмотр профиля
Re: Fail2ban для блокировки по порту
« Ответ #8 : 12 Апрель 2018, 17:23:27 »
её необходимо реализовать с помощью шлюза, на котором установлен Debian 8
"ЕЁ" - защиту, или безопасную работу - возможно реализовать с помощью SSH тунелей через свой шлюз.
Например так как здесь, или с помощью программы remmina.

 

Страница сгенерирована за 0.356 секунд. Запросов: 23.