URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 15176
[ Назад ]

Исходное сообщение
"OpenNews: Блокирование подбора паролей с помошью пакетного фильтра PF"

Отправлено opennews , 06-Май-06 16:09 
Переведены две статьи про блокирование "bruteforce" атак на ssh с помошью pf:
-  Блокировка bruteforce атак на ssh с помощью PF (http://wiki.bsdportal.ru/doc:grblocksshbroteforce)-  Замедление bruteforce атак на SSH с помощью PF (http://wiki.bsdportal.ru/doc:grblocksshbruteforce)


URL: http://wiki.bsdportal.ru/doc:grblocksshbroteforce
Новость: http://www.opennet.me/opennews/art.shtml?num=7471


Содержание

Сообщения в этом обсуждении
"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Алхимик , 06-Май-06 16:09 
Имхо проще перенести sshd на нестандартный порт.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено CrazyF , 06-Май-06 16:53 
IMHO такие вещи лучше решать с помощью файрвола. А сканить будут один фиг по диапазону портов. И ваш "нестандартный" порт будут пытаться сломать всё равно.....

"Я чего-то остро недопонимаю."
Отправлено Квагга , 07-Май-06 00:26 
Я чего-то остро недопонимаю - сканят, да пусть хоть обсканятся наизнанку.

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

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

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

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

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


"Я чего-то остро недопонимаю."
Отправлено Krieger , 12-Дек-06 23:05 
>Ну а "брутфорс", не громковато ли сказано для возможности отрубить средствами sshd
>
>на полчасика вход после первой неудачной попытки, когда имя судуера
>тоже надо еще как УГАДАТЬ?
>
>Только судуер "kjhcsa8ucwh9cwh2h73rc73f2npeklu;" может войти по SSH.
>Одна попытка на 10 сек и 30 мин отдыхать. КАКОЙ "брутфорс"?

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



"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено 5trovi4 , 10-Май-06 10:36 
>Имхо проще перенести sshd на нестандартный порт.
Поддерживаю.


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 06-Май-06 16:10 
а для iptables как подобного добиться?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 06-Май-06 16:49 
Поддерживаю - перенес sshd на нестандартный порт и все.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Stinky , 07-Май-06 14:33 
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
Три соединения (новых) в минуту пускает нормально, дальше дропает. Если минуту не дергаться, соответственно можно опять подключаться. Переборшиков блокирует на ура.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 08-Май-06 17:19 
на 2.4.31 это работать должно? у меня не пускает ни разу по этой паре правил.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 08-Май-06 17:23 
и на 2.6.16.7 тоже дропаются соединения. вы это проверяли? может еще что-то дописать нужно?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Stinky , 08-Май-06 18:01 
Это точно работает так, как задумано на 2.6.12/iptables 1.3.4 (то что сейчас крутится)
"recent match support" включено?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 08-Май-06 19:05 
включено. эксперимент на 2.6.16.7/14 - показал что это (больше) не работает.
iptables v1.3.5

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 08-Май-06 20:04 
*очень уж хочется, что-бы это работало :)*

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Stinky , 09-Май-06 13:27 
Дык, блин...
Ну конечно ACCEPT после этих правил должен идти. Что-нить стандартное типа `-dport 22 -j ACCEPT`.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 09-Май-06 14:47 
угу, уже работает, догадался :)
спасибо. хорошая штука.

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Stinky , 08-Май-06 18:05 
Кстати, сперто отсюда
http://www.linux.org.ru/view-message.jsp?msgid=1320671

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 06-Май-06 16:51 
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.
---


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено satelit , 07-Май-06 04:25 
Интересно, а как модуль limit сможет отличить авторизацию на ssh, от работы уже авторизованного пользователя?, а то получиться что он будет тормозить нормальную работу.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено daff , 07-Май-06 12:29 
    [!] --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.


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено satelit , 07-Май-06 17:38 
Тогда получиься задержка не на каждую авторизацию, а на каждую вторую авторизацию, т.к. ssh сервер (у меня по крайней мере) допускает две попытки авторизации в рамках одного соединения, хотя и этого достаточно.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Mikk , 06-Май-06 17:59 
Что-то мне все эти лимиты не нравятся. Лучше уж разрешить доступ только для определённых сетей.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено keyhell , 06-Май-06 19:02 
пожалуйста, не пишите ересь про перенос на нестандартный порт. это помогает только против школьников.
надежной защитой является правильная настройка firewall + запрет на доступ из внешних сетей + авторизация по ключам.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено MacCook , 06-Май-06 20:30 
Под 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 коннектить...


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено pro , 06-Май-06 21:01 
Очень интересный пример кстати!

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Userr , 06-Май-06 23:05 
/usr/ports/security/doorman - не поможет?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Андрей , 08-Май-06 14:41 
Я чуть-чуть доработал пример - иначе 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

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено fb , 06-Май-06 21:18 
Ещё один вариант:
http://ethernet.org/~brian/src/timelox/
и небольшой комментарий к нему:
http://wwwx.cs.unc.edu/~hays/dev/timelox_and_TheHand/

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено mofs , 06-Май-06 21:28 
Для IPTables есть hashlimit, который уже, даже, включен стд релиз.
http://www.netfilter.org/projects/patch-o-matic/pom-submitte...

$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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 06-Май-06 22:28 
Почти такое же решение, но своего "производства", использовал на фре.  Потом отказался. ИМХО лучше прописать доступ по ssh с доверенного хоста/хостов.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено BB , 06-Май-06 22:33 
Основное тут, то что можно и нужно не блокировать, а затормозить и выдать ошибочную информацию для атакующего :)
Для аттакующего разбор логов Nmap и поиск по этим результатам уязвимостей и применение их и так процесс достаточно "депресивный" а тут еще и обманывают его на  каждом порту/шаге :)

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено dem , 06-Май-06 23:47 
>Основное тут, то что можно и нужно не блокировать, а затормозить и
>выдать ошибочную информацию для атакующего :)
>Для аттакующего разбор логов Nmap и поиск по этим результатам уязвимостей и
>применение их и так процесс достаточно "депресивный" а тут еще и
>обманывают его на  каждом порту/шаге :)


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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено dvg_lab , 07-Май-06 00:19 
pf рулит однако... хотя с другой стороны дыры php на хостинговом сервере таким образом не заткнешь :-/

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Adil_18 , 07-Май-06 00:45 
Ребятя, а про sshlockout уже все забили ?
Или никто и не знал ?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено greyork , 07-Май-06 01:09 
> Ребятя, а про sshlockout уже все забили ?
Какой именно? Гугл показал несколько версий, например:
http://www.xyz.com/progs/sshlockout.c
http://archives.neohapsis.com/archives/freebsd/2005-10/0023....
http://tinyurl.com/84b5o

// greyork


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Adil_18 , 07-Май-06 01:49 
Любой, главное у тебя есть открытый код который можно локализировать под свои нужды.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено greyork , 07-Май-06 02:02 
> Любой, главное у тебя есть открытый код который можно локализировать под свои нужды.

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

// greyork


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Adil_18 , 08-Май-06 00:23 
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <stdarg.h>
#include <syslog.h>

int
main(int ac, char **av)
{
    char buf[1024];
    char *str;
    int n1;
    int n2;
    int n3;
    int n4;

    openlog("sshlockout", LOG_PID|LOG_CONS, LOG_AUTH);
    syslog(LOG_ERR, "sshlockout starting up");
    freopen("/dev/null", "w", stdout);
    freopen("/dev/null", "w", stderr);

    while (fgets(buf, sizeof(buf), stdin) != NULL) {
        if (strstr(buf, "sshd") == NULL)
            continue;
        if (strstr(buf, "Failed password") == NULL)
            continue;
        if ((str = strstr(buf, "Failed password for root from")) != NULL ||
            (str = strstr(buf, "Failed password for admin from")) != NULL
        ) {
            while (*str && (*str < '0' || *str > '9'))
                ++str;
            if (sscanf(str, "%d.%d.%d.%d", &n1, &n2, &n3, &n4) == 4) {
                syslog(LOG_ERR, "Detected ssh password login attempt for root, locking out %d.%d.%d.%d\n", n1, n2, n3, n4);
                snprintf(buf, sizeof(buf), "ipfw add 2100 deny tcp from %d.%d.%d.%d to me 22", n1, n2, n3, n4);
                system(buf);
            }
            continue;
        }
        if ((str = strstr(buf, "Failed password for invalid user")) != NULL) {
            str += 32;
            while (*str == ' ')
                ++str;
            while (*str && *str != ' ')
                ++str;
            if (strncmp(str, " from", 5) == 0 &&
                sscanf(str + 5, "%d.%d.%d.%d", &n1, &n2, &n3, &n4) == 4) {
                syslog(LOG_ERR, "Detected ssh password login attempt for an invalid user, locking out %d.%d.%d.%d\n", n1, n
2, n3, n4);
                snprintf(buf, sizeof(buf), "ipfw add 2100 deny tcp from %d.%d.%d.%d to me 22", n1, n2, n3, n4);
                system(buf);
            }
        }
    }
    syslog(LOG_ERR, "sshlockout exiting");
    return(0);
}


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено RedEyes , 07-Май-06 04:15 
нестандартный порт и сообщений об ошибочной авторизации более чем
достаточно для выявления и пресечения нежелательной активности.

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

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

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 07-Май-06 10:59 
1. xinetd, я так понимаю, никто не использует, и не знает о его параметре only_from

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

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено злобный , 07-Май-06 21:15 
> 1. xinetd, я так понимаю, никто не использует, и не знает о его параметре
> only_from
> 2. использовать в качестве метода защиты DoS sshd - да это круто.

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

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено StSphinx , 07-Май-06 21:18 
Для подобных целей использую софтинку по имени fail2ban. Весьма удобно и конфигурябельно.
Смотрит лог и блокирует IP после N неудачных попыток авторизации, на M минут. M и N настраиваемо. В мыло шлет сообщения о заблокированных брутфорсерах.
ИМХО единственный минус - написано не питоне, ибо не на всех боевых серверах есть питон.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено dukie , 08-Май-06 04:37 
Вот тоже как вариант
/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/


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено аноним , 09-Май-06 05:24 
По моему такие вещи должны решаться на уровне самого sshd.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 09-Май-06 11:44 
первый человек, смотрящий в корень проблемы.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Andrey , 10-Май-06 13:42 
Вопрос в том, почему до сих пор разработчики SSHD не предусмотрели возможность блокировать IP после определенного количества неудачных логинов?

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Settler , 10-Май-06 18:40 
еще бы chroot сделали из коробочки...

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Аноним , 11-Май-06 00:13 
от нафлудили...

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

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

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


"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено mic , 01-Июн-06 21:31 
Мне кажется тут в запарке забыли, что бывает не только скан 64к портов на одном адресе, но и скан всей сетки по порту.
Ежели не забанить желающих, то можно и 50 метров на адрес поиметь "незаказанного" трафика в месяц.
Умножте на количество хостов в сети с 22 портом.

"Блокирование подбора паролей с помошью пакетного фильтра PF"
Отправлено Ce , 09-Июн-06 04:01 
А если создать эмитатор подключения к sshd и редиректить на этот порт атакующего.
Можно повесилиться обоим сторонам. :))