Servidor proxy do Squid (não transparente) funcionando na porta 3128 e 80

1

Eu tenho um servidor Squid Proxy (Debian) funcionando perfeitamente com a autenticação:

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd

Eu gostaria que também o cliente que tente obter páginas da web usando o proxy como gateway (porta 80) seja redirecionado na porta 3128.

Eu tentei o iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

sem sorte porque nesse caso meus clientes da porta 80 recebem um erro:

The following error was encountered:

Invalid Request
Some aspect of the HTTP Request is invalid. Possible problems:

Missing or unknown request method
Missing URL
Missing HTTP Identifier (HTTP/1.0)
Request is too large
Content-Length missing for POST or PUT requests
Illegal character in hostname; underscores are not allowed

então eu decidi simplesmente deixar o squid ouvir em ambas as portas modificando o squid.conf: 3128 e 80

http_port 80
http_port 3128

O que acontece?

Um cliente se conectando regularmente ao 3128 tem que digitar senha e um cliente sem proxy configurado (e portanto trabalhando na porta 80 porque o squid também é firewall / roteador e gateway da nossa pequena rede) pode navegar na internet sem entrar usuário / passe .

Como posso resolver o problema?

Iptables ou squid.conf Eu não me importo.

    
por Pitto 22.03.2013 / 17:40

1 resposta

1

Coloque o proxy transparente para escutar na porta 3129 e redirecione todas as solicitações para ele na porta 80:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -I INPUT -p tcp --dport 3128 -j ACCEPT

Squid.conf:

http_port 3128
http_port 3129 transparent

Dessa forma, o proxy transparente será a opção padrão e, as pessoas que o usam autenticado, precisam configurar o proxy: 3128 em seus navegadores.

    
por 22.03.2013 / 17:46

Tags