Buckminster
(usa Debian)
Enviado em 09/05/2013 - 01:51h
É que o Squid quando instalado por um gerenciador (apt-get, aptitude, etc) não é instalado com a opção --enable-ssl que dá suporte a certificados SSL, além de outras opções. Para isso o correto é baixar os fontes e compilar o Squid manualmente com várias opções habilitadas para o que se quer (transparente ou autenticado). Daí terminam esses problemas.
"Bom, cheguei a algumas conclusões:
1 - O ip de destino, quando o proxy nao é transparente, é o proxy mesmo, nao o site de destino. Isso impossibilita criar regras na tabela nat que filtrem o destino;
2 - Ainda que eu pudesse filtrar, na tabela nat, eu nao poderia redirecionar a requisição para o porta 80, pois isso faria a requisição ir para a porta 80 do servidor, quando deveria fazer forwarding. Isso eu posso contornar redirecionando as requisicoes para uma outro proxy (uso tinyproxy) que nao apresente as mesmas deficiencias que o squid ao acessar um site de banco."
O teu 1 ali depende da chain: INPUT, OUTPUT ou FORWARD ou uma chain criada por você (e uma chain criada por você não se enquadra nas políticas padrões). Uma regra que você faz em uma chain não é acrescentada em outra chain, são coisas distintas.
E o IP de destino (ou origem) a que você se refere, nesse caso, é o IP da placa de rede. E nesse mesmo IP estão o IPtables e o Squid. O IPtables faz a distinção, nesse caso, pelas portas.
Em outros casos, o IP de origem é o IP que gerou o pacote (solicitação de uma máquina cliente, por exemplo, um site) e o IP de destino é o IP para onde vai o pacote dentro da tua rede. E no IPtables você pode alterar tanto o IP de origem quanto o IP de destino (dentro da tua rede), mas não pode alterar esses IPs para fora da tua rede, pois todos os pacotes saem para fora da rede com o IP do roteador.
Lembre-se sempre que o IPtables atua na camada de enlace (camada 2) e o Squid na camada de aplicação (camada 7), ou seja, o IPtables atua antes na entrada dos pacotes e depois na saída dos pacotes, por isso existem as 3 chains.
Visualize o IPtables como um segurança na porta de uma boate: quem entra passa primeiro pelo segurança e se estiver na lista... entra, e esta lista pode conter restrições, por exemplo, o cara ser revistado ou não. E para sair, deve pagar a conta primeiro (o Squid) e depois passa pelo segurança.
Existem 65.536 portas tcp e 65.536 portas udp num computador, porém, existe somente uma única via de entrada e saída (a placa de rede). É como um prédio com suas salas. Para entrar no prédio, passa primeiro pelo IPtables, para sair passa de novo por ele (por isso existem as 3 chains). O Squid seria, grosso modo, o secretário dos navegadores. Se o cara não tem hora marcada para conseguir falar com o navegador, só invadindo a sala. Mas para isso tem que passar pelo IPtables primeiro e o IPtables e o Squid só fazem o que o administrador manda eles fazerem (as regras).
Vamos supor que um cara entre no prédio (passou pelo IPtables), mas só tem acesso a uma determinada sala e essa sala não é a do navegador... como ele irá falar com o navegador? Não tem como. E se ele tiver o acesso liberado à sala do navegador, terá que passar também pelo secretário (o Squid).
O IPtables é um filtro de pacotes (lê basicamente os cabeçalhos) e o Squid é um proxy (proxy do Inglês significa "procuração" em Português), ou seja, ele tem uma procuração dos navegadores para atuar em nome deles através dos protocolos, IPs, etc.
Mantenha o secretário e o segurança sempre bem informados.