The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Блокирование подбора паролей с помошью пакетного фильтра PF

06.05.2006 14:02

Переведены две статьи про блокирование "bruteforce" атак на ssh с помошью pf:

  • Блокировка bruteforce атак на ssh с помощью PF
  • Замедление bruteforce атак на SSH с помощью PF

    1. Главная ссылка к новости (http://wiki.bsdportal.ru/doc:g...)
    Автор новости: GreenX
    Лицензия: CC BY 3.0
    Короткая ссылка: https://opennet.ru/7471-bruteforce
    Ключевые слова: bruteforce, attack, ssh, flood, pf, firewall, bsd
    При перепечатке указание ссылки на opennet.ru обязательно


    Обсуждение (49) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Алхимик (?), 16:09, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Имхо проще перенести sshd на нестандартный порт.
     
     
  • 2.6, CrazyF (?), 16:53, 06/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    IMHO такие вещи лучше решать с помощью файрвола. А сканить будут один фиг по диапазону портов. И ваш "нестандартный" порт будут пытаться сломать всё равно.....
     
     
  • 3.23, Квагга (?), 00:26, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Я чего-то остро недопонимаю - сканят, да пусть хоть обсканятся наизнанку.

    Не ханипоты же поднимать для выявления активности???

    Ну а "брутфорс", не громковато ли сказано для возможности отрубить средствами sshd
    на полчасика вход после первой неудачной попытки, когда имя судуера
    тоже надо еще как УГАДАТЬ?

    Только судуер "kjhcsa8ucwh9cwh2h73rc73f2npeklu;" может войти по SSH.
    Одна попытка на 10 сек и 30 мин отдыхать. КАКОЙ "брутфорс"?

    Мне сканирующие порты господа очень помогают - я вижу точки и почерк
    развития активности.

    ИМХО описанный подход - это как охране банка конопатить уши ватой,
    чтобы не раздражал скрип пилы об сейф.

     
     
  • 4.69, Krieger (?), 23:05, 12/12/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну а "брутфорс", не громковато ли сказано для возможности отрубить средствами sshd
    >
    >на полчасика вход после первой неудачной попытки, когда имя судуера
    >тоже надо еще как УГАДАТЬ?
    >
    >Только судуер "kjhcsa8ucwh9cwh2h73rc73f2npeklu;" может войти по SSH.
    >Одна попытка на 10 сек и 30 мин отдыхать. КАКОЙ "брутфорс"?

    Не мог бы кто-нибудь ткнуть меня носом, как именно это сделать? в манах нету, в доках не нашёл... А очень хочется знать.


     
  • 2.63, 5trovi4 (??), 10:36, 10/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Имхо проще перенести sshd на нестандартный порт.
    Поддерживаю.

     

  • 1.2, Аноним (-), 16:10, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а для iptables как подобного добиться?
     
  • 1.4, Аноним (-), 16:49, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поддерживаю - перенес sshd на нестандартный порт и все.
     
     
  • 2.41, Stinky (?), 14:33, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --set
    iptables -A INPUT -p tcp --syn --dport 22 -m recent --name radiator --update --seconds 60 --hitcount 4 -j DROP
    Три соединения (новых) в минуту пускает нормально, дальше дропает. Если минуту не дергаться, соответственно можно опять подключаться. Переборшиков блокирует на ура.
     
     
  • 3.53, Settler (?), 17:19, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    на 2.4.31 это работать должно? у меня не пускает ни разу по этой паре правил.
     
  • 3.54, Settler (?), 17:23, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    и на 2.6.16.7 тоже дропаются соединения. вы это проверяли? может еще что-то дописать нужно?
     
     
  • 4.55, Stinky (?), 18:01, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Это точно работает так, как задумано на 2.6.12/iptables 1.3.4 (то что сейчас крутится)
    "recent match support" включено?
     
     
  • 5.57, Settler (?), 19:05, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    включено. эксперимент на 2.6.16.7/14 - показал что это (больше) не работает.
    iptables v1.3.5
     
  • 5.58, Settler (?), 20:04, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    *очень уж хочется, что-бы это работало :)*

    может я торможу и там само-собой еще какие-нибудь правила нужно дописать? где собственно оно пускает-то? accept где будет?

     
     
  • 6.61, Stinky (?), 13:27, 09/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Дык, блин...
    Ну конечно ACCEPT после этих правил должен идти. Что-нить стандартное типа '-dport 22 -j ACCEPT'.
     
     
  • 7.62, Settler (?), 14:47, 09/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    угу, уже работает, догадался :)
    спасибо. хорошая штука.

    вообще удобный модуль (посмотрел его сайт - мне понравился пример с блокированием всего от того, кто стукнулся на не тот порт).

     
  • 4.56, Stinky (?), 18:05, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати, сперто отсюда
    http://www.linux.org.ru/view-message.jsp?msgid=1320671
     

  • 1.5, Аноним (-), 16:51, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    man iptables
    ---
       limit
           This module matches at a limited rate using a token bucket  filter.   A
           rule  using  this  extension  will  match  until  this limit is reached
           (unless the '!' flag is used).  It can be used in combination with  the
           LOG target to give limited logging, for example.

           --limit rate
                  Maximum  average  matching  rate: specified as a number, with an
                  optional '/second', '/minute', '/hour', or  '/day'  suffix;  the
                  default is 3/hour.

           --limit-burst number
                  Maximum  initial  number  of  packets to match: this number gets
                  recharged by one every time the limit  specified  above  is  not
                  reached, up to this number; the default is 5.
    ---

     
     
  • 2.31, satelit (?), 04:25, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, а как модуль limit сможет отличить авторизацию на ssh, от работы уже авторизованного пользователя?, а то получиться что он будет тормозить нормальную работу.
     
     
  • 3.35, daff (?), 12:29, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
        [!] --syn
                  Only  match TCP packets with the SYN bit set and the ACK,RST and
                  FIN bits cleared.  Such packets are used to request TCP  connec-
                  tion initiation; for example, blocking such packets coming in an
                  interface will prevent incoming TCP  connections,  but  outgoing
                  TCP  connections will be unaffected.  It is equivalent to --tcp-
                  flags  SYN,RST,ACK,FIN  SYN.   If  the  "!"  flag  precedes  the
                  "--syn", the sense of the option is inverted.

     
     
  • 4.42, satelit (?), 17:38, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда получиься задержка не на каждую авторизацию, а на каждую вторую авторизацию, т.к. ssh сервер (у меня по крайней мере) допускает две попытки авторизации в рамках одного соединения, хотя и этого достаточно.
     

  • 1.7, Mikk (?), 17:59, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то мне все эти лимиты не нравятся. Лучше уж разрешить доступ только для определённых сетей.
     
  • 1.8, keyhell (??), 19:02, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пожалуйста, не пишите ересь про перенос на нестандартный порт. это помогает только против школьников.
    надежной защитой является правильная настройка firewall + запрет на доступ из внешних сетей + авторизация по ключам.
     
  • 1.9, MacCook (?), 20:30, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Под BSD найти бы такое...

    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 22 -m recent --rcheck --name SSH -j ACCEPT
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1599 -m recent --name SSH --remove -j DROP
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1600 -m recent --name SSH --set -j DROP
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1601 -m recent --name SSH --remove -j DROP
    iptables -A INPUT -d $INADDR -p tcp --dport 22 -j DROP

    На 22 коннект закрыт пока не стукнешься на 1600.
    telnet myhost 1600
    и мой IP заносится в список, теперь можно на 22 коннектить...

     
     
  • 2.10, pro (??), 21:01, 06/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Очень интересный пример кстати!
     
  • 2.19, Userr (?), 23:05, 06/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    /usr/ports/security/doorman - не поможет?
     
  • 2.52, Андрей (??), 14:41, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Я чуть-чуть доработал пример - иначе nmap открывает порт.
    iptables -A INPUT -d $INADDR -m recent --rcheck --name SCAN --seconds 60 -j DROP
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 22 -m recent --seconds 5 --rcheck --name SSH -j ACCEPT
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1599 -m recent --name SSH --remove -j DROP
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1600 -m recent --name SSH --set -j DROP
    iptables -A INPUT -d $INADDR -m state --state NEW -m tcp -p tcp --dport 1601 -m recent --name SSH --remove -j DROP
    iptables -A INPUT -d $INADDR -p tcp --dport 22 -m recent --name SCAN --set -j DROP
     

  • 1.13, fb (??), 21:18, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ещё один вариант:
    http://ethernet.org/~brian/src/timelox/
    и небольшой комментарий к нему:
    http://wwwx.cs.unc.edu/~hays/dev/timelox_and_TheHand/
     
  • 1.15, mofs (?), 21:28, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для IPTables есть hashlimit, который уже, даже, включен стд релиз.
    http://www.netfilter.org/projects/patch-o-matic/pom-submitted.html#pom-submit

    $IPTABLES -A tcp_packets -p tcp -m tcp -d $SSH_SERVER --dport 22 -m state --state NEW -m hashlimit --hashlimit 1/hour --hashlimit-burst 2 --hashlimit-mode srcip --hashlimit-name SSH --hashlimit-htable-expire 360000 -j ACCEPT

     
  • 1.16, Аноним (-), 22:28, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Почти такое же решение, но своего "производства", использовал на фре.  Потом отказался. ИМХО лучше прописать доступ по ssh с доверенного хоста/хостов.
     
  • 1.17, BB (??), 22:33, 06/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Основное тут, то что можно и нужно не блокировать, а затормозить и выдать ошибочную информацию для атакующего :)
    Для аттакующего разбор логов Nmap и поиск по этим результатам уязвимостей и применение их и так процесс достаточно "депресивный" а тут еще и обманывают его на  каждом порту/шаге :)
     
     
  • 2.20, dem (?), 23:47, 06/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    >Основное тут, то что можно и нужно не блокировать, а затормозить и
    >выдать ошибочную информацию для атакующего :)
    >Для аттакующего разбор логов Nmap и поиск по этим результатам уязвимостей и
    >применение их и так процесс достаточно "депресивный" а тут еще и
    >обманывают его на  каждом порту/шаге :)


    Ну для особо боязливых (я к ним отношусь) существует portsentry. Бывае иногда что срывается по постяками, но в основном я доволен.

     

  • 1.22, dvg_lab (??), 00:19, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    pf рулит однако... хотя с другой стороны дыры php на хостинговом сервере таким образом не заткнешь :-/
     
  • 1.24, Adil_18 (?), 00:45, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ребятя, а про sshlockout уже все забили ?
    Или никто и не знал ?
     
     
  • 2.25, greyork (??), 01:09, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Ребятя, а про sshlockout уже все забили ?
    Какой именно? Гугл показал несколько версий, например:
    http://www.xyz.com/progs/sshlockout.c
    http://archives.neohapsis.com/archives/freebsd/2005-10/0023.html
    http://tinyurl.com/84b5o

    // greyork

     
     
  • 3.26, Adil_18 (?), 01:49, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Любой, главное у тебя есть открытый код который можно локализировать под свои нужды.
     
     
  • 4.27, greyork (??), 02:02, 07/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    > Любой, главное у тебя есть открытый код который можно локализировать под свои нужды.

    Вы совершенно правы. Но, аргументы вроде этого:
    $ apt-cache search sshlockout
    (пусто)
    тоже по своему верны, вы не находите? :) Особенно - в случае "боевого" сервера.

    // greyork

     
     
  • 5.50, Adil_18 (?), 00:23, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    include stdio h include stdlib h include unistd h include string h ... большой текст свёрнут, показать
     

  • 1.30, RedEyes (?), 04:15, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    нестандартный порт и сообщений об ошибочной авторизации более чем
    достаточно для выявления и пресечения нежелательной активности.

    я печатаю быстро вслепую, частенько ошибаюсь. что, полчаса ждать разрешения?

    кстати, печатать медленно гораздо опаснее: часто рядом не в меру любопытный
    юзверь на твои руки зеньки лупит. просить отвернуться как то неудобно:
    я ведь не ссать собираюсь :-)

    хуйнёй вы занимаетесь, ребята, никому это не надо.

     
  • 1.33, Аноним (-), 10:59, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. xinetd, я так понимаю, никто не использует, и не знает о его параметре only_from

    2. использовать в качестве метода защиты DoS sshd - да это круто.

    согласен с предыдущим оратором - хуйней вы занимаетесь.

     
  • 1.46, злобный (?), 21:15, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > 1. xinetd, я так понимаю, никто не использует, и не знает о его параметре
    > only_from
    > 2. использовать в качестве метода защиты DoS sshd - да это круто.

    ну тупой, ну тупой - америкосы рядом даже не валялись
    прочитай внимательно

    "Переведены две статьи про блокирование "bruteforce" атак на ssh"

     
  • 1.47, StSphinx (??), 21:18, 07/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для подобных целей использую софтинку по имени fail2ban. Весьма удобно и конфигурябельно.
    Смотрит лог и блокирует IP после N неудачных попыток авторизации, на M минут. M и N настраиваемо. В мыло шлет сообщения о заблокированных брутфорсерах.
    ИМХО единственный минус - написано не питоне, ибо не на всех боевых серверах есть питон.
     
     
  • 2.51, dukie (??), 04:37, 08/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Вот тоже как вариант
    /usr/ports/security/bruteforceblocker/

    BruteForceBlocker is a perl script, that works along with pf - OpenBSD's
    firewall (Which is also available on FreeBSD since version 5.2 is out).
    It's main purpose is to block SSH bruteforce attacks via firewall.
    When this script is running, it checks sshd logs from syslog and looks
    for Failed Login attempts - mostly some annoying script attacks, and
    counts number of such attempts. When given IP reaches configured limit
    of fails, script puts this IP to the pf's table and blocks any further
    traffic to the that box from given IP (This also depends on
    configuration done in pf.conf).

    WWW: http://danger.rulez.sk/projects/bruteforceblocker/

     

  • 1.59, аноним (?), 05:24, 09/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По моему такие вещи должны решаться на уровне самого sshd.
     
  • 1.60, Аноним (-), 11:44, 09/05/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    первый человек, смотрящий в корень проблемы.
     
     
  • 2.64, Andrey (??), 13:42, 10/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос в том, почему до сих пор разработчики SSHD не предусмотрели возможность блокировать IP после определенного количества неудачных логинов?
     
     
  • 3.65, Settler (?), 18:40, 10/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    еще бы chroot сделали из коробочки...
     
  • 3.66, Аноним (-), 00:13, 11/05/2006 [^] [^^] [^^^] [ответить]  
  • +/
    от нафлудили...

    а доступ по паре клюучей сделать слабо, да ?
    или серты это типа тока ентрепрайз... ???

    я вообще от паролей отошел уже давно ибо у меня ноут мой и таксаю я везде его с собой, и помнить всех и вся мне в лом...

    а брутфорсеры ?! ну пусть подбриают мой 1024-rsa + dsa хостовый :))))

     

  • 1.67, mic (??), 21:31, 01/06/2006 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне кажется тут в запарке забыли, что бывает не только скан 64к портов на одном адресе, но и скан всей сетки по порту.
    Ежели не забанить желающих, то можно и 50 метров на адрес поиметь "незаказанного" трафика в месяц.
    Умножте на количество хостов в сети с 22 портом.
     
     
  • 2.68, Ce (ok), 04:01, 09/06/2006 [^] [^^] [^^^] [ответить]  
  • +/
    А если создать эмитатор подключения к sshd и редиректить на этот порт атакующего.
    Можно повесилиться обоим сторонам. :))
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру