{"id":2169,"date":"2022-06-23T13:28:41","date_gmt":"2022-06-23T11:28:41","guid":{"rendered":"http:\/\/clark.tipistrani.it\/?p=2169"},"modified":"2022-06-24T09:25:43","modified_gmt":"2022-06-24T07:25:43","slug":"bastion-host-2","status":"publish","type":"post","link":"http:\/\/clark.tipistrani.it\/?p=2169","title":{"rendered":"Bastion host versione 2022"},"content":{"rendered":"<p>Riprendo dopo un bel po di anni questo <a href=\"http:\/\/clark.tipistrani.it\/?p=1139\">discorso<\/a> che attualmente \u00e8 diventato ancora pi\u00f9 fondamentale.<br \/>\nIl concetto fondamentale resta lo stesso:<br \/>\nUn <a href=\"http:\/\/it.wikipedia.org\/wiki\/Bastion_host\">Bastion host<\/a> \u00e8 normalmente nelle realt\u00e0 aziendali la macchina di collegamento tra la\/le LAN e Internet.<br \/>\nQuindi questa macchina deve essere il pi\u00f9 possibile (per quanto questo significhi un qualcosa) sicura e di difficile accesso o meglio impossibile (e vedremo in seguito che questo non \u00e8 del tutto vero)<br \/>\nNegli anni vuoi per esperienza, vuoi per comodit\u00e0 vuoi per mutato modo di ragionare\/lavorare ho cambiato diverse cose e quindi i due bastion host aziendali oggi come oggi condividono solo l&#8217;IP di gateway della LAN e solo quello \u00e8 in HA.<br \/>\nUn altra cosa che \u00e8 cambiata \u00e8 l&#8217;adozione di kernel modulari al posto di kernel compilati sulla macchina stessa, i principali motivi di questa scelta sono stati la velocit\u00e0 che si ottiene con un kernel modulare rispetto a uno totalmente compilato, la volont\u00e0 di restare con la linea di kernel della distribuzione, e non da ultimo la facilit\u00e0 della cosa.<br \/>\n\u00c8 sparito il proxy che \u00e8 diventato una macchina virtuale in LAN<br \/>\n\u00c8 cambiato il framework di packet filtering da iptables a nftables<br \/>\nUna particolare attenzione \u00e8 stata prestata ai parametri da passare al kernel in fase di avvio per mitigare gli attacchi DDoS che sono purtroppo sempre pi\u00f9 frequenti e che colpiscono indirettamente anche se la classe di IP \u00e8 in una subnet adiacente.<br \/>\nAttualmente i due bastion host aziendali sono due Dell PowerEdge R240 collegati a due diversi provider e come dicevo poco sopra sono configurati in HA Master\/slave solo per la condivisione del gateway della LAN, in altre parole l&#8217;uscita principale \u00e8 su un provider con un IP e solo in caso di down passa all&#8217;altro, questo per\u00f2 non significa ad esempio che in entrata non succeda che i servizi vengano pilotati su entrambe le connessioni.<\/p>\n<p>Come \u00e8 intuitivo una macchina del genere deve avere a bordo il minimo possibile come software, tutto quello che non c&#8217;\u00e8 non:<br \/>\nsi rompe<br \/>\nsi pu\u00f2 attaccare<br \/>\nsi deve controllare\/mantenere<br \/>\nDetto ci\u00f2 nell&#8217;istallazione iniziale (al solito da qualche anno Devuan stable ad oggi la 4) arrivati alla scelta dell&#8217;installazione software utilit\u00e0 di sistema standard e server SSH (non \u00e8 realistico anche se sarebbe bello pensare di non avere accesso remoto) nulla di pi\u00f9, i tools necessari anche solo per scrivere li metteremo dopo uno alla volta e quando servono.<br \/>\nSin qui i concetti generali, da qui le personalizzazioni sulle nostre macchine aziendali, possono essere una traccia da seguire ma non \u00e8 assolutamente detto che possano funzionare in altre realt\u00e0.<\/p>\n<p>Accesso remoto alla macchina<br \/>\nCome al solito si usa <a href=\"http:\/\/clark.tipistrani.it\/?p=1131\">SSH<\/a><br \/>\nFirewall<br \/>\nArrivati a questo punto il primo passo \u00e8 quello di modificare sulle nostre esigenze il file \/et\/network\/interfaces sulla macchina hostname perseo ad esempio \u00e8 fatto cos\u00ec:<br \/>\nallow hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress xxx.yyy.zzz.92\/29<br \/>\ngateway xxx.yyy.zzz.91<br \/>\nup ip addr add xxx.yyy.zzz.96\/29 brd xxx.yyy.zzz.97 dev eth0 label eth0:0<\/p>\n<p>allow-hotplug eth1<br \/>\niface eth1 inet static<br \/>\naddress 192.168.2.240\/23<\/p>\n<p>Quindi senza particolari modifiche mi rifaccio a quanto scritto <a href=\"http:\/\/clark.tipistrani.it\/?p=1758\">qui<\/a> per lanciare il firewall e a questo momento abbiamo un router funzionante che permette l&#8217;uscita della LAN su Internet e previene gli accessi non autorizzati esplicitamente.<\/p>\n<p>IDS\/IPS<\/p>\n<p>L&#8217;aspetto a mio avviso pi\u00f9 importante di questa categoria \u00e8 quello rappresentato dagli IPS che sui nostri bastion host sono:<\/p>\n<p><a href=\"http:\/\/clark.tipistrani.it\/?p=2020\">Suricata<\/a><br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=1883\">Fail2ban<\/a><br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=1864\">Portsentry<\/a><\/p>\n<p>Le configurazioni per fail2ban e portsentry sono relative a Devuan 3 beowulf ma restano inalterate sulla versione 4 chimaera.<\/p>\n<p>Immediatamente a seguire gli IDS che sono:<br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=645\">aide<\/a><br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=2034\">rkhunter<\/a><br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=1892\">tiger<\/a><br \/>\n<a href=\"http:\/\/clark.tipistrani.it\/?p=1517\">tripwire<\/a><\/p>\n<p>Anche in questo caso le vecchie configurazioni sono valide.<br \/>\nUna macchina configurata in questa maniera e messa a presidio della connessione Inernet\/LAN la considero il minimo accettabile.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Riprendo dopo un bel po di anni questo discorso che attualmente \u00e8 diventato ancora pi\u00f9 fondamentale. Il concetto fondamentale resta lo stesso: Un Bastion host \u00e8 normalmente nelle realt\u00e0 aziendali la macchina di collegamento tra la\/le LAN e Internet. Quindi questa macchina deve essere il pi\u00f9 possibile (per quanto questo significhi un qualcosa) sicura e [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[109,110,222,8,14,7,6],"tags":[223,111,112,135,92,180],"class_list":["post-2169","post","type-post","status-publish","format-standard","hentry","category-firewall","category-ids","category-ips","category-linux","category-networking","category-sistemi-operativi","category-work","tag-devuan-4","tag-firewall","tag-ids","tag-ips","tag-linux","tag-nftables"],"_links":{"self":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2169","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=2169"}],"version-history":[{"count":8,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2169\/revisions"}],"predecessor-version":[{"id":2186,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=\/wp\/v2\/posts\/2169\/revisions\/2186"}],"wp:attachment":[{"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2169"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/clark.tipistrani.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}