Problema ao configurar um proxy transparente

1

Eu tenho tentado sem sucesso configurar um proxy transparente em um roteador como o computador. A maioria dos exemplos que eu encontrei não tem o gateway e proxy no mesmo computador, então eu posso estar olhando para os exemplos errados. Aqui está como meu computador 'roteador' está configurado:

  • Ele atua como AP sem fio e possui duas portas LAN (usando apenas uma porta LAN no momento)
  • Tem um servidor DHCP e DNS configurado nele
  • Dansguardian e squid são totalmente configurados (eu testei ambos com telnet e squidclient)
  • NAT através do iptables está tudo pronto e funciona bem.

Meu script de configuração do iptables atual (sim, é muito simples e permite muito. Vou bloqueá-lo muito melhor depois que o proxy transparente estiver funcionando):

LAN="wlp4s0"
WAN="enp3s0"

PROXY_PORT="8080"

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#handle unmatched traffic
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -m state --state INVALID -j DROP

### Allow Loopback
iptables -A INPUT  -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

#rules for NAT
iptables -A FORWARD -o $WAN -i $LAN -s 192.168.0.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

Aqui estão as diferentes regras que tentei:

#I quickly get a 'website unavailable' message with this one
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT

e

#Requests timeout with this one
iptables -t nat -A PREROUTING -i $LAN -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT 

e

#Requests timeout with this one also
iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j DNAT --to 192.168.0.0:$PROXY_PORT

Alguém tem alguma idéia do que estou fazendo de errado? Estou faltando outras regras ou tem regras existentes que atrapalham?

    
por Echo 22.03.2015 / 07:15

1 resposta

0

Eu percebi isso. O fato de que a primeira regra, iptables -t nat -A PREROUTING -i $LAN -p tcp --dport 80 -j REDIRECT --to-port $PROXY_PORT não foi o tempo limite, mas estava retornando com um erro de imediato foi a chave.

Dansguardian como definido para ouvir em 127.0.0.1, mas não 192.168.0.1 (o endereço IP do servidor). Meus testes de telnet antes usaram 127.0.0.1. Uma vez que tentei testar com o telnet para 192.168.0.1, rapidamente descobri o problema.

    
por 03.04.2015 / 20:02