Squid + iptables (método ninja)

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

[ Hits: 73.409 ]

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

Incremente o iptables com patch-o-matic

L7-filter (funcionando) no Slackware 10.2

Dominando o iptables (parte 1)

Servidor Firewall-Proxy utilizando CentOS, IPtables, Squid, DHCP, DNS e outros

Dominando o Iptables (parte 2)

  
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