Видео ролики бесплатно онлайн

Смотреть измена видео

Официальный сайт printclick 24/7/365

Смотреть видео бесплатно

zivot_je_cudo 30.04.2009 11:47

Linux Network AdministrationTARPIT без patch-o-matic

Нередко приходится видеть в логах брутфорс ssh или ftp или не менее назойливый скан httpd-директории. Иногда атаки совершаются не только с внешних адресов, но и с хостов с домашней локальной сети, где куча виндовых пользователей, подхвативших вирусы.

Есть масса способов защититься от этого, и я использую fail2ban. В сравнении с аналогичными программами он обладает более широкой функциональностью и гибкостью — позволяет использовать регексы для нестандартных сервисов и менять правила блокировки. Но хочется не просто защитить свой сервер от атак, а еще и слегка проучить атакующего.

Стандартными средствами iptables этого не сделать, но в расширенном варианте patch-o-matic, патче для ядра linux, есть цель TARPIT, позволяющая создать «ловушку» для нежелательных tcp-соединений.Работает это следующим образом: при обращении к порту, на котором стоит правило TARPIT, атакующий получает в ответ SYN-ACK (биты подтверждения на установление соединения), а так же принудительное установление размера tcp-окна, равным нулю. Это приводит к тому, что атакующая сторона не может передать никаких данных, а все ее попытки разорвать соединение игнорируются. Таким образом, соединение находятся в подвисшем состоянии до истечения тайм-аута (12-24 минут), что расходует ресурсы атакующей машины, но не атакуемой.

Узнав об этом, я сразу захотел прописать TARPIT вместо DROP в конфиг fail2ban и в запрещающие правила iptables, но при мысли, что для этого при каждом обновлении мне придется патчить ядро с patch-o-matic заново, просто опускались руки. И вообще, казалось очень странным и совсем не хотелось применять патч пятилетней давности к свежим исходникам. Оно и правильно, как оказалось, TARPIT теперь доступен и без патча ядра в составе xtables-addons. Все уже есть в ядре, для его использования надо лишь убедиться, что опция CONFIG_NETFILTER_XTABLES в конфиге ядра включена (y|m).

Xtables-addons представляет собой дополнительные расширения для iptables, ip6tables и ebtables. Среди интересных целей есть не только TARPIT, а так же DELUDE, CHAOS, DHCPMAC, ECHO, IPMARK, LOGMARK, STEAL, SYSRQ, TEE и др.

DELUDE отправляет ответ SYN-ACK на SYN, но RST на все остальные. Таким образом, сканер атакующей машины при SYN-сканировании показывает, что целевой порт открыт, в то время как на самом деле порт закрыт.

CHAOS создает запутывающий эффект для входящих соединений. Он рандомно может отвечать на соединения как REJECT и TARPIT или как REJECT и DELUDE.

ECHO отправляет назад все полученные пакеты :)

IPMARK позволяет помечать пакеты на основе их ip-адреса.

STEAL действует как DROP, но не вызывает ошибок, свойственных DROP в цепочке OUTPUT.

SYSRQ при срабатывании правила вызывает сигнал sysrq. Это полезно, если на машине, доступной только по сети, повисли жизненно важные части системы. И, конечно, в xtables для этого правила предусмотрена специальная защита по mac/ip или по паролю.

TEE клонирует пакет и перенаправляет его клон на другую машину сегмента локальной сети.

Дождавшись заветного TARPIT, сразу внес его в конфиг fail2ban, а так же и в те правила, куда неплохо было бы прибавить «месть». Получилось вот что:

1
2
3
4
5
6
7
for port in 137:139 445; do

iptables -A INPUT -p tcp --dport $port -j TARPIT

iptables -A INPUT -p udp --dport $port -j DROP

done;



Сюда попадаются виндовые сканеры шар, например lanscope. Пока не тестил, но думаю, это выглядит как зависание на моем адресе при сканировании локальной сети.

1
2
3
4
5
6
7
for ip in 10.128.17.61 75.127.73.253 208.50.46.46; do

iptables -A INPUT -p tcp -s $ip -j TARPIT

iptables -A INPUT -s $ip -j DROP

done;



Под эти правила попали самые жесткие и самые назойливые нарушители, для них моя машина теперь как одна сплошная куча, куда они наступают.

1
2
3
4
5
6
7
for port in 22 21; do

iptables -A INPUT -p tcp -m state --state NEW --dport $port -m recent --update --seconds 20 -j TARPIT

iptables -A INPUT -p tcp -m state --state NEW --dport $port -m recent --set -j ACCEPT

done



А это очередная защита от брутфорса. Разрешает SYN на ssh и ftp не чаще одного раза в 20 секунд, иначе — TARPIT.



Пробовал тестировать telnet-соединение на правило TARPIT. Результат — терминал на долгое время ушел в аут, не реагируя ни на ctrl-c, ни на ^>, пришлось закрывать вкладку.

Xtables-addons, как сообщается на оффициальном сайте, содержится в Alpine Linux, CRUX, Debian, Gentoo, PLD Linux, openSUSE, openWRT, Shorewall, Slackware и, возможно, других. От себя могу добавить, что с недавнего времени он доступен и в Arch Linux в виде PKGBUILD'a в AUR.

UPD: комментарий melco:

Когда добавляешь правило для TARPIT нужно обязательно выключать conntraq raw
таблице, иначе ты кушаешь не только ресурсы системы, которая атакует, но и свои
тоже :)
iptables -t raw -I PREROUTING -p tcp --dport $port -j NOTRACK


Тэги: brute-force iptables patch-o-matic xtables
+ 8 -
Похожие Поделиться

Username 30.04.2009 12:20 #
+ 0 -
в мемориз. Просьба написать небольшйой гайд по защите небольшого сайта.
xT 30.04.2009 13:22 #
+ 3 -
перенос ssh на нестандартный порт разве не тру?
dr_magnus 30.04.2009 14:29 #
+ 1 -
Не тру, точнее не всегда тру.
В корпоративных сетях (да и не только) могут быть прикрыты все нестандартные порты.
zivot_je_cudo 30.04.2009 15:10 #
+ 0 -
Я не люблю переносить порты и не люблю, когда это делают другие, а моя защита от брутфорса намного эффективнее и даже идеальна.
zivot_je_cudo 30.04.2009 15:26 #
+ 0 -
даже идеальна
В доказательство - вот, что вижу каждое утро в парсере логов:
--------------------- SSHD Begin ------------------------
Failed logins from:
91.207.192.252: 1 time
Illegal users from:
210.83.25.77: 1 time
Users logging in through sshd:
hхххххх:
78.85.хх.хх (mail2.hхххххх.org): 2 times
Could not get shadow information for:
NOUSER : 1 Time(s)
---------------------- SSHD End -------------------------
И все, брутфорсеры повторяют запрос чаще одного раза в 20 секунд и попадают в гостеприимный TARPIT.
xcr 30.04.2009 13:34 #
+ 1 -
Статья порадовала, спасибо.
Одно но: какая-то у вас странная терминология. То, что вы называете цепочкой, в манах зовется "target", т.е. "цель". А словом "chain" (т.е. "цепь") там называется INPUT и прочие
zivot_je_cudo 30.04.2009 15:03 #
+ 0 -
Спасибо, поправил)
melco 23.09.2010 11:15 #
+ 1 -
Когда добавляешь правило для TARPIT нужно обязательно выключать conntraq raw таблице, иначе ты кушаешь не только ресурсы системы, которая атакует, но и свои тоже :)
iptables -t raw -I PREROUTING -p tcp --dport $port -j NOTRACK
zivot_je_cudo 23.09.2010 11:24 #
+ 0 -
Спасибо, добавил к статье.

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн