Como eu uso o IPTABLES para criar um repasse HTTPS (443) ao redor do Squid?

1

Eu tenho Ubuntu e Squid rodando em uma máquina atuando como um proxy transparente e um gateway padrão para muitos PCs na minha rede, o que significa que toda a atividade da Internet vem através da interface para ser filtrada antes de sair para o roteador (192.168 .1.1). HTTPS / SSL (443) não funciona porque os pacotes na porta 443 entrarão e atingirão uma parede, pois não tenho regras especificadas para isso.

Como eu uso o iptables para criar uma passagem para 443 conexões?

----------------- EDITAR -----------------------

Gerenciado para que o https funcione depois de definir as configurações de proxy do SSL para apontar para a caixa do squid. No entanto, se eu estivesse fazendo um roteador linux (o que eu meio que sou), isso significaria que o SSL nunca funcionaria a menos que eu tenha um proxy em execução? O endereço IP para a caixa linux é 192.168.1.235 e eu configurei um computador de teste executando o winXP para ele como seu gateway padrão. Certamente há uma maneira de permitir que o SSL 443 "passe" sem tocar no proxy?

Eu também estou um pouco confuso sobre o porquê https está trabalhando em tudo ... Eu não tenho qualquer tipo de rotas ou qualquer coisa no iptables que lidam com 443. Qualquer luz derramada sobre isso seria muito apreciada!

    
por atomicharri 26.10.2009 / 07:51

2 respostas

4

Você não pode fazer proxy transparente de HTTPS. Quando você faz proxy transparente, os clientes acham que estão falando com o servidor remoto. Com o HTTPS, eles tentarão criar uma conexão SSL, que autenticará o host remoto comparando o certificado remoto com o nome do host. Isso não funcionará porque o seu squid não terá o certificado correto.

Você pode, no entanto, fazer proxy em conexões HTTPS, porque os clientes que sabem como fazer proxy HTTPS abrirão uma conexão com seu proxy e emitirão uma solicitação CONNECT, que basicamente canaliza a conexão por meio do proxy.

A melhor coisa a fazer é bloquear o acesso direto à porta 443 e informar a seus usuários que, se quiserem usar HTTPS, devem configurar o navegador para usar o proxy.

    
por 26.10.2009 / 14:33
0

Isso pressupõe um pouco sobre sua configuração, mas isso deve estar perto do que você precisa. Assumindo que o lado da LAN é eth1:

iptables -I INPUT -i eth1 -p tcp --dport 443 -j ACCEPT

Isso fará com que todos os pacotes entrem do lado da LAN com uma porta de destino de 443 para o ACCEPT target e depois para o roteador, novamente, estou assumindo que você já tem essa configuração.

Espero que ajude.

EDIT: por seu comentário sobre ter apenas uma interface:

Você precisará de uma regra baseada em endereço de origem e, em seguida, modificar os endereços conforme necessário:

iptables -I INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j ACCEPT

    
por 26.10.2009 / 08:05