Buckminster
(usa Debian)
Enviado em 04/04/2016 - 11:59h
Sei que já resolveu, mas com essas políticas padrões teu Iptables está todo aberto.
Sugiro deixar elas como:
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
E antes não estava funcionando por causa das políticas padrões abertas e porque tuas regras estavam em desacordo com -A e -I:
iptables -A FORWARD -i eth0 -m string --algo bm --string "facebook.com" -j DROP
iptables -A FORWARD -i eth0 -m string --algo bm --string "youtube.com" -j DROP
iptables -I FORWARD -i eth0 -s 192.168.0.230 -m string --algo bm --string "facebook.com" -j ACCEPT
iptables -I FORWARD -i eth0 -s 192.168.0.230 -m string --algo bm --string "youtube.com" -j ACCEPT
E porque nas regras estava a placa de rede eth0.
Veja bem, regras na mesma chain (no caso FORWARD) com o parâmetro -A, adiciona a regra na sequência, ou seja, de acordo com a posição que ela está no script.
Regras com -I adicionam a regra no topo da chain, invertendo a lógica. ou seja, a última regra com -I no script será a primeira.
No teu caso, as regras com -I estavam abaixo das regras com -A, mas estavam sendo executadas ANTES, além disso, como já falei, as políticas estão como ACCEPT.
Quando usar regras em uma chain e for usar -I sugiro numerá-las:
iptables -I FORWARD 1 -i eth0 -s 192.168.0.230 -m string --algo bm --string "facebook.com" -j ACCEPT
iptables -I FORWARD 2 -i eth0 -s 192.168.0.230 -m string --algo bm --string "youtube.com" -j ACCEPT
e se tiver outras regras na mesma chain com -A, cuide para que não haja conflito.
Uma regra com -I na chain INPUT não afeta a ordem de leitura e execução de uma regra com -A na chain FORWARD e a numeração é específica de cada chain, exemplo:
iptables -I FORWARD 1 -i eth0 -s 192.168.0.230 -m string --algo bm --string "facebook.com" -j ACCEPT
iptables -I FORWARD 2 -i eth0 -s 192.168.0.230 -m string --algo bm --string "youtube.com" -j ACCEPT
iptables -I INPUT 1 -i eth0 -s 192.168.0.230 -m string --algo bm --string "facebook.com" -j ACCEPT
iptables -I INPUT 2 -i eth0 -s 192.168.0.230 -m string --algo bm --string "youtube.com" -j ACCEPT
São, basicamente, 3 chains padrões: INPUT, OUTPUT e FORWARD.