LINUX.ORG.RU
ФорумAdmin

Шейпинг узкого канала?


0

1

Привет. Давненько меня сюда не заходило.

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

Дано. Я предоставляю доступ в инет (100мбпс) одной конторе. Она, в свою очередь, имеет удаленный филиал, который присоединен к ней каналом точка-точка (КТТ) через стороннего оператора, пропускной способностью 10мбпс. Пул адресов у них общий, однако на обоих концах КТТ стоят линуховые маршрутизаторы, ибо влан-теги через КТТ не пролазиют. По КТТ идут и голос, и внутренние данные конторы, и инет.

Задача. Нечестный конкурент прознал об узком канале и заказал у китайцев хороший такой ддос. Десять мегабит дважды в день загажены полностью, пакеты падают, голос не проходит - всё плохо. Вопрос! Как защитить узкий канал от флада?

Да, я читал lartc, и давно, но там в основном рассказывается, как оптимизировать _даунлинк_ узкого канала, подразумевается, что аплинк буферизует сам оператор. А я сейчас как раз оказался в роли того оператора.

Очевидная идея - НАТить сеть клиента у себя и отсекать флад на своем маршрутизаторе, до КТТ, - разбивается о сложности организации прямых айпишников для филиала, а они там необходимы. Можно, конечно, поднять pptp или dnat, но любой «засвеченный» реальный адрес снова может быть успешно атакован.

Остается, я понимаю, какой-либо вдумчивый анализатор трафика - но вот какой?

Буду очень признателен за реальные советы.


1) забанить китай вообще для сетей клиента

2) что за флуд-то?

Натить на себя не надо, достаточно пускать трафик через свои железки и отсекать нежелательную активность. Как именно это делать зависит от того каким способам «валят» клиента. Если тупой udp-флуд то вообще всё просто, лишь бы твоих каналов хватило.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

1. Валится очень много откуда, не только с Китая. Есть и Украина, и Мексика, и еще всякая нечисть. Не отфильтруешь. 2. Ну да, удп в жуткой массе. Мой канал пока держит, а вот транзитный - затыкается. Всё просто - это как?

billy
() автор топика
Ответ на: комментарий от billy

зафильтруй входящий udp который не относится ни к чему и всё. Чтобы днс работал итп используй conntrack, только максимальное кол-во правил поставь побольше(/proc/sys/net/ipv4/ip_conntrack_max).

Посмотри для примера такое с recent:

iptables -A INPUT -m set --match-set BASTARDS src -j DROP
iptables -A INPUT -m state --state NEW,RELATED,ESTABLISHED  -j ACCEPT

#basic filtering
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j SET --add-set BASTARDS
iptables -A INPUT -p tcp --dport 20:21 -j SET --add-set BASTARDS

#SSH guard
iptables -A INPUT -p tcp --syn --dport 22    -m recent --rcheck --name SSH --rsource -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 25999 -m recent --set    --name SSH -j REJECT
iptables -A INPUT -p tcp --syn --dport 26000 -m recent --remove --name SSH -j DROP


iptables -I OUTPUT -m set --match-set BASTARDS dst -j REJECT

Это самое базовое.

Ну и тупо бань тех кто udp-трафика много генерит. Короче, лучший помощник при атаках это твоя голова. Ну и вообще вот это прочитай: http://ru.wikipedia.org/wiki/Iptables

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Ну, во-первых, FORWARD, а не INPUT, а во-вторых, как отличить хороших многогенерящих от плохих! :) Пакеты на порты наиболее популярных сервисов, естественно, скидываются на DROP по умолчанию: в филиале просто нет серверов, слушающих в инет.

billy
() автор топика
Ответ на: комментарий от true_admin

Ну идея понятна, однако, udp не всегда бывает related ;) Спасибо. Продолжаю думать.

Зы. Таргет TARPIT порадовал, я не знал о нем!!!

billy
() автор топика
Ответ на: комментарий от billy

udp не всегда бывает related ;)

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

Таргет TARPIT порадовал

Только с udp он не поможет :). Ну и NOTRACK для всех отфильтрованных хостов тоже хорошая идея.

true_admin ★★★★★
()

С китайцами по китайски. Если твое войско большое, показывай врагу, что оно маленькое; если маленькое - показывай, что большое. Если ты далеко, показывай, что близко; если ты близко - показывай, что далеко.

Короче, создать сеть - honeypot, чтобы ее флудили или сменить клиенту IP-шники, а старые использовать для honeypot. А самое главное при этом - делать плохую мину при хорошей игре - показывать противнику, как тебе плохо.

ansky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.