{"id":21,"date":"2013-09-24T15:20:09","date_gmt":"2013-09-24T13:20:09","guid":{"rendered":"https:\/\/www.openrad.org\/?p=21"},"modified":"2013-09-24T15:20:09","modified_gmt":"2013-09-24T13:20:09","slug":"partizionamento-base-per-sistemi-unix","status":"publish","type":"post","link":"https:\/\/www.openrad.org\/?p=21","title":{"rendered":"Partizionamento base per sistemi Unix"},"content":{"rendered":"<p><b> Autore: <a href=\"mailto:%20mirko.venieri@openrad.net\">Mirko Venieri<\/a><br \/>\nCollaboratori: <a href=\"mailto:%20pietro.ventura@openrad.org\">Pietro Ventura<\/a> <\/b><\/p>\n<h3>Introduzione<\/h3>\n<p>Nel presente documento verranno descritte le modalit\u00e0 di partizionamento e gestione di un filesystem Unix-Like, ottimizzandone prestazioni e sicurezza di base.<br \/>\nEsistono svariati metodi per selezionare le modalit\u00e0 di suddivisione di un disco fisso, dove andr\u00e0 installato un filesystem Unix-Like, come si vedr\u00e0 in seguito.<br \/>\nIn base a tale scelta possono variare notevolmente le prestazioni, sia in campo di sicurezza che di performance, dellintero sistema.<br \/>\nIl documento si prefigge come obbiettivo la stesura di una serie di linee guida atte a facilitare la selezione del partizionamento di sistema in base alla funzione finale del server, inoltre si tenter\u00e0 di impostare una suddivisione standard valida per la maggior parte delle installazioni, che lasci comunque prestazioni e sicurezza inalterate.<br \/>\nLa lettura del documento \u00e8 utile e consigliata per qualsiasi sistemista in ambiente Unix-Like.<br \/>\nPer i test e le verifiche verr\u00e0 utilizzata come distribuzione di riferimento la Debian GNU\/Linux considerata lo standard de facto in ambito Linux.<br \/>\nIl documento nasce dallo studio e lapprofondimento dello standard F.H.S (File System Hierarchy Standard), la consultazione di manuali relativi a server Unix oltre alle esperienze personali dellautore.<br \/>\nGli step fondamentali per poter comprendere a fondo il seguito del documento saranno cos\u00ec ordinati:<\/p>\n<ul>\n<li>Una breve storia del filesystem di Unix<\/li>\n<li>La struttura principale del filesystem<\/li>\n<li>Le directory opzionali<\/li>\n<li>La suddivisione del filesystem<\/li>\n<li>Tipi di servizi erogati<\/li>\n<li>Le modalit\u00e0 di partizionamento<\/li>\n<li>Migliorie alla sicurezza<\/li>\n<li>Aumentare le prestazioni del sistema<\/li>\n<\/ul>\n<h3>Una breve storia del filesystem di Unix.<\/h3>\n<p>Iniziamo dando un breve accenno storico al filesystem di Unix, che aiuter\u00e0 a comprendere perch\u00e9 i sistemi in questione possono sembrare cos\u00ec ostici allocchio di un nuovo utente che si avvicina per la prima volta a tale struttura.<br \/>\nIn origine i sistemi Unix erano installati unicamente su grossi mainframe che potevano contenere solo pochi kilobyte di informazioni, ci\u00f2 nonostante i prezzi per questa apparecchiature, (in gergo del ferro) erano elevatissimi, parliamo degli anni 50, un sistema cos\u00ec costoso doveva essere un investimento a lunghissimo termine, sia per le societ\u00e0 che per gli istituti governativi. Tale situazione port\u00f2 ad affrontare uno studio rivolto alla soluzione del problema gestione ottimizzata dell&#8217; hardware.<br \/>\nLa soluzione pi\u00f9 logica, visto che uno dei componenti pi\u00f9 costosi e soggetti a guasti erano i dischi fissi, fu quella di dare la possibilit\u00e0 al sistema operativo di vivere allinterno di un filesystem modulare e di facile manutenzione, riducendo al minimo i tempi di inattivit\u00e0 delle macchine.<br \/>\nMa quale soluzione cos\u00ec innovativa poteva risolvere questi problemi?<br \/>\nSemplicissimo la suddivisione del filesystem in una gerarchia di directoryes autonome e quasi tutte montabili e smontabili a sistema attivo direttamente da software.<br \/>\nSi pens\u00f2 cos\u00ec di suddividere la gerarchia del filesystem in zone con diverse caratteristiche, directories con un elevato grado di staticit\u00e0, altre che necessitavano di frequenti aumenti di spazio, altre ancora che venivano pesantemente utilizzate dal sistema per letture e scritture dati.<br \/>\nLa soluzione adottata risolveva non solo il problema finanziario, ma anche una serie di problemi secondari:<\/p>\n<ul>\n<li>Maggiore flessibilit\u00e0 al sistema<\/li>\n<li>Una pi\u00f9 facile manutenzione<\/li>\n<li>Aggiornamento modulare<\/li>\n<li>Riduzione dei fermi macchina<\/li>\n<li>Maggiore sicurezza e stabilit\u00e0<\/li>\n<\/ul>\n<p>Nacque in quegli anni la struttura del filesystem Unix che conosciamo ancora oggi.<br \/>\nLa possibilit\u00e0 di montare e smontare partizioni in tempo reale per poterle aggiornare o sostituire se guaste, rese la struttura cos\u00ec solida da essere utilizzata, con qualche modifica ed affinamento, per pi\u00f9 di 40 anni.<br \/>\nInfatti, pu\u00f2 capitare che durante la compilazione di particolari software venga richiesto di creare cartelle o link per questioni storiche non pi\u00f9 utilizzate dal cuore del sistema, ma ancora utili per applicativi che sono stati realizzati parecchi anni addietro, ad esempio sendmail, emacs ecc.<\/p>\n<h3>La struttura principale del filesystem.<\/h3>\n<p>Tutti i sistemi Unix oggi esistenti, che siano essi commerciali o liberi, utilizzano la stessa gerarchia di base per le loro installazioni, fanno eccezione alcune distribuzioni di Linux, ottimizzate per altri scopi.<br \/>\nDi seguito riporto un elenco, il pi\u00f9 completo possibile, delle directories oggi presenti nei moderni filesystem, specificando la funzione di ogni directory, non entrando nel dettaglio delle sotto gerarchie di secondo livello:<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/\n<ul>\n<li>\/bin<\/li>\n<li>\/boot<\/li>\n<li>\/chroot<\/li>\n<li>\/dev<\/li>\n<li>\/etc<\/li>\n<li>\/home<\/li>\n<li>\/lib<\/li>\n<li>\/lib[tipo]<\/li>\n<li>\/media<\/li>\n<li>\/mnt<\/li>\n<li>\/opt<\/li>\n<li>\/root<\/li>\n<li>\/sbin<\/li>\n<li>\/srv<\/li>\n<li>\/net<\/li>\n<li>\/tmp<\/li>\n<li>\/usr<\/li>\n<li>\/var<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<td>La directory radice (root directory).<br \/>\nComandi fondamentali per gli utenti di sistema.<br \/>\nFile statici per il caricamento del sistema.<br \/>\nSistemi operativi in fase di sviluppo e test. (Aggiunta dall&#8217;autore Opzionale)<br \/>\nTutti I device di sistema.<br \/>\nFile statici di configurazione del sistema.<br \/>\nHome directory degli utenti. (Opzionale)<br \/>\nLibrerie essenziali condivise dai programmi.<br \/>\nLibrerie di architetture diverse condivise dai programmi. (Opzionale)<br \/>\nMount point per i dispositivi rimovibili cdrom, dvd, cdrw, usb ecc.<br \/>\nMount point per filesystem esterni e temporanei.<br \/>\nApplicativi non standard non necessari al sistema.<br \/>\nDirectory dellutente root, alcuni utilizzano la \/ a tale scopo. (Opzionale)<br \/>\nComandi essenziali per la gestione del sistema.<br \/>\nServer non standard per servizi erogati dal sistema. (Opzionale)<br \/>\nRiservato a filesystem montati via rete. (Aggiunto dall&#8217;autore Opzionale)<br \/>\nFile temporanei degli utenti e degli applicativi. (Opzionale)<br \/>\nGerarchie secondarie non vitali per il sistema.<br \/>\nTutti i dati variabili generati dal sistema.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Per maggiori informazioni si consiglia di consultare il documento Filesystem Hierarchy Standard, non sono stati riportati tutte cartella generate realtime dal sistema durante il suo funzionamento, \/proc, \/sys, \/lost+found e possibili altre.<\/p>\n<h3>Le directory opzionali.<\/h3>\n<p>Come risulta dallelenco sopra riportato alcune directories sono opzionali, cio\u00e8 non sono necessarie per il corretto funzionamento di un sistema di base Unix.<br \/>\nTali cartelle sono comunque presenti in quasi la totalit\u00e0 delle installazioni, ma la loro presenza non e obbligatoria.<br \/>\nAltre cartelle invece come opt, media, srv, lib[tipo] inserite da poco nello standard, sono utilizzate raramente, nelle installazioni di default.<br \/>\nInoltre lo standard suggerisce di non creare le cartelle se non sono utilizzate o necessarie per gli applicativi installati sul sistema.<\/p>\n<h3>La suddivisione del filesystem.<\/h3>\n<p>Come si evince dalle brevi descrizioni storiche, il filesystem e divisibile in alcune macrocategorie, in particolare in 4 tipologie differenti, directories statiche, variabili, condivisibili e non condivisibili.<br \/>\nPer semplificare tale suddivisione si ricorre ad un piccolo schema d&#8217;esempio che ne chiarifica la struttura:<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td><\/td>\n<td><b>condivisibile<\/b><\/td>\n<td><b>non condivisibile<\/b><\/td>\n<\/tr>\n<tr>\n<td><b>statiche<\/b><\/td>\n<td>\/usr<br \/>\n\/opt<\/td>\n<td>\/etc<br \/>\n\/boot<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<\/tr>\n<tr>\n<td><b>variabili<\/b><\/td>\n<td>\/var\/mail<br \/>\n\/var\/spool\/news<\/td>\n<td>\/var\/run<br \/>\n\/var\/lock<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Quindi le cartelle \/usr ed \/opt possono essere condivise e sono di tipo statico, cio\u00e8 contengono dati che non cambiano a sistema attivo senza lintervento di un amministratore o un utente.<br \/>\nMentre le cartelle \/var\/mail e var\/spool\/news sono sempre condivisibili ma non sono statiche, i dati al loro interno possono crescere o diminuire in base al carico di lavoro del server, senza lintervento da parte di un utente.<br \/>\nIdem per le cartelle \/etc e \/boot che per\u00f2 non possono essere condivise perch\u00e9 contengono dati sensibili.<br \/>\nIn fine \/var\/run e \/var\/lock che variano la loro dimensioni sempre restando dati non condivisibili.<br \/>\nTale schema e applicabile alla maggior parte delle directory presenti in un sistema Unix.<br \/>\nQuanto detto in questo breve paragrafo e un primo approccio alle modalit\u00e0 di partizionamento di un sistema Unix, e introduce una delle possibili modalit\u00e0 di partizionamento del filesystem in base alla funzione finale del sistema.<br \/>\nSi fa notare inoltre che le directory che non variano a sistema attivo, potrebbero essere montate in sola lettura sui server di produzione per aumentarne la sicurezza, come si vedr\u00e0 di seguito.<\/p>\n<h3>Tipi di servizi erogati.<\/h3>\n<p>Per poter preparare una strategia di partizionamento ottimizzata e necessario, come prima cosa, capire quale attivit\u00e0 svolger\u00e0 il sistema.<br \/>\nNon \u00e8 pensabile utilizzare lo stesso partizionamento per un server di posta o per una workstation grafica, le loro funzioni sono cos\u00ec differenti che si potrebbero verificare riduzioni nelle prestazioni globali del sistema.<br \/>\nE&#8217; per\u00f2 possibile creare un partizionamento standard di base che sia facilmente modificabile a seconda delle proprie esigenze.<br \/>\nAndiamo a vedere quali sono alcuni tipi di servizi che richiedono una particolare attenzione:<\/p>\n<ul>\n<li>Mail server.<\/li>\n<li>Ftp server.<\/li>\n<li>Server log hub.<\/li>\n<li>Server di stampa.<\/li>\n<li>Workstation multimediale.<\/li>\n<li>Sistemi per sviluppatori.<\/li>\n<li>Web server.<\/li>\n<li>Ambienti multiutente.<\/li>\n<\/ul>\n<p>Ovviamente la lista sopra riportata e solo una minima parte delle possibili applicazioni di un sistema Unix, ma le loro diversit\u00e0 si prestano allo scopo di spiegare le modalit\u00e0 di partizionamento.<\/p>\n<h3>Le modalit\u00e0 di partizionamento.<\/h3>\n<p>Iniziamo ora a spiegare le modalit\u00e0 di partizionamento del sistema di base per poi procedere via via alla gestione di sistemi pi\u00f9 particolari.<br \/>\nAttenzione qualsiasi operazione sul filesystem va affrontata con molta prudenza e solo dopo aver fatto un backup totale del sistema, il pi\u00f9 piccolo errore potrebbe causare la perdita di tutti i vostri dati.<br \/>\nCome detto in precedenza i nostri test e le nostre installazioni, verranno effettuate sulla distribuzione Debian GNU\/Linux, compatibile con lo standard F.H.S, di seguito riportiamo un elenco delle principali directories presenti in una installazione standard:<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/\n<ul>\n<li>.<\/li>\n<li>..<\/li>\n<li>\/bin<\/li>\n<li>\/boot<\/li>\n<li>\/dev<\/li>\n<li>\/etc<\/li>\n<li>\/home<\/li>\n<li>\/initrd<\/li>\n<li>\/lib<\/li>\n<li>\/lost+found<\/li>\n<li>\/media<\/li>\n<li>\/mnt<\/li>\n<li>\/opt<\/li>\n<li>\/proc<\/li>\n<li>\/root<\/li>\n<li>\/sbin<\/li>\n<li>\/srv<\/li>\n<li>\/sys<\/li>\n<li>\/tmp<\/li>\n<li>\/usr<\/li>\n<li>\/var<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/td>\n<td>La directory radice (root directory).<br \/>\nLa directory attuale.<br \/>\nLa directory precedente.<br \/>\nComandi fondamentali per gli utenti di sistema.<br \/>\nFile statici per il caricamento del sistema.<br \/>\nTutti I device di sistema.<br \/>\nFile statici di configurazione del sistema.<br \/>\nHome directory degli utenti. (Opzionale)<br \/>\nDirectory del ram file system per il caricamento dei moduli al boot.<br \/>\nLibrerie essenziali condivise dai programmi.<br \/>\nContiene informazioni su files cancellati e inode danneggiati.<br \/>\nMount point per i dispositivi rimovibili cdrom, dvd, cdrw, usb ecc.<br \/>\nMount point per filesystem esterni e temporanei.<br \/>\nApplicativi non standard non necessari al sistema.<br \/>\nDirectory virtuale per informazioni sul sistema runtime.<br \/>\nDirectory dellutente root, alcuni utilizzano la \/ a tale scopo. (Opzionale)<br \/>\nComandi essenziali per la gestione del sistema.<br \/>\nServer non standard per servizi erogati dal sistema. (Opzionale)<br \/>\nDirectory virtuale per informazioni sul sistema runtime.<br \/>\nFile temporanei degli utenti e degli applicativi. (Opzionale)<br \/>\nGerarchie secondarie non vitali per il sistema.<br \/>\nTutti i dati variabili generati dal sistema.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sono stati omessi i link cdrom initrd.img e vmlinuz che vengono utilizzati per l&#8217;installazione il boot da sistema e non sono standard, inoltre tali link puntano direttamente ai file in \/boot e alla cartella \/mnt\/cdrom , dove effettivamente dovrebbero risedere, solitamente tali link vengono rimossi dopo aver modificato i necessari file di configurazione in \/etc\/fstab \/boot\/grub\/menu.lst.<br \/>\nSi fa notare che le directory \/proc e \/sys sono create direttamente dal sistema a runtime, oltre \/lost+found generata in fase di formattazione del filesystem, approfondiremo di seguito la funzione di tali directories.<\/p>\n<ul>\n<li><b>\/boot<\/b> &#8211; File statici per il caricamento del sistema.<\/li>\n<\/ul>\n<p>Per iniziare e sempre meglio separare anche la partizione di \/boot per questioni di portabilit\u00e0, infatti su alcuni sistemi, con dischi di grosse dimensioni e bios particolarmente vecchi, tale partizione deve essere entro i primi 1024 cilindri del disco per permetterne la lettura in fase di avvio, oltre a ci\u00f2 su alcune architetture la partizione di boot dovr\u00e0 essere obbligatoriamente di tipo fat o file system similari per poter essere utilizzata durante l&#8217;avvio del sistema.<\/p>\n<ul>\n<li><b>\/<\/b> &#8211; La directory radice.<\/li>\n<\/ul>\n<p>Dovr\u00e0 obbligatoriamente essere presente e la partizione di root o radice rappresentata con il solo \/ da non confondere con la \/root dove solitamente risiede la home directory dell&#8217;utente root, lamministratore del sistema, come precedentemente menzionato le directory \/proc e \/sys sono generate runtime dal kernel e contengono solo dati relativi alla configurazione e allo stato del sistema, tali directory non esistono sul disco ma solo in ram, mentre la directory \/lost+found viene creata durante la fase di formattazione del filesystem e generata ad ogni check se non presente, al suo interno andranno inserite tutte le anomalie riscontrate durante il controllo del filesystem oltre ad eventuali inode corrotti e recuperati, ovviamente in ogni partizione formattata verr\u00e0 generata la cartella \/lost+found, tutte queste directory sono proprie dei sistemi con kernel Linux e non sempre presenti in altri ambienti.<\/p>\n<ul>\n<li><b>\/tmp<\/b> &#8211; File temporanei degli utenti e degli applicativi.<\/li>\n<\/ul>\n<p>Altra cartella da tenere su una partizione separata e la \/tmp dove vengono inseriti tutti i dati temporanei che gli applicativi e i demoni generano durante la loro esecuzione, quindi rimangono nella tmp solo per la durata di un determinato processo e poi vengono eliminati.<br \/>\nAttenzione, al riavvio e buona norma eliminare tutto il contenuto di tmp per ragioni di sicurezza.<\/p>\n<ul>\n<li><b>swap<\/b> &#8211; Memoria virtuale.<\/li>\n<\/ul>\n<p>La memoria virtuale o partizione di swap che conterr\u00e0 parte delle elaborazioni che la ram non riesce a gestire, ottima strategia sarebbe posizionarla su un canale ed un disco completamente autonomi per velocizzarne gli accessi in lettura e scrittura, il tutto verr\u00e0 poi bilanciato dal kernel stesso.<\/p>\n<ul>\n<li><b>\/home<\/b> &#8211; Home directory degli utenti.<\/li>\n<\/ul>\n<p>La directory \/home \u00e8 sempre meglio separarla dal resto del sistema per rendere possibile eventuali update per mancanza di spazio o semplicemente evitare problemi di saturazione dellintero filesystem, in particolare sui sistemi multiutenza.<\/p>\n<ul>\n<li><b>\/usr<\/b> &#8211; Gerarchie secondarie non vitali per il sistema.<\/li>\n<\/ul>\n<p>Nella cartella \/usr vengono inseriti quasi la totalit\u00e0 dei programmi standard installati nei sistemi Unix \u00e8 quindi una partizione che necessita di spazio elevato per contenere i binari e sorgenti degli applicativi, compresi quelli relativi al kernel.<\/p>\n<ul>\n<li><b>\/var<\/b> &#8211; Tutti i dati variabili generate dal sistema.<\/li>\n<\/ul>\n<p>Tutti i dati dinamici e variabili, mail, log, siti web, cache ecc. verranno inseriti nella cartella \/var il che comporta lassegnazione di una buona quantit\u00e0 di spazio alla partizione o meglio ancora un disco pi\u00f9 performante per ottenere prestazioni migliori.<\/p>\n<ul>\n<li><b>\/var\/log<\/b> &#8211; I log provenienti dall&#8217;host e dai sistemi remoti.<\/li>\n<\/ul>\n<p>In fine e sempre consigliato separare la zona dei logs di sistema che tendenzialmente tende a crescere, autonomamente, fino a saturare lo spazio disponibile creando possibili problemi se non controllata.<\/p>\n<p>Altre directory che potrebbero essere candidate a risedere su partizioni separate sono le seguenti:<\/p>\n<p><i>Test nuovi applicativi non standard:<\/i><\/p>\n<ul>\n<li><b>\/opt<\/b> &#8211; Contiene nuovi applicativi non ancora standardizzati che non erogano servizi.<\/li>\n<\/ul>\n<p><i>Test nuovi demoni non standard:<\/i><\/p>\n<ul>\n<li><b>\/srv<\/b> &#8211; Nuovi demoni non standard che erogano servizi ad altri sistemi via rete o altro.<\/li>\n<\/ul>\n<p><i>Macchina da compilazione:<\/i><\/p>\n<ul>\n<li><b>\/usr\/src<\/b> &#8211; Contiene tutti i sorgenti per le compilazioni ed i binari una volta terminato.<\/li>\n<\/ul>\n<p><i>Workstation multimediale:<\/i><\/p>\n<ul>\n<li><b>\/usr\/local<\/b> &#8211; Contiene tutti i binari installati dai pacchetti Debian.<\/li>\n<\/ul>\n<p><i>Server posta:<\/i><\/p>\n<ul>\n<li><b>\/var\/mail<\/b> &#8211; Vi vengono inserite tutte le code delle mail.<\/li>\n<\/ul>\n<p><i>Server ftp:<\/i><\/p>\n<ul>\n<li><b>\/home\/ftp<\/b> &#8211; Conterr\u00e0 tutti i dati relativi ai siti ftp.<\/li>\n<\/ul>\n<p><i>Server di stampa:<\/i><\/p>\n<ul>\n<li><b>\/var\/spool\/lpd<\/b> &#8211; Sono inserite tutte le code di stampa.<\/li>\n<\/ul>\n<p><i>Server web:<\/i><\/p>\n<ul>\n<li><b>\/var\/www<\/b> &#8211; Contiene tutti i dati relativi ai siti web comprese le pagine.<\/li>\n<\/ul>\n<p><i>Server sql:<\/i><\/p>\n<ul>\n<li><b>\/var\/lib\/[db]<\/b> &#8211; Dove andranno inseriti i database dei vari engine sql.<\/li>\n<\/ul>\n<p><i>Server proxy:<\/i><\/p>\n<ul>\n<li><b>\/var\/spool\/squid<\/b> &#8211; Contiene tutti i dati relativi salvati dal cache server (proxy server).<\/li>\n<\/ul>\n<p>E sempre consigliato creare le partizioni sopra elencate solo se gli applicativi o i serventi relativi sono installati e hanno scopo primario nel sistema, \u00e8 ovviamente inutile creare una partizione \/var\/lib\/[db] se il sistema non ha un database installato o se il db installato e solo di marginale importanza.<br \/>\nLelenco di configurazioni riportato sopra e solo una parte delle possibili configurazioni che si potrebbero trovare in ambiente reale, ma seguendo lo schema di base e variando le percentuali utilizzate o addirittura il numero di dischi, con raid, lvm o evms, si pu\u00f2 costruire qualsiasi tipologia di server, la scalabilit\u00e0 e quasi illimitata.<br \/>\nTutte le configurazioni particolari vanno studiate di volta in volta in base alle specifiche esigenze, e la funzionalit\u00e0 finale del sistema installato.<\/p>\n<h3>Dimensionamento delle partizioni.<\/h3>\n<p>Uno dei problemi fondamentali, durante la fase di progettazione, \u00e8 stabilire a priori le dimensioni che dovranno avere le varie partizioni, dato che dopo aver preparato il supporto di base su cui poggiare il filesystem non sar\u00e0 banale modificarlo.<br \/>\nVediamo ora come impostare le dimensioni percentuali che dovranno avere le singole partizioni, queste percentuali sono derivate leggendo documenti relativi a sistemi Unix in particolare sistemi Linux e BSD oltre allesperienza personale maturata nel tempo.<br \/>\nI modi per procedere possono essere due fondamentalmente:<\/p>\n<ul>\n<li>Fingere di avere sempre un sistema di base minimo a dimensione fissa e lo spazio in esubero suddividerlo in base alle funzionalit\u00e0 del sistema in esame, o lasciarlo per futuri scopi.<\/li>\n<li>Assegnare una certa percentuale per ogni partizione che varia con il variare delle dimensioni del supporto sul quale andr\u00e0 installato il sistema.<\/li>\n<\/ul>\n<p>Di seguito verr\u00e0 riportato il partizionamento di base, e relative dimensioni per partizione consigliate da Debian, grazie al quale il nostro sistema riesce e garantire una maggiore sicurezza oltre a migliori performance, tali partizioni andranno sempre create ad esclusione di particolari ambienti, quali sistemi embadded, pc portatitili, workstation grafiche, workstation per l&#8217;office automation, apparati con particolari caratteristiche hardware o richieste non standard che verranno trattati, almeno in parte, nel seguito del documento.<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>\/tmp<\/li>\n<li>swap<\/li>\n<li>\/home<\/li>\n<li>\/opt<\/li>\n<li>\/srv<\/li>\n<li>\/usr<\/li>\n<li>\/usr\/local<\/li>\n<li>\/var<\/li>\n<li>\/var\/log<\/li>\n<\/ul>\n<\/td>\n<td>File necessari all&#8217;avvio del sistema (10MB).<br \/>\nSistema di base (150-250MB).<br \/>\nFile e dati temporanei degli applicativi e dei serventi (40-100MB).<br \/>\nMemoria virtuale (2 Volte la RAM).<br \/>\nHome directory degli utenti (128-512M per user).<br \/>\nApplicativi non standard (512MB-1GB a secondo degli applicativi).<br \/>\nServizi non standard erogati via rete o altri metodi (512MB-1GB secondo i demoni).<br \/>\nApplicativi standard binari e sorgenti di sistema (3-6GB).<br \/>\nProgrammi particolari locali del sistema (1-3GB).<br \/>\nFile dinamici generati dagli applicativi (40MB-3GB).<br \/>\nLog di sistema o log server remoti (256-512MB).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Di seguito riportiamo due esempi che illustrano entrambi i modi di procedere, evidenziando la validit\u00e0 di entrambe le scelte lasciando decidere al sistemista le proprie preferenze.<br \/>\nUn sistema server di base con tutti i servizi pi\u00f9 comuni installati occupa circa 500MB di spazio, senza server X, installando quest&#8217;ultimo con un windows manager si pu\u00f2 arrivare tranquillamente a 1,5\/3GB di spazio occupato, e ovviamente sconsigliato installare un sistema a finestre in ambiente di produzione se non esplicitamente richiesto come funzionalit\u00e0, mentre workstation grafiche ad uso generico possono arrivare fino a 5-6GB.<br \/>\nSupponiamo la peggiore delle ipotesi e immaginiamo di dover installare un sistema X server che inoltre eroghi servizi mail, database, web, ftp, proxy, stampa oltre all&#8217;accesso remoto da parte di utenti e sviluppatori, il partizionamento di base sar\u00e0 sempre il seguente:<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>\/tmp<\/li>\n<li>swap<\/li>\n<li>\/home<\/li>\n<li>\/opt<\/li>\n<li>\/srv<\/li>\n<li>\/usr<\/li>\n<li>\/usr\/local<\/li>\n<li>\/usr\/share<\/li>\n<li>\/usr\/src<\/li>\n<li>\/var<\/li>\n<li>\/var\/log<\/li>\n<li>\/var\/spool\/squid<\/li>\n<li>\/var\/mail<\/li>\n<li>\/var\/spool\/lpd<\/li>\n<li>\/var\/www<\/li>\n<li>\/var\/lib\/postgres\/data<\/li>\n<\/ul>\n<\/td>\n<td>100MB File necessari all&#8217;avvio del sistema.<br \/>\n3GB Necessario per il funzionamento base del sistema.<br \/>\n2GB Conterr\u00e0 i file temporanei degli applicativi e dei demoni.<br \/>\n2,5 volte la dimensione della ram, meglio se disposta su un disco separato.<br \/>\n[X]GB Varia con il numero di utenze e lo spazio a loro riservato.<br \/>\n[X]GB Dipende dal numero di applicativi non standard.<br \/>\n[X]GB Come per opt ma per i demoni che erogano servizi.<br \/>\n2GB Contiene tutti i binari che gli utenti possono.<br \/>\n2GB Conterr\u00e0 tutti gli applicativi standard degli utenti.<br \/>\n1GB Sono presenti tutti i documenti di base del sistema operativo.<br \/>\n[X]GB Repository per tutti i sorgenti del sistema.<br \/>\n2GB Contiene tutti i dati dinamici.<br \/>\n3GB contiene i log di sistema e le relative rotazioni.<br \/>\n[X]GB Saranno archiviate tutte le pagine navigate dagli utenti.<br \/>\n[X]GB dipende dal numero di utenti che utilizzeranno il sistema.<br \/>\n[X]GB Dipende dal numero di utenti che utilizzano il print server.<br \/>\n[X]GB dipende dal numero di web inseriti.<br \/>\n[X]GB dipende dal numero e dalla dimensione dei db installati.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Come si pu\u00f2 notare il sistema di base ha sempre le stesse dimensioni fisse e le partizioni relative a servizi particolari vanno dimensionate in base alla mole di lavoro che il sistema dovr\u00e0 sostenere, \u00e8 ovvio che questo \u00e8 solo un esempio e che non sono solo le partizioni che vanno correttamente dimensionate, ma si riesce gi\u00e0 a capire che le 8 partizioni di base rimangono sempre fisse per un totale di circa 15GB oltre allo spazio necessario per la partizione di swap, supponendo di possedere 512MB di ram fisica calcoliamo circa 1,5GB di spazio per la memoria virtuale, si ricorda che tale area non dovrebbe mai superare i 2GB per ragioni di compatibilit\u00e0 e performance se tale valore viene superato e sempre meglio aggiungere ram fisica e lasciare fisso a 2GB la dimensione della swap area o aggiungere altre partizioni sempre da 2GB dette spindle, quindi il totale diventerebbe circa 17GB ben superiore alla quantit\u00e0 minima necessaria al sistema di base precedentemente menzionata cio\u00e8 3GB.<br \/>\nLe dimensioni sopra riportate sono sempre riferite a server di buone capacit\u00e0 ma possono essere notevolmente ridotte in base al tipo di installazione.<br \/>\nCi\u00f2 ci fa capire che le partizioni delle quali non conosciamo a priori lo spazio necessario saranno comunque facilmente gestibili, inserendo dischi di dimensioni consone alla mole del servizio da erogare o utilizzando dischi logici e dinamici , lvm, evms modificabili per dimensione senza compromettere il sistema di base. Lo spazio sopra riportato ,17GB, \u00e8 oggi una quantit\u00e0 irrisoria e anche il pi\u00f9 piccolo sistema server dispone di tali capacit\u00e0.<br \/>\nInoltre se avessimo a disposizione un disco con capacit\u00e0 inferiore a 10-20GB si ricorda che l&#8217;installazione di base raramente supera i 500MB in modalit\u00e0 testuale e i 3GB in ambiente grafico, quindi in realt\u00e0 lo spazio disponibile per poter avere un sistema base funzionante sar\u00e0 facilmente ricavabile.<br \/>\nPassiamo ora a valutare il secondo metodo detto a percentuali, ovvero non si danno delle dimensioni fisse alle partizioni di base ma si calcolano le dimensioni conoscendo a priori lo spazio disponibile sul supporto nel quale andr\u00e0 installato il sistema.<br \/>\nSupponendo di avere a disposizione un disco fisso sata da 30GB, un ulteriore disco eide da 10GB ed in fine un disco scsi da 150GB e dover installare un sistema che debba erogare i seguenti servizi:<br \/>\nweb, ftp, proxy si procede come segue:<br \/>\nSul disco eide da 10GB si installer\u00e0 il sistema di base, sul disco sata andr\u00e0 inserita la \/home directory ed in fine il servizi web e proxy suddivisi sul disco da 150GB scsi.<br \/>\nSi evidenzia che tali percentuali non sono fisse ma possono variare in base alle caratteristiche del sistema che si dovr\u00e0 installare ed \u00e8 per questo che si inseriranno dei range di percentuale che dovranno essere presi in considerazione caso per caso, mantenendo per\u00f2 costante le partizioni di base.<br \/>\nProcediamo ora a mostrare il risultato dall&#8217;esempio sopra selezionato.<\/p>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/<\/li>\n<li>\/boot<\/li>\n<li>\/tmp<\/li>\n<li>swap<\/li>\n<li>\/home<\/li>\n<li>\/opt<\/li>\n<li>\/srv<\/li>\n<li>\/usr<\/li>\n<li>\/usr\/local<\/li>\n<li>\/usr\/share<\/li>\n<li>\/var<\/li>\n<li>\/var\/log<\/li>\n<li>\/var\/cache\/squid<\/li>\n<li>\/var\/www<\/li>\n<\/ul>\n<\/td>\n<td>1-10% Necessario per il funzionamento base del sistema (eide).<br \/>\n0,1-0,5% Tutti i file necessari al boot del sistema (eide).<br \/>\n1-5% Conterr\u00e0 i file temporanei degli applicativi e dei demoni(eide).<br \/>\n2,5 Volte la dimensione della ram, meglio se disposta su un disco separato(sata).<br \/>\n5-100% il numero di utenze va alternato all&#8217;utilizzo delle quote (sata).<br \/>\n1-50% In base ai software opzionali non standard installati(sata).<br \/>\n1-50% Come per opt ma per i demoni che erogano servizi.(sata).<br \/>\n10-40% Contiene tutti i binari che gli utenti possono (eide).<br \/>\n1-5% Conterr\u00e0 tutti gli applicativi standard degli utenti (eide).<br \/>\n1-10% Sono presenti tutti i documenti di base del sistema operativo (eide).<br \/>\n2-30% Contiene tutti i dati dinamici (eide).<br \/>\n3-10% Contiene i log di sistema e le relative rotazioni (eide).<br \/>\n10-50% Saranno archiviate tutte le pagine navigate dagli utenti (scsi).<br \/>\n10-50% GB Dipende dal numero di web inseriti (scsi).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Di seguito riportiamo lo schema base per il partizionamento in diverse situazioni, non vengono volutamente riportate le dimensioni per partizione che possono variare notevolmente da installazione ad installazione.<\/p>\n<h4>Server Generico:<\/h4>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>\/tmp<\/li>\n<li>swap<\/li>\n<li>\/home<\/li>\n<li>\/opt<\/li>\n<li>\/srv<\/li>\n<li>\/usr<\/li>\n<li>\/usr\/local<\/li>\n<li>\/var<\/li>\n<li>\/var\/log<\/li>\n<\/ul>\n<\/td>\n<td>File necessari all&#8217;avvio del sistema.<br \/>\nSistema di base.<br \/>\nFile e dati temporanei degli applicativi e dei serventi.<br \/>\nMemoria virtuale.<br \/>\nHome directory degli utenti.<br \/>\nApplicativi non standard.<br \/>\nServizi non standard erogati via rete o altri metodi.<br \/>\nApplicativi standard binari e sorgenti di sistema.<br \/>\nProgrammi particolari locali del sistema.<br \/>\nFile dinamici generati dagli applicativi.<br \/>\nLog di sistema o log server remoti.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h4>Workstation Grafica:<\/h4>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>swap<\/li>\n<li>\/usr<\/li>\n<li>\/var<\/li>\n<\/ul>\n<\/td>\n<td>File necessari all&#8217;avvio del sistema.<br \/>\nSistema di base.<br \/>\nMemoria virtuale.<br \/>\nApplicativi standard binari e sorgenti di sistema.<br \/>\nFile dinamici generati dagli applicativi.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h4>Workstation di sviluppo:<\/h4>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>\/tmp<\/li>\n<li>swap<\/li>\n<li>\/opt<\/li>\n<li>\/srv<\/li>\n<li>\/usr<\/li>\n<li>\/usr\/src<\/li>\n<li>\/var<\/li>\n<li>\/var\/log<\/li>\n<\/ul>\n<\/td>\n<td>File necessari all&#8217;avvio del sistema.<br \/>\nSistema di base.<br \/>\nFile e dati temporanei degli applicativi e dei serventi.<br \/>\nMemoria virtuale.<br \/>\nApplicativi non standard.<br \/>\nServizi non standard erogati via rete o altri metodi.<br \/>\nApplicativi standard binari e sorgenti di sistema.<br \/>\nProgrammi particolari locali del sistema.<br \/>\nFile dinamici generati dagli applicativi.<br \/>\nLog di sistema o log server remoti.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h4>Pc portatile:<\/h4>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/boot<\/li>\n<li>\/<\/li>\n<li>swap<\/li>\n<li>\/mnt\/storage<\/li>\n<\/ul>\n<\/td>\n<td>File necessari all&#8217;avvio del sistema.<br \/>\nSistema di base.<br \/>\nMemoria virtuale.<br \/>\nArea di stoccaggio dati e backup informazioni utente.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h4>Apparati embadded:<\/h4>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>\n<ul>\n<li>\/<\/li>\n<\/ul>\n<\/td>\n<td>Sistema di base.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Per gli apparati embadded non sono necessarie particolari tipi di partizionamento, l&#8217;unica partizione che potrebbe essere presente e la radice, questi apparecchi possono addirittura completamente stravolgere la struttura del filesystem omettendo la maggior parte delle normali directory riducendo il sistema al minimo ma in grado di avviarsi, molto spesso non e neppure presente un disco fisso ed il filesystem viene generato e caricato da memorie flash direttamente in ram.<\/p>\n<h3>Migliorie alla sicurezza.<\/h3>\n<p>Anche se a primo impatto il filesystem sembrerebbe essere ininfluente dal punto di vista della sicurezza di sistema, un partizionamento non corretto potrebbe dare la possibilit\u00e0 ad un malintenzionato di tentare un attacco D.O.S (Denial of services).<br \/>\nGli attacchi d.o.s sono i pi\u00f9 facili da realizzare, ed il loro scopo, come dice il nome stesso, e di provocare cessazione dei servizi erogati dal server attaccato.<br \/>\nUno dei modi pi\u00f9 banali per portare a termine tale attacco, ad esempio, \u00e8 di saturare la banda a disposizione del sistema, oppure riempire completamente il filesystem, fino alla completa saturazione della macchina, ad esempio inviando una grossa mole di mail ( spam ), su un server non correttamente partizionato o senza controlli sulle quote disponibili agli utenti potrebbe saturare lintero filesystem rendendo il sistema di posta inutilizzabile.<br \/>\nAltro attacco e la possibilit\u00e0 di inserire degli script in particolari zone del filesystem per sostituire dei comandi standard di sistema con delle versioni modificate, che oltre ad eseguire la richiesta effettuata aprono connessioni o peggio ancora distruggono file o inviano dati personali allesterno, solitamente questi file sono inseriti in cartelle con particolari permessi come ad esempio \/tmp, e infatti buona norma vuotare completamente la directory \/tmp ad ogni riavvio del sistema.<br \/>\nSeparando le partizioni si ha la possibilit\u00e0 di montare certe zone sensibili e indispensabili per il sistema in modalit\u00e0 di sola lettura, evitando che si possano sovrascrivere i comandi fondamentali con copie, dei binari originali, modificate.<br \/>\nE&#8217; inoltre possibile evitare problemi con applicativi, che se non seguiti da politiche di archiviazione ben controllate o bug inaspettati, potrebbero saturare il sistema dallinterno.<br \/>\nInoltre in situazioni particolari il partizionamento protegge anche da errori umani, un utente che erroneamente elimina una parte del filesystem, non necessita della completa reinstallazione del sistema ma semplicemente del recupero dal backup della sola partizione eliminata.<br \/>\nAltra configurazione grazie al partizionamento \u00e8 la possibilit\u00e0 di montare filesystem formattati in modo diverso, ad esempio utilizzare un normale ext2, supportato di default da qualsiasi kernel, per la directory radice \/ ed una formattazione con supporto journalling nelle zone dove vengono eseguiti gli applicativi, evitando inutili check di sistema e perdite di dati, in caso di shutdown non corretti, lasciando per\u00f2 la possibilit\u00e0 di accedere al sistema in caso di necessit\u00e0 con un normale floppy di avvio.<br \/>\nAltra possibilit\u00e0 \u00e8 di creare una partizione chroot dove poter eseguire codice pericoloso o chiudere utenti con determinati diritti evitando che escano da tale zona, ricreando un filesystem minimale che consenta agli utenti di eseguire solamente i software e loro disposizione ed evitando che possano fare qualsiasi cosa al di fuori di tale gabbia, ad utenti ed applicativi tale configurazione risulta completamente trasparente.<br \/>\nUltima possibilit\u00e0 data dal partizionamento \u00e8 di creare partizioni di sistema completamente criptate e decriptate runtime dal kernel, garantendo cos\u00ec una sicurezza quasi totale dei dati anche da accessi diretti al supporto in caso di furto, e inoltre possibile proteggere determinate zone del filesystem, che contengono dati sensibili, lasciando la solita radice \/ sempre in chiaro per potervi accedere in caso di necessit\u00e0 ed in fine si pu\u00f2 scegliere, di criptate anche la partizione di swap, evitando cos\u00ec che un malintenzionato possa attraverso appositi programmi, debugger, leggerne il contenuto e risalire a dati riservati, password e pezzi di codice, si evidenzia che lo swap \u00e8 utilizzato per il salvataggio temporaneo dei dati che transitano dalla ram quando questa \u00e8 satura, tale partizione pur non essendo obbligatoria, potrebbe essere creata come un normale file su disco fisso,diminuendo le performance riduce ulteriormente la sicurezza del sistema, infatti se messa in un file potrebbe essere copiata per recuperarne informazioni importanti come sopra menzionato.<\/p>\n<h3>Aumentare le prestazioni del sistema.<\/h3>\n<p>Giocando con il partizionamento e anche possibile migliorare le prestazioni di sistema.<br \/>\nCome esempio di base si riporta le modalit\u00e0 di gestione della partizione di swap.<br \/>\nIn situazioni particolari, grosse quantit\u00e0 di compilazioni oppure una notevole mole di applicativi, \u00e8 buona norma destinare un bus e pi\u00f9 dischi alla partizione di swap, il kernel stesso penser\u00e0 al bilanciamento dei carichi, non influenzando il bus di controllo dei dischi dove vengono eseguite le normali operazioni di I\/O.<br \/>\nAltra miglioria linserimento in una macchina con bus standard a basso costo ( ide, eide, ecc ) di una serie di dischi scsci in raid, lvm o evms ecc, formattando le unit\u00e0 logiche con filesystem , jfs, xfs per aumentare le performance nelle operazioni di I\/O e riducendo i costi dovuti allacquisto di hardware ad alte prestazioni dove non necessario.<br \/>\nE&#8217; inoltre possibile testare nuove installazioni di sistemi operativi diversi, sempre della famiglia Unix, in partizioni separate e di facile sostituzione con dischi e supporti a basso costo, potendo cos\u00ec utilizzare lo stesso hardware sia come piattaforma di produzione che di sviluppo il tutto con la massima tranquillit\u00e0.<\/p>\n<h3>Conclusioni.<\/h3>\n<p>Le situazioni dove un partizionamento di base ben progettato possono essere molto vantaggiose sono molteplici, e qui ne sono state descritte solo alcune.<br \/>\nChiudiamo il documento ricordando che le informazioni sopra riportate sono solo dei suggerimenti e non un must da seguire in ogni occasione.<br \/>\nPer tutti coloro che si domandano perch\u00e9 scrivere un documento per un argomento cos\u00ec banale, vorrei ricordare che se una casa poggia su solide fondamenta sar\u00e0 sempre pi\u00f9 difficile abbatterla.<br \/>\nPer qualsiasi miglioria o critica al documento e sufficiente inviare una mail a <a href=\"mailto:%20mirko.venieri@openrad.net\">Mirko Venieri<\/a>, tutte le critiche, se costruttive, sono ben accette.<\/p>\n<p>Di seguito riportiamo per completezza un elenco dei siti e dei documenti utilizzati per realizzare il presente testo.<\/p>\n<h3>Siti Consultati.<\/h3>\n<table width=\"100%\">\n<tbody>\n<tr>\n<td>Sito ufficiale Debian:<br \/>\nLinux security com:<br \/>\nSito ufficiale FreeBSD:<br \/>\nLinux documentation Project:<br \/>\nItalian documentation project:<\/td>\n<td><a href=\"http:\/\/www.debian.org\/\">http:\/\/www.debian.org\/<\/a><br \/>\n<a href=\"http:\/\/www.linuxsecurity.com\/\">http:\/\/www.linuxsecurity.com\/<\/a><br \/>\n<a href=\"http:\/\/www.freebsd.org\/\">http:\/\/www.freebsd.org\/<\/a><br \/>\n<a href=\"http:\/\/tldp.org\/\">http:\/\/tldp.org\/<\/a><br \/>\n<a href=\"http:\/\/it.tldp.org\/\">http:\/\/it.tldp.org\/<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Documenti consultati.<\/h3>\n<p>Man page del sistema Debian GNU\/Linux<br \/>\napt howto<br \/>\nGuida a dselect per principianti<br \/>\nIntroduction to Backing Up and Restoring Data<br \/>\nIntroduction to Intrusion Protection and Network Security<br \/>\nIntroduction to Physical Security and Security of Services<br \/>\nIntroduction to Securing Data in Transit<br \/>\nAdvanced BashScripting Guide<br \/>\nThe Debian GNU\/Linux FAQ<br \/>\nEVMS User Guide<br \/>\nInstallazione di Debian GNU\/Linux.<br \/>\nLa guida Debian<br \/>\nThe Linux System Administrator&#8217;s Guide<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Autore: Mirko Venieri Collaboratori: Pietro Ventura Introduzione Nel presente documento verranno descritte le modalit\u00e0 di partizionamento e gestione di un filesystem Unix-Like, ottimizzandone prestazioni e sicurezza di base. Esistono svariati metodi per selezionare le modalit\u00e0 di suddivisione di un disco fisso, dove andr\u00e0 installato un filesystem Unix-Like, come si vedr\u00e0 in seguito. In base a &hellip; <a href=\"https:\/\/www.openrad.org\/?p=21\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">Partizionamento base per sistemi Unix<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-21","post","type-post","status-publish","format-standard","hentry","category-manuali"],"_links":{"self":[{"href":"https:\/\/www.openrad.org\/index.php?rest_route=\/wp\/v2\/posts\/21"}],"collection":[{"href":"https:\/\/www.openrad.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.openrad.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.openrad.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.openrad.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=21"}],"version-history":[{"count":0,"href":"https:\/\/www.openrad.org\/index.php?rest_route=\/wp\/v2\/posts\/21\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.openrad.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=21"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.openrad.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.openrad.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}