Configurando o squid e iptables para proxy transparente


Introdução:
Proxy transparente é uma forma de se implementar um proxy em uma rede sem que haja a necessidade de configurá-lo nos aplicativos clientes. Na verdade, na maioria das vezes o cliente nem se dá conta de que há um proxy na rede, a menos que haja algum controle limitando acesso. Embora alguns (a maoiria?) dos profissionais não goste do proxy transparente (e eu me incluo nessa turma), algumas vezes é um mal necessário.

Funcionamento:
No modo normal de proxy, os equipamentos são configurados explicitamente para enviar os dados para o proxy. No proxy transparente, os equipamentos não sabem da existência do proxy. Assim, eles enviam os dados para o gateway da rede, que intercepta os dados e os envia para o proxy.

Observação:
Devido ao fato do cliente não saber da presença do proxy, não é possível utilizar autenticação no squid com proxy transparente (o cliente não tem como enviar os dados para um equipamento que ele não sabe que está lá ...). Existem porém outras alternativas como o NoCat.net/ .

Habilitando:
São necessárias duas configurações: habilitar o squid para trabalhar em modo transparente e realizar o desvio dos dados no firewall/gateway (aqui veremos a configuração do iptables). 

Configurando o squid:
Existem duas formas de realizar a configuração, dependendo da sua versão do squid. Todas as configurações são realizadas no arquivo de configuração do squid (normalmente em /etc/squid/squid.conf)

Versão 2.6 (e anteriores):
http_port 3128
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Versão 2.7 em diante:

http_port 3128 transparent # (beeem mais simples, não é?)

Configurando o IP Tables (independente da versão do squid):

Considerações:
O endereço IP do servidor com o squid é 10.10.14.2, o squid está rodando na porta 3128 e a interface de rede do firewall conectada à rede local é a eth0.

1) Se o squid ficar na mesma máquina que o FW (não recomendável por questões de segurança)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
2) Se o squid ficar em uma máquina diferente (recomendado)
iptables -t nat -A PREROUTING -i eth0 -p tcp -s !10.10.14.2 --dport 80 -j DNAT --to-destination 10.10.14.2:3128

Cacti: Erro ao exibir árvore de gráficos

Introdução:
O Cacti é um sistema em PHP para a geração de diversos gráficos de performance e monitoração de ativos de rede, através de consultas SNMP. É versátil, intuitivo e expansível através de plugins.

Erro:
Ao abrir a "árvore" de gráficos (tree) não nenhum gráfico é exibido. Porém ao clicar nos links onde deveriam aparecer os gráficos,  os gráficos aparecem normalmente.



Também aparecem os seguintes erros no log de erros do apache (error.log):
ERROR: I don't understand ':27:22 To 2011/03/02 00:22:22\c' in command: 'COMMENT:From 2011/03/01 00:27:22 To 2011/03/02 00:22:22\c'.
Solução:
Indique a versão correta do pacote RRDTools instalada no seu sistema nas configurações do Cacti (é necessário efetuar o login como administrador).


No meu caso, eu tenho a versão 1.3.X instalada, mas no sistema estava configurado como 1.0.x (que deve ser o padrão).

Bloqueando Programas de Bate-Papo: MSN / Windows Live Messenger

Bloqueando Programas de Bate-Papo: MSN / Windows Live Messenger


Portas:
Por padrão, o WLM utiliza a porta 1863. No entanto, se essa porta estiver bloqueada, ele desvia o tráfego para as portas 80 e 443 (utilizadas para navegação Web).

Detecção de Rede: TCP 7001, UDP 9, 7001
WhiteBoard (Quadro Branco):  TCP 1503

URLs:
https://Login.live.com
http://Login.live.com
https://*.contacts.msn.com
https://*.storage.msn.com
http://*.storage.msn.com
http://c.msn.com
http://*.messenger.msn.com
http://g.msn.com
http://crl.microsoft.com
http://messenger.hotmail.com:1863
http://gateway.messenger.hotmail.com
http://config.messenger.msn.com
https://ows.messenger.msn.com
https://rsi.hotmail.com
http://sqm.microsoft.com
http://*.edge.messenger.live.com
http://relay.data.edge.messenger.live.com
http://rad.msn.com
http://appdirectory.messenger.msn.com
https://images.messenger.msn.com
http://spaces.live.com
http://relay.voice.messenger.msn.com
http://sup.live.com
http://sup.live.com/whatsnew/whatsnewservice.asmx
http://vp.sip.messenger.msn.com

Referência:
http://support.microsoft.com/kb/960820/en-us
http://support.microsoft.com/kb/927847/en-us
http://support.microsoft.com/kb/2027572/en-us

Dica: comando service do Cent OS Red Hat no Debian

Dica rápida:

Se você é usuário de Red Hat, Cent OS, Fedora ou algum outro da família RH e precisa utilizar o Debian, talvez esteja sentindo falta do comando service, utilizado para iniciar/parar/reiniciar serviços. O Debian tem um programa com função semelhante, chamado invoke-rc.d. No entanto, se a saudade do comando service for demais, experimente instalar o pacote sysvconfig, que contém um editor de runlevel e um script de nome service, que faz exatamente o mesmo que seu homônimo no Red Hat.