[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Usar tag [Video] [Tutorial]
Avatar do usuário
Eduardo Jonck
Administrator
Administrator
Mensagens: 56
Registrado em: 10 Jun 2013 17:35
Idade: 38
Contato:
Status: Offline

[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Mensagem por Eduardo Jonck »

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
Editado pela última vez por Eduardo Jonck em 26 Out 2014 00:04, em um total de 1 vez.



PatrickPfP
Newbie
Newbie
Mensagens: 29
Registrado em: 17 Nov 2014 15:17
Status: Offline

Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Mensagem por PatrickPfP »

Ótimo tópico.

Sempre usei por string em firewall como Slackware e CentoS.

No Endian estava procurando algo parecido para implementar.

Uma dúvida, em vez de MAC, posso colocar por IP?

kraudio
Newbie
Newbie
Mensagens: 11
Registrado em: 09 Jul 2013 00:00
Status: Offline

Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Mensagem por kraudio »

[embed=425,349]
##################################################################################### 
#!/bin/sh
IPT="/sbin/iptables"
MACS="00:0F:EA:91:04:08 00:0F:EA:91:03:08 00:0F:EA:91:04:09"
IPS="192.168.1.2 202.54.1.2"

$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT

echo "Allowing Mac Addresses..."
for m in $MACS
do
    $IPT -A INPUT -m mac --mac-source ${m} -j ACCEPT
done

echo "Allowing IP Addresses..."
for i in $IPS
do
    $IPT -A INPUT -p tcp -s ${i} -j ACCEPT
done
##################################################################################### 
[/embed]

Fonte: http://nixcraft.com/showthread.php/1338 ... net-access

kraudio
Newbie
Newbie
Mensagens: 11
Registrado em: 09 Jul 2013 00:00
Status: Offline

Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Mensagem por kraudio »

Olá, gostaria de saber o local correto para colocar o script.

Nas buscas que fiz, uns dizem para criar em:
/etc/rc.d/start

outros em(dentro do arquivo):
/var/efw/inithooks/rc.firewall.local

Qual local mais indicado?

A outra questão é como pode testar tal script?
# /etc/rc.d/rc.firewall restart

robson.ldsilva
Newbie
Newbie
Mensagens: 10
Registrado em: 20 Jan 2014 16:16
Status: Offline

Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente

Mensagem por robson.ldsilva »

Bom dia, tambem na duvida posso e coo ficaria por IP?

Responder

Voltar para “Video Aula e Tutoriais”