iptables registra a cadeia de consulta da url

1

Eu registro e deixo os pacotes enviados para um IP / nome de domínio específico. Eu gostaria de poder registrar os parâmetros de url para esses pacotes descartados.

Este é um exemplo de URL:

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

Isso é o que estou fazendo, por exemplo:

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

Na cadeia de LOGGING:

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

Eu tentei essas opções sem sucesso:

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

Basicamente, eu gostaria de poder obter as mesmas informações relevantes de tcpdump , mas porque eu derrubo pacotes, você conhece a história, eu não posso usar o tcpdump aqui (pelo que entendi) ...

É possível usar o log do iptables (para um arquivo de texto ?!) para obter a string de consulta de URL do pacote descartado? Neste exemplo, seria:

param1=test1&param2=test2

Meu conhecimento sobre tudo isso está próximo do zero, então me desculpe se é uma pergunta boba.

Thx

    
por rostM 09.06.2017 / 11:06

1 resposta

2

Você não conseguirá isso corretamente apenas com o iptables, mesmo que apenas pelo fato de que o URL de solicitação pode estar fragmentado em vários pacotes.

Como você está filtrando o OUTPUT, provavelmente uma maneira mais robusta e fácil seria instalar um proxy HTTP local, como o Squid e adicione suas regras de filtragem ao squid.

Por questões de integridade, você pode usar o iptables para bloquear tudo, exceto o proxy do squid, para se conectar a esse host proibido.

De acordo com o seguinte exemplo de configuração , você deve ter em seu squid.conf

http_port 3129 intercept

e, em seguida, interceptar solicitações com

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

A primeira regra é necessária para que o próprio squid possa fazer proxy do pedido para o host original, se você quiser deixar passar algum tempo.

Você pode observar as URLs das solicitações consultando o arquivo access.log padrão produzido pelo squid. Para realmente bloquear URLs, você deve configurar algumas ACLs em squid.conf :

acl blocktestphp url_regex test.php
http_access deny blocktestphp
    
por 09.06.2017 / 11:29