roteamento de squid da máquina nat para permitir apenas um único domínio https

1

Eu tenho uma sub-rede pública e privada na minha rede e estou roteando todo o tráfego na minha sub-rede privada por meio de uma máquina NAT na sub-rede pública. Na máquina NAT, configurei o servidor proxy do squid para permitir a conexão https apenas para um domínio específico (digamos, google.com). Um trecho da configuração do meu squid é o seguinte:

acl allowed_https_sites ssl::server_name google.com

Em minhas regras do iptables, adiciono as regras abaixo de acordo com a configuração do meu squid. As regras são:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3129
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3130
sudo service iptables save

De dentro da máquina de sub-rede privada, se eu tentar navegar para google.com , ele funciona e se eu navegar para qualquer outro site https, não consigo acessá-lo, o que é exatamente o que eu quero.

Eu quero levar isso a mais um passo, onde eu não quero nenhum tipo de conexão de saída além de google.com possível da minha máquina NAT também. Para conseguir isso, estou tentando implementar uma solução, conforme discutido neste solução , mas não estou obtendo os resultados desejados.

Se eu modificar as regras conforme mencionado no link acima, não conseguirei alcançar o resultado final. O resultado final que estou tentando alcançar é permitir apenas um único domínio https da minha máquina na sub-rede privada e descansar. Tudo deve ser bloqueado / rejeitado. No começo eu pensei, eu poderia fazer uma simples combinação de strings nas regras do iptables, mas eu estava enganado. Isso parece mais desafiador do que eu inicialmente previa. Alguma outra idéia que eu poderia experimentar ou eu posso de alguma forma ajustar a solução acima para caber no meu usecase?

    
por Ramesh 13.04.2018 / 00:12

1 resposta

1

O principal desafio é o fato de você não ter um endereço ou intervalo específico para o google.com, pelo qual o iptables pode funcionar. Portanto, você deve bloquear o tráfego no nível do processo. Como o proxy squid é executado principalmente pelo 'squid' como usuário efetivo, você pode impedir o tráfego de saída (OUTPUT) de outros processos.

iptables -A OUTPUT -m owner ! --uid-owner squid -j DROP

Além disso, você pode redirecionar qualquer saída (exceto a do squid) para o squid e aproveitar sua configuração anterior, para acessar apenas um único domínio.

    
por 13.04.2018 / 09:54