Squid + iptables (método ninja)

Depois de pesquisar de montão, resolvi descrever um processo simplificado de configurar um servidor de firewall.

[ Hits: 73.881 ]

Por: Claudio A. Guolo em 26/02/2008


Introdução



Sem ter a menor idéia de como funcionava e de revirar o Google procurando, finalmente consegui configurar um servidor com iptables + Squid (transparente). Descobri que é mais fácil do que imaginava. Estou escrevendo aqui um artigo pressupondo que quem for utilizá-lo tenha conhecimentos mínimos de Linux e saiba exatamente onde quer chegar.

Não vou entrar em detalhes sobre configuração de máquina, só vou descrever as placas de rede e desse ponto em diante é só software mesmo.

Use duas placas de rede:
  • ETH0 - interface vermelha ligada ao modem ADSL);
  • ETH1 - interface verde (ligada à rede interna).

A distribuição que uso é o Debian (lógico) Etch 4.0.

Baixe o ISO do netinst, pois não usaremos gráfico.

Como editor de textos use o mcedit (depois do sistema básico instalado um simples "apt-get install mc"), pois pra salvar o arquivo que se está editando basta apertar ESC e já aparece uma telinha, muito simples (aprendi essa com o Rogério), mas qualquer editor também serve.

Não instale o Squid por enquanto, primeiro vamos configurar as interfaces.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Arquivo /etc/network/interfaces
   3. Squid
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Bloqueando programas P2P com iptables

Dois links de ADSL em um mesmo servidor

Instalação do Layer7 no Debian Etch

Como criar um firewall de baixo custo para sua empresa

Firewalls redundantes utilizando VRRP

  
Comentários
[1] Comentário enviado por exercitobr em 26/02/2008 - 18:19h

Parabéns, bastante didático e prático.

[2] Comentário enviado por kabalido em 27/02/2008 - 01:41h

Cara, parabéns pelo artigo!
Só um pequeno erro:

Na interface de Rede Vermelha eth0, o gateway é 192.168.10.1 e não gateway 192.168.10.2 como vc colocou ae. Pois o ip do modem é 192.168.10.1.

T+

[3] Comentário enviado por py9mt em 27/02/2008 - 07:47h

Opa, isso mesmo, obrigado.

[4] Comentário enviado por abimael_bs em 27/02/2008 - 10:04h

Esse é o cara! Parabéns!!!!

[5] Comentário enviado por snakerj em 27/02/2008 - 23:40h

copiei o mesmo e esta dando esse erro,

* Restarting Squid HTTP proxy squid * Creating squid spool directory structure
2008/02/27 21:31:03| parseConfigFile: line 1 unrecognized: 'httpd_accel_port 80'
2008/02/27 21:31:03| parseConfigFile: line 2 unrecognized: 'httpd_accel_host virtual'
2008/02/27 21:31:03| parseConfigFile: line 3 unrecognized: 'httpd_accel_with_proxy on'
2008/02/27 21:31:03| parseConfigFile: line 4 unrecognized: 'httpd_accel_uses_host_header on'
FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

Squid Cache (Version 2.6.STABLE14): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Aborted (core dumped)
2008/02/27 21:31:03| parseConfigFile: line 1 unrecognized: 'httpd_accel_port 80'
2008/02/27 21:31:03| parseConfigFile: line 2 unrecognized: 'httpd_accel_host virtual'
2008/02/27 21:31:03| parseConfigFile: line 3 unrecognized: 'httpd_accel_with_proxy on'
2008/02/27 21:31:03| parseConfigFile: line 4 unrecognized: 'httpd_accel_uses_host_header on'
FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

Squid Cache (Version 2.6.STABLE14): Terminated abnormally.
CPU Usage: 0.008 seconds = 0.000 user + 0.008 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0
Aborted (core dumped)

o que pode ser onde esta errado?

[6] Comentário enviado por sigelmann em 28/02/2008 - 00:07h

Comentário para snakerj:
o seu squid é versão mais nova, em vez de usar as regras acima:

httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

remova e deixe apenas http_port 3128 transparent

[7] Comentário enviado por antonioinfoxx em 28/03/2008 - 23:07h

So que quando eu inicio o squid, com essa configuração minima ela da o seguinte erro ([root@localhost squid]# squid -k reconfigure
2008/03/28 13:12:06| parseConfigFile: line 1 unrecognized: 'httpd_accel_port 80'
2008/03/28 13:12:06| parseConfigFile: line 2 unrecognized: 'httpd_accel_host virtual'
2008/03/28 13:12:06| parseConfigFile: line 3 unrecognized: 'httpd_accel_with_proxy on'
2008/03/28 13:12:06| parseConfigFile: line 4 unrecognized: 'httpd_accel_uses_host_header on'
squid: ERROR: No running copy)
ai eu tirei as linha que estao no erro acima e deixa so as linhas e coloque (http_port 3128 transparent) ai ele deu o seguinte erro (squid: ERROR: No running copy
)

[8] Comentário enviado por claudio252 em 05/07/2009 - 15:07h

Boa tarde olha eu tive olhando seu tutorial achei interessante eu to querendo colocar em minha lan house em um firewall coyote certo
e colocar o ip do squid no firewall sendo assim só o squid vai ter acesso a internete e as estações vai ter acesso apatir do squid para que todas as estaões tenha acesso apartir dele só que quero o squid pra cache web tenho que deixar ele livre pra qualquer sit preciso restringei 1 ou 2 sits

De assim: http_access deny all Para assim:
E assim fica liberado http_access allow all
vc poderia me dá uma dica

se vc poder me ajudar fico agradecido
desculpa é sou iniciante no linux

meu e-mail: claudyo-gt@hotmail.com

[9] Comentário enviado por j4ngo em 16/02/2010 - 15:33h

Cara to tentando fazer isso no CentOS .. porém como é baseado em redhat o arquivos de configuração das placas de rede são distintos por placa (/etc/sysconfig/network-scripts/ifcfg-eth0 e /etc/sysconfig/network-scripts/ifcfg-eth1) dessa forma não sei onde executar o segundo passo em que manda editar o arquivo /etc/network/interfaces com :
pre-up iptables -F
pre-up iptables -X
pre-up iptables -F -t nat
pre-up iptables -X -t nat
pre-up iptables -F -t filter
pre-up iptables -X -t filter

# Essa Parte faz com que o sinal da interface Vermelha passe para a Verde
# e vice-versa

pre-up iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
pre-up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
pre-up echo 1 > /proc/sys/net/ipv4/ip_forward

Onde faço isso nas distribuições RedHat???

[10] Comentário enviado por hbreda em 10/03/2011 - 23:47h

Amigo py9mt muito obrigado! O Firewall do Webmin não estava aplicando as regras setadas. Fiz como vc descreveu no /etc/network/interfaces e deu tudo certinho! Parabéns e Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts