segunda-feira, 18 de março de 2013

Bloquear Facebook no Iptables

Sabemos da grande dificuldade em bloquear paginas https, em um post do site viva o linux, podemos ver algumas dicas de como isso é possível.

Crie um arquivo chamado "ip_face" dentro de /etc

# touch /etc/ip_face 

Edite-o e inclua seus IPs/usuários obedecendo o seguinte padrão, um registro por linha: 

192.168.0.1-Jose
192.168.0.2-Antonio

No seu script de firewall, adicione o seguinte: 

for IP_FACE in `cat /etc/ip_face`
do
ip_usuario=`echo $IP_FACE | cut -d'-' -f1`
nome_usuario=`echo $IP_FACE | cut -d'-' -f2`
iptables -t filter -I FORWARD ! -d $ip_usuario -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j REJECT
iptables -t filter -I FORWARD ! -s $ip_usuario -p tcp --sport 443 -m string --algo bm --string "facebook.com" -j REJECT
iptables -t filter -I OUTPUT ! -d $ip_usuario -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j REJECT
iptables -t filter -I OUTPUT ! -s $ip_usuario -p tcp --sport 443 -m string --algo bm --string "facebook.com" -j REJECT
done

Agora basta reiniciar seu script de firewall. 

Explicando:
  • for IP_FACE in `cat /etc/ip_face` → Local onde está salvo o arquivo "ip_face" com os IPs e nomes de usuários;
  • ip_usuario=`echo $IP_FACE | cut -d'-' -f1` → Digo que é para ler o arquivo "IP_FACE" e, dentro dele, recortar o que está antes do "-" e criar uma variável chamada de ip_usuario;
  • nome_usuario=`echo $IP_FACE | cut -d'-' -f2` → Digo que é para ler o arquivo IP_FACE e dentro dele recortar o que está apos o "-" e criar uma variável chamada de nome_usuario.

O restante, eu aplico as regras utilizando o módulo string apenas na variável "ip_usuario" na porta 443 nas chains FORWARD e OUTPUT, nos protocolos TCP de origem e destino. 

0 comentários:

Postar um comentário

NÃO FAÇA SAPAM!

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites