Faixa de IPs no Iptables

1. Faixa de IPs no Iptables

Rodolfo Ribeiro Machado
Rodolfo_Machado

(usa Debian)

Enviado em 20/05/2013 - 14:30h

Amigos, estava com um problema de acesso ao Yahoo devido ao Squid, mesmo as maquinas liberadas pelo Squid não conseguiam acessar o Yahoo e outros sites, Portal R7, por exemplo.

No Squid, configurei como proxy transparente,dividi por faixas de IP, uma faixa de IPs liberados, e duas outras faixas com restrições de acesso, variando o grau de restrição.
Quando descobri o problema, fui mapeando os links bloqueados pesquisando no log e tentando liberalos, apesar de que até onde eu entendo, as regras se aplicam somente aos IPs bloqueados:

acl yahoo url_regex -i .yahoo.com* .yimg.com* .adinterax.com* .yldmgrimg.net* .scorecardresearch.com* .nspmotion.com* .beap.bc.yahoo.com* .update.uniblue.com* .sump.uniblue.com*

acl permitidos src 192.168.2.1-192.168.2.6
acl permitidos2 src 192.168.2.7-192.168.2.10
acl permitidos3 dstdomain "/etc/squid/permitidos2"
acl sites dstdomain "/etc/squid/permitidos"

http_access deny yahoo !permitidos

http_access allow permitidos
http_access allow permitidos2 permitidos3
http_access allow sites

http_access deny all


Não consegui resolver o problema através do próprio Squid, e então resolvi criar uma regra no firewall para que as maquinas liberadas contornem o Squid:

#!/bin/bash
echo "Limpando as regras do Firewall"
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT

# compartilhando a conexao
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "compartilhamento ativado"

#iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.2.1-192.168.2.6 -j ACCEPT

#Contornando o proxy para as maquinas liberadas
iptables -A FORWARD -s 192.168.2.1 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.1 -j RETURN

iptables -A FORWARD -s 192.168.2.2 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.2 -j RETURN

iptables -A FORWARD -s 192.168.2.3 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.3 -j RETURN

iptables -A FORWARD -s 192.168.2.4 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.4 -j RETURN

iptables -A FORWARD -s 192.168.2.5 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.5 -j RETURN

iptables -A FORWARD -s 192.168.2.6 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.6 -j RETURN

echo "Liberado acesso as maquinas permitidas"


#proxy transparent
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
echo "proxy transparente ativado"

Desta forma funcionou, mas ainda tenho algumas duvidas.

1) - É possível utilizar faixas de IPs no iptables ao invés de escrever a regra repetidas vezes dentro do script, vi alguns exemplos usando iprange, mas para mim não funcionaram, exemplo:

http://aprendafirewall.blogspot.com.br/2...range.html
Módulo iprange
Liberando acesso a porta 80 para as máquinas 192.168.0.131 até 192.168.0.140

iptables -A FORWARD -p tcp --dport 80 -m iprange --src-range 192.168.0.131-192.168.0.140 -j ACCEPT

2) - O servidor, cujo IP é 192.168.2.1 continua não acessando o Yahoo e os outros sites, apesar de estar na regra do iptables.

3) - Se os IPs agora são liberados no firewall, no iptables, então eu posso retirar as regras referentes a estes IPs(somente os liberados) no squid.conf?


  


2. Re: Faixa de IPs no Iptables

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 20/05/2013 - 15:14h

Faça um loop, kra, é mais fácil:


#Contornando o proxy para as maquinas liberadas
for i in `seq 1 6`
do
iptables -A FORWARD -s 192.168.2.$i -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.2.$i -j RETURN
done

echo "Liberado acesso as maquinas permitidas"



3. Faixa de IPs no Iptables

Rodolfo Ribeiro Machado
Rodolfo_Machado

(usa Debian)

Enviado em 21/05/2013 - 10:52h

Beleza, Renato, alterei o script e funcionou direitinho,valeu pela dica, agora é só conseguir fazer o próprio servidor contornar o Squid, ainda não consegui.


4. Re: Faixa de IPs no Iptables

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 21/05/2013 - 10:58h

É só liberar o OUTPUT do servidor para a porta 80 q dá certo.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts