PF хитрый трюк

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
GHopper
мл. сержант
Сообщения: 83
Зарегистрирован: 2008-12-11 15:52:22

PF хитрый трюк

Непрочитанное сообщение GHopper » 2009-01-29 8:45:33

Здравствуйте!

Наткнулся в интернете на статью, в которой давалась инструкция как средствами iptables разрешить доступ к порту не чаще 3 раз в 3 минуты (http://undefined.org.ua/blog/2008/03/01/my-iptables/). Я тут подумал - а можно-ли на PF реализовать такой механизм?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: PF хитрый трюк

Непрочитанное сообщение paradox » 2009-01-29 8:55:27

1 я не увидил там таких примеров
2 вы не стой стороны подходите к задаче
3 http://www.openbsd.org/faq/pf/filter.html

GHopper
мл. сержант
Сообщения: 83
Зарегистрирован: 2008-12-11 15:52:22

Re: PF хитрый трюк

Непрочитанное сообщение GHopper » 2009-01-29 9:11:22

Плохо смотрите )
# SSH anti-bruteforce

Код: Выделить всё

$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH --rsource
$IPT -A INPUT -p 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 "
$IPT -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
В результате, в течении трёх минут, разрешаем не более трёх попыток соединения, остальные — дропаем с записью в лог. В случае срабатывания, в системном логе получаем чледующее:

Код: Выделить всё

Mar  1 10:30:45 xa4a kernel: SSH_brute_force IN=eth2 OUT= MAC=00:e0:6f:d9:b4:3d:00:d0:88:04:cf:d4:08:00 SRC=202.144.155.53 DST=82.144.198.94 LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=18235 DF PROTO=TCP SPT=55457 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
Mar  1 10:30:48 xa4a kernel: SSH_brute_force IN=eth2 OUT= MAC=00:e0:6f:d9:b4:3d:00:d0:88:04:cf:d4:08:00 SRC=202.144.155.53 DST=82.144.198.94 LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=18236 DF PROTO=TCP SPT=55457 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
Mar  1 10:30:54 xa4a kernel: SSH_brute_force IN=eth2 OUT= MAC=00:e0:6f:d9:b4:3d:00:d0:88:04:cf:d4:08:00 SRC=202.144.155.53 DST=82.144.198.94 LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=18237 DF PROTO=TCP SPT=55457 DPT=22 WINDOW=5840 RES=0x00 SYN URGP=0
По строке “SSH_brute_force” запросто выбираем эти записи из лога и анализируем.

Сразу же добавляем

Код: Выделить всё

$IPT -A INPUT -p tcp --dport 22 --syn -m state --state NEW -j ACCEP
T

то есть разрешаем доступ к ssh, дабы не быть отрезанными от роутера последующими правилами.

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: PF хитрый трюк

Непрочитанное сообщение kirgudu » 2009-01-29 9:16:43

GHopper писал(а):Здравствуйте!

Наткнулся в интернете на статью, в которой давалась инструкция как средствами iptables разрешить доступ к порту не чаще 3 раз в 3 минуты (http://undefined.org.ua/blog/2008/03/01/my-iptables/). Я тут подумал - а можно-ли на PF реализовать такой механизм?
конечно.

Для только tcp keep state:

Код: Выделить всё

 (max-src-conn-rate 3/10, overload <flooderast> flush global)
не чаще трех соединений за 10 секунд, если превышено - засовываем в таблицу flooderast и глобально чистим стейты по этому IP.

А так, man pf.conf рулит. ;)

GHopper
мл. сержант
Сообщения: 83
Зарегистрирован: 2008-12-11 15:52:22

Re: PF хитрый трюк

Непрочитанное сообщение GHopper » 2009-01-29 9:28:51

спасибо добрый человек ;)
Буду пльзовать, а то у меня 22 порт совсем уже задергали жулики...

GHopper
мл. сержант
Сообщения: 83
Зарегистрирован: 2008-12-11 15:52:22

Re: PF хитрый трюк

Непрочитанное сообщение GHopper » 2009-01-29 9:39:07

А еще один вопросик по ходу дела:
в файле /etc/pf.conf создаю таблицу <abmins> в которой прописываю все ip, которые имеют доступ до админских ресурсов.

Код: Выделить всё

table <admins> const {          \
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
}
Как можно оставить комментарий к каждому ip-адресу, чтобы потом небыло путаницы? Вариант:

Код: Выделить всё

table <admins> const {          \
    xxx.xxx.xxx.xxx,             \ # Вася
    xxx.xxx.xxx.xxx,             \ # Феды
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
    xxx.xxx.xxx.xxx,             \
}
не проходит (

kirgudu
сержант
Сообщения: 185
Зарегистрирован: 2009-01-16 23:14:00

Re: PF хитрый трюк

Непрочитанное сообщение kirgudu » 2009-01-29 10:07:18

adm_vasya="111.111.111.111"
adm_petya="123.123.123.123"

table <admins> { $adm_vasya, $adm_petya }
GHopper писал(а):спасибо добрый человек ;)
Буду пльзовать, а то у меня 22 порт совсем уже задергали жулики...
Ничего не стоит ssh перевесить на какой-ньть заоблачный порт. ;)