{"id":1503,"date":"2018-10-12T15:00:32","date_gmt":"2018-10-12T13:00:32","guid":{"rendered":"http:\/\/clark.tipistrani.it\/?p=1503"},"modified":"2018-10-18T08:43:55","modified_gmt":"2018-10-18T06:43:55","slug":"suricata","status":"publish","type":"post","link":"http:\/\/clark.tipistrani.it\/?p=1503","title":{"rendered":"Suricata"},"content":{"rendered":"<p>In questo periodo sto aggiornando i bastion host aziendali perch\u00e9 girano ancora su Debian 7.x e non vedo pi\u00f9 aggiornamenti di sicurezza.<br \/>\nL&#8217;occasione \u00e8 buona per passare anche loro a Devuan, gli IDS\/IPS sono una parte fondamentale della sicurezza del sistema, io ho sempre usato SNORT come IDS ma su Devuan Jessie non \u00e8 presente, quindi si usa l&#8217;alternativa che \u00e8 <a href=\"https:\/\/suricata-ids.org\/\">suricata<\/a><br \/>\nSuricata lavora sia come IDS che come IPS che \u00e8 poi la funzione che pi\u00f9 mi interessa, in sostanza con 1 regola di firewall adeguata si passa tutto il traffico al vaglio di suricata che provvede a fare quanto serve va installato da backports per avere una versione pi\u00f9 aggiornata.<br \/>\nEssendo le macchine dei bastion host la via pi\u00f9 semplice per ottenere questo effetto e usare la chain di FORWARD aggiungendo allo script di firewall questa regola:<br \/>\n$IPT -I FORWARD -j NFQUEUE<br \/>\nin modo che sia il traffico in entrata che quello in uscita sia verificato, approfondendo un po di pi\u00f9 il pacchetto entrante che matcha la regola viene inviato tramite nfnetlink a suricata,<span id=\"result_box\" class=\"\" lang=\"it\"><span class=\"\">Suricata riceve il pacchetto<\/span> <span class=\"\">e emette un verdetto <\/span>a seconda del set di regole,<span class=\"\">Il pacchetto viene trasmesso o respinto da<\/span>l kernel<\/span>.<br \/>\nN.B. anzi nota MOLTO BENE, questa regola va inserita DOPO eventuali altre regole di forward, specie se ad esempio hai delle VPN.<br \/>\nDa ricordarsi di disabilitare in <a href=\"http:\/\/clark.tipistrani.it\/?p=1491\">suricata.yaml<\/a> (il file principale di configurazione)<\/p>\n<p>unix-command:<\/p>\n<p>enable no<br \/>\n# filename: \/var\/run\/suricata-command.socket<br \/>\nQuesto perch\u00e9 se no l&#8217;aggiornamento dei\u00a0 rules che fa cron con il file suricata-oink-master si pianta inesorabilmente e chiude il demone di suricata.<br \/>\nAltra cosa che voglio fare \u00e8 far girare suricata non come root (s\u00ec lo so, sono paranoico) quindi aggiungo con useradd -r -s \/usr\/sbin\/nologin suri (-r utente di sistema -s scelta shell che gentilmente dice non puoi entrare)<br \/>\naggiungo al file .yaml questa configurazione:<br \/>\nrun-as:<br \/>\nuser: suri<br \/>\ngroup: suri<br \/>\ngiusto per essere sicuro del tutto aggiungo anche al file \/etc\/default\/suricata la condizione:<br \/>\nRUN_AS_USER=suri<br \/>\ncambio permessi e proprietari alla directory \/var\/log\/suricata<br \/>\nchown -R root:suri \/var\/log\/suricata<br \/>\nchmod -R 775 \/var\/log\/suricata<br \/>\nriavvio suricata e dopo diversi secondi, si la cosa non \u00e8 immediata trovo:<br \/>\nperseo:\/home\/guardian# ps aux | grep suricata<br \/>\nsuri 3198 8.7 5.5 433612 221244 ? Ssl 14:20 0:50 \/usr\/bin\/suricata -c \/etc\/suricata\/suricata.yaml &#8211;pidfile \/var\/run\/suricata.pid -q 0 -D<br \/>\nroot 6161 0.0 0.0 13236 2316 pts\/0 S+ 14:30 0:00 grep suricata<br \/>\nNel file \/var\/log\/suricata\/fast.log ci sono tutte le segnalazioni del traffico.<\/p>\n<p>ADDENDUM:<\/p>\n<p>tre giorni dopo spulciando i log per vedere se ci sono anomalie sulle macchien appena rifatte mi son trovato una cosa di questo tipo:<\/p>\n<pre>\/etc\/cron.daily\/logrotate:\r\nerror: skipping \"\/var\/log\/suricata\/fast.log\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") \\\r\nSet \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\r\nerror: skipping \"\/var\/log\/suricata\/stats.log\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") \\\r\nSet \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\r\nerror: skipping \"\/var\/log\/suricata\/suricata.log\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") \\\r\nSet \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\r\nerror: skipping \"\/var\/log\/suricata\/suricata-start.log\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") \\\r\nSet \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\r\nerror: skipping \"\/var\/log\/suricata\/eve.json\" because parent directory has insecure permissions (It's world writable or writable by group which is not \"root\") \\\r\nSet \"su\" directive in config file to tell logrotate which user\/group should be used for rotation.\r\nrun-parts: \/etc\/cron.daily\/logrotate exited with return code 1<\/pre>\n<p>rapida ricerca in google e soluzione trovata, modificare il file \/etc\/logrotate.d\/suricata aggiungendo la direttiva su all&#8217;inizio in questo modo:<br \/>\n\/var\/log\/suricata\/*.log<br \/>\n\/var\/log\/suricata\/*.json<br \/>\n{<br \/>\nsu suri suri<br \/>\nrotate 14<br \/>\nmissingok<br \/>\ncompress<br \/>\ncopytruncate<br \/>\nsharedscripts<br \/>\npostrotate<br \/>\n\/bin\/kill -HUP $(cat \/var\/run\/suricata.pid)<br \/>\nendscript<br \/>\n}<br \/>\ncon un logrotate &#8211;force \/etc\/logrotate.d\/suricata in \/var\/log\/suricata mi son trovato i file a posto.<\/p>\n<p>ADDENDUM 1<\/p>\n<p>Dato che i log nella directory \/var\/log\/suricata richiedono un programam terzo per essere consultati e che non ho nessuna vogliadi mettere altra roba su dei bastions hosts ho rediretto il tutto in syslog abilitando in suricata.yalm<\/p>\n<p># a line based alerts log similar to fast.log into syslog<br \/>\n&#8211; syslog:<br \/>\nenabled: yes<br \/>\n# reported identity to syslog. If ommited the program name (usually<br \/>\n# suricata) will be used.<br \/>\nidentity: &#8220;suricata&#8221;<br \/>\nfacility: local5<br \/>\n#level: Info<\/p>\n<p>e aggiungendo in \/etc\/rsyslog.d il file suricata.conf che contiene:<\/p>\n<pre>$template sysklogd, \"&lt;%PRI%&gt;%syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%\"<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In questo periodo sto aggiornando i bastion host aziendali perch\u00e9 girano ancora su Debian 7.x e non vedo pi\u00f9 aggiornamenti di sicurezza. L&#8217;occasione \u00e8 buona per passare anche loro a Devuan, gli IDS\/IPS sono una parte fondamentale della sicurezza del sistema, io ho sempre usato SNORT come IDS ma su Devuan Jessie non \u00e8 presente, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[110,8,14,6],"tags":[136,138,134],"class_list":["post-1503","post","type-post","status-publish","format-standard","hentry","category-ids","category-linux","category-networking","category-work","tag-devuan","tag-ids-ips","tag-suricata"],"_links":{"self":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1503"}],"version-history":[{"count":11,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1503\/revisions"}],"predecessor-version":[{"id":1526,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/1503\/revisions\/1526"}],"wp:attachment":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1503"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}