The OpenNET Project / Index page

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

Автоблокирование атак по подбору паролей (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

Обсуждение [ Линейный режим | Показать все | 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:
    Заголовок:
    Текст:




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

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