[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
Enviado: 12 Out 2014 17:07
Boa tarde galera,
Hoje tirei o dia para estudar como que eu poderia bloquear sites pelas famosas ¨strings¨, ou seja, palavras que o iptables irá analisar e tratar o acesso.
Fui atras de uma solução relacionada ao Proxy Transparente muito utilizado nas redes WIFI, pois nas redes corporativas configura-se o proxy por GPO, manualmente, por WPAD, etc, agora em uma rede WIFI, onde os dispositivos móveis estão tomando conta, complica ter que configurar proxy, então coloca o proxy no modo transparente e trata os acessos SSLs diretamente com IPtables.
Para que seja possível bloquear Sites SSL ou outro qualquer no Endian Firewall através do Iptables, basta criar um script de inicialização e acrescentar as seguintes regras:
#####################################################################################
#!/bin/bash
/etc/rc.d/rc.firewall restart
sleep 10
STRINGS=`cat /opt/strings/strings_bloqueadas`;
MACS=`cat /opt/strings/macs_liberados`;
for s in $STRINGS; do
iptables -t filter -I FORWARD -s 0/0 -d 0/0 -p tcp -m multiport --dport 80,443 -m string --algo bm --string "$s" -j REJECT
iptables -t filter -A FORWARD -m string --algo bm --string "$i" -j LOG --log-prefix "DROP-$s" --log-level 4
iptables -t filter -I INPUT -s 0/0 -d 0/0 -p tcp -m multiport --dport 80,443 -m string --algo bm --string "$s" -j REJECT
iptables -t filter -A INPUT -m string --algo bm --string "$i" -j LOG --log-prefix "DROP-$s" --log-level 4
for m in $MACS; do
iptables -t filter -I FORWARD -m mac --mac-source "$m" -m multiport -p tcp --dport 80,443 -m string --algo bm --string "$s" -j ACCEPT
iptables -t filter -I INPUT -m mac --mac-source "$m" -m multiport --dport 80,443 -m string --algo bm --string "$s" -j ACCEPT
done
done
#####################################################################################
OBS: Deve ser criado um chamado "strings_bloqueadas" dentro de "/opt/strings" para adicionar as strings.
Outro arquivo chamado "macs_liberados" dentro de "/opt/strings" para adicionar os Macs que vão ser liberados.
Após isso só editar os arquivos com as strings e MACs.
Os logs de bloqueios podem ser acompanhados no arquivo /var/log/messages
Hoje tirei o dia para estudar como que eu poderia bloquear sites pelas famosas ¨strings¨, ou seja, palavras que o iptables irá analisar e tratar o acesso.
Fui atras de uma solução relacionada ao Proxy Transparente muito utilizado nas redes WIFI, pois nas redes corporativas configura-se o proxy por GPO, manualmente, por WPAD, etc, agora em uma rede WIFI, onde os dispositivos móveis estão tomando conta, complica ter que configurar proxy, então coloca o proxy no modo transparente e trata os acessos SSLs diretamente com IPtables.
Para que seja possível bloquear Sites SSL ou outro qualquer no Endian Firewall através do Iptables, basta criar um script de inicialização e acrescentar as seguintes regras:
#####################################################################################
#!/bin/bash
/etc/rc.d/rc.firewall restart
sleep 10
STRINGS=`cat /opt/strings/strings_bloqueadas`;
MACS=`cat /opt/strings/macs_liberados`;
for s in $STRINGS; do
iptables -t filter -I FORWARD -s 0/0 -d 0/0 -p tcp -m multiport --dport 80,443 -m string --algo bm --string "$s" -j REJECT
iptables -t filter -A FORWARD -m string --algo bm --string "$i" -j LOG --log-prefix "DROP-$s" --log-level 4
iptables -t filter -I INPUT -s 0/0 -d 0/0 -p tcp -m multiport --dport 80,443 -m string --algo bm --string "$s" -j REJECT
iptables -t filter -A INPUT -m string --algo bm --string "$i" -j LOG --log-prefix "DROP-$s" --log-level 4
for m in $MACS; do
iptables -t filter -I FORWARD -m mac --mac-source "$m" -m multiport -p tcp --dport 80,443 -m string --algo bm --string "$s" -j ACCEPT
iptables -t filter -I INPUT -m mac --mac-source "$m" -m multiport --dport 80,443 -m string --algo bm --string "$s" -j ACCEPT
done
done
#####################################################################################
OBS: Deve ser criado um chamado "strings_bloqueadas" dentro de "/opt/strings" para adicionar as strings.
Outro arquivo chamado "macs_liberados" dentro de "/opt/strings" para adicionar os Macs que vão ser liberados.
Após isso só editar os arquivos com as strings e MACs.
Os logs de bloqueios podem ser acompanhados no arquivo /var/log/messages