Squid + iptables (método ninja)

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

[ Hits: 74.562 ]

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


Squid



Pronto, podemos dizer que já temos um servidor de firewall funcionando, isso é, se o processo do tópico anterior deu certo, se não deu certo pare de ler esta parte e volte pro tópico anterior, me mande e-mail py9mt@yahoo.com.br, me telefone 65-8402-0253, me add no msn claudioguolo@hotmail.com. Sinal de fumaça, rádio-amador, qualquer coisa, porque não adianta continuar se o processo anterior não deu certo.

Pra você continuar e instalar o Squid, o sinal de rede tem que estar passando de uma placa pra outra (NAT), senão não adianta.

Se está funcionando então agora pode usar um "apt-get install squid".

Pronto, agora você tem Squid instalado.

Faça um teste, abra o /etc/squid/squid.conf e coloque assim:

httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

http_port 3128 transparent

error_directory /usr/share/squid/errors/Portuguese

# Criando as ACL´s
acl all src 0.0.0.0/0.0.0.0
acl safe_ports port 80 21 22

#dizendo se as ACL´s estão ou não liberadas
http_access allow safe_ports
http_access deny all

Um Squid ultra magrinho. o que acontece é que quando você der um "/etc/init.d/squid restart", se você estava acessando a internet via proxy vai parar de acessar, então você vai ter que modificar a permissão da ACL:

De assim:

http_access deny all

Para assim:

http_access allow all

Novamente reinicie o Squid:

# /etc/init.d/squid restart

Agora teste novamente, se acessar é porque seu Squid está funcionando perfeitamente, bloqueado e desbloqueando as ACLs.

Não vou entrar em detalhes de como criar ACLs porque disso o VOL está cheio, é só googlar um pouco que você acha os mais variado tipo de acl, por ip, por url-regex, por IP, por marca de desodorante que o usuário está usando etc.

Aí pessoal, desculpem os erros e tudo mais, mas a idéia é essa, qualquer dúvida estamos aí.

Good Vibes

Página anterior    

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

Criando um Firewall transparente com Bridges no Debian Etch

Criando firewalls dinâmicos com Iptables Recent

Migrando do ipchains para o iptables

Firewall iptables com NAT

Iptables detalhado

  
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