Como enviar um alerta quando um usuário faz o login via .htaccess?

1

Temos fornecedores trabalhando remotamente em nosso servidor e gostariam de saber quando estão acessando o desenvolvimento. É acessível por trás de um nome de usuário / senha fornecido pelo .htaccess.

Como eu posso detectar quando eles fazem login? Existe uma maneira de executar um script de shell para enviar por email seu endereço IP para o root? Ou seria melhor ter um trabalho CRON que varre os arquivos de log (access_log?) Para ver se um endereço IP fora de nossa LAN se conectou? Obrigado!

    
por Edward 26.09.2013 / 06:35

1 resposta

0

Instale o ngrep e faça algo como

#!/bin/bash
while [ 1 -eq 1 ]; do
    ngrep -p -q -n 1 -W none -d eth0 "Authorization: Basic [^ ]+" port 80 | \
        while read line; do
            X=$(echo $line| sed -rn 's/.*Authorization: Basic ([^\.\[]+).*//p')
            if [ ! -z "${X}" ]; then
                U=$(echo $DATA |base64 -d 2>/dev/null| cut -d: -f1)
                case "${U}" in
                    john)
                    tom)
                    dick)
                    harry) 
                        echo "Vendor ${U} login " | YOUR_ALERT_OR_MAIL_APP
                        ;;
                    *)
                        # do nothing
                        ;;
                 esac
            fi
        done
done

Você pode externalizar os nomes de usuários ou combinar com AuthGroupFile ou semelhante a apenas alertar usuários em um grupo específico. Você pode obter o IP remoto da variável $ line.

O ngrep está em: link

Obviamente, não funcionará para https, mas tem a vantagem de trabalhar em todos os vhosts, independentemente das configurações de log, etc.

Editar: melhorado

    
por 26.09.2013 / 13:26