Buckminster
(usa Debian)
Enviado em 18/12/2015 - 16:07h
iptables -I FORWARD -s 192.168.0.0/24 -m string --algo bm --string "facebook.com" -j DROP
Utilize o algoritmo bm (Boyer-Moore) em vez do kmp (Knuth-Morris-Pratt), ele é mais rápido e mais eficiente para esse tipo de bloqueio.
O "bm" é mais adequado para quando a string procurada se assemelha ao "texto natural" (no caso, em português, portanto, isso depende do país de onde está vindo o pacote, mas como tu quer bloquear o texto "facebook.com" nesse caso não importa a linguagem, pois o texto é o mesmo) e faz suas comparações da direita para a esquerda; e o "kmp" é mais adequado para palavras curtas, sendo que ele procura uma palavra dentro de uma cadeia de texto principal e faz suas comparações da esquerda para a direita.
E lembre que a opção -I (insert) coloca a regra no topo da chain FORWARD, caso tu tenha mais de uma regra na chain FORWARD utilizando a opção -I, enumere elas:
iptables -I FORWARD 1 -s 192.168.0.0/24 -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD 2 -s 192.168.0.0/24 -m string --algo bm --string "twitter.com" -j DROP
A opção -A coloca a regra em sequência dentro da chain e dentro da posição no script, ou seja, com -A o Iptables lê e executa as regras de cima para baixo na posição em que elas estão.
Com -I tu pode numerá-las não importando a posição dentro do script.
E a numeração é específica para cada chain:
iptables -I FORWARD 1 -s 192.168.0.0/24 -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD 2 -s 192.168.0.0/24 -m string --algo bm --string "twitter.com" -j DROP
iptables -I INPUT 1 -s 192.168.0.0/24 -m string --algo bm --string "facebook.com" -j DROP
iptables -I INPUT 2 -s 192.168.0.0/24 -m string --algo bm --string "twitter.com" -j DROP
etc...
https://www.vivaolinux.com.br/artigo/Filtragem-de-paginas-SSL-(443)-no-Squid-transparente