Ubuntu 14.04 — Iptables TARPIT

Опять линукс … возвращение на родину после бздьовых годков 🙂 После ipfw и pf в FreeBSD/OpenBSD линуховый iptables вызывает рвотные рефлексы 🙁 Но есть одна фишка которую я просто обожаю в iptables — TARPIT. Это «ложка дегтя» для всяких какеров и прочей нечести блуждающей в инете в поисках чего бы побрутфорсить 🙂 Не успел поднять ProFTPD как поломились китайские боты подбирать пароли 🙂 Ну ничего, пока их немного — скормлю ручками их TARPIT-у … пусть развлекаются! Можно конечно и DROP применять, но TARPIT с одной стороны блочит трафик напрочь, как DROP, а с другой не рвет TCP сессию … а какбы «специально держит ее», чтобы атакующий не мог закрыть соединение. Таким образом тратятся ресурсы как сервера (они тратятся и при DROP), так и бота. Думаю если бы мы жили в идеальном мире и все Linux сервера применяли вместо DROP TARPIT — ботам пришлось бы ой как тяжко 🙂 Но …. мир не идеален — но мы к таковому стремимся!

TARPIT реализован в iptables как дополнительный модуль фаервола и в стандартной поставке его нету. По крайней мере в Ubuntu/Debian это так! Этот модуль включен в пакет вместе с другими интересными модулями фаервола — xtables-addons. Попробуем поискать что есть в репах:

root@Ubuntu:~# apt-cache search xtables
iptables-dev - iptables development files
libxtables10 - netfilter xtables library
xtables-addons-common - Extensions targets and matches for iptables [tools, libs]
xtables-addons-dkms - Extensions targets and matches for iptables
xtables-addons-source - Extensions targets and matches for iptables [modules sources]
root@Ubuntu:~#

Я установил весь пакет, думаю можно собрать конкретные модули из сырцов (xtables-addons-source), но заморачиваться неохота … это же не бздя, нафик самосбор!

root@Ubuntu:~# apt-get install xtables-addons-dkms

Загружаем необходимый модуль:

root@Ubuntu:~# modprobe xt_TARPIT

В логах proftpd светился один крайне назойливый бот, добавляем правило для него:

root@Ubuntu:~# iptables -I INPUT 1 -p tcp -s 175.44.28.125 -j TARPIT

Убедиться что правило добавилось можно просмотрев листинг правил iptables:

root@Ubuntu:~# iptables -L -v -n
Chain INPUT (policy ACCEPT 264 packets, 578K bytes)
 pkts bytes target     prot opt in     out     source               destination        
    0     0 TARPIT     tcp  --  *      *       175.44.28.125        0.0.0.0/0            -j TARPIT --tarpit

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination        

Chain OUTPUT (policy ACCEPT 448 packets, 1149K bytes)
 pkts bytes target     prot opt in     out     source               destination        
root@Ubuntu:~#

Ну вот и все! В следующий раз данному боту обломится нас брутфорсить, да и все остальные сервисы по TCP ему будут недоступны 🙂

P.S. Это простейший метод, ручной. Если вы хотите автоматически блокировать ботов анализируя лог-файлы различных сервисов, вам нужно настроить fail2ban или подобный сервис. Думаю что в ближайшем будущем я напишу о его установке и настройке.

Хай щастить!

    • Fedr
    • Март 15th, 2015 7:53дп

    Спасибо тебе за работу, добрый человек. Процветания тебе и твоему роду. Будьмо!

  1. Трэкбэков пока нет.

Why ask?