Назад | Перейти на главную страницу

строка запроса URL журнала iptables

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

Это пример URL:

http://somedomain.com/test.php?param1=test1&param2=test2

Вот что я делаю, например:

iptables -A OUTPUT -p tcp -d somedomain.com --dport 80 -m string --string 'param1=' --algo bm -j LOGGING

В цепочке LOGGING:

iptables -A LOGGING -j LOG --log-prefix "somedomain.com Packet Dropped: " --log-level 7

Я безуспешно пробовал эти варианты:

--log-ip-options
--log-tcp-options

В принципе, я хотел бы получить такую ​​же актуальную информацию, как от tcpdump но поскольку я сбрасываю пакеты, вы знаете историю, я не могу использовать здесь tcpdump (насколько я понимаю) ...

Можно ли с помощью журнала iptables (в текстовый файл ?!) получить строку запроса URL-адреса отброшенного пакета? В этом примере это будет:

param1=test1&param2=test2

Мои знания обо всем этом близки к нулю, так что извините, если это глупый вопрос.

Спасибо

Вы не сможете добиться этого правильно с помощью только iptables, хотя бы потому, что URL-адрес запроса может быть фрагментирован на несколько пакетов.

Поскольку вы фильтруете OUTPUT, вероятно, более надежным и простым способом было бы установить локальный HTTP-прокси, например Кальмар, и добавьте свои правила фильтрации в squid.

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


Согласно следующему Пример конфигурации, вы должны иметь в своем squid.conf

http_port 3129 intercept

а затем перехватить запросы с помощью

iptables -t nat -A OUTPUT -p tcp -d somedomain.com --dport 80 -m owner  --uid-owner squid -j ACCEPT
iptables -t nat -A OUTPUT -p tcp -d somedomain.com --dport 80 -j DNAT --to-destination 127.0.0.1:3129

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

Вы можете просмотреть URL-адреса запросов, посмотрев значение по умолчанию access.log файл, созданный squid. Для фактической блокировки URL-адресов вы должны настроить некоторые ACL в squid.conf:

acl blocktestphp url_regex test.php
http_access deny blocktestphp