Squid3 tentando adicionar um custom_acl_type personalizado

2

Estou tentando criar um auxiliar de ACL externo para o squid3 para (espero) cortar algumas linhas de configuração do meu servidor squid3 e escrevi um script Python simples para ele:

#!/usr/bin/python

import sys
import logging
import time


logger = logging.getLogger( 'squid_auth' )
logger.setLevel( logging.DEBUG )
fh = logging.FileHandler( 'spam.log' )
fh.setLevel( logging.DEBUG )
formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' )
fh.setFormatter( formatter )
logger.addHandler( fh )


def grant ():
      sys.stdout.write( 'OK\n' )
      sys.stdout.flush()


def deny ():
      sys.stdout.write( 'ERR\n' )
      sys.stdout.flush()


while True:
      line = sys.stdin.readline().strip()
      if line:
              logger.info( line )
              grant()
      else:
              time.sleep( 1 )

e adicionei no meu squid.conf:

external_acl_type custom_acl %SRC %LOGIN %DST /etc/changemyip/squid/config/acl.py
acl CustomAcl external custom_acl
http_access allow CustomAcl

O caminho para o script está certo (eu posso executá-lo no shell), o programa tem direitos de execução e tudo mais, mas quando eu recarregar o squid eu recebo esse erro cerca de 5-6 vezes o squid falha:

Aug 17 14:08:52 server7 (squid): The custom_acl helpers are crashing too rapidly, need help!
Aug 17 14:08:52 server7 squid[28233]: Squid Parent: child process 28290 exited with status 1
Aug 17 14:08:52 server7 squid[28233]: Exiting due to repeated, frequent failures

Como você pode ver, o script é apenas imprimir OK\n no stdout para conceder a todos. Eu nem comecei a implementar nenhuma lógica nisso.

Testado com a versão do squid: 3.1.19

    
por Romeo Mihalcea 17.08.2013 / 13:12

1 resposta

2

Eu tive um problema semelhante. Consegui consertar isso alterando a propriedade do script para o usuário do squid e movendo o arquivo do meu diretório home para algum lugar no sistema de arquivos raiz.

    
por 24.01.2014 / 13:15

Tags