{"id":95,"date":"2008-05-28T13:12:14","date_gmt":"2008-05-28T12:12:14","guid":{"rendered":"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/05\/28\/centralisation-des-logs\/"},"modified":"2008-05-28T13:12:14","modified_gmt":"2008-05-28T12:12:14","slug":"centralisation-des-logs","status":"publish","type":"post","link":"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/05\/28\/centralisation-des-logs\/","title":{"rendered":"Centralisation des logs"},"content":{"rendered":"<p>Avec l&rsquo;ajout de nouveaux serveurs, pc, \u00e9quipements dans votre r\u00e9seau, la centralisation des logs sur une seule machine devient une \u00e9vidence.<\/p>\n<p>Passer 1 heure a se connecter en ssh, minicom ou autre sur chaque bestiole pour v\u00e9rifier les logs devient vite fastidieux et la mise en place d&rsquo;un \u00ab\u00a0Syslog Host\u00a0\u00bb (terme que j&#8217;emploierai pour d\u00e9signer le serveur de r\u00e9cup\u00e9ration des logs) coule de source.<\/p>\n<p>Heureusement, ce genre de d\u00e9ploiement est assez simple car d\u00e9j\u00e0 inclus nativement sur nos Linux \/ *BSD pr\u00e9f\u00e9r\u00e9.<\/p>\n<p>Le choix du serveur de logs n&rsquo;est pas non plus \u00e0 prendre a la l\u00e9g\u00e8re. Outre le volume de donn\u00e9es a stocker\/traiter, la criticit\u00e9 d&rsquo;une telle machine ne doit pas \u00eatre oubli\u00e9e.<\/p>\n<ol>\n<li>Vous vous exposez \u00e0 une \u00ab\u00a0attaque\u00a0\u00bb de type <em>Syslog Bombing<\/em><\/li>\n<li>Certains logs peuvent \u00eatre sensible et ne pas \u00eatre donn\u00e9 en pature a n&rsquo;importe quel lecteur<\/li>\n<\/ol>\n<p>Pr\u00e9voyez donc une partition d\u00e9di\u00e9e (type \/var\/log) suffisamment dimensionn\u00e9e et r\u00e9serv\u00e9e aux logs.<\/p>\n<p>C\u00f4t\u00e9 s\u00e9curit\u00e9 r\u00e9seau, les flux Syslog utilisent le protocole <a href=\"http:\/\/fr.wikipedia.org\/wiki\/User_Datagram_Protocol\" title=\"UDP\" target=\"_blank\">UDP<\/a> sur le port 514, a vous donc de positionner vos ACL et\/ou r\u00e8gles Firewall en cons\u00e9quences et bien entendu \u00e0 ne pas l&rsquo;exposer au r\u00e9seau Internet.<\/p>\n<p>L&rsquo;id\u00e9al \u00e9tant bien \u00e9videmment de positionner le  SyslogHost dans un VLAN d\u00e9di\u00e9 ou vous n&rsquo;autoriserez que l&rsquo;UDP port 514 et le SSH depuis le poste de management.<\/p>\n<p>(Petite parenth\u00e8se d&rsquo;humour parano\u00efaque :<br \/>\nLa s\u00e9curit\u00e9 ultime \u00e9tant justement d&rsquo;utiliser la particularit\u00e9 du protocole UDP qui travaille en mode non-connect\u00e9 pour couper physiquement le fil TX du c\u00e2ble r\u00e9seau c\u00f4t\u00e9 carte du SyslogHost  \ud83d\ude00<\/p>\n<p><a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/rj45.jpeg\" title=\"RJ45\"><img src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/rj45.jpeg\" alt=\"RJ45\" \/><\/a>      <a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/out2.gif\" title=\"Cablage\"><img src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/out2.gif\" alt=\"Cablage\" \/><\/a><\/p>\n<p>Bon OK, l\u00e0 c&rsquo;est vraiment Parano \ud83d\ude09<\/p>\n<p>fin de la parenth\u00e8se qui sert \u00e0 rien)<\/p>\n<p><u><strong>Activation du d\u00e9mon Syslogd<\/strong><\/u><\/p>\n<p>Sur votre Pingouin,  il suffit de rajouter l&rsquo;option \u00ab\u00a0-r\u00a0\u00bb a Syslog.<\/p>\n<p>Debian Like : \/etc\/default\/syslogd<\/p>\n<p>RedHat Like : \/etc\/sysconfig\/syslog<\/p>\n<p>Relancer syslog.<\/p>\n<p>Sur le Poisson qui pique, ajouter le flag -u dans votre \/etc\/rc.conf :<\/p>\n<p>syslogd_flags=\u00a0\u00bb-u\u00a0\u00bb<\/p>\n<p>Killer le process Syslogd et relancer le en mode -u : syslogd -u<\/p>\n<p>Un netstat -an | grep 514 vous confirmera l&rsquo;\u00e9coute :<\/p>\n<p>udp        0      0  *.514                  *.*<\/p>\n<p>Sur les clients, il suffit maintenant de modifier le fichier \/etc\/syslog.conf pour lui demander de tout envoyer au Syslog Host :<\/p>\n<p>Ex:  *.*     @192.168.0.1<\/p>\n<p>Bien sur vous pouvez peaufiner ce que vous voulez envoyer comme logs. (lire cet <a href=\"http:\/\/www.linux-kheops.com\/doc\/cours\/jgourdin\/outils-tcp-ip\/Linux-syslog.html\" title=\"syslog\" target=\"_blank\">article<\/a> par exemple).<\/p>\n<p>N&rsquo;oubliez surtout pas de configurer la rotation automatique des logs !!!<\/p>\n<p>Avec logrotate.d sur Linux et Newsyslog sur OpenBSD (<a href=\"http:\/\/fr.wikipedia.org\/wiki\/Man_%28commande_Unix%29\" title=\"MAN\" target=\"_blank\">MAN<\/a> est votre ami)&#8230;<\/p>\n<p><u><strong>Remont\u00e9e les logs Cisco<\/strong><\/u><\/p>\n<p>Les Ciscos savent envoyer leurs logs ves un Syslog host.<\/p>\n<p>Sur un routeur :<\/p>\n<p>logging 192.168.0.1<\/p>\n<p>Sur un Pix :<\/p>\n<p>logging host inside 192.168.0.1<\/p>\n<p>Par d\u00e9faut, les Ciscos envoient leurs logs avec le niveau local.7<\/p>\n<p>Il peut \u00eatre int\u00e9ressant de peaufiner le traitement des logs et de s\u00e9parer les logs \u00ab\u00a0syslog\u00a0\u00bb des machines, des logs \u00e9quipements.<\/p>\n<p>Pour un Pix par exemple, nous pouvons utiliser le tableau suivant :<\/p>\n<p align=\"center\">\n<table class=\"MsoNormalTable\" style=\"border: medium none ; border-collapse: collapse\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n<thead>\n<td style=\"border-style: inset solid inset inset; border-color: #111111; border-width: 1pt; padding: 7.5pt; background: green none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong><span style=\"color: white\">Facility<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-style: inset solid inset none; border-color: rgb(17, 17, 17) rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 7.5pt; background: green none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong><span style=\"color: white\">Logging Facility<\/span><\/strong><\/p>\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong><span style=\"color: white\">Command Value<\/span><\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local 0<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">16<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>1<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">17<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>2<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">18<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>3<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">19<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>4<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">20<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>5<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">21<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>6<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">22<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td style=\"border-style: none solid inset inset; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17); border-width: medium 1pt 1pt; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\"><strong>local <\/strong><strong>7<\/strong><\/p>\n<\/td>\n<td style=\"border-style: none solid inset none; border-color: -moz-use-text-color rgb(17, 17, 17) rgb(17, 17, 17) -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 7.5pt\" valign=\"top\">\n<p class=\"MsoNormal\" style=\"text-align: center\" align=\"center\">23<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p class=\"H4Body\">&nbsp;<\/p>\n<ol>\n<li>Pr\u00e9parons le SyslogHost a recevoir les logs : local3.debug           \/var\/log\/cisco.log (dans le syslog.conf)<\/li>\n<li>Sur le Pix ou le routeur Cisco :<\/li>\n<\/ol>\n<p>logging trap informational<br \/>\nlogging facility 19<\/p>\n<p>Car facility 19 = local 3<\/p>\n<p><u><strong>NB<\/strong><\/u> : Il s&rsquo;agit simplement d&rsquo;une traduction du binaire :-p<\/p>\n<ul>\n<li>16 = 00010000 = local0<\/li>\n<li>17 = 00010001 = local1<\/li>\n<li>18 = 00010010 = local2<\/li>\n<li>19 = 00010011 = local3<\/li>\n<li>20 = 00010100 = local4<\/li>\n<li>21 = 00010101 = local5<\/li>\n<li>22 = 00010110 = local6<\/li>\n<li>23 = 00010111 = local7<\/li>\n<\/ul>\n<p>On utilise les 4 derniers bits, exemple 22 = 00010110, les 4 derniers =0110 = en d\u00e9cimal   6, c&rsquo;est du local 6.<\/p>\n<p>Le flag Trap est le niveau de log voulu :<\/p>\n<p>alerts         Immediate action needed           (severity=1)<br \/>\ncritical       Critical conditions               (severity=2)<br \/>\ndebugging      Debugging messages                (severity=7)<br \/>\nemergencies    System is unusable                (severity=0)<br \/>\nerrors         Error conditions                  (severity=3)<br \/>\ninformational  Informational messages            (severity=6)<br \/>\nnotifications  Normal but significant conditions (severity=5)<br \/>\nwarnings       Warning conditions                (severity=4)<\/p>\n<p>Les commandes suivantes ne sont pas n\u00e9gligeables \u00e0 rajouter :<\/p>\n<p>service timestamps log datetime localtime (Cisco routeur)<\/p>\n<p>logging timestamp (Cisco PIX)<\/p>\n<p>Si cela vous amuse \ud83d\ude42 vous pouvez \u00e9galement coloriser vos logs qui s&rsquo;afficheront (voir l&rsquo;article <a href=\"http:\/\/www.digitalspirit.org\/blog\/index.php\/post\/2007\/11\/07\/Log-Watcher\" title=\"Logwatcher\" target=\"_blank\">ICI<\/a> ).<\/p>\n<p><u><strong>Traitement des logs<\/strong><\/u><\/p>\n<p>Se coltiner des flux continus de logs qui d\u00e9filent n&rsquo;est pas des plus agr\u00e9ables et une information Critique peut vous \u00e9chapper si vous ne lisez pas vos logs ou ne les traiter pas automatiquement.<\/p>\n<p>Il existe des multitudes de script vous permettant de parser vos logs et d&rsquo;en extraire les informations essentielles, je vous laisse avec Google pour faire le plein de bonne solution.<\/p>\n<p>Personnellement, comme je l&rsquo;avais expliqu\u00e9 dans un <a href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/01\/27\/installer-et-configurer-prelude\/\" title=\"Prelude\" target=\"_blank\">billet pr\u00e9c\u00e9dent<\/a>, j&rsquo;utilise Prelude comme centralisateur d&rsquo;informations et en installant un module Prelude-LML (LML : Log Monitoring Lackey) sur le SyslogHost, je remonte tout cela sur le Prelude Manager et une bonne moulinette maison me permet d&rsquo;\u00eatre alert\u00e9 en temps r\u00e9el en cas d&rsquo;incident.<\/p>\n<p>J&rsquo;esp\u00e8re que vous prendrez conscience de l&rsquo;utilit\u00e9 et de l&rsquo;importance de la centralisation des logs qui n&rsquo;a \u00e9t\u00e9 que rapidement approch\u00e9e dans ce billet mais que vous pourrez \u00e9tendre beaucoup plus loin (remont\u00e9e des logs applicatives par exemple (qui a dit Log4j ??? \ud83d\ude09 ) etc..<\/p>\n<p>Bon courage<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Avec l&rsquo;ajout de nouveaux serveurs, pc, \u00e9quipements dans votre r\u00e9seau, la centralisation des logs sur une seule machine devient une \u00e9vidence. Passer 1 heure a se connecter en ssh, minicom ou autre sur chaque bestiole pour v\u00e9rifier les logs devient &hellip; <a href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/05\/28\/centralisation-des-logs\/\">Read More <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[6,7,16,3],"tags":[26,25],"_links":{"self":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/95"}],"collection":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":0,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}