Wie sende ich eine Benachrichtigung, wenn sich ein Benutzer über .htaccess anmeldet?

564
Edward

Wir haben Anbieter, die remote auf unserem Server arbeiten und möchten wissen, wann sie auf die Entwicklung zugreifen. Es ist über einen Benutzernamen / ein Passwort erreichbar, das von .htaccess bereitgestellt wird.

Wie konnte ich erkennen, wann sie eingeloggt waren? Gibt es eine Möglichkeit, ein Shell-Skript auszuführen, um ihre IP-Adresse an root zu senden? Oder wäre es besser, einen CRON-Job zu haben, der die Protokolldateien (access_log?) Durchsucht, um festzustellen, ob sich eine IP-Adresse außerhalb unseres LAN angemeldet hat? Vielen Dank!

1

1 Antwort auf die Frage

0
Nanzikambe

Installiere ngrep und mache etwas wie

#!/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 "$" ]; then U=$(echo $DATA |base64 -d 2>/dev/null| cut -d: -f1) case "$" in john) tom) dick) harry)  echo "Vendor $ login " | YOUR_ALERT_OR_MAIL_APP ;; *) # do nothing ;; esac fi done done 

Sie können die Benutzernamen externalisieren oder mit AuthGroupFile oder ähnlichem kombinieren, um nur für Benutzer in einer bestimmten Gruppe zu warnen. Sie können die Remote-IP von der $ line-Variablen erhalten.

ngrep ist unter: http://ngrep.sourceforge.net/

Offensichtlich funktioniert es nicht für https, aber es hat den Vorteil, dass es über alle vhosts hinweg funktioniert, unabhängig von der Protokollierungskonfiguration usw

Edit: verbessert