User Tools

Site Tools


informatique:linux:syslog

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatique:linux:syslog [2008/09/29 13:16] – mode debug + reorg pteuinformatique:linux:syslog [2020/01/23 09:03] – Diagnostique et debug pteu
Line 61: Line 61:
 Exemple2 : ''*.debug;mail,news.none'' indique que l'on logge tous les messages de débogage, sauf ceux venant des services mail et news. Exemple2 : ''*.debug;mail,news.none'' indique que l'on logge tous les messages de débogage, sauf ceux venant des services mail et news.
  
 +====Diagnostique====
 +
 +On peut vérifier la configuration avec la commande :
 +<code bash>
 +rsyslogd -N1
 +</code>
 +
 +Pour lancer le démon syslog en mode DEBUG, il faut spécifier l'option ''-d'' :
 +<code bash>
 +vi /etc/default/syslogd
 + SYSLOGD="-d"
 +</code>
  
 =====Configuration sous Debian===== =====Configuration sous Debian=====
Line 66: Line 78:
 ==== Syslog centralisé ==== ==== Syslog centralisé ====
  
-Lorsqu'on a un parc qui grossi il devient très utile de centraliser les log des différents équipements sur une seule machine. C'est possible en configurant syslog pour qu'il accepte les messages venant du réseau.+Lorsqu'on a un parc qui grossi il devient très utile de centraliser les logs des différents équipements sur une seule machine. C'est possible en configurant syslog pour qu'il accepte les messages venant du réseau.
  
-Pour que **sysklogd** accepte les logs depuis le réseau (ce n'est pas le cas par défaut), il faut le lancer avec l'option %%-r%%. +Depuis Debian 8, pour activer la gestion des logs par le réseau il faut : 
-Sous Debian on peut spécifier les options de lancement du démon en modifiant la variable ''SYSLOGD'' dans ''/etc/default/syslogd'' (qui est utilisé par le script de lancement ''/etc/init.d/sysklogd''+  * décommenter les 2 lignes suivantes dans ''/etc/rsyslog.conf'' 
-  vi /etc/default/syslogd +<code bash> 
-   # +# provides UDP syslog reception 
-   For remote UDP logging use SYSLOGD="-r" +$ModLoad imudp 
-   +$UDPServerRun 514 
-   SYSLOGD="-r"+</code> 
 +  * créer un fichier dans ''/etc/rsyslog.d/'' par exemple ''test.conf'' et y définir où stocker les logs que l'on va recevoir 
 +<code bash> 
 +les logs provenant de l'IP 192.168.2.1 seront envoyés dans le fichier /var/log/test.log 
 +if $fromhost-ip == '192.168.2.1' then /var/log/test.log 
 +possible aussi de filtrer par bout d'IP 
 +if $fromhost-ip startswith '192.168.2.' then /var/log/test.log 
 +et c'est tout (on ne traite plus d'autres règles pour ces logs) 
 +& ~ 
 +</code> 
 +  * redémarrer le service 
 +<code bash> 
 +systemctl restart rsyslog 
 +</code>
  
-Puis on le relance +Pour sécuriser un minimum, il faut compléter cela avec une règle iptables qui n'accepte les sockets udp/514 que depuis notre machine 
-  /etc/init.d/sysklogd restart +<code bash> 
-  Restarting system log daemon....+iptables -A INPUT -p udp -s 192.168.2.1 --dport 514 -j ACCEPT 
 +</code>
  
-Vérification : +=== Exemples de filtres ===
-  ps -ef | grep syslogd +
-  root     14634      0 23:08 ?        00:00:00 /sbin/syslogd -r+
  
-Bien sur, pour sécuriser le tout et éviter un DOS par flood de flux syslog depuis des machines malintentionnées, il faut complèter celà avec une règle iptables qui n'accepte les sockets udp/514 que depuis des machines bien identifiées, par exemple le poste 192.168.2.:+<code bash> 
 +# compare-operation : 
 +#       contains | isequal | startswith | regex | ereregex | isempty 
 +# property-based filter : 
 +#       msg | hostname | programname | etc... 
 +# cible : 
 +#       prefixée par "-" pour écrire en asynchrone
  
-  iptables -A INPUT -p udp -s 192.168.2.1 --dport 514 -j ACCEPT+
 +# notation abrégée 
 +
 +:msg, contains, "iptables -/var/log/iptables/iptables.log 
 +& ~ 
 +:msg, regex, "^\[ *[0-9]*\.[0-9]*\] iptables" -/var/log/iptables/iptables.log 
 +& ~
  
 +#
 +# notation plus verbeuse (avec un "if")
 +#
 +if $msg regex '^\[ *[0-9]*\.[0-9]*\] iptables' then /var/log/iptables/iptables.log
 +& ~
 +
 +#
 +# utilisation d'un template
 +#
 +# création du template "Openvpn" pour l'emplacement des logs openvpn
 +$template OpenVPN,"/var/log/openvpn/ovpn.log"
 +# on y tansfère tous les messages issus des processus dont le nom commence par "ovpn-"
 +:programname, startswith, "ovpn-" -?OpenVPN
 +# puis on arrête le traitement de ces messages pour éviter les doublons
 +:programname, startswith, "ovpn-" ~
 +</code>
  
 ==== WRT54G(L) ==== ==== WRT54G(L) ====
Line 109: Line 161:
 Voilà donc où vont être redirigés ces damned messages de log. Voilà donc où vont être redirigés ces damned messages de log.
  
- 
-==== Mode DEBUG ==== 
- 
-Pour lancer le démon syslog en mode DEBUG, il faut spécifier l'option ''-d'' : 
- 
-  vi /etc/default/syslogd 
-   SYSLOGD="-d" 
  
 =====Syntaxe avancée===== =====Syntaxe avancée=====
Line 156: Line 201:
   #récupération des logs de mon routeur   #récupération des logs de mon routeur
   user.=warning   -/var/log/odin_iptables.log   user.=warning   -/var/log/odin_iptables.log
 +
 +====Log====
 +On peut choisir la priorité syslog des journaux iptables (dans cet exemple, 4) :
 +  iptables -t filter -A INPUT -j LOG --log-level=4
  
 =====logger===== =====logger=====
Line 168: Line 217:
  
   * http://okki666.free.fr/docmaster/articles/linux068.htm   * http://okki666.free.fr/docmaster/articles/linux068.htm
 +  * https://www.rsyslog.com/doc/v8-stable/rainerscript/expressions.html
informatique/linux/syslog.txt · Last modified: 2020/09/14 08:50 by pteu