Как отправить оповещение, когда пользователь входит в систему через.htaccess?

У нас есть поставщики, работающие удаленно на нашем сервере, и мы хотели бы знать, когда они получают доступ к разработке. Он доступен за именем пользователя / паролем, предоставленным.htaccess.

Как я могу определить, когда они вошли в систему? Есть ли способ выполнить сценарий оболочки, чтобы отправить их IP-адрес root по электронной почте? Или было бы лучше иметь работу CRON, которая сканирует файлы журнала (access_log?), Чтобы увидеть, вошел ли IP-адрес за пределами нашей локальной сети? Спасибо!

1 ответ

Установите ngrep и сделайте что-то вроде

#!/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 ([^\.\[]+).*/\1/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

Вы можете выводить имена пользователей или комбинировать их с AuthGroupFile или аналогичными, чтобы оповещать только пользователей в определенной группе. Вы можете получить удаленный IP-адрес из переменной $line.

ngrep находится по адресу: http://ngrep.sourceforge.net/

Очевидно, что он не будет работать для https, но он имеет преимущество работы со всеми vhosts, независимо от конфигурации журналирования и т. Д.

Редактировать: улучшено

Другие вопросы по тегам