Bloqueio de "string" no iptables não funciona!!! [RESOLVIDO]

1. Bloqueio de "string" no iptables não funciona!!! [RESOLVIDO]

Janduy Euclides da Silva
janduy

(usa CentOS)

Enviado em 17/12/2015 - 23:14h

Boa noite Galera, tudo bem?

Estou com dificuldade para bloquear o "facebook.com" e "youtube.com" via "string" no iptables do Debian 6, segue abaixo o meu script de firewall e algumas dicas para entenderem meu cenário, se puderem me dar um help ficarei muito agradecido.

Sistema: Debian 6
Interfaces de Rede:
eth0(Externa)
eht1(Rede Interna)


Script de Firewall:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.254:3128

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

Obs. As regras acima deveria liberar o acesso apenas para o IP:192.168.0.230, mas não acontece isso. Libera para rede inteira (facebook e youtube).


  


2. Bloqueio de "string" no iptables não funciona!!!(RESOLVIDO)

Janduy Euclides da Silva
janduy

(usa CentOS)

Enviado em 26/12/2015 - 20:32h

Boa noite Pessoal, após algumas pesquisas até mesmo pelo nosso fórum consegui resolver o meu problema.

Segue abaixo o meu script se caso alguém precisar.

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

modprobe iptable_nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128


iptables -I FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j LOG --log-prefix "---BLOQUEIO FACEBOOK
---" --log-level alert
iptables -I FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j LOG --log-prefix "---BLOQUEIO TWITTER--
-" --log-level alert
iptables -I FORWARD -i eth1 -m string --algo bm --string "youtube.com" -j LOG --log-prefix "---BLOQUEIO YOUTUBE--
-" --log-level alert


for t in `cat /etc/squid3/ips_liberados` ; do
iptables -I FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j DROP ! -s $t
iptables -I FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j DROP ! -s $t
iptables -I FORWARD -i eth1 -m string --algo bm --string "youtube.com" -j DROP ! -s $t
done



3. Re: Bloqueio de "string" no iptables não funciona!!! [RESOLVIDO]

Eric
emcarpanezi

(usa Ubuntu)

Enviado em 03/04/2016 - 18:20h

Boa Noite, janduy Ja tentou inverter a ordem das regras? lembrando que no "IPTABLES" a 1º regra sempre prevalece,


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

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

Cara eu uso da seguinte Forma e Funciona perfeitamente!

$IPTABLES -A FORWARD -i $LAN -m iprange --src-range $BLOQUEADOS -m string --algo bm --string "facebook.com" -j DROP
$IPTABLES -A FORWARD -i $WAN -m iprange --dst-range $BLOQUEADOS -m string --algo bm --string "facebook.com" -j DROP




4. Re: Bloqueio de "string" no iptables não funciona!!! [RESOLVIDO]

Carlos Alberto de Souza Barbosa
souzacarlos

(usa Outra)

Enviado em 04/04/2016 - 08:17h

Bom dia.

Aqui vc definiu q o POLICE DEFAULT do teu script é ACCEPT

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Espero ter esclarecido seus pensamentos!

Caso não, posta ai!


5. Re: Bloqueio de

Buckminster
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.


6. Re: Bloqueio de "string" no iptables não funciona!!! [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/04/2016 - 12:13h

Não era melhor bloquear por endereço, como www.facebook.com ?

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



7. Bloqueio de "string" no iptables não funciona!!!

Janduy Euclides da Silva
janduy

(usa CentOS)

Enviado em 04/05/2016 - 11:55h

Galera, bom dia!

Vou validar e posiciono todos, obrigado. Vou colocar o tópico como resolvido qualquer coisa abro novamente, agradeço mais uma vez a força.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts