segunda-feira, 9 de março de 2009

Como configurar um proxy no Linux

Essa dica é pra quem é iniciante e gostaria de configurar um servidor proxy na rede.
Para quem não sabe o proxy é uma ferramenta que não permite que os computadores acessem diretamente a internet.
O proxy traz duas beneficies muito importantes:
1- os Usuários ficam longe da internet
2- guarda um cache dos acessos, tira log, e implanta politicas de segurança.
A primeira coisa é instalar o proxy no Linux.
#apt-get install squid
e editar os arquivos de configuração do squid (squid.conf) com uso de um editor de textos (eu uso o vim)
#mv /etc/squid/squid.conf /etc/squid/squid.conf.bkp
#vim /etc/squid/squid.conf


dentro do arquivo de configuração do squid digitamos a seguinte configuração:

#porta de saída do squid
http_port 3128
#nome da maquina local
visible_hostname

#armazenamento de cache
cache_mem 64 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 2048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280

#Acesso a Internet
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
#ip proxy para rede interna
acl localhost src 127.0.0.1/255.255.255.255
#abertura para as portas seguras
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT

#regras de liberação de portas
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports


crie um arquivo blacklist no /etc/squid/blacklist e lá coloque um dominio por linha que quer bloquear
exemplo:
orkut.com
ig.com.br
65.102.233.158
e indique esse arquivo para o squid.
para bloquear palavras siga o mesmo processo em um arquivo chamado blacknames
Outra dica é librar por tempo adicionando a regra time,, o squid lê os comandos na ordem em que foram digitados, se uma regra estiver antes liberando e a logo abaixo negando ele ficará com a primeira regra. é possível também combinar as regras, o que facilita muito.)

#seção de regas personalizadas
acl almoco time 12:00-13:00
http_access allow almoco
acl bloqueados url_regex -i "/etc/squid/blacklist"
http_access deny blacklist
acl palavrasproibidas dstdom_regex "/etc/squid/blacknames"
http_access deny blacknames


#regras de acesso a rede local
acl redelocal src 192.168.1.0/24 # endereço de sua rede c/ mask
http_access allow localhost
http_access allow redelocal

http_access deny all


Esta é uma configuração bem básica do squid, dá pra fazer muito mais como gerenciamento de banda, autenticação integração LDAP
caso quira um proxy transparente é só colocar "transparent" na frente da porta do squid e rodar o comando

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j \
REDIRECT --to-port 3128


grave este comando no /etc/rc.local ou no script de firewall.
sempre que editar o arquivo reinicie o squid com o comando

# /etc/init.d/squid restart

Um comentário:

  1. o meu farifox esta recunsando conexões, acesso qual quer pagina da net. mostra para comficurar o proxy
    ja fiz isso mais não estou conseguindo

    eu faço assim:
    mkdir -p /var/pool/squid
    depois squid -z
    depois /etc/init.d /squid start

    mais da fuil esta errado. o que eu faço

    ResponderExcluir

Comente aqui esse post! Obrigado e volte sempre!:)
p.s: Não esqueça de deixar seu link ou email para contato em caso de dúvidas