Servidor proxy com Squid - Instalação e configuração
Esse artigo é voltado para os iniciantes em TI, portanto, procurei escrevê-lo o mais didático possível para ajudar a galera. Tratando-se de uma pequena iniciação ao Squid.
Instalação e configuração básica
O Squid, um servidor de Proxy, trabalha como saída principal da rede. Com isso, podemos centralizar nosso foco em segurança (políticas de acesso, autenticação, etc.) em uma única máquina.
O Squid trabalha com os principais protocolos da Internet, alguns deles são: HTTP, HTTPS, FTP.
O Squid é um Software Livre licenciado pela GPL, sua utilização pode nos trazer várias vantagens, como:
Ele também atua como Proxy transparente evitando que usuários "espertinhos" possam burlar o controle de acesso.
Bem, chega de teoria e vamos começar o trabalho. Este tutorial é voltado à distribuições baseadas no Debian.
O Squid é formado de um único pacote, o que torna sua instalação extremamente fácil:
# apt-get install squid
Depois que instalamos o Squid, vamos renomear o arquivo de configuração para criarmos um do zero:
# mv /etc/squid/squid.conf /etc/squid/squid.conf.orig
# pico /etc/squid/squid.conf
Vamos criar uma configuração básica no arquivo, adicionando as seguintes linhas:
Depois, dê um:
# /etc/init.d/squid restart
...Que seu Squid já deve estar em pleno funcionamento.
O Squid trabalha com os principais protocolos da Internet, alguns deles são: HTTP, HTTPS, FTP.
O Squid é um Software Livre licenciado pela GPL, sua utilização pode nos trazer várias vantagens, como:
- Autenticação;
- Controle de acesso;
- Cache;
- Controle centralizado;
- Registros de acesso, etc.
Ele também atua como Proxy transparente evitando que usuários "espertinhos" possam burlar o controle de acesso.
Bem, chega de teoria e vamos começar o trabalho. Este tutorial é voltado à distribuições baseadas no Debian.
O Squid é formado de um único pacote, o que torna sua instalação extremamente fácil:
# apt-get install squid
Depois que instalamos o Squid, vamos renomear o arquivo de configuração para criarmos um do zero:
# mv /etc/squid/squid.conf /etc/squid/squid.conf.orig
# pico /etc/squid/squid.conf
Vamos criar uma configuração básica no arquivo, adicionando as seguintes linhas:
http_port 3128
visible_hostname KORZOS
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
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
acl redelocal src 192.168.0.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all
visible_hostname KORZOS
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
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
acl redelocal src 192.168.0.0/24
http_access allow localhost
http_access allow redelocal
http_access deny all
Depois, dê um:
# /etc/init.d/squid restart
...Que seu Squid já deve estar em pleno funcionamento.
Entendendo a configuração
Agora, precisamos descobrir para que serve cada uma destas linhas:- http_port 3128: Define em qual porta o Squid vai atuar, a porta default é a 3128, mas podemos definir qualquer outra porta.
- visible_hostname KORZOS: Define o nome do servidor, lembre-se de substituir o "KORZOS" pelo nome do seu servidor.
- acl all src 0.0.0.0/0.0.0.0: Esta linha cria uma ACL, uma política de acesso com nome "all" contendo qualquer IP.
- acl localhost src 127.0.0.1/255.255.255.255: Aqui criamos uma ACL de nome "localhost" contendo localhost.
- acl SSL_ports port 443 563: Cria a ACL contendo as portas que são utilizadas no protocolo HTTPS.
- acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535: Cria a ACL contendo as portas de diversos protocolos conhecidos na Internet.
- acl manager proto cache_object: Cria a ACL manager do tipo proto.
- acl purge method PURGE : Cria a ACL manager do tipo method.
- acl CONNECT method CONNECT: Cria a ACL CONNECT também do tipo method.
- http_access allow manager localhost: Libera a ACL manager e localhost.
- http_access deny manager : Bloqueia a ACL manager.
- http_access allow purge localhost: Libera a ACL purge e localhost
- http_access deny purge: Bloqueia a ACL purge.
- http_access deny !Safe_ports: Esta linha se torna bastante interessante pelo uso da "!", pois ela bloqueia qualquer conexão que não contenha o conteúdo da ACL Safe_Ports.
- http_access deny CONNECT !SSL_ports: Bloqueia qualquer conexão que não esteja no conteúdo da ACL SSL_ports.
- acl redelocal src 192.168.0.0/24: Cria a ACL redelocal contendo a faixa de endereço da rede.
- http_access allow localhost: Libera a ACL localhost.
- http_access allow redelocal: Libera a ACL redelocal.
- http_access deny all: Bloqueia a ACL all