Bloquear Utorrent [RESOLVIDO]

13. Re: Bloquear Utorrent [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 05/12/2012 - 12:07h

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

(Li que as três regras acima devem ser utilizadas no início do script quando bloqueado todo o tráfego para
a navegação ficar mais rápida, é correto isso?)

#BLOQUEANDO TODO O TRAFEGO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#liberar porta 80 e 3128

iptables -A INPUT -p tcp -i eth0 --dport 3128 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
(tentei liberar as portas 80 e 3128 na entrada da eth0 que é a placa da minha rede interna)

#ROTEAMENTO PARA PROXY TRANSPARENTE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


Faltaram:

iptables -A OUTPUT -m state --state RELATED,ESTABLHISHED -j ACCEPT

Para navegar vc deve liberar: 53, 80, 443, etc para o seu próprio firewall na chain OUTPUT e não na chain INPUT como feito antes...


  


14. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 05/12/2012 - 15:57h

amarildosertorio escreveu:

Sou adepto da politica padrão DROP também. Mas existem outras formas de filtrar analisando o pacote.
Eu utilizo layer7 em conjunto ao iptables no hotspot aqui da empresa.

Utilizo essa regra:


IPT=`which iptables`
$IPT -A FORWARD -m layer7 --l7proto tor -j DROP
$IPT -A FORWARD -m layer7 --l7proto fasttrack -j DROP
$IPT -A FORWARD -m layer7 --l7proto gnutella -j DROP
$IPT -A FORWARD -m layer7 --l7proto bittorrent -j DROP
$IPT -A FORWARD -m layer7 --l7proto ares -j DROP
$IPT -A FORWARD -m layer7 --l7proto soulseek -j DROP
$IPT -A FORWARD -m layer7 --l7proto edonkey -j DROP

$IPT -A INPUT -m layer7 --l7proto tor -j DROP
$IPT -A INPUT -m layer7 --l7proto fasttrack -j DROP
$IPT -A INPUT -m layer7 --l7proto gnutella -j DROP
$IPT -A INPUT -m layer7 --l7proto bittorrent -j DROP
$IPT -A INPUT -m layer7 --l7proto ares -j DROP
$IPT -A INPUT -m layer7 --l7proto soulseek -j DROP
$IPT -A INPUT -m layer7 --l7proto edonkey -j DROP

$IPT -A OUTPUT -m layer7 --l7proto tor -j DROP
$IPT -A OUTPUT -m layer7 --l7proto fasttrack -j DROP
$IPT -A OUTPUT -m layer7 --l7proto gnutella -j DROP
$IPT -A OUTPUT -m layer7 --l7proto bittorrent -j DROP
$IPT -A OUTPUT -m layer7 --l7proto ares -j DROP
$IPT -A OUTPUT -m layer7 --l7proto soulseek -j DROP
$IPT -A OUTPUT -m layer7 --l7proto edonkey -j DROP


Filtra muito bem, desde que o pacote P2P não seja criptografado.

Outra solução é limitar a banda de torrents.

Abraço!


Já li alguma coisa sobre a layer 7, dizem que é melhor filtrar por ela, mas vou tentar aprender bem o iptables anter de partir pra algo mais radical assim, obrigado pela ajuda amigo.




15. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 07/12/2012 - 09:03h

Amigos alterei meu código agora está assim:


#DEIXAR NAVEGACAO MAIS RAPIDA
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#LIBERANDO PORTAS
PORTAS_TCP="3128,80,53,443"
PORTAS_UDP="3128,80,53,443"
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

#BLOQUEANDO TODO O TRAFEGO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#ROTEAMENTO E PROXY TRANSPARENTE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128




#-----------------------------------------------
touch /var/lock/subsys/local


No entanto ainda não é liberada minha navegação, li em alguns tópicos aqui na comunidade mesmo que o correto seria liberar as portas pela opção FORWARD para que o sistema libere tudo o que passar pelo firewall mas mesmo assim não tenho a liberação do meu tráfego...


16. Re: Bloquear Utorrent [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 07/12/2012 - 09:35h

Suas regras estão trocadas, primeiro vc está liberando e depois bloqueando?

Depois vc redireciona o tráfego?

Veja a organização do script netes artigo:

http://www.vivaolinux.com.br/artigo/Iptables-Seguranca-total-para-sua-rede/?pagina=3


17. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 07/12/2012 - 10:37h

phrich escreveu:

Suas regras estão trocadas, primeiro vc está liberando e depois bloqueando?

Depois vc redireciona o tráfego?

Veja a organização do script netes artigo:

http://www.vivaolinux.com.br/artigo/Iptables-Seguranca-total-para-sua-rede/?pagina=3



Foi mal phrich, na hora de copiar o script do rc.local para cá é que inverti as regras, a ordem com que o meu script está é essa aqui:


#DEIXAR NAVEGACAO MAIS RAPIDA
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#BLOQUEANDO TODO O TRAFEGO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#LIBERANDO PORTAS
PORTAS_TCP="3128,80,53,443"
PORTAS_UDP="3128,80,53,443"
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

#ROTEAMENTO E PROXY TRANSPARENTE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#-----------------------------------------------
touch /var/lock/subsys/local



18. Re: Bloquear Utorrent [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 07/12/2012 - 15:39h

Cara, mesmo assim ainda está errado, tente assim:

# DECLARAÇÃO DE VARIÁVEIS

# REGRAS DE NAT

# REGRAS DE INPUT

# REGRAS DE OUTPUT

# REGRAS DE FORWARD

Uma dica, se vc não "se liberar" vc não vai conseguir fornecer o serviço para os clientes...

Seria legal vc estudar o script que lhe indiquei...


19. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 07/12/2012 - 17:11h

Acho que estou perto amigo phrich.
O problema do script é que para quem está começando no iptables como eu fica meio complicado para entender de início, entendo que para "me liberar" devo liberar a porta do Squid, fiz isso acho que já estou perto de conseguir ajustar o meu script, agora o navegador diz que a página foi encontrada no entanto ao invés de retornar os dados da página demora alguns minutos e retorna o erro abaixo:

The requested URL could not be retrieved

--------------------------------------------------------------------------------

O seguinte erro foi encontrado ao tentar recuperar a URL: www.google.com.br/">http://www.google.com.br/

Impossível determinar o endereço IP do nome de host www.google.com.br

O servidor DNS retornou:

TimeoutIsto significa que o cache não pode resolver o nome de host contido na URL. Verifique se o endereço está correto.

Seu administrador do cache é root.

Meu script ficou assim:

#DECLARACAO DAS VARIAVEIS
PORTAS_TCP="3128,80,53,443"
PORTAS_UDP="3128,80,53,443"
#LIMPAR REGRAS EXISTENTES
iptables -F
iptables -t nat -F

#BLOQUEANDO TODO O TRAFEGO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#CRIA IDA E VOLTA DO ACESSO NAS CHAINS INPUT, OUTPUT E FORWARD
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#LIBERANDO ROTEAMENTO E REGRAS DE NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#LIBERANDO SQUID
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

#LIBERANDO PORTAS
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT

#-----------------------------------------------



20. Re: Bloquear Utorrent [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 07/12/2012 - 17:42h

Retire as portas 3128,80 e 443 da variável PORTAS_UDP.


21. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 10/12/2012 - 08:13h

phrich escreveu:

Retire as portas 3128,80 e 443 da variável PORTAS_UDP.


Não, mesmo assim não navegou :-(


22. Re: Bloquear Utorrent [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 10/12/2012 - 12:34h

No artigo citado anteriormente, existem alguns módulos a serem habilitados, coloque-os no seu script e pode retirar as portas 80 e 443 da chain FORWARD, pq se não o pessoal vai passar direto...


23. Re: Bloquear Utorrent [RESOLVIDO]

Augusto Silva
rockmusic26

(usa Outra)

Enviado em 10/12/2012 - 13:44h

Deu certo, o script já funcionando é este:


#DECLARACAO DAS VARIAVEIS
PORTAS_TCP="3128,80,21"
PORTAS_UDP="53"
#LIMPAR REGRAS EXISTENTES
iptables -F
iptables -t nat -F

#BLOQUEANDO TODO O TRAFEGO
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#CRIA IDA E VOLTA DO ACESSO NAS CHAINS INPUT, OUTPUT E FORWARD
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#LIBERANDO ROTEAMENTO E REGRAS DE NAT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#LIBERANDO SQUID
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

#LIBERANDO PORTAS
iptables -A INPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports $PORTAS_TCP -j ACCEPT

iptables -A INPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports $PORTAS_UDP -j ACCEPT
#-----------------------------------------------


O que faltava era liberar as regras INPUT e OUTPUT do UDP já que a FORWARD eu já tinha liberado.
O script acima bloqueia tudo, exceto a navegação, as demais portas podem ser liberadas conforme necessidade.

Tenho algumas dúvidas, não bastaria apenas a regra FORWARD para que a navegação fosse liberada? Isso é que me deixou mais em dúvida, já que a FORWARD é a regra que passa pelo firewall no meu achismo imaginava que ela já poderia liberar toda a passaegem.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts