parametro destination [RESOLVIDO]

1. parametro destination [RESOLVIDO]

Luiz
lab

(usa Debian)

Enviado em 16/03/2009 - 09:40h

Uso uma regra no iptables para fazer o redirecionamento do acesso a internet para o squid através do comando abaixo. Como pode-se ver apenas o ip 200.201.174.207 não é redirecionado para o squid, só que preciso incluir mais 2 ips que não podem ser redirecionados ao squid e não consigo acertar a sintaxe do parâmetro --destination do iptables.
Se colocar "-d ! 200.201.174.207 ! 200.214.44.204 ! 200.144.0.11" como parâmetro não dá certo.

regra do firewall:

"iptables -t nat -A PREROUTING -i eth1 -p -tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128"



  


2. MELHOR RESPOSTA

Elgio Schlemer
elgio

(usa OpenSuSE)

Enviado em 16/03/2009 - 16:09h

Esta sintaxe: -d ! 200.201.174.207 ! 200.214.44.204 ! 200.144.0.11 NÃO EXISTE.

Ë apenas e tão somente UM IP por regra ou uma faixa que possa ser reunida por uma máscara (http://www.vivaolinux.com.br/artigo/255.255.255.0-A-matematica-das-mascaras-de-rede/)

Para fazer o que queres, tem sim um jeito:

# criar uma nova fila na tabela nat
iptables -t nat -N PORTA3128

# mandar tudo que for porta 80 para as regras da PORTA3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j PORTA3128

# na lista PORTA3128, PRIMEIRO REGRAS de excessao (ips que não devem ser redirecionados)
iptables -t nat -A PORTA3128 -d 200.201.174.207 -j RETURN
iptables -t nat -A PORTA3128 -d 200.214.44.204 -j RETURN
iptables -t nat -A PORTA3128 -d 200.144.0.11 -j RETURN
... (quantos quiser)

# logica: se for algum destes IPS, sai desta lista

# Como ULTIMA regra da fila PORTA3128:

iptables -t nat -A PORTA3128 -p tcp --dport 80 -j REDIRECT --to-port 3128

Depois de estar NO AR, sempre podes inserir mais um ip de exclusão com o comando:

iptables -t nat -I PORTA3128 -d IP -j RETURN
(veja o -I ao contrário do -A. Isto fará com que a regra entre no início da fila, antes da regra do REDIR)

FUNCIONA 100%


3. Hum... conectividade social, certo?

Jefferson Diego
Diede

(usa Debian)

Enviado em 16/03/2009 - 09:55h

Você pode tentar de outra forma. Em vez de condicionar o redirect caso "não seja 200.201.174.207", você pode liberar os IP's e então redirecionar tudo:

"Digamos" que os outros IP's sejam 200.201.166.200 e 200.201.173.68, então ficaria:

iptables -t nat -A PREROUTING -i eth1 -p tcp -d 200.201.174.207 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -d 200.201.166.200 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp -d 200.201.173.68 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128



Outra coisa que pode ser feita é já liberar a faixa de IP's inteira da caixa...
por um "whois 200.201.174.207", dá pra ver que a faixa é 200.201.160/20
Então ficaria algo assim:
iptables -t nat -A PREROUTING -i eth1 -p tcp -d ! 200.201.160/20 --dport 80 -j REDIRECT --to-port 3128






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts