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
[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
- Eduardo Jonck
- Administrator
- Mensagens: 56
- Registrado em: 10 Jun 2013 17:35
- Idade: 38
- Contato:
- Status: Offline
[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
Editado pela última vez por Eduardo Jonck em 26 Out 2014 00:04, em um total de 1 vez.
-
- Newbie
- Mensagens: 29
- Registrado em: 17 Nov 2014 15:17
- Status: Offline
Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
Ó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?
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?
-
- Newbie
- Mensagens: 11
- Registrado em: 09 Jul 2013 00:00
- Status: Offline
Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
[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
#####################################################################################
#!/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
-
- Newbie
- Mensagens: 11
- Registrado em: 09 Jul 2013 00:00
- Status: Offline
Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
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
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
-
- Newbie
- Mensagens: 10
- Registrado em: 20 Jan 2014 16:16
- Status: Offline
Re:[Tutorial] Bloquear Sites com Iptables em Proxy Transparente
Bom dia, tambem na duvida posso e coo ficaria por IP?