LINUX.ORG.RU

xtables

 , ,


0

1

Второй день уже пробую настроить portknocking через xtable, перерыл весь гугл, ничего толкового не нашел.

Ситуация следующая, в файрволе прописано правило

-A INPUT -p tcp -m state --state NEW -m pknock --knockports 2001,2002,2003 --time 20 --name SSH -m tcp --dport 22 -j ACCEPT

пытаюсь стучаться на указанные выше порты, реакции ноль, конект не проходит, соотвественно 22 порт не открывается. Что я делаю не так ?



Последнее исправление: ShadOff (всего исправлений: 1)

Ответ на: комментарий от anton_jugatsu

pknock match options: --knockports port[,port,port,...] Matches destination port(s). --time seconds Max allowed time between knocks. --autoclose minutes Time after which to automatically close opened port(s). --strict Knocks sequence must be exact. --name rule_name Rule name. --checkip Matches if the source ip is in the list.

проверяю просто, пытаюсь стучаться на данные порты телнетом. Соединение не проходит, 22 порт тоже не открывается.

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

это я так понимаю отдельный демон, а хочется через iptables все сделать, плюс у меня уже начинают закрадываться сомнения, а работают ли остальные модули от xtables :)

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

насколько я понимаю это без использования xtables, а правило ставил первым в списке

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

Опыта с pknock нету, но вы посмотрите tcpdump'ом, что нужные вам syn пакеты приходят в нужном порядке, telnet способен генерить несколько syn-пакетов, если ему не отвечают, может это сбивает этот модуль.

Счётчик у этого правила растёт, а то у вас там --state NEW, а для ESTABLISHED 22 порт разрешён?

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

А в файле /proc/net/xt_pknock/SSH что-нибудь есть и изменяется при прихождении пакетов на порты 200[1-3] ?

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

Если я правильно понял исходник модуля, то в файле /proc/net/xt_pknock/SSH должны появляться записи уже после первого SYN-пакета на порт 2001. Попробуйте засунуть первым в iptables такое правило:

-I INPUT -p tcp -m pknock --knockports 2001,2002,2003 --time 20 --name SSH

Если ничего не изменится, тогда, только пробовать перекомпилировать модуль ядра ipt_pknock.ko, включив там отладку (debug).

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

этим правилом я так понимаю угрохаю все ТСР соединения пока не сработает стук, а до сервера ногами увы не дойти, так как он у хостера, перекомпилировать не получится, я ставил из репозитория. На сервере стоит Debian.

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

Скорее всего в одном из правил стоит DROP запрещающий --state NEW.

anonymous
()
Ответ на: комментарий от ShadOff

Я на 99.9% уверен, что iptables-правило, у которого нет цели (target), а только условие (match) не может повлиять на пакет, поэтому добаление предложенного мною правила не может повлиять на tcp-соединения. Оно должно только отслеживать пакеты и менять содержимое файла в /proc.

Потом, вроде как при перезагрузке правила iptables не сохраняются, а возможность удалённой перезагрузки обычно есть. Если же сервер у вас такой, что его фиг перезагрузишь, то добавляя любое правло iptables лучше защищатся от ошибок/опечаток. Допустим, перед добавлением правил заносить в cron или at задание на очистку всех правил и установку ″-P ACCEPT″.

Хотя для разборок с этим pknock лучше поставить отдельный Дебиан в виртуалку или на реальный компьютер, отлаживать правила itpables на рабочем сервере как-то не правильно.

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