Problemas com Bloqueios / Liberação no Iptables

1. Problemas com Bloqueios / Liberação no Iptables

Guilherme
m0rpheu5

(usa Gentoo)

Enviado em 16/03/2016 - 10:06h

Prezados, possuo um servidor Proxy/Firewall e estava funcionando perfeitamente, porém solicitaram que eu efetuasse alguns bloqueios de sites para várias pessoas, com excessão dos gerentes/diretoria, sites como facebook, youtube etc deveriam ser bloqueados, pois bem, como o Squid não bloqueia nada em HTTPS, pesquisei algumas regras e tentei efetuar o bloqueio, eu já tinha algumas máquinas que o Iptables encaminhava diretamente para a porta 80, sem passar pelo proxy, porém após a instalação das regras de bloqueio mesmo as máquinas liberadas nas portas 80 não acessam tais sites. Abaixo segue minha regra do Iptables.

#!/bin/bash
#
# /etc/etc/init.d/iptables.conf
#
# Limpa e inicializa os modulos
#******************************
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
modprobe iptable_nat
#
iptables -t filter -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -t filter -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# Proxy transparente (Redireciona para o squid)
#********************************************************
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -A FORWARD -i ppp+ -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp+ -j ACCEPT

# Compartilha Internet
#********************************************************
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

# Libera maquina do proxy
iptables -t nat -I PREROUTING -s 10.42.43.2 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.3 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.7 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.8 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.11 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.91 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.92 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.93 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.94 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.160 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.197 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.188 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.213 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.216 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.224 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.217 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.218 -p tcp --dport 80 -j ACCEPT

# Bloqueando Sites HTTPS
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "facebook.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "twitter.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "twitter.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "instagram.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "instagram.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "www.youtube.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "www.youtube.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "netflix.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "netflix.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "spotify.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "spotify.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "vagalume.com.br" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "vagalume.com.br" -j DROP


# Redirecionamento de Portas
iptables -I FORWARD -p tcp -i ppp0 --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 3389 -j DNAT --to-destination 10.42.43.3:3389
iptables -I FORWARD -p tcp -i ppp0 --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 8080 -j DNAT --to-destination 10.42.43.3:8080
iptables -I FORWARD -p tcp -i ppp0 --dport 9090 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 9090 -j DNAT --to-destination 10.42.43.3:9090
iptables -I FORWARD -p tcp -i ppp0 --dport 28000 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 28000 -j DNAT --to-destination 10.42.43.3:28000
iptables -I FORWARD -p tcp -i ppp0 --dport 28001 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 28001 -j DNAT --to-destination 10.42.43.3:28001

#############################
echo "Regras do Iptables Reiniciadas"



  


2. Re: Problemas com Bloqueios / Liberação no Iptables

Buckminster
Buckminster

(usa Debian)

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

Veja bem, nesta regra

iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128

tu direcionas a porta 80 para a porta 3128(Squid).

E nestas regras
# Libera maquina do proxy
iptables -t nat -I PREROUTING -s 10.42.43.2 -p tcp --dport 80 -j ACCEPT
...

tu liberas a porta 80 cujo tráfego foi direcionado anteriormente para a porta 3128, ou seja, a porta 80 está liberada, mas não há tráfego nela.
O Iptables está fazendo o que mandastes.

Resumindo, ou tu muda para a porta 3128 ou coloca as regras "# Libera máquina do proxy" antes desta regra: iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128.


LEMBRE-SE: o Iptables lê as regras de cima para baixo e se houver duas ou mais regras conflitantes, vale a primeira.

Exemplo:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j REJECT
iptables -A INPUT -p tcp --dport 443 -j DROP

A primeira regra libera, a segunda rejeita e a terceira regra, nega o acesso. A primeira regra é que terá o privilégio, então, o acesso na porta 443 será liberado para todos, mesmo rejeitando e negando o acesso nas regras subsequentes.

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


3. Re: Problemas com Bloqueios / Liberação no Iptables

Guilherme
m0rpheu5

(usa Gentoo)

Enviado em 16/03/2016 - 14:50h

Bom, agora fiz as alterações que vc informou, primeiro tentei mudar as portas de 80 para 3128, e não funcionou, depois voltei tudo para a porta 80, e joguei o direcionamento da porta 80 para 3128 para baixo da regra que libera as maquinas na porta 80, e também não funionou, a regra agora está assim. Nenhuma maquina que deveria estar liberada na porta 80 acessa facebook nem twitter.

#!/bin/bash
#
# /etc/etc/init.d/iptables.conf
#
# Limpa e inicializa os modulos
#******************************
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
modprobe iptable_nat
#
iptables -t filter -A FORWARD -j ACCEPT -m state --state ESTABLISHED,RELATED
iptables -t filter -A INPUT -j ACCEPT -m state --state ESTABLISHED,RELATED

# Compartilha Internet
#********************************************************
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward

#
# Libera maquina do proxy
iptables -t nat -I PREROUTING -s 10.42.43.2 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.3 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.7 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.8 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.11 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.91 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.92 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.93 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.94 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.160 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.197 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.188 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.213 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.216 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.224 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.217 -p tcp --dport 80 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.218 -p tcp --dport 80 -j ACCEPT

#
# Proxy transparente (Redireciona para o squid)
#********************************************************
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A FORWARD -i ppp+ -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o ppp+ -j ACCEPT
#
# Bloqueando Sites HTTPS
#iptables -I FORWARD -m string --algo bm --string "facebook.com" -j DROP
#iptables -A FORWARD -i eth0 -s 192.168.0.2 -m string --algo bm --string "facebook.com" -j ACCEPT #IP LIBERADO
#iptables -A FORWARD -i eth1 -d 192.168.0.2 -m string --algo bm --string "facebook.com" -j ACCEPT #IP LIBERADO
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "facebook.com" -j DROP
iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "twitter.com" -j DROP
iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "twitter.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "instagram.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "instagram.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "www.youtube.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "www.youtube.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "netflix.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "netflix.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "spotify.com" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "spotify.com" -j DROP
#iptables -I FORWARD -p tcp --dport 443 -m string --algo bm --string "vagalume.com.br" -j DROP
#iptables -I FORWARD -p tcp --sport 443 -m string --algo bm --string "vagalume.com.br" -j DROP

#
# Redirecionamento de Portas
iptables -I FORWARD -p tcp -i ppp0 --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 3389 -j DNAT --to-destination 10.42.43.3:3389
iptables -I FORWARD -p tcp -i ppp0 --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 8080 -j DNAT --to-destination 10.42.43.3:8080
iptables -I FORWARD -p tcp -i ppp0 --dport 9090 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 9090 -j DNAT --to-destination 10.42.43.3:9090
iptables -I FORWARD -p tcp -i ppp0 --dport 28000 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 28000 -j DNAT --to-destination 10.42.43.3:28000
iptables -I FORWARD -p tcp -i ppp0 --dport 28001 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 28001 -j DNAT --to-destination 10.42.43.3:28001
#iptables -I FORWARD -p tcp -i eth0 --dport 21 -j ACCEPT
#iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 21 -j DNAT --to-destination 192.168.200.14:21

#############################
echo "Regras do Iptables Reiniciadas"



4. Re: Problemas com Bloqueios / Liberação no Iptables

Buckminster
Buckminster

(usa Debian)

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

Troque aquelas regras de liberação por essas:

#
# Libera maquina do proxy
iptables -t nat -I PREROUTING -s 10.42.43.2 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.3 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.7 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.8 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.11 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.91 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.92 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.93 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.94 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.160 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.197 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.188 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.213 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.216 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.224 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.217 -p tcp -m multiport --dports 80,443 -j ACCEPT
iptables -t nat -I PREROUTING -s 10.42.43.218 -p tcp -m multiport --dports 80,443 -j ACCEPT



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts