По сути модуль для 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, но сути это не меняет.
Копируем патч в директорию исходников ядра и накладываем патч.
Теперь выполняем 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.
К слову сказать этот патч подходит и для iptables версии 1.4.3.2.
Затем
make install делать не недо (вы же не хотите полностью переустановить iptables?).
В каталоге исходников iptables в папке extensions вы должны увидеть новую библиотеку - libipt_TARPIT.so. Просто копируете этот файл в папку системы к остальным библиотекам iptables. У меня путь в системе где лежат все библиотеки iptables - /usr/libexec/xtables.
Правка конфига iptables
Теперь можно и править конфиг вашего брандмауэра. Например открываем порт 443 для пустых соединений.
iptables должен обработать эту строку безо всяких ошибок. Если ошибки есть значит какой-то модуль ядра или библиотека не работают. Еще раз внимательно все проверьте и посмотрите начиная от накладывания патчей. Там ошибок быть не должно..
Можно указать список портов через multiport.
А если у вас все соединения к вам прописаны в брандмауэре, например как в моей статье Настраиваем защищенный iptables, то в конце такого конфига можно прописать строку
тогда все кто пытается соединиться не по вышеуказанным портам попадают в "ловушку". Фактически для удаленной системы у вас открыты все порты. Что очень удивляет сканирующих
Пример сканирования компьютера с TARPIT
Удачи. Надеюсь у вас все получится..
Зачем нужен этот 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
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
Затем
Код:
#./configure
#make
В каталоге исходников 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
Можно указать список портов через multiport.
Код:
iptables -A INPUT -i eth0 -p tcp -m tcp -m mport --dports 135,139,1025 -j TARPIT
Код:
iptables -A INPUT -p tcp -m tcp -j TARPIT
Пример сканирования компьютера с TARPIT
Удачи. Надеюсь у вас все получится..