Instalação do Squid 3.2.0.14 no Slackware com execução em ambiente chroot

Tutorial mostrando uma instalação do software Squid no sistema Slackware e sua execução em um ambiente chroot. Onde será criado um sistema raiz separado do original, apenas para execução dos processos gerados pelo Squid, com o intuito de fornecer um nível elevado de segurança e proteção aos arquivos do sistema.

[ Hits: 21.611 ]

Por: Gustavo Dorneles de Castro em 14/01/2012


Permissões, criação dos diretórios e execução



Ajustes das permissões e criação dos diretórios Swap

Teremos que dar total permissão ao usuário e grupo squid nos arquivos de /usr/loca/squid e em seguida executarmos o comando chroot, passando como parâmetros o diretório onde será a raiz, o comando a ser executado lá dentro e seus argumentos necessários.

# chown squid.squid /usr/local/squid/ -R
# chroot /usr/local/squid sbin/squid -f etc/squid.conf -z


Obs.: O fato de passarmos as informações desta forma: "sbin/squid" e "etc/squid.conf" como argumento para o comando, não está ligado ao fato de estarmos dentro do diretório /usr/loca/squid. Independentemente do diretório onde estivermos, o comando deverá ser executado desta forma, pois é desta maneira que o binário do squid será executado e reconhecerá seu arquivo de configuração.
2012/01/07 00:02:19 kid1| Creating Swap Directories
2012/01/07 00:02:19 kid1| /var/cache/squid exists
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/00
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/01
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/02
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/03
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/04
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/05
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/06
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/07
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/08
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/09
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0A
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0B
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0C
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0D
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0E
2012/01/07 00:02:19 kid1| Making directories in /var/cache/squid/0F

Executando o Squid

Após o ajuste das permissões e a criação dos diretórios de Swap, poderemos executar o Squid. Iremos primeiramente executá-lo em modo debug, onde todo o processo será demostrado na saída padrão do console, assim poderemos ver eventuais erros na execução.

# chroot /usr/local/squid sbin/squid -f etc/squid.conf -d 65535

Caso a inicialização tenha sido bem sucedida, linhas semelhantes às mostradas abaixo poderão ser vistas no debug:
2012/01/07 00:07:45 kid1| Squid plugin modules loaded: 0
2012/01/07 00:07:45 kid1| Ready to serve requests.
2012/01/07 00:07:45 kid1| Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 18
flags=9
2012/01/07 00:07:45 kid1| Done reading /var/cache/squid swaplog (0 entries)
2012/01/07 00:07:45 kid1| Finished rebuilding storage from disk.
2012/01/07 00:07:45 kid1|         0 Entries scanned
2012/01/07 00:07:45 kid1|         0 Invalid entries.
2012/01/07 00:07:45 kid1|         0 With invalid flags.
2012/01/07 00:07:45 kid1|         0 Objects loaded.
2012/01/07 00:07:45 kid1|         0 Objects expired.
2012/01/07 00:07:45 kid1|         0 Objects cancelled.
2012/01/07 00:07:45 kid1|         0 Duplicate URLs purged.
2012/01/07 00:07:45 kid1|         0 Swapfile clashes avoided.
2012/01/07 00:07:45 kid1|   Took 0.04 seconds (  0.00 objects/sec).
2012/01/07 00:07:45 kid1| Beginning Validation Procedure
2012/01/07 00:07:45 kid1|   Completed Validation Procedure
2012/01/07 00:07:45 kid1|   Validated 0 Entries
2012/01/07 00:07:45 kid1|   store_swap_size = 0.00 KB
2012/01/07 00:07:46 kid1| storeLateRelease: released 0 objects

Então poderemos executar o squid fora do modo de debug:

# chroot /usr/local/squid sbin/squid -f etc/squid.conf # ps aux | grep squid
root      9236  0.0  0.3  41004  1620 ?        Ss   22:09   0:00 sbin/squid -f etc/squid.conf
squid     9243  0.3  1.5  44216  7680 ?        S    22:10   0:00 (squid-1) -f etc/squid.conf
squid     9244  0.0  0.1   3224   872 ?        S    22:10   0:00 (unlinkd)
root      9247  0.0  0.1   2212   636 pts/0    S+   22:11   0:00 grep squid

Caso haja necessidade de recarregar as configurações do serviço, tudo deverá ser feito levando-se em conta o ambiente de execução chroot:

# chroot /usr/local/squid sbin/squid -f etc/squid.conf -k reconfigure

Por fim, apenas ajuste a configuração de seu navegador para utilizar como proxy o endereço de seu servidor na porta 3128 para testar a execução do Squid.
Página anterior    

Páginas do artigo
   1. Download, instalação e preparando o ambiente
   2. Configuração básica do Squid
   3. Permissões, criação dos diretórios e execução
Outros artigos deste autor

Instalação do Samba-3.6.1 + Kerberos + Winbind no Slackware 13.1.0

Leitura recomendada

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Filtragem de páginas SSL (443) no Squid transparente

Instalando o Squid + SquidGuard

Identificando usuários Squid com o IDENTD

Gerenciando relatórios do SARG

  
Comentários
[1] Comentário enviado por removido em 14/01/2012 - 14:03h

Bom dia amigo,

belo artigo vou testar e vê se funciona,

Porém mesmo não testando fiquei com uma dúvida, após reiniciar o servidor que está rodando o serviço em chroot, terei que executar o serviço manualmente ou fazse ndo um script para automatizar ou ele vai iniciar em chroot automaticamente ?

e para parar o serviço qual comando uso, pois para carregar as configurações você usou o -k reconfigure após o arquivo de configuração ?

Se usar um exit para sair do chroot o squid vai continuar executando em chroot ?

fico grato pelo seu retorno

[2] Comentário enviado por gustavo.dorneles em 14/01/2012 - 15:43h

Edson,

Para inicialização do squid poderá ser feito um script simples, sempre utilizando o comando chroot para manipular o squid. Para parar o serviço você pode utilizar:

chroot /usr/local/squid/ sbin/squid -f etc/squid.conf -k shutdown

Bem como outras opções que podem ser vistas com:

chroot /usr/local/squid/ sbin/squid -f etc/squid.conf --help

Neste ambiente chroot não deve haver shell ativo, apenas o executável do squid e outros binários relacionados à ele. Logo, o ambiente chroot existirá apenas enquanto houver processos do squid rodando dentro dele.

Att.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts