Como forçar solicitações de saída do servidor web / PHP através do proxy squid na mesma máquina?

1

Eu tenho um VPS de Squeeze Debian configurado como um servidor web nginx. Por razões de segurança, eu bloqueei todas as conexões de saída, exceto aquelas para os servidores de atualização do Debian (isso impede que scripts ruins chamem de casa). PHP é executado sob um usuário separado também. Meu problema é o seguinte:

Vários aplicativos CMS-s e PHP / Perl / Python precisam acessar serviços da Web em outros servidores (ou seja, fazer conexões HTTP de saída). Eu instalei o squid no mesmo VPS e quero usá-lo como um filtro / proxy transparente, colocando na lista de permissões os domínios permitidos.

Eu sei como forçar todas as conexões de porta de saída 80 através do proxy, mas isso faria com que as próprias solicitações do proxy fossem redirecionadas para si (isto é, loop infinito). Eu também não posso usar o módulo ipt_owner para o iptables, já que a empresa do VPS me disse claramente que não vai instalá-lo.

Existe outra maneira inteligente de forçar todas as outras solicitações de saída HTTP através do proxy do squid na mesma máquina, ao mesmo tempo em que permite que os próprios pedidos do proxy saiam?

Se isso ajudar, eu também tenho o csf instalado.

Obrigado!

    
por Erion 23.04.2013 / 11:09

1 resposta

1

Ok, respondendo minha própria pergunta:

O Squid permite que você defina os TOS em seus pacotes de saída. A configuração é tcp_outgoing_tos. Portanto, crie um acl com os IPs ou domínios permitidos e defina, por exemplo, tcp_outgoing_tos 0x10 whitelist

Os pacotes de outras aplicações normalmente possuem TOS 0x0.

Agora siga as etapas no próprio tutorial do squid link , mas em vez de corresponder ao proprietário do pacote , nós combinamos com o TOS.

# handle connections on the same box (SQUIDIP is a loopback instance)
iptables -t nat -A OUTPUT -p tcp --dport 80 -m tos --tos 0x10 -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination SQUIDIP:3127

Ao usar o csf, talvez seja necessário aceitar também esses pacotes na cadeia OUTPUT da tabela de filtros. Coloque a regra no começo da cadeia.

iptables -I OUTPUT -p tcp --dport 80 -m tos --tos 0x10 -j ACCEPT
    
por 06.05.2013 / 08:26