+ Responder ao Tópico



  1. #1

    Padrão Lusca cache com autenticação

    Pessoal,

    testei o lusca cache e está ok funcionando transparent...agora preciso rodar ele com autenticação mas ao tirar o transparent e adicionar a linha de autenticação ele aparece o erro abaixo:

    [[email protected] ~]# squid -k reconfigure



    FATAL: auth_param basic program /usr/lib/squid/ncsa_auth: (2) No such file or directory


    realmente o ncsa não aparece no diretório acima...como resolver isso pois preciso do proxy autenticado.

  2. #2

    Padrão Re: Lusca cache com autenticação

    quando você foi instalar o programa você configurou para ativar esta opção?



  3. #3

    Padrão Re: Lusca cache com autenticação

    não..compilei conforme tutoriais na net então como faço para ativar essa opção na hora de compilar?

    compilei assim:


    ./configure --libexecdir=/usr/lib/squid --localstatedir=/var --prefix=/usr --sysconfdir=/etc/squid --enable-async-io --with-pthreads --enable-heap-replacement --enable-coss-aio-ops --enable-ssl --enable-htcp --enable-arp-acl --enable-removal-policies=lru,heap --disable-hostname-checks --enable-default-err-language=Portuguese --enable-err-languages=Portuguese --enable-linux-netfilter --enable-snmp --disable-ident-lookups --with-maxfd=65536 --enable-storeio=aufs,null,coss --enable-epoll

  4. #4

    Padrão Re: Lusca cache com autenticação

    Procurando no google tem um tutorial que ensina a compilar somente ele então fui no diretório onde estão os arquivos do lusca e dei um make...assim ele gerou o ncsa-auth então copiei o módulo para a pasta /usr/lib/squid mas ao tentar dar um squid -k reconfigure ou parar o serviço aparece o erro abaixo:

    [[email protected] NCSA]# service squid stop
    Stopping Lusca..
    squid: ERROR: No running copy
    [[email protected] NCSA]# service squid start
    Starting Lusca..
    [[email protected] NCSA]# squid -k reconfigure
    squid: ERROR: Could not send signal 1 to process 2926: (3) No such process
    [[email protected] NCSA]# squid -k reconfigure
    squid: ERROR: Could not send signal 1 to process 2973: (3) No such process


    tem que compilar de outra forma? como?



  5. #5

    Padrão Re: Lusca cache com autenticação

    antes de executar este comando dá um 'ps ax | grep squid' e veja qual o PID do processo, depois execute 'squid -k reconfigure' e se der o mesmo erro veja se ele está se referindo ao mesmo PID.

    dá uma olhada também no cache.log

    qual comando você utiliza pra iniciar o squid?

  6. #6

    Padrão Re: Lusca cache com autenticação

    Os Pids são diferentes...para iniciar o lusca criei um script e inicio normal: /etc/init.d/squid start


    mas no rc.local ele é levantado assdim:


    squid -d 10 -D -N -F -X -f /etc/squid/squid.conf &


    os pids do erro não aprecem no top quando dou o comando nem no ps aux |grep squid são pids diferentes...quando tiro a autenticação ele volta a funcionar normal.



  7. #7

    Padrão Re: Lusca cache com autenticação

    descobri uma coisa...ao adicionar as linhas abaixo não apresenta erro...

    auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
    auth_param basic children 3
    authenticate_ttl 10 minutes
    authenticate_ip_ttl 0


    agora quando adiciono uma acl para um usuario é quando apresenta o erro do PID:

    #USER:Fernando
    acl u_fernando proxy_auth fernando


    testando para mostrar PIDS diferentes:


    [[email protected] ~]# squid -k reconfigure
    squid: ERROR: Could not send signal 1 to process 3005: (3) No such process
    [[email protected] ~]# ps aux | grep squid
    root 3034 0.0 0.0 63268 784 pts/0 S+ 14:49 0:00 grep squid

    o que pode ser? a acl está identica ao squid(sem ser lusca) que tenho no squid 2.7.

  8. #8

    Padrão Re: Lusca cache com autenticação

    cara..

    adapte este script a sua necessidade e coloque no /etc/init.d/squid

    dê permissão de execução.
    Código :
    #! /bin/sh
    #
    # squid        Startup script for the SQUID HTTP proxy-cache.
    #
    # Version:    @(#)squid.rc  2.20  01-Oct-2001  [email protected]
    #
     
    NAME=squid
    DAEMON=/usr/sbin/squid
    LIB=/usr/lib/squid
    PIDFILE=/var/run/$NAME.pid
    SQUID_ARGS="-D -sYC"
    echo 16384 > /proc/sys/kernel/msgmnb
    echo 41 > /proc/sys/kernel/msgmni
    echo 2049 > /proc/sys/kernel/msgmax
    echo 32 > /proc/sys/kernel/shmmni
    echo 2097152 > /proc/sys/kernel/shmmax
    echo 3096 > /proc/sys/kernel/shmall
     
    [ ! -f /etc/default/squid ] || . /etc/default/squid
     
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
     
    [ -x $DAEMON ] || exit 0
     
    grepconf () {
        w="     " # space tab
        sq=/etc/squid/squid.conf
        # sed is cool.
        res=`sed -ne '
            s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
            t end;
            d;
            :end q' < $sq`
        [ -n "$res" ] || res=$2
        echo "$res"
    }
     
    grepconf2 () {
        w="     " # space tab
        sq=/etc/squid/$NAME.conf
        # sed is cool.
        res=`sed -ne '
            s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
            t end;
            d;
            :end q' < $sq`
        [ -n "$res" ] || res=$2
        echo "$res"
    }
     
    #
    #    Try to increase the # of filedescriptors we can open.
    #
    maxfds () {
        [ -n "$SQUID_MAXFD" ] || return
        [ -f /proc/sys/fs/file-max ] || return 0
        [ $SQUID_MAXFD -le 4096 ] || SQUID_MAXFD=4096
        global_file_max=`cat /proc/sys/fs/file-max`
        minimal_file_max=$(($SQUID_MAXFD + 4096))
        if [ "$global_file_max" -lt $minimal_file_max ]
        then
            echo $minimal_file_max > /proc/sys/fs/file-max
        fi
        ulimit -n $SQUID_MAXFD
    }
     
    fixperms () {
        dir=$1
        usr=$2
        grp=$3
     
        currusr=`/usr/bin/stat -c '%U' $dir`
        currgrp=`/usr/bin/stat -c '%G' $dir`
     
        if [ $currusr != $usr ]
        then
            chown $usr $dir -R
        fi
     
        if [ $currgrp != $grp ]
        then
            chgrp $grp $dir -R
        fi
     
    }
     
    start () {
        cdr=`grepconf2 cache_dir /var/spool/$NAME`
        usr=`grepconf cache_effective_user proxy`
        grp=`grepconf cache_effective_group proxy`
     
        case "$cdr" in
            [0-9]*)
                echo "squid: squid.conf contains 2.2.5 syntax - not starting!" >&2
                exit 1
                ;;
        esac
     
        #
        # Create spool dirs if they don't exist.
        #
        if [ -d "$cdr" -a ! -d "$cdr/00" ]
        then
            echo "Creating squid spool directory structure"
            /usr/sbin/squid -z
        fi
     
        if [ "$CHUID" = "" ]; then
            CHUID=root
        fi
     
        maxfds
        umask 027
        cd $cdr
        start-stop-daemon --quiet --start \
            --pidfile $PIDFILE \
            --chuid $CHUID \
            --exec $DAEMON -- $SQUID_ARGS < /dev/null
        sleep 1
    }
     
    stop () {
        PID=`cat $PIDFILE 2>/dev/null`
        start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
        #
        #    Now we have to wait until squid has _really_ stopped.
        #
        sleep 2
        if test -n "$PID" && kill -0 $PID 2>/dev/null
        then
            echo -n "(waiting..."
            cnt=0
            while kill -0 $PID 2>/dev/null
            do
                cnt=`expr $cnt + 1`
                if [ $cnt -gt 60 ]
                then
                    #
                    #    Waited 120 seconds now. Fail.
                    #
                    echo -n "failed)"
                    if [ "$1" = verbose ] ; then
                        echo "."
                    else
                        echo -n " "
                    fi
                    return
                fi
                sleep 2
                echo -n "."
            done
            echo -n "done)"
            if [ "$1" = verbose ] ; then
                echo " $NAME."
            else
                echo -n " "
            fi
        else
            [ "$1" = verbose ] && echo "$NAME."
        fi
    }
     
    case "$1" in
        start)
        echo -n "Starting proxy server: "
        start
        echo "$NAME."
        ;;
        stop)
        echo -n "Stopping proxy server: "
        stop verbose
        ;;
        reload|force-reload)
        echo -n "Reloading $NAME configuration files..."
        start-stop-daemon --stop --signal 1 \
            --pidfile $PIDFILE --quiet --exec $DAEMON
        echo "done."
        ;;
        restart)
        echo -n "Restarting proxy server: "
        stop
        start
        echo "$NAME."
        ;;
        *)
        echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart}"
        exit 3
        ;;
    esac
     
    exit 0

    depois crie um link simbólico no rc2.rc

    para iniciar ou parar use o comando invoke-rc.d squid (start|stop)



  9. #9

    Padrão Re: Lusca cache com autenticação

    uso o centos...o comando é o mesmo? coloquei o seu script no lugar do meu e tirei a linha que eu te falei do rc.local então reiniciei e fui testar seu script:


    [[email protected] ~]# service squid start
    Starting proxy server: /etc/init.d/squid: line 116: start-stop-daemon: command not found
    squid.
    [[email protected] ~]# /etc/init.d/squid start
    Starting proxy server: /etc/init.d/squid: line 116: start-stop-daemon: command not found
    squid.

  10. #10

    Padrão Re: Lusca cache com autenticação

    esse script é pra debian e derivados, não irá funcionar no centos.



  11. #11

    Padrão Re: Lusca cache com autenticação

    então..o script que eu tenho e funciona é esse:


    #!/bin/sh

    LUSCA_BIN="/usr/sbin/squid"
    LUSCA_COREDIR="/var/log/squid/"
    LUSCA_START_FLAGS="-D"

    ulimit -n 65535




    case $1 in
    'start')
    echo "Starting Lusca.."
    cd ${LUSCA_COREDIR} && ${LUSCA_BIN} ${LUSCA_START_FLAGS}
    exit 0
    ;;
    'stop')
    echo "Stopping Lusca.."
    ${LUSCA_BIN} -k shutdown
    sleep 60
    exit 0
    ;;
    'rotate')
    echo "Rotating Lusca Logfiles.."
    ${LUSCA_BIN} -k rotate
    exit 0
    ;;
    'reconfigure')
    echo "Reconfiguring Lusca.."
    ${LUSCA_BIN} -k reconfigure
    exit 0
    ;;
    *)
    echo "$0: {start|stop|rotate|reconfigure}"
    exit 1
    ;;
    esac
    exit 0


    funciona perfeitamente...como te disse o problema só aparece quando eu colocar para ficar o lusca cache autenticado.Ele transparente funciona perfeitamente então não acredito que o erra seja no script.

  12. #12

    Padrão Re: Lusca cache com autenticação

    veja o que aparece no cache.log quando você habilita a autenticação.

    no squid.conf veja o caminho para o squid.pid e depois de iniciar o processo veja se o arquivo foi criado no caminho especificado. se for em um diretório distinto veja se o mesmo tem permissão de dono e grupo de trabalho do squid.



  13. #13

    Padrão Re: Lusca cache com autenticação

    no cache.log não aparece nada....meu squid.conf

    http_port 3128
    icp_port 0
    cache_replacement_policy heap LFUDA
    cache_dir aufs /var/cachesquid 20000 256 256

    memory_replacement_policy heap GDSF
    cache_mem 128 MB
    maximum_object_size 256 MB
    minimum_object_size 0 KB
    maximum_object_size_in_memory 256 KB
    cache_swap_low 90
    cache_swap_high 95
    ipcache_size 1024
    fqdncache_size 1024



    #REGRA AUTENTICACAO
    auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
    auth_param basic children 3
    authenticate_ttl 10 minutes
    authenticate_ip_ttl 0
    ####################################################################

    #
    # Configuraç proxy estáca ------------------------------------------
    #

    ipcache_low 90
    ipcache_high 95

    #hierarchy_stoplist cgi-bin ?
    acl QUERY urlpath_regex cgi-bin \?
    no_cache deny QUERY

    mime_table /etc/squid/mime.conf
    pid_filename /var/run/proxy.pid
    debug_options ALL,1
    log_fqdn off

    refresh_pattern ^ftp: 15 20% 2280
    refresh_pattern ^gopher: 15 0% 2280
    refresh_pattern . 15 20% 2280

    acl all src 0.0.0.0/0
    acl redeinterna src 10.33.0.0/24
    acl manager proto cache_object
    acl localhost src 127.0.0.1/255.255.255.255
    acl to_localhost dst 127.0.0.0/8
    acl SSL_ports port 443 563 82
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 563 # https, snews
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT

    #=========================================================#
    # Thunder 3
    #=========================================================#
    #acl thunder_lst url_regex -i "/etc/thunder/thunder.lst"
    #cache deny thunder_lst
    #cache_peer 10.33.0.1 parent 8080 0 proxy-only no-digest
    #dead_peer_timeout 2 seconds
    #cache_peer_access 10.33.0.1 allow thunder_lst
    #cache_peer_access 10.33.0.1 deny all


    http_access allow manager localhost
    http_access allow redeinterna
    http_access deny manager
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports


    cache_mgr localhost
    cache_effective_user squid
    cache_effective_group squid
    visible_hostname localhost

    dns_testnames registro.br

    #acl snmppublic snmp_community public
    #snmp_access allow snmppublic localhost
    #snmp_access deny all
    #snmp_incoming_address 0.0.0.0
    #snmp_outgoing_address 255.255.255.255


    # Configuraç de LOG
    cache_log none
    cache_store_log none
    # Sem log de acesso
    cache_access_log /var/log/squid/access.log
    cache_access_log /var/log/squid/cache.log


    # Setar TOS 8 em pacotes IP de arquivos em cache
    zph_mode tos
    zph_local 0x08
    zph_parent 0
    zph_option 136
    visible_hostname localhost
    cache_mgr localhost
    mime_table /etc/squid/mime.conf
    pid_filename /var/run/proxy.pid
    cache_effective_user squid
    cache_effective_group squid



    #USER:Fernando
    acl u_fernando proxy_auth fernando


    logo o cominho do meu pid é:

    pid_filename /var/run/proxy.pid

    mas o arquivo não está lá.Criei e deixei o usuário squid como dono:
    #chown -R squid /var/run/proxy.pid
    #chmod -R 775 /var/run/proxy.pid

    reiniciei a máquina e nada continua do mesmo jeito.

    testando depois de criado o proxy.pid:


    [[email protected] ~]# service squid start
    Starting Lusca..
    [[email protected] ~]# squid -k reconfigure
    squid: ERROR: Could not send signal 1 to process 2942: (3) No such process
    [[email protected] ~]# tail /var/run/proxy.pid
    3012



    [[email protected] ~]# ps aux |grep squid
    root 3037 0.0 0.0 63268 788 pts/0 S+ 07:07 0:00 grep squid


    [email protected] ~]# service squid stop
    Stopping Lusca..
    squid: ERROR: Could not send signal 15 to process 3012: (3) No such process

  14. #14

    Padrão Re: Lusca cache com autenticação

    o arquivo com o pid do processo não é você que cria, é o próprio processo.

    pra que serve? para algum gerenciador do processo verificar se o mesmo está ou não ativo, e no caso de ter que reiniciar ou parar o processo ele ter o PID.

    a maneira mais fácil de você encontrar as configurações adequadas para sua distribuição é instalando o pacote dela, aí você copia o /etc/init.d/squid e o squid.conf, depois você desinstala o pacote e usa o do lusca com o mesmo arquivo do init, só adaptando aos novos caminhos, se preciso.