1

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

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

1 ответ1

0

Установите 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, независимо от конфигурации журналирования и т.д.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .