Correspondência de cadeia de caracteres IPtables para algumas URLs

2

Estou tentando escrever a regra iptables correspondência de seqüência de caracteres para bloquear http://example.com:8888 e https://example.com:8888 quando corresponder à sequência de caracteres fornecida na regra. E outra regra para redirecionar as portas também de 8888 para 7777.

Eu tentei seguir as regras, mas infelizmente não funcionou:

iptables -A INPUT -p tcp -s 0.0.0.0/0 -m string --string linuxcore --algo bm --sport 8888 -j DROP
iptables -t raw -A PREROUTING -m string --algo bm --string linuxcore -p tcp -i eth0 --dport 8888 -j DROP
iptables -t nat -A PREROUTING -p tcp --dport 8888 -m string --algo bm --string "linuxcore" -j REDIRECT --to-port 7777
iptables  -A INPUT -t nat -p tcp --dport 8888 -m string --algo bm --string "linuxcore" -j DROP
    
por linuxcore 05.06.2012 / 22:53

1 resposta

2

Parece que você está tentando fazer algo significativamente mais complicado do que eu acho que você quer.

O que você está pedindo:

Bloqueie uma string específica na carga útil (camada 7) de um pacote. Isso impedirá que alguém envie um e-mail ou mensagem instantânea mencionando uma string "linuxcore" ou postando comentários em fóruns sobre isso.

O que eu acho que você quer:

Redirecionar pacotes destinados a qualquer endereço IP resolvido pelo nome domain.com e destinado à porta 8888 para a porta 7777.

Assumirei o que você acha que quer, já que o primeiro não faz muito sentido. Eu também estou assumindo que você não está interessado em combinar "foo.domain.com". Lembre-se de que são tabelas ip e não tabelas dns .

Neste caso, as linhas 1, 2 e 4 são desnecessárias. E você não quer correspondência de string. iptables é inteligente o suficiente para transformar nomes em endereços IP apropriados e multiplexar as regras conforme necessário. Além disso, como você está usando PREROUTING , saiba que isso só irá corresponder ao entrar em seu sistema , não pacotes deixando seu sistema (se você quiser combinar pacotes deixando você precisa usar OUTPUT , ou alternativamente ter um de cada).

Essa regra ficaria assim:

iptables -t nat -A PREROUTING -d domain.com -p tcp --dport 8888 -j REDIRECT --to-ports 7777 
    
por 08.06.2012 / 00:01