Bonsoir,
Quelqu'un saurait-il s'il est possible de logger, par syslog-ng, les
tentatives avortées d'accès à un site apache protégé par mot de passe
apache ?
Dans syslog-ng, il y a bien une possibilité de mettre un fichier en
source :
source s_apache { file("/var/log/httpd/stats/error.log"); };
de faire un filtre sur 'authentication failure' qui se trouve dans le log
lors de ces accès avortés, et d'utiliser ça pour logger, mais pour moi,
ça ne fonctionne pas.
Faut-il que le fichier ait un format spécial (façon syslog) pour être
traité ?
Et pour info, comment le traitement se fait-il ? à l'inscription dans le
fichier ? C'est une interception de l'écriture ?
Si quelqu'un sait, merci à lui.
Bonsoir,
Quelqu'un saurait-il s'il est possible de logger, par syslog-ng, les
tentatives avortées d'accès à un site apache protégé par mot de passe
apache ?
Dans syslog-ng, il y a bien une possibilité de mettre un fichier en
source :
source s_apache { file("/var/log/httpd/stats/error.log"); };
de faire un filtre sur 'authentication failure' qui se trouve dans le log
lors de ces accès avortés, et d'utiliser ça pour logger, mais pour moi,
ça ne fonctionne pas.
Faut-il que le fichier ait un format spécial (façon syslog) pour être
traité ?
Et pour info, comment le traitement se fait-il ? à l'inscription dans le
fichier ? C'est une interception de l'écriture ?
Si quelqu'un sait, merci à lui.
Bonsoir,
Quelqu'un saurait-il s'il est possible de logger, par syslog-ng, les
tentatives avortées d'accès à un site apache protégé par mot de passe
apache ?
Dans syslog-ng, il y a bien une possibilité de mettre un fichier en
source :
source s_apache { file("/var/log/httpd/stats/error.log"); };
de faire un filtre sur 'authentication failure' qui se trouve dans le log
lors de ces accès avortés, et d'utiliser ça pour logger, mais pour moi,
ça ne fonctionne pas.
Faut-il que le fichier ait un format spécial (façon syslog) pour être
traité ?
Et pour info, comment le traitement se fait-il ? à l'inscription dans le
fichier ? C'est une interception de l'écriture ?
Si quelqu'un sait, merci à lui.
Beaucoup de questions, je ne vais pas y répondre à toutes directement. Je
préfère te renvoyer à la documentation en ligne de syslog-ng.conf :
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Je pense que ça répond à ta demande. :)
Mais, à mon avis, il y a plus simple. En effet, les messages d'erreurs de
Apache peuvent être directement envoyés au daemon syslog en lieu et place du
fichier error(_|.)log. Pour cela, il suffit d'utiliser la directive ErrorLog
dans le fichier de configuration de Apache.
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
LogLevel info
Après reste à configurer syslog-ng, par exemple comme suit :
[...]
destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
Beaucoup de questions, je ne vais pas y répondre à toutes directement. Je
préfère te renvoyer à la documentation en ligne de syslog-ng.conf :
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Je pense que ça répond à ta demande. :)
Mais, à mon avis, il y a plus simple. En effet, les messages d'erreurs de
Apache peuvent être directement envoyés au daemon syslog en lieu et place du
fichier error(_|.)log. Pour cela, il suffit d'utiliser la directive ErrorLog
dans le fichier de configuration de Apache.
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
LogLevel info
Après reste à configurer syslog-ng, par exemple comme suit :
[...]
destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
Beaucoup de questions, je ne vais pas y répondre à toutes directement. Je
préfère te renvoyer à la documentation en ligne de syslog-ng.conf :
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Je pense que ça répond à ta demande. :)
Mais, à mon avis, il y a plus simple. En effet, les messages d'erreurs de
Apache peuvent être directement envoyés au daemon syslog en lieu et place du
fichier error(_|.)log. Pour cela, il suffit d'utiliser la directive ErrorLog
dans le fichier de configuration de Apache.
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
LogLevel info
Après reste à configurer syslog-ng, par exemple comme suit :
[...]
destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Cela veut-il bien dire que je doive lancer de script (tail -f ...) pour
chacun de mes logs error de virtual host ??
Je ne sais pas pourquoi mais ça ne me plaît pas beaucoup ;-)
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
Ah ça, je ne connaissais pas.
Jusque là, j'utilisais un ErrorLog logs/fichier
Par contre, à force de recherches, j'étais tombé sur quelque chose qui
est entre les 2 solutions :
ErrorLog "|/usr/bin/logger -p local3.info -t 'httpd_access'"
Le ErrorLog syslog reviendrait à la même chose ?
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
J'ai donc tenté de tâter du 'tee', mais bizarrement, ça ne fonctionne
pas.
ErrorLog "|bin/tee -a /var/log/httpd/error.log |/usr/bin/logger -p
local3.info -t 'httpd_access'"
si je fais ça, je n'ai les logs dans aucun !
Par contre, si je fais :
ErrorLog "|bin/tee -a /var/log/httpd/error.log > /tmp/test.log"
J'ai bien le log dans les 2 fichiers...
Bizarre.
Après reste à configurer syslog-ng, par exemple comme suit :
[...]destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
Oui, mais dans ce cas là, je récupère bien toutes mes erreurs, mais
toutes centralisées dans un même fichier pour tous les virtualhosts
apache. C'est ce qui me dérange.
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Cela veut-il bien dire que je doive lancer de script (tail -f ...) pour
chacun de mes logs error de virtual host ??
Je ne sais pas pourquoi mais ça ne me plaît pas beaucoup ;-)
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
Ah ça, je ne connaissais pas.
Jusque là, j'utilisais un ErrorLog logs/fichier
Par contre, à force de recherches, j'étais tombé sur quelque chose qui
est entre les 2 solutions :
ErrorLog "|/usr/bin/logger -p local3.info -t 'httpd_access'"
Le ErrorLog syslog reviendrait à la même chose ?
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
J'ai donc tenté de tâter du 'tee', mais bizarrement, ça ne fonctionne
pas.
ErrorLog "|bin/tee -a /var/log/httpd/error.log |/usr/bin/logger -p
local3.info -t 'httpd_access'"
si je fais ça, je n'ai les logs dans aucun !
Par contre, si je fais :
ErrorLog "|bin/tee -a /var/log/httpd/error.log > /tmp/test.log"
J'ai bien le log dans les 2 fichiers...
Bizarre.
Après reste à configurer syslog-ng, par exemple comme suit :
[...]
destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
Oui, mais dans ce cas là, je récupère bien toutes mes erreurs, mais
toutes centralisées dans un même fichier pour tous les virtualhosts
apache. C'est ce qui me dérange.
http://www.balabit.com/products/syslog_ng/reference-1.6/syslog-ng.html/reference.html#AEN286
Cela veut-il bien dire que je doive lancer de script (tail -f ...) pour
chacun de mes logs error de virtual host ??
Je ne sais pas pourquoi mais ça ne me plaît pas beaucoup ;-)
$ grep -A1 ^Error /etc/apache/conf/apache.conf
ErrorLog syslog
Ah ça, je ne connaissais pas.
Jusque là, j'utilisais un ErrorLog logs/fichier
Par contre, à force de recherches, j'étais tombé sur quelque chose qui
est entre les 2 solutions :
ErrorLog "|/usr/bin/logger -p local3.info -t 'httpd_access'"
Le ErrorLog syslog reviendrait à la même chose ?
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
J'ai donc tenté de tâter du 'tee', mais bizarrement, ça ne fonctionne
pas.
ErrorLog "|bin/tee -a /var/log/httpd/error.log |/usr/bin/logger -p
local3.info -t 'httpd_access'"
si je fais ça, je n'ai les logs dans aucun !
Par contre, si je fais :
ErrorLog "|bin/tee -a /var/log/httpd/error.log > /tmp/test.log"
J'ai bien le log dans les 2 fichiers...
Bizarre.
Après reste à configurer syslog-ng, par exemple comme suit :
[...]destination d_apache {
file("/var/log/apache/error_log");
};
destination d_apache_auth {
file("/var/log/apache/auth_error_log");
};
Oui, mais dans ce cas là, je récupère bien toutes mes erreurs, mais
toutes centralisées dans un même fichier pour tous les virtualhosts
apache. C'est ce qui me dérange.
Le ErrorLog syslog reviendrait à la même chose ?
Oui, mais en plus propre/direct/sûre.
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Je ne comprends pas ? C'est le daemon syslog qui va enregistrer les log là
où tu lui dis, donc pourquoi pas dans error.log ?
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon syslog
de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est d'autant
plus facile à faire avec syslog-ng.
Sur un serveur Apache de test, la ligne suivante dans le fichier de
configuration de Apache :
ErrorLog "| /bin/tee -a /var/log/apache/error_log | /usr/bin/logger -p
daemon.err -t 'apache_test'"
donne le résultat voulu, à savoir enregistrement des messages d'erreur dans
le fichier /var/log/apache/error_log et envoi des messages d'erreur au
daemon syslog qui lui les enregistre dans un autre fichier.
Peut-être une erreur de syntaxe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
Le ErrorLog syslog reviendrait à la même chose ?
Oui, mais en plus propre/direct/sûre.
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Je ne comprends pas ? C'est le daemon syslog qui va enregistrer les log là
où tu lui dis, donc pourquoi pas dans error.log ?
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon syslog
de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est d'autant
plus facile à faire avec syslog-ng.
Sur un serveur Apache de test, la ligne suivante dans le fichier de
configuration de Apache :
ErrorLog "| /bin/tee -a /var/log/apache/error_log | /usr/bin/logger -p
daemon.err -t 'apache_test'"
donne le résultat voulu, à savoir enregistrement des messages d'erreur dans
le fichier /var/log/apache/error_log et envoi des messages d'erreur au
daemon syslog qui lui les enregistre dans un autre fichier.
Peut-être une erreur de syntaxe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
Le ErrorLog syslog reviendrait à la même chose ?
Oui, mais en plus propre/direct/sûre.
Le problème que j'avais avec ça (et non résolu) c'est que du coup, je
n'ai plus rien de loggé dans mon error.log.
Je ne comprends pas ? C'est le daemon syslog qui va enregistrer les log là
où tu lui dis, donc pourquoi pas dans error.log ?
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon syslog
de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est d'autant
plus facile à faire avec syslog-ng.
Sur un serveur Apache de test, la ligne suivante dans le fichier de
configuration de Apache :
ErrorLog "| /bin/tee -a /var/log/apache/error_log | /usr/bin/logger -p
daemon.err -t 'apache_test'"
donne le résultat voulu, à savoir enregistrement des messages d'erreur dans
le fichier /var/log/apache/error_log et envoi des messages d'erreur au
daemon syslog qui lui les enregistre dans un autre fichier.
Peut-être une erreur de syntaxe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon
syslog de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est
d'autant plus facile à faire avec syslog-ng.
Oui, certes, à condition de différencier les logs par virtualhost,
sinon, c'est illisible :
Apr 17 12:07:16 se100 apache2[15645]: [error] [client xxx.xxx.xxx.xxx]
user chris: authentication failure for "/": Password Mismatch
Sur quel virtualhost 'chris' n'a t'il pas le bon mot de passe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
J'avais effectivement pensé à ça, mais ça fait lourd.
A chaque virtualhost, il faut ajouter un filtre à syslog-ng, ça va vite
devenir une usine à gaz.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
L'autre solution, puisque mon besoin est plus la traçabilité que les
logs séparés, serait de modifier le format de sortie des Erreurs apache
afin d'y faire inclure le host concerné, mais 1) il ne faudrait pas que
ce format affecte mon CustomLog combined 2) il faut que je me penche sur
les histoires de FormatLog pour vérifier si c'est possible.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon
syslog de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est
d'autant plus facile à faire avec syslog-ng.
Oui, certes, à condition de différencier les logs par virtualhost,
sinon, c'est illisible :
Apr 17 12:07:16 se100 apache2[15645]: [error] [client xxx.xxx.xxx.xxx]
user chris: authentication failure for "/": Password Mismatch
Sur quel virtualhost 'chris' n'a t'il pas le bon mot de passe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
J'avais effectivement pensé à ça, mais ça fait lourd.
A chaque virtualhost, il faut ajouter un filtre à syslog-ng, ça va vite
devenir une usine à gaz.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
L'autre solution, puisque mon besoin est plus la traçabilité que les
logs séparés, serait de modifier le format de sortie des Erreurs apache
afin d'y faire inclure le host concerné, mais 1) il ne faudrait pas que
ce format affecte mon CustomLog combined 2) il faut que je me penche sur
les histoires de FormatLog pour vérifier si c'est possible.
Or, j'aurais voulu les 2 : redirection vers logger ET écriture fichier
log.
Quel intérêt ? Je me répète, si tu utilises logger, c'est au daemon
syslog de lui dire dans quel(s) fichier(s) enregistrer les logs et c'est
d'autant plus facile à faire avec syslog-ng.
Oui, certes, à condition de différencier les logs par virtualhost,
sinon, c'est illisible :
Apr 17 12:07:16 se100 apache2[15645]: [error] [client xxx.xxx.xxx.xxx]
user chris: authentication failure for "/": Password Mismatch
Sur quel virtualhost 'chris' n'a t'il pas le bon mot de passe ?
Dans ce cas, dans la directive ErrorLog de ton vhost, utilise logger en
tagant tes messages avec le nom du vhost, dans syslog-ng crée un filtre
qui va matcher selon le nom du vhost et crée une destination
différente pour chaque vhost.
J'avais effectivement pensé à ça, mais ça fait lourd.
A chaque virtualhost, il faut ajouter un filtre à syslog-ng, ça va vite
devenir une usine à gaz.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
L'autre solution, puisque mon besoin est plus la traçabilité que les
logs séparés, serait de modifier le format de sortie des Erreurs apache
afin d'y faire inclure le host concerné, mais 1) il ne faudrait pas que
ce format affecte mon CustomLog combined 2) il faut que je me penche sur
les histoires de FormatLog pour vérifier si c'est possible.
Oui, c'est effectivement bien là le problème concernant le format des
messages d'erreurs de Apache.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
Malheureusement non.
Malheureusement non, ça n'est pas possible de reformater les messages
d'erreurs de Apache via la directive FormatLog.
Oui, c'est effectivement bien là le problème concernant le format des
messages d'erreurs de Apache.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
Malheureusement non.
Malheureusement non, ça n'est pas possible de reformater les messages
d'erreurs de Apache via la directive FormatLog.
Oui, c'est effectivement bien là le problème concernant le format des
messages d'erreurs de Apache.
Et je pense qu'il n'y a pas de possibilité de lier le destination à une
regexp du filtre !??
Malheureusement non.
Malheureusement non, ça n'est pas possible de reformater les messages
d'erreurs de Apache via la directive FormatLog.
Maintenant que tu connais mieux ma problématique, tu me conseillerais
quoi toi ? Autrement dit, tu ferais quoi à ma place ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
à mon sens, non, mais j'aimerais une confirmation.
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Maintenant que tu connais mieux ma problématique, tu me conseillerais
quoi toi ? Autrement dit, tu ferais quoi à ma place ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
à mon sens, non, mais j'aimerais une confirmation.
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Maintenant que tu connais mieux ma problématique, tu me conseillerais
quoi toi ? Autrement dit, tu ferais quoi à ma place ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
à mon sens, non, mais j'aimerais une confirmation.
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger séparément
les authentifications qui ont échoués ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Pour l'instant je ne vois pas trop d'autres solutions.
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
Non.à mon sens, non, mais j'aimerais une confirmation.
Suffit de tester. ;-)
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Non.
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger séparément
les authentifications qui ont échoués ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Pour l'instant je ne vois pas trop d'autres solutions.
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
Non.
à mon sens, non, mais j'aimerais une confirmation.
Suffit de tester. ;-)
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Non.
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger séparément
les authentifications qui ont échoués ?
La conf syslog-ng à multiples destinations/filtres/log par virtualhost ?
Pour l'instant je ne vois pas trop d'autres solutions.
Tiens, une question sur syslog-ng dont je n'ai pas trouvé la réponse
dans mes lectures, l'ordre des consignes dans le fichier de conf a t'il
une importance ?
Non.à mon sens, non, mais j'aimerais une confirmation.
Suffit de tester. ;-)
Et, comme ça, par chance, il ne serait pas possible de faire des includes
genre apache ou autre ?
Non.
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger
séparément les authentifications qui ont échoués ?
Dans le but de n'avoir qu'un seul fichier log à surveiller pour
surveiller ça, quelque soit le soft sshd, login, apache et quelques
autres applis...
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger
séparément les authentifications qui ont échoués ?
Dans le but de n'avoir qu'un seul fichier log à surveiller pour
surveiller ça, quelque soit le soft sshd, login, apache et quelques
autres applis...
Je ne sais pas. Si tu nous disais d'abord pourquoi tu veux logger
séparément les authentifications qui ont échoués ?
Dans le but de n'avoir qu'un seul fichier log à surveiller pour
surveiller ça, quelque soit le soft sshd, login, apache et quelques
autres applis...
Qu'en penses-tu ?
Qu'en penses-tu ?
Qu'en penses-tu ?