Pular para o conteúdo

Squid + iptables (método ninja)

Depois de pesquisar de montão, resolvi descrever um processo simplificado de configurar um servidor de firewall.
Claudio A. Guolo py9mt
Hits: 74.579 Categoria: Linux Subcategoria: Firewall
  • Indicar
  • Impressora
  • Denunciar

Parte 3: 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

   1. Introdução
   2. Arquivo /etc/network/interfaces
   3. Squid
Nenhum artigo encontrado.

IPCop Firewall - Uma ótima opção de proteção para sua rede ADSL

Firewall rápido e seguro com iptables

Uso eficiente do IPCOP firewall

Abrindo "passagem" para clientes de correio

IPset - Bloqueie milhares de IPs com o iptables

#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

Entre na sua conta para comentar.