SERVIDOR PROXY SQUID NO CENTOS 7

8 dez

 SERVIDOR PROXY SQUID NO CENTOS 7

Para muitos administradores de rede, o servidor proxy squid é uma das principais ferramentas para o monitoramento e controle do acesso a internet e download’s, mas a principal função do squid, não é bloquear sites ou domínios por palavras-chaves, mas sim realizar o cache da página acessada, dessa forma o squid armazena as informações do site acessado. Quando um usuário solicitar o acesso a página cacheada o mesmo consegue responder para o usuário de forma mais rápida.

Site Oficial: http://www.squid-cache.org

SERVIDOR proxy squid

Objetivo deste tutorial é auxiliar a instalação do famoso servidor proxy squid no CentOS 7.

Atualizando o Sistema

yum update

Instalando o SQUID

yum install squid

Backup do Arquivo Original

Sempre costumo realizar um backup do arquivo original instalado. Pelo simples fato de poder recupera-lo caso eu erre em algum processo.

cd /etc/squid/
cp -Rfa squid.conf{,.bkp}

Ajustando Serviço para Iniciar automaticamente no boot

systemctl enable squid

Iniciando o SQUID

systemctl start squid

Verificando Processo e Versão Instalada

Processo rodando, tudo certo até aqui…

ps aux |grep squid
root      8004  0.0  0.1  84716  3132 ?        Ss   09:10   0:00 /usr/sbin/squid -f /etc/squid/squid.conf
squid     8006  0.8  0.8  98940 15560 ?        S    09:10   0:00 (squid-1) -f /etc/squid/squid.conf
squid     8007  0.0  0.0  27384  1232 ?        S    09:10   0:00 (logfile-daemon) /var/log/squid/access.log
root      8009  0.0  0.0 112660   964 pts/0    S+   09:10   0:00 grep --color=auto squid

Versão instalada..

squid -v
Squid Cache: Version 3.3.8

Desativando o FirewallD

Vamos desativar o FirewallD que vem configurado e ativo por padrão em distribuições CentOS 7.

systemctl stop firewalld
systemctl mask firewalld
ln -s '/dev/null' '/etc/systemd/system/firewalld.service'

Ajustando Firewall – IPTables

Atualizando o IPTables

yum install iptables-services

Ativando o serviço

systemctl enable iptables

Para salvar as regras use:

service iptables save

Abra o arquivo de configuração de serviços do IPTables.

vim /etc/sysconfig/iptables

Adicione em seu arquivo a linha abaixo:

-A INPUT -p tcp --dport 3128 -j ACCEPT

Deixando o arquivo conforme o abaixo:

SERVIDOR proxy squid

Salvando e Reiniciando

service iptables save
service iptables restart

Testando Navegação no Cliente

Vamos testar o acesso a Internet utilizando o proxy em um navegador.
Configure o endereço IP do seu Proxy e Porta no navegador desejado.

SERVIDOR proxy squid

Acessando um site para teste…

SERVIDOR proxy squid

Acompanhe nos LOGS do SQUID.

tail -f /var/log/squid/access.log

SERVIDOR proxy squid

CRIANDO E CONFIGURANDO ACL & HTTP ACCESS

O Próximo passo é a criação das ACL’s, que são responsáveis pelo controle do que pode e o que não pode, baseado nas regras em que ajustarmos no arquivo de configuração.

Para exemplo vou criar duas ACL’s, que serão responsáveis por bloquear sites e extensões de arquivos.

Acesse o diretório do squid, e na sequência vamos criar um diretório de regras, responsável por centralizar nossas informações das ACL’s.

cd /etc/squid/
mkdir regras

Criamos os arquivos onde iremos inserir as informações das ACL’s desejadas.

touch regras/extensoes-bloqueado
touch regras/sites-bloqueado

Em seguida abra o arquivo de configuração do squid.

vim squid.conf

Na linha 48 insira as informações conforme abaixo:

[...]
acl extensoes-bloqueado urlpath_regex -i "/etc/squid/regras/extensoes-bloqueado"
acl sites-bloqueado url_regex -i "/etc/squid/regras/sites-bloqueado"

http_access deny extensoes-bloqueado
http_access deny sites-bloqueado
[...]

Ficando assim…

SERVIDOR proxy squid

Agora vamos configurar os arquivos que responderam para as ACL`s.

vim regras/extensoes-bloqueado

Adicione…

.mp3
.exe
.rar
.bat

Reconfigure o serviço do SQUID.

squid -k reconfigure

Faca um teste tentando fazer o download de uma das extensões no arquivo de bloqueio.

Fiz um teste com MP3.

SERVIDOR proxy squid

Agora vamos fazer isso com algum site que não queremos que os usuários acessem.

vim regras/sites-bloqueado

Insira um domínio por linha.

.youtube.com
.facebook.com
.baixaki.com

Reconfigure o serviço do SQUID.

squid -k reconfigure

Vamos testar…

SERVIDOR proxy squid

Tudo isso pode ser acompanhado nos Logs de acessos do servidor proxy squid.

tail -f /var/log/squid/access.log

SERVIDOR proxy squid

 AUTENTICAÇÃO LOCAL

Vamos configurar a autenticação local em nosso servidor squid.

cd /etc/squid/
vim squid.conf

Na linha 27, adicione:

# AUTENTICACAO LOCAL
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/usuarios
auth_param basic children 5
auth_param basic realm "DIGITE SEU USUARIO E SENHA PARA ACESSO A INTERNET:"
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl autenticados proxy_auth REQUIRED
http_access allow autenticados

Note que o arquivo de usuários será: /etc/squid/usuarios

Reconfigure o serviço do SQUID.

squid -k reconfigure

Instalando o HTPASSWD, que vamos utilizar para criar os usuários de acesso.

yum -y install httpd-tools

Vamos criar um usuário.

htpasswd -c /etc/squid/usuarios johnny

servidor proxy squid

Para novos usuários, remova o parâmetro c na linha de comando, ficando assim:

htpasswd /etc/squid/usuarios usuario-novo

TESTANDO NAVEGAÇÃO COM USUÁRIO LOCAL

Abra o navegador que está com proxy configurado.

Ao acessar a URL desejada, será solicitado o usuário.

servidor proxy squid

Acesso liberado ao digitar o login e senha.

servidor proxy squid

Em outros artigos veremos como ajustar a configuração no Active Directory.

Espero ter ajudado alguém com este artigo!

Abraço!

Johnny Ferreira.

6 thoughts on “SERVIDOR PROXY SQUID NO CENTOS 7

  1. Estou ansioso no aguardo do ad estou justamente implementando algo para poder criar projetos para produção e esse artigo caiu como uma luva obrigado. Parabéns

    • Bosi,
      Para o funcionamento correto dos bloqueios e liberações é necessário cruzar as ACL’s.

      Coloque a linha ‘http_access allow autenticados’ após a linha de ‘http_access deny sites-proibidos’
      Veja abaixo um exemplo:

      http_access deny extensoes-bloqueado
      http_access deny sites-bloqueado
      http_access allow autenticados

      Qualquer duvida só chamar!

      Abraço.

      • Olá Johnny,

        foi o que eu fiz, mas o squid bloqueou antes mesmo de pedir autenticação.

        E caso eu queira bloquear sites para usuários específicos, como eu faço?

        E obrigado pelo retorno.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *