The OpenNET Project / Index page

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

Автоблокирование атак по подбору паролей (brute force) в SSH под FreeBSD
Устанавливаем sshguard из портов:

   cd /usr/ports/security/sshguard
   make install clean WITH_PF=yes

Настраиваем перенаправление логов в sshguard

   echo "auth.info;authpriv.info |exec /usr/local/sbin/sshguard" >> /etc/syslog.conf

Правила блокировки по таблице, /etc/pf.conf

   internet="vlan50"
   table persist
   block in quick on $internet from label "ssh bruteforce"

Перечитываем измененные файлы конфигурации PF и syslogd:

   pfctl -f /etc/pf.conf
   /etc/rc.d/syslogd restart

Тестируем попробовав подобрать пароли:
   shguard[1048576]: Started successfully [(a,p,s)=(4, 420, 1200)], now ready to scan.

   sshd[1048577]: Invalid user administrador from 21.138.24.51
   sshd[1048579]: Invalid user publica from 21.138.24.51
   sshd[1048580]: Invalid user rbecerril from 21.138.24.51
   sshd[1048581]: Invalid user rvences from 21.138.24.51

   sshguard[1048582]: Blocking 21.138.24.51: 4 failures over 15 seconds.
   shguard[1048583]: Releasing 21.138.24.51 after 490 seconds.
 
25.05.2007 , Автор: Roman Y. Bogdanov , Источник: http://brj.pp.ru/...
Ключи: ssh, attack, bruteforce, block, syslog, pf, firewall / Лицензия: CC-BY
Раздел:    Корень / Безопасность / SSH

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, xa4a (?), 12:56, 27/05/2007 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    в линуксе делаю так:
    iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource

    iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j LOG --log-prefix "SSH_brute_force "

    iptables -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j DROP

     
     
  • 2.17, evgeniy1 (ok), 18:48, 30/05/2007 [^] [ответить]    [к модератору]
  • +/
    не совсем понял - -m recent --update --seconds 180 --hitcount 4 --rttl --name SSH --rsource -j DROP
    блокирует на 3 мин  или на бОльшейй время?
     
  • 1.2, Samm (??), 19:52, 27/05/2007 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    а для pf есть bruteblock
     
  • 1.3, akvazar (?), 09:12, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Эт конечно решение, но не проще(правильнее) ли пойти от обратного и закрыть ssh изначально за фаером, а открывать тем же порткнокером? Если кулхацкеры не увидят ssh вообще, то и щимиться не будут :)
     
     
  • 2.4, arachnid (??), 11:49, 28/05/2007 [^] [ответить]    [к модератору]
  • +/
    а можно чуть поподробнее? что за порткнокер?
     
     
  • 3.6, akvazar (?), 12:31, 28/05/2007 [^] [ответить]    [к модератору]  
  • +/
    /usr/ports/security/knock

    knockd is a port-knock server. It listens to all traffic on an ethernet
    (or PPP) interface, looking for special "knock" sequences of port-hits.

    A client makes these port-hits by sending a TCP (or UDP) packet to a
    port on the server. This port need not be open -- since knockd listens
    at the link-layer level, it sees all traffic even if it's destined for
    a closed port. When the server detects a specific sequence of port-hits
    port-hits, it runs a command defined in its configuration file. This
    can be used to open up holes in a firewall for quick access.

     
  • 3.8, Andrey Mitrofanov (?), 12:45, 28/05/2007 [^] [ответить]    [к модератору]  
  • +/
    > что за порткнокер?
    "port knocking" ~ Способ доступа/опознавания хостом без открытых для соединения наружу tcp/ip портов...
    http://opennet.ru/search.shtml?exclude=index|/man.shtml&words=port+knock
    http://en.wikipedia.org/wiki/Port_knocking
     
  • 1.5, MoHaX (ok), 12:06, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А мне хватает изменения стандартного порта. Брутфорсов на ссх не наблюдал уже давно...
     
     
  • 2.7, akvazar (?), 12:34, 28/05/2007 [^] [ответить]    [к модератору]  
  • +/
    Видимо ваши кулхацкеры нмап не проходили :)
     
     
  • 3.9, MoHaX (ok), 13:10, 28/05/2007 [^] [ответить]    [к модератору]  
  • +/
    Видимо я кулхацкерам нафик не нужен, а от всяких роботов помогает...
     
  • 1.10, niger (??), 13:33, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Если использовать PF то разумнее использовать
    An example rule:
    pass in on $ext_if proto tcp to $web_server \
        port www flags S/SA keep state \
        (max 200, source-track rule, max-src-nodes 100, max-src-states 3)
    The rule above defines the following behavior:      Limit the absolute maximum number of states that this rule can create to 200      Enable source tracking; limit state creation based on states created by this rule only      Limit the maximum number of nodes that can simultaneously create state to 100      Limit the maximum number of simultaneous states per source IP to 3


    потом по крону чистить таблицу. В обсд можно без крона.

     
     
  • 2.24, pAnTeRa (?), 17:34, 26/06/2007 [^] [ответить]    [к модератору]  
  • +/
    А можно чуток по подробнее, возможно и не PF дойдут до такой фичи ))) Я бы с удовольствием поразбирался, благо тему подняли актуальную...или отправь хотяб к ману по заданному примеру...
     
  • 1.11, Аноним (-), 15:33, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    DenyHosts = рулез
     
  • 1.12, Ара (?), 16:58, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Или вообще сменить дефолтовый 22 на 54187?
     
     
  • 2.13, Ара (?), 16:59, 28/05/2007 [^] [ответить]    [к модератору]  
  • +/
    Пока писал, MoHaХ за меня ответил.
     
  • 1.14, dvarkin (?), 20:30, 28/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    echo "sshd: EXCEPT x.x.x.x" >> /etc/hosts.deny


     
  • 1.15, Skif (??), 13:23, 29/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    или так :)
    ###number 1
    block drop in quick on $ext_if from <ssh-bruteforce>

    ###number 2
    pass in on $ext_if proto tcp from any to $ext_if) port ssh flags S/SA keep state (max-src-conn-rate 3/30, overload <ssh-bruteforce> flush global)

    смотреть список адресов
    pfctl -T show -t ssh-bruteforce

     
  • 1.16, drongous (??), 15:01, 29/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Ответ чемберлена.
    Читаем тут: "Simple portknocking daemons as knockd are vulnerable because a sniffer may recover which ports where knocked. A better solution is Cryptknock ([WWW] http://cryptknock.sourceforge.net/) Cryptknock's description says: "Cryptknock is an encrypted port knocking tool. Unlike other port knockers which use TCP ports or other protocol information to signal the knock, an encrypted string is used as the knock. This makes it extremely difficult for an evesdropper to recover your knock (unlike other port knockers where tcpdump can be used to discover a port knock)."
     
  • 1.18, SunTech (?), 15:35, 31/05/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    и когда портнокер падает, достучаться до машины не реально...

    хорошая перспектива

     
     
  • 2.19, pavel_simple (ok), 16:02, 31/05/2007 [^] [ответить]    [к модератору]  
  • +/
    >и когда портнокер падает, достучаться до машины не реально...
    >
    >хорошая перспектива

    cron эту проблему снимает, да и чтоб портнокер падал -- ну не знаю чем его так сильно надо постараться.

     
  • 2.22, Iscander (??), 13:58, 11/06/2007 [^] [ответить]    [к модератору]  
  • +/
    Есть ещё monit
    http://www.tildeslash.com/monit/
    не cron-ом единым
     
  • 1.20, JavaScript (ok), 14:22, 03/06/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    моя делать так:
    /usr/ports/security/sshit/

    # make install clean

    /usr/local/etc/sshit.conf ->
    FIREWALL_TYPE = ipfw2

    /etc/syslog.conf ->
    auth.info;authpriv.info                         |exec /usr/local/sbin/sshit

    ipfw add ### deny ip from table(0) to any

    /etc/rc.d/syslod restart

    дополнительно можно:
    /etc/ssh/sshd_config ->
    AllowUsers user1 user2
    /etc/rc.d/sshd reload

     
  • 1.21, Mike (??), 18:08, 08/06/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    [17:04][copperhead][/home/mike]#cat /etc/inetd.conf | grep sshd
    ssh     stream  tcp     nowait/5/10     root    /usr/sbin/sshd          sshd -i -4

    не вариант более?

     
  • 1.23, 1 (??), 17:02, 20/06/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    незнаю...н амоих сервоках раньще постоянно пытались подобрать пароль...Но сделал мутки и после 3-ёх неудачных логинов ip блочиться на сутки...Через сутки можно пробовать опять...
     
     
  • 2.25, frey (?), 20:59, 21/07/2007 [^] [ответить]    [к модератору]  
  • +/
    Зачем все это, pam чем не угодил?
     
  • 1.27, XoRe (??), 13:48, 03/08/2007 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Кстати укажу на ещё одну альтернативу:
    /etc/ssh/sshd_config

    А в целом есть много способов снять с кошки щкуру )
    Так же есть много способов автоматического блочения хулиганов.

     
     
  • 2.28, Lion_Ua (ok), 18:16, 30/09/2007 [^] [ответить]    [к модератору]  
  • +/
    У меня заработало только если добавить
    auth.info;authpriv.info                |exec /usr/local/sbin/sshit
    после строки
    auth.info;authpriv.info               /var/log/auth.log

    Когда прописал в конце не работало!

     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



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