Log OpenVPN moins bavard

Fermé
Vic3198 Messages postés 153 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 31 juillet 2018 - 2 avril 2018 à 18:50
Vic3198 Messages postés 153 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 31 juillet 2018 - 3 avril 2018 à 22:18
Bonjour,
J'aimerais rendre le log OpenVPN moins bavard. Aujourd'hui, le log de mon serveur est réglé sur "verb 1", et il m'affiche beaucoup d'informations, mais quand je le règle sur 0, il n'y a quasiment plus rien.
Ce que je voudrais, c'est que pour une connexion acceptée, il m'affiche seulement une ou deux lignes bien identifiables, idem pour la déconnexion de l'hôte (mais même pas de log du tout pour la déconnexion m'irait), et pour les tentatives de connexion rejetées (car mauvais utilisateur etc.), là aussi, simplement une ligne ou deux avec l'IP de l'hôte ayant tenté de se connecter.

L'idée finale, c'est de faire un script qui toutes les heures vérifie le log et m'envoie par mail les lignes qui ne correspondent pas à une authentificaion réussie.
J'ai déjà fait un script du même type pour un log OpenSSH, mais c'est plus simple car le log d'une connexion tient sur une ligne avec le niveau INFO, et les lignes ne correspondant pas à une connexion authentifiée sont facilement identifiables par un script puisqu'elles ne contiennent pas "Accepted publickey"...

Une idée pour faire pareil avec OpenVPN ?

Merci d'avance,

Vic3198

4 réponses

mamiemando Messages postés 33459 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 8 janvier 2025 7 813
Modifié le 3 avril 2018 à 10:33
Bonjour,

Les authentifications VPN ne sont pas logguées dans
/var/log/auth.log
? Auquel cas, te mettre en niveau verb 0 deviendrait acceptable ? (Idem pour ssh).

Après j'ai envie de dire... Pour fouiller dans un log,
grep
permet de facilement extraire les lignes qui t'intéresse. Et en ce qui concerne la place consommée, les distributions linux récentes compressent automatiquement les logs anciens et finissent par supprimer les logs très anciens (voir logrotate).

Bonne chance
0
Vic3198 Messages postés 153 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 31 juillet 2018 24
3 avril 2018 à 13:13
Alors non j'ai créé un log à part /var/log/openvpn.log pour que ce soit plus propre

(idem pour ssh mais lui justement son log est peu bavard et ça me permet de faire ce que je veux)

Et je voudrais que dans ce log n'apparaisse qu'une ligne ou 2 pour chaque événement lié au VPN (connexion, déconnexion, erreur...)

--
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
3 avril 2018 à 13:18
Salut,

En jetant un oeil au man d'OpenVPN, on peut y lire :

--client-connect cmd
Run command cmd on client connection.

cmd consists of a path to script (or executable program), optionally followed by arguments. The path and arguments may be single- or double-quoted and/or escaped using a backslash, and should be separated by one or more spaces.

The command is passed the common name and IP address of the just-authenticated client as environmental variables (see environmental variable section below). The command is also passed the pathname of a freshly created temporary file as the last argument (after any arguments specified in cmd ), to be used by the command to pass dynamically generated config file directives back to OpenVPN.

If the script wants to generate a dynamic config file to be applied on the server when the client connects, it should write it to the file named by the last argument.

See the --client-config-dir option below for options which can be legally used in a dynamically generated config file.

Note that the return value of script is significant. If script returns a non-zero error status, it will cause the client to be disconnected.

--client-disconnect cmd
Like --client-connect but called on client instance shutdown. Will not be called unless the --client-connect script and plugins (if defined) were previously called on this instance with successful (0) status returns.

The exception to this rule is if the --client-disconnect command or plugins are cascaded, and at least one client-connect function succeeded, then ALL of the client-disconnect functions for scripts and plugins will be called on client instance object deletion, even in cases where some of the related client-connect functions returned an error status.

The --client-disconnect command is passed the same pathname as the corresponding --client-connect command as its last argument. (after any arguments specified in cmd ).

Qui pourrait t'aider à n'exporter que ce qui t'intéresse ;-)

Source
0
Vic3198 Messages postés 153 Date d'inscription lundi 20 août 2012 Statut Membre Dernière intervention 31 juillet 2018 24
3 avril 2018 à 22:18
Ah merci c'est sympa ça pour faire des actions :)
Malheureusement ce n'est pas ce que je cherche puisque je voudrais justement être informé quand il se passe sur le serveur un autre événement qu'une connexion/déconnexion d'un client connu. Par exemple, si un inconnu tente de se connecter, etc.

Pour mon log SSH, par exemple, j'ai fait un script qui cherche dans une ligne le mot clef "Accepted publickey". Si il trouve ça, je sais que c'est une ligne qui informe d'une connexion authentifiée. Sinon, c'est autre chose (un reboot, une tentative de connexion échouée, etc.) et ça m'intéresse donc le script me l'envoie par mail.

C'est pour ça que je voudrais un log assez dégagé, pour pouvoir bien identifier les lignes qui m'intéressent, pour pouvoir bien définir ce que doit chercher mon script et pour que je puisse les comprendre facilement sans avoir à me plonger dedans.
0