Home / Dicas e Tutoriais / Proxy Squid no openSUSE 13.1 via Yast

Proxy Squid no openSUSE 13.1 via Yast

Olá novamente pessoal,

Há pouco tempo postei a instalação do seu servidor de proxy com Squid, e administração dele também pelo Webmin.

Pois bem, agora vou mostrar como fazer isso no openSUSE 13.1, instalação e administração dele pelo Yast e você perceberá que também não é nenhum “bicho de sete cabeças”.

O Yast (Yet Another Setup Tool) é um painel de controle para configurações avançadas do openSUSE ou SUSE Enterprise, e dispõe de muitas configurações para o seu sistema, incluindo configurações para seus serviços de servidor. Permite de maneira gráfica configurar tudo o que mais precisar. Eu o considero simplesmente fantástico e ainda não entendo porque outras Distros Linux também não disponibilizam um painel de controle tão completo quanto.

Além do Yast, você poderá fazer isso via linha de comando também, então passarei dos dois modos.

Instalação do Squid

Via linha de comando:

# zypper in squid

Instalando Via Yast:

Abra o Yast e vá até o item “Gerenciamento de Software” ou “Software Management” (se quiser instalar o idioma português do Brasil no seu openSUSE 13.1, dê uma olhada neste ARTIGO).

Digite no campo de busca “squid” (sem aspas).

Selecione o pacote do Squid e Squid-Yast também.

suse-squid

Configuração Inicial

Edite o arquivo de configuração para definir o endereço de sua rede, porta que o Squid irá trabalhar e opcionalmente o hostname de seu servidor.

Obs. O arquivo de configuração do Squid é enorme pois tem toda a documentação nele e centenas de opções desabilitadas. Mas repare que ao instalá-lo no openSUSE, eles tiveram o cuidado de já fazer backup dessa configuração padrão (que é o arquivo squid.conf.default), e gerar uma outra limpa, apenas com as configurações básicas, que é a “squid.conf”, que iremos configurar.

suse-squid14

# vi /etc/squid/squid.conf

Faça as alterações conforme abaixo e conforme sua rede.
Existe uma lista de “acl localnet src…”, mas você pode manter apenas a sua rede.
No meu caso é assim. As outras linhas eu comentei com o símbolo “#”.

# Minha rede
acl localnet src 192.168.0.0/24 # Permitir navegação em minha rede http_access allow localnet

suse-squid16

Também mantenha a porta padrão ao editar o arquivo, e adicione o nome do seu servidor se desejar.

# Squid normally listens to port 3128
http_port 3128

# Nome de sua máquina:
visible_hostname nome-de-seu-linux

Salve e feche o arquivo. Habilite e reinicie o serviço.

# systemctl enable squid.service
# systemctl start squid.service

 

Gerenciando o Squid pelo Yast

Uma vez o Squid instalado, este item aparecerá no Yast. Repare que o item logo acima “Proxy”, não se trata de nosso servidor de proxy com squid e sim apenas a configuração de client de proxy da máquina.

Para configurarmos nosso Proxy Squid, vamos clicar no item “Squid”.

suse-squid5

E agora um overview:

Item Inicialização:

Define se você deseja que o serviço do Squid inicie juntamente com o Sistema Operacional. Permite que você pare o serviço e o inicie e permite que abra automaticamente a porta do Squid no Firewall.

suse-squid17

Item Portas HTTP:

Mostra a porta padrão de comunicação do Squid, 3128, e lhe permite alterá-la se desejar.

suse-squid6

Item Configurações de Cache

Permite configurar o tamanho da memória cache, tamanho máximo e etc. Eu aumentei a memória cache, pois o padrão aqui é apenas 8MB.

suse-squid8

Item Diretório de Cache

Permite você definir o local de armazenamento de cache de navegação dos usuários e tamanho também. Eu aumentei o meu depois para 1024MB, pois o padrão é apenas 100MB.

suse-squid9

Item Controle de Acesso

Permite que você visualize, edite e crie suas ACLs (listas de controle de acesso), e as políticas de aplicação destas regras via “http_access” no campo abaixo “Controle de Acesso”

suse-squid10

Item Log e Tempo de Espera

Aqui você pode visualizar e editar o caminho de armazenamento dos logs de acesso e tempo de timeout.

suse-squid19

Item Diversos

Permite-nos Definir o idioma das mensagens de erro e e-mail que ele enviará as mensagens, além de habilitar FTP em modo passivo.

opensuse-squid

– Fim do overview

 

Configurar algumas regras na prática

Vamos criar algumas regras via edição do arquivo de configuração do Squid e via Yast.

Regras via edição do arquivo de configuração “squid.conf”.

Você pode fazer isso usando seu editor de texto favorito e editando o arquivo “/etc/squid/squid.conf”.

1 – Restringir o Acesso à Internet de uma máquina específica pelo endereço de IP.

Por exemplo, vamos restringir a navegação da máquina com o IP 192.168.0.100.

# vi /etc/squid/squid.conf
## ACL para restringir o host 192.168.0.100
acl restricthost src 192.168.0.100

## Negar o host 192.168.0.100 from internet
http_access deny restricthost

O arquivo de configuração ficou assim:

suse-squid20

Pronto, quer ver como ficou no Yast?

suse-squid21

Reinicie o serviço para a regra ter efeito.

Fazendo pelo Yast:

Vá até o Item “Controle de Acesso”, depois no campo “Grupos ACL” clique em “Adicionar”, escolha o tipo de ACL e preencha os campos.

suse-squid23 suse-squid23b

O legal do Yast é que ele diz o que cada tipo de ACL faz, repare na imagem acima.

Criada a ACL, crie a restrição:

No campo de baixo clique em “Adicionar”, depois escolha o tipo de permissão “Negar ou Permitir”, depois escolha a ACL, depois clique em “Adicionar” ao lado da ACL, e depois clique em “OK”

suse-squid24

Pronto, a mesma restrição criada com sucesso!

 

Criando mais 5 Regras

Agora que já sabemos criar as regras via Yast, vamos criá-las editado o squid.conf, e depois conferimos novamente a presença delas no Yast.

Vamos criar mais 5 restrições, agora todas abaixo pela edição do arquivo squid.conf e depois veremos como elas ficaram no Yast.

Obs. Embora eu já tenha passado em outro artigo a criação das regras, achei importante passá-las aqui também.
Usarei o editor de texto “vi”, mas você poderá usar outro de sua preferência se desejar.

 

1 – Restringir a Internet para um grupo de máquinas pelo endereço de IP

Crie um arquivo de texto chamado, por exemplo, “ips_bloqueados.acl” em qualquer, mas aqui criarei na pasta do squid.

# vi /etc/squid/ips_bloqueados.acl

Adicione os endereços de IP que deseja bloquear.

192.168.0.10/24
192.168.0.11/24
192.168.0.12/24

Agora defina a regra dentro do arquivo squid.conf

[...]
acl ips_bloqueados url_regex -i "/etc/squid/ips_bloqueados.acl"
[...]
http_access deny ips_bloqueados
[...]

Salve o arquivo e reinicie o serviço do squid.

# systemctl restart squid.service

 

2 – Restringir o Acesso à Internet à uma Rede Particular

Se você desejar restringir o acesso à internet de uma rede específica, por exemplo, ex.192.168.10.0/24, então adicione as seguinte regras ao arquivo squid.conf.

[...]
acl rede_restrita src 192.168.10.0/24
[...]
http_access deny rede_restrita
[...]

Salve o arquivo e reinicie o serviço do squid.

 

3 – Restringir o Acesso à Internet em um Horário Específico

Você poderá querer restringir o acesso à internet em determinados horários fora do expediente.

# vi /etc/squid/squid.conf

Adicione as seguintes linhas

acl localnet src 192.168.0.0/24
acl working_hours time M T W H F 10:00-18:00
[...]
http_access deny localnet working_hours
[...]

O exemplo acima restringe o acesso à internet das 10:00 as 18:00.

Salve e reinicie o serviço do Squid.

# systemctl restart squid.service

 

4 – Permitir Acesso à Internet Access em um Horário Específico

Você poder querer liberar o acesso à Internet da rede 192.168.0.0/24 depois das 18:00hs até as 20:00hs.

Adicione as seguintes linhas no aquivo squid.conf

[...]
acl localnet src 192.168.0.0/24
acl periodo_livre time 18:00-20:00
[...]
http_access allow localnet periodo_livre
[...]

Salve e reinicie o serviço do Squid.

# systemctl restart squid.service

A configuração acima libera o acesso à internet da rede 192.168.0.0/24 das 18:00 as 20:00hs.

 

5 – Bloquear um grupo de Sites.

Você pode querer bloquear alguns sites impróprios, redes sociais e etc.

Crie um arquivo chamado sites “sites_bloqueados.acl” por exemplo.

# vi /etc/squid/sites_bloqueados.acl

Adicione os sites que não deseja navegação

www.facebook.com
www.naukri.com
www.pornhub.com

Agora defina as regras no arquivo /etc/squid/squid.conf

[...]
acl sites_bloqueados url_regex -i "/etc/squid/sites_bloqueados.acl"
[...]
http_access deny sites_bloqueados
[...]

Salve e reinicie o serviço do Squid.

# systemctl restart squid.service

Agora tente acessar alguns dos sites bloqueados. Verá uma mensagem como esta abaixo.

ERROR: The requested URL could not be retrieved - Mozilla Firefox_0076 – Bloquear apenas um site.

Se você deseja bloquear apenas um site, poderá também fazer o seguinte, adicionando estas linhas ao arquivo “/etc/squid/squid.conf”

acl banned_site url_regex -i www.movies.com
http_access deny banned_site

 

Bom estas são as regras mais usadas.

Verificando

Vamos ver como elas ficaram no arquivo de texto?

suse-squid26

Agora vamos ver como elas ficaram no Squid-Yast?

suse-squid27

 

Conclusão:

Agora você tem um servidor de Proxy instalado e configurado, fazendo cache da navegação dos usuários e com as regras de acesso configuradas, seja configurando o Squid pelo Yast ou editando arquivo de configuração, o resultado é o mesmo, basta fazer da forma que mais gostar.

 

Abraços,

Cleuber

About Cleuber

Cleuber Silva Hashimoto. Administrador

2 comments

  1. Parabéns cara! To começando a usar o OpenSuse 13.2 e gostei muito de sua explicação. Valeu!!!

Leave a Reply

x

Check Also

Elementary OS 6 Odin Lançado – Confira as Novidades

Desenvolver um sistema operacional não é ...