Liberar IP sem proxy no IPTABLES

1. Liberar IP sem proxy no IPTABLES

Danilo do Val
danilodoval

(usa Debian)

Enviado em 30/03/2011 - 13:30h

Boa tarde amigos,

Estou com um problema para liberar os servidores da empresa para não passarem pelo proxy, aplicando a regra diretamento no iptables. Estou usando a seguinte linha para liberar:

iptables -t nat -A POSTROUTING -s 192.168.0.12 -o eth1 -j MASQUERADE # TESTE VPN

Porem quando ela esta ativa o servidor continua redirecionado para o proxy, vou colocar o script completo do iptables para sugestoes.

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

# SCRIPT DE FIREWALL - CRIADO EM 30-03-2011 - DANILO

# MENSAGEM DE STATUS
echo "INICIANDO REGRAS DO FIREWALL..."
echo 1 > /proc/sys/net/ipv4/ip_forward

# INTERFACES DE REDE EXTERNA (INTERNET)
echo "INICIANDO AS INTERFACES DE COMUNICACAO..."
INTERFACE0="eth0"
INTERFACE1="eth1"
INTERFACE2="eth2"

# IPS DAS REDES EXTERNAS
IP0=`ifconfig $INTERFACE0 | grep -i bcast | cut -d':' -f2 | cut -d " " -f2`
IP1=`ifconfig $INTERFACE1 | grep -i bcast | cut -d':' -f2 | cut -d " " -f2`
IP2=`ifconfig $INTERFACE2 | grep -i bcast | cut -d':' -f2 | cut -d " " -f2`
echo ""
echo "Interface: " $interface0 " ip: " $IP0
echo ""
echo ""
echo "Interface: " $interface1 " ip: " $IP1
echo ""
echo ""
echo "Interface: " $interface2 " ip: " $IP2
echo ""

# ZERA REGRAS EXISTENTES
echo "LIMPANDO REGRAS DO FIREWALL..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
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

# CARREGA MODULOS IPTABLES
echo "CARREGANDO MODULOS..."
modprobe iptable_nat
modprobe iptable_filter
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe nf_conntrack_pptp
modprobe ip_gre
modprobe ipt_LOG
modprobe ipt_MASQUERADE
modprobe ip_nat_ftp
modprobe ip_nat_pptp

# BLOQUEIA CONTRA PING DA MORTE E DoS
echo "BLOQUEANDO CONTRA PING DA MORTE E DoS..."
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP

# LIBERA PORTA SSH EM TODAS AS INTERFACES
echo "LIBERANDO SSH..."
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# LIBERA PORTAS SQUID, HTTP, NTP, PPTP E GRE
echo "LIBERANDO PORTAS SQUID, HTTP, NTP, PPTP, GRE..."
iptables -A INPUT -p tcp --dport 3128 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1723 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 1701 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT

# ABRE A CONEXO PARA A REDE LOCAL NA PORTA 3128
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

# NAT REDE
echo "EFETUA NAT DE NAVEGACAO NA REDE..."
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

# LIBERA NAVEGAO SEM PROXY PARA SERVIDORES
echo "LIBERANDO NAVEGACAO DE SERVIDORES SEM PROXY..."
#iptables -t nat -A POSTROUTING -s 192.168.0.5 -o eth1 -j MASQUERADE # AD - PRINCIPAL
#iptables -t nat -A POSTROUTING -s 192.168.0.2 -o eth1 -j MASQUERADE # AD - SECUNDARIO
#iptables -t nat -A POSTROUTING -s 192.168.0.7 -o eth1 -j MASQUERADE # SERVIDOR DADOS
#iptables -t nat -A POSTROUTING -s 192.168.0.10 -o eth1 -j MASQUERADE # SQL SERVER
#iptables -t nat -A POSTROUTING -s 192.168.0.12 -o eth1 -j MASQUERADE # TESTE VPN
#iptables -t nat -A POSTROUTING -s 192.168.0.203 -o eth1 -j MASQUERADE # DANILO
#iptables -t nat -A POSTROUTING -s 192.168.0.205 -o eth1 -j MASQUERADE # ALBERT

iptables -t nat -A POSTROUTING -s 192.168.0.12 -o eth1 -j MASQUERADE # TESTE VPN

# HABILITA REGRA DE REDIRECIONAMENTO PARA PROXY TRANSPARENTE
echo "HABILITA O PROXY TRANSPARENTE..."
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 8080 -j REDIRECT --to-port 3128

# REGRAS PARA VPN
echo "REGRAS PARA VPN 2003 SERVER..."
# NAT PARA IP INTERNO NA PORTA 1723
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1723 -j DNAT --to-dest 192.168.0.12
iptables -A FORWARD -p tcp -i eth0 --dport 1723 -d 192.168.0.12 -j ACCEPT

# NAT PARA IP EXTERNO NA PORTA 1723
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1723 -j DNAT --to-dest 192.168.0.12
iptables -A FORWARD -p tcp -i eth1 --dport 1723 -d 192.168.0.12 -j ACCEPT

# DNAT NO PROTOCOLO GRE - TUNEL VPN 2003 SERVER
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A PREROUTING -p gre -j DNAT --to 192.168.0.12

# MENSAGEM DE STATUS
echo "FIREWALL CONFIGURADO COM SUCESSO!!!"


  


2. Re: Liberar IP sem proxy no IPTABLES

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 30/03/2011 - 13:50h

Tenta assim mano

iptables -t nat -A PREROUTING -s $IP -p tcp --dport 80 -j ACCEPT;


3. Re: Liberar IP sem proxy no IPTABLES

Danilo do Val
danilodoval

(usa Debian)

Enviado em 30/03/2011 - 14:09h

Após aplicar essa regra o servidor 192.168.0.12 não navega mais, fica carregando eternamente a pagina, quando finaliza exibe a mensagem de tempo esgotado.


4. Re: Liberar IP sem proxy no IPTABLES

Ricardo Vasconcellos
qxada07

(usa Slackware)

Enviado em 30/03/2011 - 14:32h

Tenta usar a mesma linha mas tenta utilizar o indexador em vez do apending.....

A linha abaixo tem que ficar em cima da sua regra de liberação dos ip's para o proxy

iptables -t nat -I PREROUTING -s $IP -p tcp --dport 80 -j ACCEPT


5. Re: Liberar IP sem proxy no IPTABLES

Danilo do Val
danilodoval

(usa Debian)

Enviado em 30/03/2011 - 14:38h

Ola amigo qxada07

Não entendi o que voce quis dizer com indexador e apending, que alteração eu tenho que fazer?

Onde devo colocar a linha abaixo, coloquei ela antes da linha

# ABRE A CONEXO PARA A REDE LOCAL NA PORTA 3128
iptables -A INPUT -i eth0 -p tcp --dport 3128 -j ACCEPT

Mas tambem não funcionou...


6. Re: Liberar IP sem proxy no IPTABLES

Jefferson Diego
Diede

(usa Debian)

Enviado em 30/03/2011 - 20:01h

danilodoval,

O que o qxada07 disse é pra você adicionar a regra nova em primeiro (-I) ao invés de ao final (-A) das regras da tabela.
Você tem que adicionar uma regra tanto PREROUTING (para evitar que seja redirecionado ao proxy), na FORWARD (para permitir o tráfego FORWARD) e na POSTROUTING (para permitir que o "IP" saia para a WEB).

Seria algo mais ou menos assim:
iptables -t nat -I PREROUTING -s 192.168.0.12 -j ACCEPT
iptables -t nat -I POSTROUTING -s 192.168.0.12 -o eth1 -j MASQUERADE
iptables -I FORWARD -s 192.168.0.12 -j ACCEPT



7. Re: Liberar IP sem proxy no IPTABLES

jorge
_maldito_

(usa Ubuntu)

Enviado em 30/03/2011 - 20:14h

danilodival ,
você tentou a sugestao citada acima?

[2] Enviado em 30/03/2011 - 13:50h:


Tenta assim mano

iptables -t nat -A PREROUTING -s $IP -p tcp --dport 80 -j ACCEPT;


comigo sempre funcionou


8. Re: Liberar IP sem proxy no IPTABLES

Marcelo Moura
marcelohcm

(usa Ubuntu)

Enviado em 04/12/2013 - 15:08h

_maldito_ escreveu:

danilodival ,
você tentou a sugestao citada acima?

[2] Enviado em 30/03/2011 - 13:50h:


Tenta assim mano

iptables -t nat -A PREROUTING -s $IP -p tcp --dport 80 -j ACCEPT;


comigo sempre funcionou




essa regra tem que vir antes ou depois da regra que redireciona pra porta do squid?


9. Re: Liberar IP sem proxy no IPTABLES

Pedro
px

(usa Debian)

Enviado em 04/12/2013 - 20:32h

marcelohcm escreveu:

_maldito_ escreveu:

danilodival ,
você tentou a sugestao citada acima?

[2] Enviado em 30/03/2011 - 13:50h:


Tenta assim mano

iptables -t nat -A PREROUTING -s $IP -p tcp --dport 80 -j ACCEPT;


comigo sempre funcionou




essa regra tem que vir antes ou depois da regra que redireciona pra porta do squid?


Claro que se for pra liberar tende vir antes!


10. Valew!!!

Deyvid de Castro Alencar
dvdalencar

(usa Debian)

Enviado em 23/04/2015 - 16:44h


A dica do Diede funcionou perfeitamente aqui pra mim.

Valew!!!


11. Re: Liberar IP sem proxy no IPTABLES

Felipe B. L. Silva
felipe-tecnico

(usa Debian)

Enviado em 02/12/2015 - 08:58h


Valew Diede... Aqui também funcionou beleza!

Ótima dica pra quem está apanhando com o Debian.


12. Re: Liberar IP sem proxy no IPTABLES

z3pp3lin
z3pp3lin

(usa Debian)

Enviado em 17/01/2016 - 10:38h

Estou com o mesmo problema, preciso liberar alguns IPs para não passarem pelo proxy e pra acessar o whatsapp. Utilizei a dica do Diede, mas não funcionou! Já verifiquei na net outras sugestões/ dicas e também não funcionou. Utilizo proxy não transparente e quando retiro o ip do proxy e a porta do navegador ele fica carregando até dar tempo esgotado.

Por favor, se alguém souber de alguma informação, ficaria grato.

As regras que utilizo aqui no meu servidor Debian (proxy/firewall) é:

#!bin/bash

echo 1 > /proc/sys/net/ipv4/ip_forward
#
echo "firewal-inicializacao"
echo "setando variaveis"
ipt=/sbin/iptables
if_int=eth4
if_ext=eth3
rede_lab=10.0.0.0/255.0.0.0
io=localhost
#
echo "carregando os modulos"
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_tables
#
echo "limpando regras"
$ipt -t nat -F
$ipt -t nat -X
$ipt -t nat -Z
$ipt -F
$ipt -X
$ipt -Z
#
echo "aplicando politica padrao"
$ipt -P INPUT DROP
$ipt -P FORWARD DROP
#
echo "liberando localhost"
$ipt -A INPUT -s $io -j ACCEPT
$ipt -A FORWARD -s $io -j ACCEPT
#
echo "liberando hosts atraves de regras especificas"
#liberando forward para rede interna
$ipt -A FORWARD -s 10.0.0.0/255.0.0.0 -j ACCEPT
$ipt -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A FORWARD -p icmp -j ACCEPT
#
echo "liberando input"
$ipt -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$ipt -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
$ipt -A INPUT -p tcp -m tcp --dport 3389 -j ACCEPT
$ipt -A INPUT -p tcp -m tcp --dport 5000 -j ACCEPT
$ipt -A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
$ipt -A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m --dport 22 -j DROP
$ipt -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
$ipt -A INPUT -p udp -m udp --dport 53 -j ACCEPT
$ipt -A INPUT -s 10.0.0.0/255.0.0.0 -p tcp -m tcp --dport 3128 -j ACCEPT
$ipt -A INPUT -s 10.0.0.0/255.0.0.0 -p icmp -j ACCEPT
#
#teste - dica do Diede
echo "liberando ip do proxy"
$ipt -t nat -I PREROUTING -s 10.0.11.14 -j ACCEPT
$ipt -t nat -I POSTROUTING -s 10.0.11.14 -o eth3 -j MASQUERADE
$ipt -I FORWARD -s 10.0.11.14 -j ACCEPT

#
echo "redirecionando portas para o squid"
$ipt -t nat A PREROUTING -s 10.0.0.0/255.0.0.0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#
echo "liberando mascaramento de rede"
$ipt -t nat -A POSTROUTING -o eth3 -j MASQUERADE