Squid configurado como proxy no Ubuntu Server

O artigo retrata a instalação do Squid para atuar como proxy em uma rede de computadores. Será descrito no artigo o passo a passo sobre como configurar este servidor e estabelecer sua rede de forma rápida e simples. Deparar com pequenos macetes que ajudam a manter a gerência da rede e controle, sem perder tempo em buscar novos procedimentos e erros que não ficam claros na sua instalação.

[ Hits: 70.784 ]

Por: Wesley de Toledo Costa em 10/07/2012


Passo III: Script do firewall



Entre no init.d:

cd /etc/init.d

Crie um arquivo de firewall:

sudo mcedit firewall.sh

Exemplo:

iptables_start(){
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X

modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
################################################################
#ATIVA REGRA SQUID


iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo "1" < /proc/sys/net/ipv4/tcp_syncookies
echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/eth1/accept_source_route
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#################################################################
#LIBERA ACESSO PARA REDE


iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --syn -s 192.168.2.0/255.255.255.0 -j ACCEPT

#################################################################
#Aqui poderão ser inseridas regras para bloqueios Ex: torrents, P2P,...
#################################################################
#FINALIZA ARQUIVO
#################################################################

#################################################################
#REGRAS DE EXCESSÃ(ACESSO LIVRE DO FIREWALL) Permite aceeso sem passar pelas regras
#################################################################

iptables -t nat -I PREROUTING 1 -p tcp -s 192.168.2.100 --dport 1:65334 -j ACCEPT
#################################################################

echo 1 > /proc/sys/net/ipv4/ip_forward

}

iptables_stop(){
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
}

case "$1" in
"start")
iptables_start
;;
"stop")
iptables_stop
echo "O iptables esta sendo desativado"
sleep 2
echo "ok"
;;
"restart")
echo "O iptables esta sendo desativado"\e sleep 1
echo "ok"
iptables_stop; iptables_start
;;
*)
iptables -L -n
esac


Salve o arquivo e saia do Editor. Dê prioridade ao root neste arquivo:

sudo chown root.root firewall.sh

Mude a permissão do arquivo:

sudo chmod 755 firewall.sh

Tornando o script uma tarefa do sistema ao reinicializar:

sudo update-rc.d firewall defaults

Página anterior     Próxima página

Páginas do artigo
   1. Passo I: Configuração e Instalação
   2. Passo II: mão na massa
   3. Passo III: Script do firewall
   4. Passo IV: Finalizando com BIND
Outros artigos deste autor

Samba - Instalação e configuração descomplicada

Autenticar estação de trabalho GNU/Linux no Windows Server - Instalação e configuração do Centrify

Instalação, configuração do Samba e utilização de quota

Leitura recomendada

nginx em conjunto com Apache - Instalação e configuração no Debian e derivados

Configuração de rede mesh em Ap Router Pro

Configuração de um servidor VPN com OpenVPN e chave estática

Umask para leigos

LXC-Container e KVM - CentOS 6.2 x86_64 rodando em outro CentOS x86_64

  
Comentários
[1] Comentário enviado por danniel-lara em 11/07/2012 - 09:05h

Parabéns pelo artigo muito bom mesmo

[2] Comentário enviado por andrefreire em 11/07/2012 - 10:40h

Wesley,

Acho que você se confundiu em algumas coisas.
1) A rede ALL deve ser qualquer rede que não a sua rede local ou seja 0/0.

2) Quando você permite o tráfego para sua rede local logo como primeira regra nada mais será bloqueado.

3) Na sua definição de redelocal faltou a máscara.

Sua regra funcionaria se fosse algo assim:

http_access allow redelocal !bloqueio

mais ainda assim eu faria algo do tipo:

acl all src 0/0

http_access deny !redelocal "o que não for rede local será bloqueado"
http_access allow redelocal !bloqueio "o que for rede local e não estiver em bloquei passa"
http_access deny all "outras redes serão bloqueadas"

Espero que não se chateie...

Grande abraço.

[3] Comentário enviado por toledocosta em 11/07/2012 - 11:56h


[2] Comentário enviado por andrefreire em 11/07/2012 - 10:40h:

Wesley,

Acho que você se confundiu em algumas coisas.
1) A rede ALL deve ser qualquer rede que não a sua rede local ou seja 0/0.

2) Quando você permite o tráfego para sua rede local logo como primeira regra nada mais será bloqueado.

3) Na sua definição de redelocal faltou a máscara.

Sua regra funcionaria se fosse algo assim:

http_access allow redelocal !bloqueio

mais ainda assim eu faria algo do tipo:

acl all src 0/0

http_access deny !redelocal "o que não for rede local será bloqueado"
http_access allow redelocal !bloqueio "o que for rede local e não estiver em bloquei passa"
http_access deny all "outras redes serão bloqueadas"

Espero que não se chateie...

Grande abraço.


Boa Tarde andrefreire.
Agradeço as considerações, claro este artigo foi desenvolvido de forma básica para deixar a rede funcionando, não inseri todas as formalidades e regras que usei em minha rede para não torna-lo extenso, mas considero suas observações cabiveis e excelentes.

Muito obrigado e ate mais...

[4] Comentário enviado por defabio em 11/07/2012 - 13:13h

Wesley,

poque colocar estes servers?

nameserver 8.8.8.8
nameserver 8.8.4.4

[5] Comentário enviado por johnnyb em 11/07/2012 - 15:04h


[4] Comentário enviado por defabio em 11/07/2012 - 13:13h:

Wesley,

poque colocar estes servers?

nameserver 8.8.8.8
nameserver 8.8.4.4


Amigo se vc colocar no squid e melhor bom eu particularmente prefiro la, Porque vc nao inclui o dhcp :D e muito melhor
e mais pratico do que vc fica setando ip nas maquinas :D e la tambem tem como coloca ip fixo :D

[6] Comentário enviado por dalveson em 11/07/2012 - 17:46h

Parabens pelo artigo, ajudara sem duvida nenhuma a muitos que tenham duvidas sobre o squid e o bind.
PS: como o colega andrefreire falou tem algumas regras que estao um pouco confusa, lembramos que o squid é top dow e ler as regras de cima para baixo, ou seja se vc liberar o acesso em uma regra, nao adianta tentar bloquear em outra que vem logo abaixo que nao dara certo.
Minha contribuição é apenas no metodo de organização das acls, por exemplo minhas acls safe_ports organizo assim com a finalidade de economizar espaço na leitura do meu arquivo:
acl SSL_ports port 443 563 873
acl Safe_ports port 80 21 443 70 210 280 488 591 777 631 873 901
a outra contribuição é com relação ao padrao dos arquivos que ficarao em cache no disco, eu prefiro usar aufs ao inves de ufs, pois o aufs é bem mais rapido a consulta no disco, ficaria assim:
cache_dir aufs /var/cache/squid 2048 64 128
no mais como ja frisei anteriormente o artigo está otimó, o mais importante vc já fez que é compartilhar o que vc sabe com os demais colegas da comunidade.
abraços

[7] Comentário enviado por glaubernicassio em 18/07/2012 - 15:03h

Preciso muito de uma ajuda.

E montei um linux com o samba e o squid (servidor proxy), mas depois disso existem alguns sites que não abrem como:

globo.com

yahoo.com.br

hotmail.com

Não sei o que fazer já fiz varias alterações no linux mas não resolve.SOCORRO!!!!

[8] Comentário enviado por toledocosta em 18/07/2012 - 15:30h


[7] Comentário enviado por glaubernicassio em 18/07/2012 - 15:03h:

Preciso muito de uma ajuda.

E montei um linux com o samba e o squid (servidor proxy), mas depois disso existem alguns sites que não abrem como:

globo.com

yahoo.com.br

hotmail.com

Não sei o que fazer já fiz varias alterações no linux mas não resolve.SOCORRO!!!!


Boa Tarde, glaubernicassio.
Você pode verificar no seu script de firewall se não tem nenhuma regra bloqueando esses sites ou portas de acesso. Se você criou um arquivo de palavras ou sites para bloquear de uma olhadinha nele também...
Se após isso ainda estiver bloaqueado poste mais detalhes....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts