Forum Linux.général Recevoir un mail pour toute connexion via .htaccess

Posté par  .
Étiquettes :
2
30
nov.
2011

Salut à tous,

Je vais mettre en place un script (développé par une communauté tierce) sur mon serveur Apache. L'accès à ce script sera protégé par AuthUser, via htaccess ou via la conf d'Apache, peu importe.

Ce que j'aimerais faire, c'est recevoir un mail en cas de chaque connexion .

Je m'explique. La personne (autorisée ou non) va sur http://script.mondomaine.com, paf, il tombe sur mon .htaccess qui lui demande un login mot de passe. J'aimerais recevoir par mail toute tentative d'accès. Si le mec a réussi à se loguer, hop, je reçois un mail avec son IP. Si le mec n'a pas réussi, pareil, un petit mail avec son IP et ce qu'il a essayé.

J'ai cherché sur internet, je n'ai trouvé aucun moyen de mettre en place cela.

Même via l'error.log, je n'obtiens que les tentatives qui ont échouées, pas celles qui réussissent.

Une idée ?

  • # niveau de log

    Posté par  . Évalué à 3.

    dans error.log forcement ce sont les echecs

    mais avec syslog et en augmentant le niveau de log de ton serveur, tu devrais aussi recevoir les alertes postives

  • # une solution...

    Posté par  (site web personnel, Mastodon) . Évalué à 3.

    Hm... pourquoi tu ne mets pas une commande "mail" au début de ton script ? Si le script est exécuté, cela signifie que l'utilisateur s'est correctement identifié / authentifié. Si son authentification échoue, bah... t'as pas de mail. Mais dans ce cas tu peux te baser sur error.log.

    #tracim pour la collaboration d'équipe __ #galae pour la messagerie email __ dirigeant @ algoo

  • # Systèmes tordus

    Posté par  . Évalué à 2.

    Il n'est pas possible de lancer un script « depuis » un .htaccess par contre il y a des astuces.

    mod_perl
    mod_perl permet d'appeler un script dès le début de l'authentification. Mais il faut que l'hébergement soit équipé.

    redirect
    Faire une redirection pour tous les codes d'erreur, y compris « pas d'erreur ». La redirection emmène l'utilisateur dans un autre répertoire afin que ça ne boucle pas. La redirection pointe sur le script qui envoie l'email, puis passe la main à la bonne page.
    Solution très imparfaite.

    rewrite engine
    Je pense la plus simple. La réécriture force le lancement d'un script dans tous les cas.

    Pour ce qui est de vérifier si la personne est authentifiée ou pas, Google.

  • # access.log

    Posté par  . Évalué à 5.

    pour avoir tous les tentatives de connections réussis ou non, tu peux regarder le fichier access.log dans le même répertoire que error.log.
    Pour connaître les couples login/password, si l'authentification se fait par GET, c'est automatique, si c'est par POST, regarde le module apache dump_io

  • # Réponse groupée

    Posté par  . Évalué à 1.

    @NeoX : Le soucis c'est que je veux pas augmenter la verbosité du serveur, cela va impacter tous les sites existants...

    @LeBouquetin : c'est un script que je n'ai pas développé, et qui est assez compliqué. J'aurais aimé éviter toute modification =/.

    @Kerro :
    mod_perl : je viens de voir, mais ça m'a l'air chaud chaud à utiliser, je vais me renseigner.
    redirect : ouais en effet, ce n'est pas très propre. Le truc c'est que chaque fois que l'utilisateur va retourner sur l'index, un mail va partir =/.
    rewrite engine : en effet, je renvoie sur connexion.php, qui envoie le mail, et je redirige sur index.php ensuite pour le script.

    @tienslebien : dans error.log j'ai bien les essais infructueux. Mais dans access.log, je n'ai pas les essais validés...

    • [^] # Re: Réponse groupée

      Posté par  . Évalué à 2.

      @NeoX : Le soucis c'est que je veux pas augmenter la verbosité du serveur, cela va impacter tous les sites existants...

      htaccess ou le fichier de config de ce site devrait de permettre de configurer ca aux petits ognions

  • # SetEnvIf ?

    Posté par  . Évalué à 10.

    À tester, mais quelque chose comme ça devrait faire l'affaire :

    SetEnvIf Request_URI <la_page_du_script> authpage
    CustomLog "| mailx -s 'Tentative de connexion' adresse@mail" common env=authpage
    ErrorLog "| mailx -s 'Connexion échouée' adresse@mail" commmon env=authpage
    
    
    • [^] # Re: SetEnvIf ?

      Posté par  . Évalué à 4.

      Hop hop hop, je note ça dans les astuces de la mort.
      C'est juste génial.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.