Как отправить оповещение, когда пользователь входит в систему через.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, независимо от конфигурации журналирования и т. Д.
Редактировать: улучшено