![]() |
|
![]() |
#1 | |||
Коварный тип
![]() ![]()
|
![]() Защищаем SSH от брутфорса на любом порту
Сегодня меня заинтересовал опрос надо ли перевешивать SSH на нестандартный порт. Сам опрос не так интересен как способ автора zivot_je_cudo защищать SSH от подбора пароля: после неверной попытки подключения блокировать новые попытки в течение 20 секунд. Задержка, видимо, выбрана эмпирически, исходя их двух противположных пожеланий: чтобы не заблокировать в случае опечатки себя надолго, и в тоже время усложнить жизнь подбиральщика. Я хочу поделиться своим способом противодействия брут-форсу, который применяю уже несколько лет. Он имеет два преимущества: — дает мне больше попыток для набора правильного пароля — но при этом блокирует брутфорсеров «навечно». Как можно достичь этих двух противоположных целей? Я использую модуль iptables под названием hashlimit, который умеет подсчитывать кол-во пакетов в определенный промежуток времени и через некоторое время сбрасывать счетчик. Все делается тремя правилами: Код:
iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 60000 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,RST,ACK SYN -j DROP iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT Добропорядочный же пользователь наборот имеет несколько попыток подключения без ожидания между ними прежде чем попадет в «баню». Модуль hashlimit сохраняет свое состояние в /proc — поначалу там пусто: Код:
# cat /proc/net/ipt_hashlimit/SSH Код:
# cat /proc/net/ipt_hashlimit/SSH 55 ХХ.ХХ.ХХ.ХХ:0->0.0.0.0:0 11533000 230400000 115000000 Код:
# cat /proc/net/ipt_hashlimit/SSH 20 ХХ.ХХ.ХХ.ХХ:0->0.0.0.0:0 117429000 230400000 115000000 Таким образом решены две проблемы: — если пользователь вдруг опечатался, ему не нужно долго ждать новых попыток — брутфорсеры сами себя загоняют в «вечный» бан. Что делать, если вы вдруг с нескольких попыток не смогли ввести пароль? Не суетиться — подождать спокойно минуту и попробовать еще несколько раз. А если уж снова не смогли — то лучше пойти проспаться, в таком состоянии в консоль лучше не лазить :)) Успехов. P.S. И да, чуть не забыл — у меня SSH на нестандартном порту :) UPD: Немного про настройку hashlimit. UPD2: Как достичь того же самого с помощью более распространенного модуля recent: раз, два. UPD3: Само собой способ годится не только для защиты от подбора пароля по SSH, но может быть использован и для различных других сервисов, где слишком частое подключение сигнализирует о чем-то неладном. UPD4: Ограничение подключений с помощью самого SSHD. Источник: habrahabr.ru Автор: zivot_je_cudo |
|||
![]() |
Cказали cпасибо: |
![]() |
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[Статья] Защищаем свой сайт DLE от кулхацкеров | Serberg | Инструкции, модификации и статьи для DLE | 19 | 15.12.2012 15:15 |
[Инструкция] Защита от брутфорса ssh, ftp, http: fail2ban | Serberg | Linux | 4 | 22.12.2011 18:11 |
[Вопрос] как создать раздел которую можно было бы установит на любом другом компьютере (и с какой программой лучше всего это сде | jajik87 | Операционные системы | 2 | 26.10.2010 21:10 |