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.
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.
# 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
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”.
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.
Item Portas HTTP:
Mostra a porta padrão de comunicação do Squid, 3128, e lhe permite alterá-la se desejar.
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.
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.
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”
Item Log e Tempo de Espera
Aqui você pode visualizar e editar o caminho de armazenamento dos logs de acesso e tempo de timeout.
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.
– 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:
Pronto, quer ver como ficou no Yast?
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.
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”
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.
6 – 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?
Agora vamos ver como elas ficaram no Squid-Yast?
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
Parabéns cara! To começando a usar o OpenSuse 13.2 e gostei muito de sua explicação. Valeu!!!
Valeu Adriano!