IPTables Liberação/Bloqueio

1. IPTables Liberação/Bloqueio

Douglas Alexsandro da Silva
DouglasDuZZ

(usa Deepin)

Enviado em 18/03/2016 - 16:04h

Pessoal, estou com o SQUID3 configurado de forma transparente e funcionando perfeitamente até o momento, um squid deny all com uma whitelist liberando alguns sites para todos!
Como o squid transparente não faz tratamento em HTTPS, estou fazendo isso no firewall (Squid com autenticação não é uma opção no momento)

Segue meu script de Firewall:
#VARIAVEIS
REDEMATRIZ="192.168.10.0/24"
IFWAN1="eth0"
IFLAN1="eth1"

#LIMPA IPTABLES E HABILITA ROTEAMENTO NO KERNEL
iptables -F
iptables -t nat -F
iptables -X
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward


#IPS POR FORA DO PROXY (100% LIBERADO)
for IP in $(cat /etc/squid3/ips_liberados); do
iptables -t nat -A PREROUTING -s $IP -i $IFLAN1 -p tcp -m multiport --dport 80,443 -j ACCEPT
done

#BLOQUEIO DE SITES HTTPS
iptables -I FORWARD -i $IFLAN1 -m string --algo bm --string "facebook.com" -j DROP

#REDIRECIONAMENTO PARA PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -p tcp -i $IFLAN1 --dport 80 -j REDIRECT --to 3128
iptables -t nat -A POSTROUTING -o $IFWAN1 -j MASQUERADE

Na regra IPS POR FORA DO PROXY, defino alguns IPS que serão de diretoria/gerencia e estes não caem na malha fina do deny all do squid.
Mais abaixo, fiz uma regra que bloqueou a string "facebook.com" e funcionou bem, até o momento que usei o IP que estaria por fora das regras.

Exemplo: tenho o IP 192.168.10.1 que é TUDO LIBERADO, mas com essas regras, ele não acessa o Facebook.
O que fazer?
E outra pergunta: tem alguma maneira do iptables redirecionar um DROP pra uma pagina de erro, assim como o squid faz?


  


2. Re: IPTables Liberação/Bloqueio

10minutos
10minutos

(usa Ubuntu)

Enviado em 18/03/2016 - 16:34h

Esses usuários são gerentes certo?
Então teste as regras deles deste modo:

#IPS POR FORA DO PROXY (100% LIBERADO)
for IP in $(cat /etc/squid3/ips_liberados); do
iptables -I INPUT -s $IP -j ACCEPT
iptables -I FORWARD -s $IP -j ACCEPT
iptables -I FORWARD -d $IP -j ACCEPT
done





Caso tenha resolvido, marque minha resposta como melhor resposta para que eu ganhe pontos e incentive a continuar ajudando.. :D


3. Re: IPTables Liberação/Bloqueio

Douglas Alexsandro da Silva
DouglasDuZZ

(usa Deepin)

Enviado em 18/03/2016 - 16:49h

Mesma coisa... os IPs que estão no arquivo, continuam não acessando o facebook! =/

Se existir uma maneira de fazer um for IP buscando fontes de 2 arquivos ao mesmo tempo, ai eu coloco um ! -s $IP na frente da regra do bloqueio do facebook... ai posso gerenciar melhor que tem liberado TUDO ou APENAS FACEBOOK


4. Re: IPTables Liberação/Bloqueio

10minutos
10minutos

(usa Ubuntu)

Enviado em 18/03/2016 - 16:53h

O correto seria bloquear a range de ips do facebook ao invés de expressão. Vou te passar um script que criei para usar na empresa que trabalho.. aqui funciona 100% para todos exceto gerentes.


5. Re: IPTables Liberação/Bloqueio

Douglas Alexsandro da Silva
DouglasDuZZ

(usa Deepin)

Enviado em 18/03/2016 - 16:56h

Pois é... mas como meu conhecimento é pouco, fica complicado fazer isso! hahahahaha
Vi alguns exemplos definindo os range em uma variável e não consegui reproduzir com os ips em um arquivo!


6. Re: IPTables Liberação/Bloqueio

10minutos
10minutos

(usa Ubuntu)

Enviado em 18/03/2016 - 16:59h

O segredo é manter os ips separados por linhas, um abaixo do outro.
Poste o teu arquivo com os ips dos gerentes.


7. Re: IPTables Liberação/Bloqueio

Douglas Alexsandro da Silva
DouglasDuZZ

(usa Deepin)

Enviado em 18/03/2016 - 17:01h

Como faria então?

Se eu tiver 2 arquivos com IPs, existe uma maneira de eu varrer ambos pra uma variavel IP por exemplo?
tipo um for IP in $(arquivo1) && (arquivo2)?


8. Re: IPTables Liberação/Bloqueio

10minutos
10minutos

(usa Ubuntu)

Enviado em 18/03/2016 - 17:03h

Exatamente.

Para gerar o arquivo de ips do facebook por exemplo vc pode rodar esse comando:
whois -h whois.radb.net '!gAS32934'



Obs: Vc precisa instalar o programa whois:
sudo apt-get install whois


9. Re: IPTables Liberação/Bloqueio

10minutos
10minutos

(usa Ubuntu)

Enviado em 18/03/2016 - 17:22h

Ou assim pra ficar mais organizado:

whois -h whois.radb.net '!gAS32934' | tr ' ' '\n' | grep ^[0-9]






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts