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: 20.490 ]

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

Squid + IPtables com dois links de internet

Squid 2.6 + HTB-tools com cache full

Problemas com o Squid

Compilação do Squid 3 no Debian Wheezy

SquidGuard: o bloqueador de listas para o Squid

  
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