{"id":549,"date":"2009-11-20T17:22:21","date_gmt":"2009-11-20T16:22:21","guid":{"rendered":"http:\/\/blog.solution.it\/?p=549"},"modified":"2011-06-24T14:55:22","modified_gmt":"2011-06-24T13:55:22","slug":"soluzione-open-source-per-log-amministratori-di-sistema","status":"publish","type":"post","link":"https:\/\/blog.solution.it\/?p=549","title":{"rendered":"Soluzione Open Source per log Amministratori di Sistema"},"content":{"rendered":"<p>Provo a mettere nero su bianco\u00a0 i test effettuati\u00a0 per l&#8217;adeguamento al <a href=\"http:\/\/www.garanteprivacy.it\/garante\/doc.jsp?ID=1580831\">provvedimento sugli amministratori di sistema<\/a> emanato dal Garante Privacy la cui scadenza \u00e8 fissata al 15 dicembre 2009.  Ricordo brevemente che, fra le altre cose,\u00a0 il provvedimento richiede la registrazione e conservazione per almeno sei mesi dei log di accesso di ogni account degli amministratori di sistema. Esistono molti sistemi a pagamento che possono fare questo, ma perch\u00e9 spendere se possiamo adeguare i nostri sistemi senza dover acquistare costose licenze software?  Ecco dunque, dopo gli <a href=\"http:\/\/blog.solution.it\/wp-content\/uploads\/2009\/05\/amministratori_sistema.pdf\">spunti di discussione<\/a> pubblicati mesi fa, dove semplicemente\u00a0 accennavo a quali strumenti potessero essere utilizzati,\u00a0 una <em>traccia operativa<\/em> per creare un sistema di log centralizzato per sistemi sia Windows che Linux basato su Debian.  <!--more-->Intendiamoci. E&#8217; solo una traccia, magari si pu\u00f2 desiderare di implementare ulteriori livelli di sicurezza, come ad esempio la trasmissione dei log su connessione cifrata. E&#8217; comunque un punto di partenza e sufficiente per piccole realt\u00e0 con esigenze limitate.<\/p>\n<p>Ricordo a questo proposito che il provvedimento non prevede specifiche tecniche, lasciando ad ogni titolare di trattamento la scelta su come implementare quanto richiesto.<\/p>\n<p>Per essere compliant alla normativa, ogni utente e quindi ogni amministratore di sistema deve avere il proprio account. Per abilitare utenti diversi ad effettuare operazioni che richiedono i poteri di root si pu\u00f2 abilitare il comando <em>sudo<\/em>, creando un gruppo apposito (su Ubuntu esiste gi\u00e0, \u00e8 il gruppo <em>admin<\/em>) e modificando opportunamente con <em>visudo<\/em> i diritti di root per tale gruppo. Ad esempio:<\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td align=\"left\" valign=\"center\">$ sudo\u00a0 visudo<\/p>\n<p># User privilege specification root    ALL=(ALL) ALL<\/p>\n<p># Members of the admin group may gain root privileges<\/p>\n<p>%admin ALL=(ALL) ALL<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ovviamente il nome del gruppo di utenti abilitati pu\u00f2 essere scelto liberamente. In alcuni sistemi il nome di default \u00e8 <em>wheel<\/em>.  Quello che resta da fare \u00e8 aggiungere gli utenti al gruppo admin usando <em>useradd<\/em> se l&#8217;utente deve essere creato da zero oppure <em>usermod<\/em> se l&#8217;utente esiste gi\u00e0.<\/p>\n<p>Su sistemi windows \u00e8 necessario impedire l&#8217;utilizzo dell&#8217;accesso come amministratore per il normale uso.<\/p>\n<p>E&#8217; appena il caso di ricordare che il log degli accessi amministrativi va registrato non solo per i server ma anche per i sistemi client se su queste macchine si gestiscono dati personali.<\/p>\n<p>Syslog \u00e8 il demone installato di default per gestire i log di sistema . Dobbiamo quindi sostituire <em>syslog<\/em> con un software che abbia delle funzioni in pi\u00f9. Per fortuna su Debian 5 (lenny) <a href=\"http:\/\/www.rsyslog.com\/\">rsyslog<\/a> \u00e8 il demone di log installato di default.Una alternativa potrebbe essere <a href=\"http:\/\/www.balabit.com\/network-security\/syslog-ng\/opensource-logging-system\/\">syslog-ng<\/a>. Entrambi\u00a0 i software permettono di ricevere i log da server remoti anche via ssl e registrarli su un db come (ad esempio, ma non solo) Mysql.<\/p>\n<p>Su Ubuntu, ad esempio,\u00a0 l&#8217;installazione si effettua con il semplce <strong>apt-get install rsyslog.<\/strong><\/p>\n<p>Per abilitare la ricezione dei log da remoto va modificato sul log server\u00a0 il file di configurazione<strong> \/etc\/rsyslog.conf<\/strong>.<\/p>\n<p>Invece il file <strong>\/etc\/default\/rsyslog <\/strong>va modificato solo in caso vada mantenuta la compatibilit\u00e0 con vecchi sistemi, altrimenti non va toccato.<\/p>\n<p>Nel file\u00a0 <strong>\/etc\/rsyslog.conf<\/strong> del log server vanno decommentate le righe sotto riportate\u00a0 per mettere il demone in ascolto sulla porta 514 UDP. Attenzione, se il traffico fosse molto elevato, si rischia di perdere delle righe di log. In questo caso va usato il protocollo TCP o RELP.<\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td># provides UDP syslog reception<\/p>\n<p>$ModLoad imudp<\/p>\n<p>$UDPServerRun 514<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: x-small; font-family: Arial;\">Fatte queste modifiche si riavvia il demone con <\/span><\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td>\/etc\/init.d\/rsyslogd restart<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: x-small; font-family: Arial;\">e si verifica che sia effettivamente in ascolto sulla porta UDP 541 con<\/span><\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td>netstat -lpu | grep rsyslogd<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: x-small; font-family: Arial;\">che deve mostrare qualcosa di simile:<\/span><\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td>udp \u00a0 \u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 0.0.0.0:514\u00a0\u00a0\u00a0\u00a0 0.0.0.0:*\u00a0 \u00a0 \u00a0 2222\/rsyslogd<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span style=\"font-size: x-small; font-family: Arial;\"> <\/span> Per attivare l&#8217;invio del log al rsyslog remoto su ogni macchina linux che deve essere loggata va modificato il file <strong>\/etc\/rsyslog.conf<\/strong> modificando la riga<\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td>auth, authpriv.* \/var\/log\/auth.log<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>in<\/p>\n<table border=\"1\" cellpadding=\"10\" width=\"80%\" bgcolor=\"#ffffdd\">\n<tbody>\n<tr>\n<td>auth, authpriv.* @192.168.1.1 (mettere l&#8217;ip del server rsyslog centralizzato)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La chiocciola davanti all&#8217;indirizzo IP indica a quale host deve essere inviato il log.<\/p>\n<p>Per windows ho testato\u00a0 <a href=\"http:\/\/www.intersectalliance.com\/projects\/SnareWindows\/index.html\">Snare Agent for Windows<\/a>, un pacchetto open source che installa un servizio per il log degli eventi su windows ed \u00e8 amministrabile tramite una pagina web. L&#8217;installazione si limita al solito doppio click sull&#8217;eseguibile, all&#8217;impostazione della password ed alla scelta se permettere o meno l&#8217;accesso remoto alla pagina di configurazione del servizio. Per effettuare la configurazione \u00e8 sufficiente puntare il browser su <strong>localhost:6161<\/strong>. Utente e password di default sono snare\/snare, da cambiare immediatamente.<\/p>\n<p>La configurazione da impostare per avere il log remoto \u00e8 sulla pagina network. Basta impostare\u00a0<em> <\/em><em>Destination Snare Server address<\/em> con l&#8217;indirizzo ip del server di log e come\u00a0 destination\u00a0 port\u00a0 514. Attivare <em>Enable Syslog\u00a0 Header<\/em> e selezionare come syslog facility <strong>auth<\/strong>, con livello <strong>notice<\/strong>. <em> <\/em> <span style=\"font-size: x-small; font-family: Arial;\"> <\/span><\/p>\n<p><a rel=\"attachment wp-att-566\" href=\"http:\/\/blog.solution.it\/soluzione-open-source-per-log-amministratori-di-sistema\/snare\/\"><img decoding=\"async\" loading=\"lazy\" class=\"size-thumbnail wp-image-566 alignleft\" style=\"margin: 10px;\" title=\"snare\" src=\"http:\/\/blog.solution.it\/wp-content\/uploads\/2009\/11\/snare-150x150.png\" alt=\"configurazione per log remoto\" width=\"200\" height=\"150\" \/><\/a><\/p>\n<p>Se tutto \u00e8 andato bene, adesso nel file\u00a0 <strong>\/var\/log\/auth.log<\/strong> verranno registrati login, logout ed errori di login delle macchine configurate.<\/p>\n<p>Tenete presente che i log sistemi windows sono prolissi e bisogna saperli leggere. Gli eventi vengono identificati tramite un codice (ID Event) che assume il valore 528 per il login e 538 per il logout e distinguono gli accessi locali dagli accessi remoti tramite la variabile &#8220;Type&#8221; che ha valore 2 per accesso locale e valore 3 per accesso effettuato via rete. Vi sono inoltre vari altri ID e Type legati ad altre situazioni (p.e. errori di login) ed eventuali problemi (quale il mancato log degli eventi con ID 538 al momento della disconnessione). Trovate\u00a0 <a href=\"http:\/\/technet.microsoft.com\/en-us\/library\/bb742436.aspx\">qui<\/a>, <a href=\"http:\/\/support.microsoft.com\/kb\/828857\">qui<\/a>,<a href=\"http:\/\/support.microsoft.com\/kb\/308427\">qui<\/a> e <a href=\"http:\/\/support.microsoft.com\/kb\/174074\">qui<\/a> alcuni articoli Microsoft con informazioni in merito.<\/p>\n<p>Una alternativa a Snare Agent pu\u00f2 essere <a href=\"http:\/\/ntsyslog.sourceforge.net\/\">ntsyslog<\/a>, con la differenza che non pu\u00f2 essere amministrato da remoto via pagina web come invece Snare Agent.<\/p>\n<p>L&#8217;installazione di <strong>ntsyslog2<\/strong> \u00e8 come d&#8217;uso molto semplice. E&#8217; sufficiente scaricare il file di installazione msi e lanciarlo con il classico doppio click per installare il servizio ntsyslog.<\/p>\n<p>La configurazione si fa tramite il programma <strong>NTSyslogCtrl.exe<\/strong> (viene creato uno shortcut sul desktop). Selezionare il computer, scegliendo il pc sul quale \u00e8 installato il servizio. Impostare il server di log tramite il bottone &#8220;<em>Syslog Daemon<\/em>&#8221; . Dal menu a scomparsa scegliere <strong>Security<\/strong> quale <em>eventlog<\/em> quindi cliccate sul bottone <strong>eventlog<\/strong> per selezionare quali eventi inviare al server remoto. Si pu\u00f2 quindi avviare il servizio.<\/p>\n<p><a rel=\"attachment wp-att-622\" href=\"http:\/\/blog.solution.it\/soluzione-open-source-per-log-amministratori-di-sistema\/ntsyslog-window\/\"><img decoding=\"async\" loading=\"lazy\" class=\"alignright size-full wp-image-622\" style=\"border: 1px solid black; margin: 10px;\" title=\"ntsyslog-window\" src=\"http:\/\/blog.solution.it\/wp-content\/uploads\/2009\/11\/ntsyslog-window.jpg\" alt=\"ntsyslog-window\" width=\"250\" height=\"162\" \/><\/a>Dato che il provvedimento del Garante richiede il log dei tentativi di accesso, riusciti o meno che siano, \u00e8 bene disattivare l&#8217;invio degli eventlog sistema, applicazioni e internet explorer.<\/p>\n<p><strong>Attenzione<\/strong>: ho notato che su alcuni sistemi Windows \u00e8 disabilitata la funzione di event log, pertanto nessun evento relativo agli accessi viene registrato. Per attivare la registrazione (e l&#8217;invio al syslog remoto) degli eventi di accesso \u00e8 necessario entrare come administrator sul pc, aprire il pannello di controllo, Strumenti di Amministrazione, Criteri di protezione locali, Criteri locali, Criteri controllo e verificare che sia attivato il flag &#8220;<a href=\"http:\/\/technet.microsoft.com\/it-it\/library\/cc787567%28WS.10%29.aspx\">Controlla eventi di accesso<\/a>&#8220;. Esiste anche &#8220;Controlla eventi accesso account&#8221; ma questo controllo <a href=\"http:\/\/technet.microsoft.com\/it-it\/library\/cc787176%28WS.10%29.aspx\">non registra i logout<\/a>.<\/p>\n<p>Altre questioni da valutare sono relative alla gestione dei log una volta registrati sul nostro log server. Ad esempio per adeguarsi al requisito della immodificabilit\u00e0 si pu\u00f2 pensare di copiare periodicamente il log\u00a0 su di un supporto non riscrivibile,\u00a0 validando i file con un hash. Ricordatevi di tenere file ed hash in luoghi separati. Un&#8217;altra possibile soluzione \u00e8\u00a0 avere un log server al quale l&#8217;amministratore di sistema non ha accesso ne logico ne fisico.  Gi\u00e0 sento le risate&#8230;ma\u00a0 ricordate che quanto scritto fino qui \u00e8 solo un contributo, non la soluzione al problema.<\/p>\n<p>Ogni soluzione deve essere calata nel contesto in cui si opera, e deve essere\u00a0 parte di un sistema di\u00a0 Governance dell&#8217;IT che comprenda strategie di gestione e di controllo.<\/p>\n<p>L&#8217;amministratore di sistema, il professionista IT non deve essere lasciato da solo a &#8220;far funzionare il pc&#8221; ma deve essere considerato come parte integrante del sistema azienda. In questa ottica, il provvedimento del Garante Privacy deve essere visto come uno stimolo alla diffusione di\u00a0 una maggiore attenzione da parte delle aziende e dei dirigenti verso quelle attivit\u00e0 a torto considerate solo come &#8220;tecniche&#8221; e lasciate alla buona volont\u00e0 degli informatici.<\/p>\n<p>Infine un &#8220;grazie&#8221; a Maurizio, che con il suo <a href=\"http:\/\/blog.solution.it\/amministratori-di-sistema-le-faq-del-garante\/comment-page-1\/#comment-1625\">post<\/a> mi ha stimolato a scrivere questo articolo.<\/p>\n<p>Addendum: Si \u00e8 andato creando una specie di &#8220;circuito&#8221; di soluzioni tecniche per il problema dei log degli Ads. Bella questa cosa.<\/p>\n<p>Ne approfitto quindi per segnalare anche la <a href=\"http:\/\/ivanzini.wordpress.com\/2010\/01\/11\/soluzione-freeopen-source-al-provvedimento-del-garante-privacy-sugli-amministratori-di-sistema\/\">soluzione proposta da Ivan Zini<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Provo a mettere nero su bianco\u00a0 i test effettuati\u00a0 per l&#8217;adeguamento al provvedimento sugli amministratori di sistema emanato dal Garante Privacy la cui scadenza \u00e8 fissata al 15 dicembre 2009. Ricordo brevemente che, fra le altre cose,\u00a0 il provvedimento richiede la registrazione e conservazione per almeno sei mesi dei log&hellip; <\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[6,27,12,7,59,13,60,33,62],"_links":{"self":[{"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/posts\/549"}],"collection":[{"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.solution.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=549"}],"version-history":[{"count":93,"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/posts\/549\/revisions"}],"predecessor-version":[{"id":603,"href":"https:\/\/blog.solution.it\/index.php?rest_route=\/wp\/v2\/posts\/549\/revisions\/603"}],"wp:attachment":[{"href":"https:\/\/blog.solution.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=549"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.solution.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=549"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.solution.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=549"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}