IPtables - Bloquear Facebook, Twitter e derivados [Definitivo]
Dica publicada em Linux / Segurança
IPtables - Bloquear Facebook, Twitter e derivados [Definitivo]
Resolvi escrever esta dica, pois uso proxy transparente e como não faço um redirect da porta 443, o Facebook e Twitter passam pelo endereço HTTPS.
Comecei a fazer monitoramentos na minha rede com softwares para ver a real fonte.
Analisado o problema, vamos para a solução.
Foram feitos testes por celulares Android e iOS. Em Windows e GNU/Linux consegui bloquear 100%.
Depois de muito estudo e testes, seguem as regras.
Se for usar as regras do seu FORWARD padrão, deixe com a "FLAG -A", se for usar abaixo das regras existentes, coloque a "FLAG -I".
Essa é a regra chave: sites de autenticação HTTPS. Como não estão passando pelo proxy, pegam a porta 443 na eth0 direto na placa de masquerade e passam fora.
Após a regra, faço o bloqueio com:
Valeu galera.
Referências:
Comecei a fazer monitoramentos na minha rede com softwares para ver a real fonte.
Analisado o problema, vamos para a solução.
Foram feitos testes por celulares Android e iOS. Em Windows e GNU/Linux consegui bloquear 100%.
Depois de muito estudo e testes, seguem as regras.
Se for usar as regras do seu FORWARD padrão, deixe com a "FLAG -A", se for usar abaixo das regras existentes, coloque a "FLAG -I".
iptables -A FORWARD -i eth1 -s 192.168.1.113 -m string --algo bm --string "facebook.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth1 -s 192.168.1.113 -m string --algo bm --string "twitter.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso facebook: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j LOG --log-prefix " acesso twitter: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth1 -s 192.168.1.113 -m string --algo bm --string "twitter.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso facebook: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j LOG --log-prefix " acesso twitter: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth1 -m string --algo bm --string "facebook.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth1 -m string --algo bm --string "twitter.com" -j DROP #BLOQUEIA GERAL
Essa é a regra chave: sites de autenticação HTTPS. Como não estão passando pelo proxy, pegam a porta 443 na eth0 direto na placa de masquerade e passam fora.
Após a regra, faço o bloqueio com:
iptables -A FORWARD -i eth0 -d 192.168.1.113 -m string --algo bm --string "facebook.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth0 -d 192.168.1.113 -m string --algo bm --string "twitter.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso facebook: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso twitter: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "twitter.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth0 -d 192.168.1.113 -m string --algo bm --string "twitter.com" -j ACCEPT #IP LIBERADO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso facebook: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j LOG --log-prefix " acesso twitter: " --log-level alert #LOG DE ACESSO
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j DROP #BLOQUEIA GERAL
iptables -A FORWARD -i eth0 -d 192.168.1.0/24 -m string --algo bm --string "twitter.com" -j DROP #BLOQUEIA GERAL
Valeu galera.
Referências: