Squid + iptables (método ninja)

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

[ Hits: 73.443 ]

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

Implementando prioridade nos serviços com TOS no Iptables

Shorewall - Firewall passo a passo no Linux

Ensinando seu servidor a ler emails e liberar acesso SSH

IPtables - Trabalhando com Módulos

Incrementando seu Firewall com o Layer 7 Filter

  
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