Iptables bloqueando serviços do google [RESOLVIDO]

1. Iptables bloqueando serviços do google [RESOLVIDO]

Leandro do Nascimento Redivo
lnredivo

(usa Debian)

Enviado em 24/04/2013 - 08:37h

Turma,

Estou implantando pela primeira vez um firewall iptables para testes aqui na empresa, antes só usava o squid3 para bloqueio de urls e cache.

Criei um script basico de firewall porém alguns serviços que uso muito estão sendo bloqueados, como por exemplo o drive.google.com, não é bloqueio de squid pois não gera nem log.
E quando retorno para um script mais simples que apenas faz o MASQUERADE e ativa o proxy transparente o google drive volta a funcionar, vocês podem me apontar os erros do meu script? Segue o mesmo:

#!/bin/bash

#Declaracao das variaveis
TCP_SAFE=53,80,138,8080,443,3389,3128,993,995,25,110,587,465,5555,5389
TRIX_PORT=2101
UDP_SAFE=53,137,138

iniciar(){
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

#Mudando o estado das Chains
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Ativando compartilhamento
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

#Gravando logs da forward
iptables -A FORWARD -j LOG

#Bloqueio de maquinas via mac
iptables -A FORWARD -p tcp -m mac --mac-source 94:39:e5:f2:69:93 -j DROP
iptables -A FORWARD -p tcp -m mac --mac-source e0:b9:a5:21:ac:ff -j DROP
iptables -A FORWARD -p tcp -m mac --mac-source 14:da:e9:b8:9a:18 -j DROP

#Ativando proxy transparente
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -j REDIRECT --to-port 3128

#bloqueando Ping
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

#Liberando trafego na lookback e Rede Interna
iptables -A INPUT -i ! lo -s 127.0.0.0/0.0.0.0 -j DROP
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
#Liberando ping seguro
#iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#Liberando conexoes e portas seguras na INPUT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports $TCP_SAFE -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports $UDP_SAFE -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports $TRIX_PORT -j ACCEPT

#Bloqueio direto de sites HTTP e HTTPS
iptables -A FORWARD -m string --algo bm --string "facebook.com" -j DROP
iptables -A FORWARD -m string --algo bm --string "youtube.com" -j DROP
iptables -A FORWARD -m string --algo bm --string "twitter.com" -j DROP


#Liberando conexoes e portas seguras na FORWARD
iptables -A FORWARD -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $TCP_SAFE -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $UDP_SAFE -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $TRIX_PORT -j ACCEPT


#Tentado dropar porta do ULTRASURF
iptables -A FORWARD -i eth1 -p tcp --dport 9666 -j DROP
#iptables -A FORWARD -j DROP
echo "Regras de firewall e compartilhamento de internet ativado"
}
parar(){
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -F

echo "Regras de firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâtros start ou stop"
esac



  


2. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Leandro do Nascimento Redivo
lnredivo

(usa Debian)

Enviado em 24/04/2013 - 15:58h

Acho que desvendei o mistério, não sei bem o porque, mas, acredito que o bloqueio abaixo também estava bloqueando outros serviços do google, como MAPS, DRIVE e etc.

iptables -A FORWARD -m string --algo bm --string "youtube.com" -j DROP

comentei a regra acima e parou de bloquear.

Ainda assim, estou aceitando sugestões, apontamento de erros no meu script de firewall.


3. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Estefanio Brunhara
stefaniobrunhara

(usa CentOS)

Enviado em 24/04/2013 - 17:46h

Eu também já tive um problema parecido com o seu, só que foi na regra do facebook então dive que fazer o bloqueio ip por ip


iptables -A FORWARD -s 192.168.1.X -m string --algo bm --string "facebook.com" -j DROP
iptables -A FORWARD -s 192.168.1.X -m string --algo bm --string "orkut.com" -j DROP



4. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Leandro do Nascimento Redivo
lnredivo

(usa Debian)

Enviado em 24/04/2013 - 20:13h

estefaniobrunha escreveu:

Eu também já tive um problema parecido com o seu, só que foi na regra do facebook então dive que fazer o bloqueio ip por ip


iptables -A FORWARD -s 192.168.1.X -m string --algo bm --string "facebook.com" -j DROP
iptables -A FORWARD -s 192.168.1.X -m string --algo bm --string "orkut.com" -j DROP


Estefanio,

Interessante essa sua ideia, posso bloquear um range de ips ou uma rede dessa forma, mas, me diga conhece alguma regra que eu possa colocar antes para liberar um ip desse bloqueio m string, imagino que seria:

iptables -A FORWARD -s 192.168.1.x -m string --algo bm --string "facebook.com" -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -m string --algo bm --string "facebook.com" -j DROP

mas, imagino se não haveria uma regra para liberação do tipo ALL para string, para que eu não tivesse que ficar repetindo cada regra.


5. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 24/04/2013 - 21:32h

Veja isto:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/

E coloque sempre essas regras abaixo. Sugestão do próprio Rusty Russel.



##Regras de segurança na internet
#######################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#



6. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Leandro do Nascimento Redivo
lnredivo

(usa Debian)

Enviado em 24/04/2013 - 22:02h

Buckminster escreveu:

Veja isto:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/

E coloque sempre essas regras abaixo. Sugestão do próprio Rusty Russel.



##Regras de segurança na internet
#######################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#


Isso que não consigo entender na logica do iptables, se eu já usei no inicio do meu script:
iptables -P FORWARD DROP e iptables -P INPUT DROP, ou seja mudei toda a chain para DROP porque tenho que ficar criando regras de drop abaixo, imagino que só teria que criar regras de ACCEPT, já que a chain está toda dropada?




7. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Buckminster
Buckminster

(usa Debian)

Enviado em 24/04/2013 - 23:35h

lnredivo escreveu:

Buckminster escreveu:

Veja isto:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/

E coloque sempre essas regras abaixo. Sugestão do próprio Rusty Russel.



##Regras de segurança na internet
#######################
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW ! -i ethx -j DROP # Interface de entrada da internet
iptables -A FORWARD -m state --state NEW ! -i ethx -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
#


Isso que não consigo entender na logica do iptables, se eu já usei no inicio do meu script:
iptables -P FORWARD DROP e iptables -P INPUT DROP, ou seja mudei toda a chain para DROP porque tenho que ficar criando regras de drop abaixo, imagino que só teria que criar regras de ACCEPT, já que a chain está toda dropada?



O IPtables é hierárquico, como o Squid, mas com algumas diferenças. As regras que você cria em uma chain não valem para outra e dentro das chains tem os alvos.
Uma regra de firewall especifica os critérios para um pacote e um alvo. Se o pacote não corresponder, a regra seguinte na chain é examinada e, se o pacote for igual na regra seguinte, então a próxima regra é especificada pelo valor do alvo, que pode ser o nome de uma chain definida pelo utilizador ou por um dos valores especiais ACCEPT, DROP, QUEUE ou RETURN.

Veja isto para um melhor entendimento:
http://www.vivaolinux.com.br/artigo/Manual-do-IPtables-Comentarios-e-sugestoes-de-regras/

Vou te dar uma sugestão (o caminhos das pedras que pouca gente sabe porque acha que ler manuais é perda de tempo).

Numere as suas regras, por exemplo:

#Liberando primeiro
iptables -I FORWARD 1 -p tcp -d www.facebook.com --dport 443 -j ACCEPT
iptables -I FORWARD 2 -p tcp -d www.facebook.com.br --dport 443 -j ACCEPT

iptables -I INPUT 1 -p tcp -d www.facebok.com --dport 443 -j ACCEPT
iptables -I INPUT 2 -p tcp -d www.facebook.com.br --dport 443 -j ACCEPT

#E depois bloqueando tudo. O iptables irá automaticamente fazer as liberações e bloquear o que não foi liberado acima:

iptables -I FORWARD 3 -p tcp --dport 443 -j DROP
iptables -I INPUT 3 -p tcp --dport 443 -j DROP




8. Re: Iptables bloqueando serviços do google [RESOLVIDO]

Leandro do Nascimento Redivo
lnredivo

(usa Debian)

Enviado em 25/04/2013 - 07:19h

Show, vou dar uma lida mais detalhada nos manuais e também no conteúdo da netfilter.org.

Estou dando o assunto como resolvido, obrigado a todos que colaboraram.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts