Como ficaria esse comando do IPTABLES?
Pessoal, eu uso proxi transparende na minha rede. Porem eu uso o seguinte comando do iptables para liberar o acesso ao IP 200.201.174.207 sem passar pelo squid.
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
Repare que o comando vale para todos os destinations menos o ip indicado (por isso informado o "!").
Mas agora eu quero fazer isso com varios ips e não só com esse. Como eu devo fazer isso?
Re: Como ficaria esse comando do IPTABLES?
iptables -t nat -A PREROUTING -p tcp -d 200.201.174.207 --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d A.B.C.D --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d E.F.G.H --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
Com isso ele faz NAT para todos os destinos com excessão dos citados nas 3 primeiras linhas. É só ir adicionando mais regras antes da última.
Re: Como ficaria esse comando do IPTABLES?
olá,
Código :
for ip in 200.201.174.207 200.201.174.208 200.201.174.209 200.201.174.210
do
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! $ip --dport 80 -j REDIRECT --to-port 3128
done
até...
Re: Como ficaria esse comando do IPTABLES?
Citação:
Postado originalmente por flamehazard
olá,
Código :
for ip in 200.201.174.207 200.201.174.208 200.201.174.209 200.201.174.210
do
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! $ip --dport 80 -j REDIRECT --to-port 3128
done
até...
Flame, essas regras nao funcionam conforme o desejado.
Vamos analisar:
As regras criadas seriam as seguintes:
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.207 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.208 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.209 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 0/0 -p tcp -d ! 200.201.174.210 --dport 80 -j REDIRECT --to-port 3128
Se a requisicao do usuario fosse para o ip 209, a primeira regra carregada pelo kernel diz o seguinte: redirecione para a porta 3128 todos os pacotes com destino a porta 80 que nao sejam para o ip de destino 200.201.174.207. Como o ip de destino em questao é o 209, o kernel aplica a regra para a solicitacao, redirecionando para o squid. A forma correta e mais 'limpa' é a citada pelo Eric.
Ou, ainda, se a sua necessidade for apenas com relacao ao Conectividade Social, voce pode cirar a regra pra classe toda, é mais garantido.
iptables -t nat -A PREROUTING -p tcp -d ! 200.201.174.0/24 --dport 80 -j REDIRECT --to-port 3128
Att,
Fabio K. Lima
LPIC1/81913
Re: Como ficaria esse comando do IPTABLES?
para ficar mais organizados.. pode usar chains personalizadas assim:
iptables -t nat -N proxy
iptables -t nat -A PREROUTING -p tcp --dport 80 -j proxy
iptables -t nat -A proxy -d 200.200.200.1 -j ACCEPT
iptables -t nat -A proxy -d 200.200.200.2 -j ACCEPT
iptables -t nat -A proxy -j DNAT --to-destination 192.168.0.1:3128
assim fica mais organizado :)