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

    Простое, эффективное, точное и проверенное бесплатное решение от мощных ддос-атак: PHP скрипт + Cloudflare, с панелью управления.

TARPIT - ловушка в iptables для ддос-ботов

admin

admin

Администратор
Администрация
#1
По сути модуль для iptables - TARPIT, открывает у вас на компьютере TCP/IP порт, который ведет в никуда. Если какая-то система соединяется с таким портом, то закрыть такое соединение быстро не получится. Соединение будет висеть до тех пор, пока не прервется само по таймауту. Причем компьютер который инициировал соединение будет тратить свои системные ресурсы, а ваш компьютер просто будет останавливать попытки передачи данных, что практически не расходует ресурсов.

Зачем нужен этот TARPIT?
В основном, чтобы сымитировать открытые порты в системе и ввести хакеров в заблуждение, можно открывать порт для тестов и смотреть есть соединение или нет, можно попробовать от DDOS отбиться.

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

Что нам нужно? Я буду полагать, что все уже перешли на ядро 2.6, так что буду рассказывать для него, для ядра 2.4 немного было по другому.
Нам надо модуль ядра - xt_TARPIT и поддержка TARPIT в iptables - библиотека libipt_TARPIT.so.
Если у вас эти файлы есть в системе, то можете смело переходить к изменению конфига iptables и пробовать.
Но как показывает практика и вопросы в google у кого-то что-то из компонентов есть, или вообще про TARPIT ни слова в системе.

Приступим. Идем на сайт разработчиков TARPIT и скачиваем патчи для вашего ядра и своей версии iptables. К сожалению на конец 2011 года там были патчи для ядер только 2.6.29, когда уже версия ядер перевалила за 2.6.35..
Если сайт не открывается, то скачайте патчи для тех ядер что у меня есть tarpit iptables patch для 2.6.24, 2.6.27 и 2.6.29.

Настройка ядра
В пример я приведу как я пропатчил уже далеко не современную систему на ядре 2.6.27, но сути это не меняет.
Копируем патч в директорию исходников ядра и накладываем патч.
Код:
#/usr/src/linux# patch -p1 < ./tarpit-2.6.27.patch
patching file drivers/char/random.c
patching file net/netfilter/Kconfig
patching file net/netfilter/Makefile
patching file net/netfilter/xt_TARPIT.c
Теперь выполняем make menuconfig или что вам удобней и включаем сборку модуля TARPIT по пути

Networking support -> Networking Options ->Network packet filtering framework (Netfilter) -> Core Netfilter Configuration ->"TARPIT" target support
Собираем его модулем или встроенным в ядро это на ваше усмотрение. В принципе с ядром все, можно его собирать и загружаться на этом ядре.

Настройка iptables
Скачиваем или берем исходники из дистрибутива точно такой же версии, что и установлены у вас в системе (можно не точно такой-же, но тогда придется заменить весь пакет iptables вашей системы).
У меня была версия iptables 1.4.2. Я скопировал патч в директорию с исходниками iptables и пропатчил iptables.
Код:
#/usr/src/iptables-1.4.2# patch -p1 < ./iptables-1.4.2-tarpit.diff
patching file extensions/libipt_TARPIT.c
patching file extensions/libipt_TARPIT.man
К слову сказать этот патч подходит и для iptables версии 1.4.3.2.
Затем
Код:
#./configure
#make
make install делать не недо (вы же не хотите полностью переустановить iptables?).
В каталоге исходников iptables в папке extensions вы должны увидеть новую библиотеку - libipt_TARPIT.so. Просто копируете этот файл в папку системы к остальным библиотекам iptables. У меня путь в системе где лежат все библиотеки iptables - /usr/libexec/xtables.

Правка конфига iptables
Теперь можно и править конфиг вашего брандмауэра. Например открываем порт 443 для пустых соединений.
Код:
iptables -A INPUT -i eth0 -p tcp -m tcp --destination-port 443 -j TARPIT
iptables должен обработать эту строку безо всяких ошибок. Если ошибки есть значит какой-то модуль ядра или библиотека не работают. Еще раз внимательно все проверьте и посмотрите начиная от накладывания патчей. Там ошибок быть не должно..

Можно указать список портов через multiport.
Код:
iptables -A INPUT -i eth0 -p tcp -m tcp -m mport --dports 135,139,1025 -j TARPIT
А если у вас все соединения к вам прописаны в брандмауэре, например как в моей статье Настраиваем защищенный iptables, то в конце такого конфига можно прописать строку
Код:
iptables -A INPUT -p tcp -m tcp -j TARPIT
тогда все кто пытается соединиться не по вышеуказанным портам попадают в "ловушку". Фактически для удаленной системы у вас открыты все порты. Что очень удивляет сканирующих
icon_smile.gif


nmap-300x287.jpg

Пример сканирования компьютера с TARPIT
Удачи. Надеюсь у вас все получится..
 
Сверху