Volando come un Rasteriz

"Un colore unico: impossibile da dipingere" – Luca "masterix" Longo
  • rss
  • Homepage
  • Cose varie
  • Howto & Tips
    • jQuery
    • PHP
  • Lyrics
  • Software
  • Contattami
  • Registrati
  • Collegati

[TIP] /tmp non eseguibile su linux

Luca Longo | 22 gennaio 2010

Chiunque utilizzi un server web sotto linux, si sarà reso conto che buona parte delle cose temporanee vanno a finire nella cartella /tmp.

Tale cartella, essendo un punto di riferimento noto, spesso viene utilizzata negli script di default delle configurazioni. Questo comporta però che anche gli upload effettuati, ad esempio, tramite PHP vadano a finire qui: questo causa spesso “l’apertura” del sistema all’esecuzione di exploit, specie se si usano in esso piattaforme opensource come Joomla, Wordpress, Mambo, ecc.

Per risolvere, in parte, questo problema, possiamo rendere la directory /tmp non eseguibile. Per fare ciò, potremo sia modificare il file /etc/fstab aggiungendo noexec al mount della directory tmp, sia eseguire questo semplice comando:

# mount -o remount,noexec /tmp

Fate bene attenzione, però. La maggior parte degli script per la gestione dei pacchetti (come apt, yum, ecc), sfruttano questa dir per l’esecuzione di comandi temporanei, quindi, se rendete non eseguibile la directory, nessun file potrà essere eseguito.

Se avete comunque la necessità di eseguire qualcosa, potete temporaneamente lanciare il comando opposto a quello sopra:

# mount -o remount,exec /tmp

Una volta terminata l’installazione dei vostri pacchetti, potrete lanciare nuovamente il comando sopra con il noexec.

  • Google Reader
  • Twitter
  • Digg
  • Oknotizie
  • Yahoo Buzz
  • Reddit
  • Technorati Favorites
  • Ping
  • StumbleUpon
  • Facebook
  • Delicious
  • PrintFriendly
  • Condividi questo testo
Comments
Nessun Commento »
Categorie
Howto & Tips
Tags
exec, fstab, gentoo, joomla, mambo, mount, no exec, noexec, non eseguibile, remount, security, sicurezza, tmp, ubuntu, wordpress, wp, yum
Commenti RSS Commenti RSS
Trackback Trackback

Creare i backup di sistema con Linux [parte 1]

Luca Longo | 2 gennaio 2010

Una delle problematiche che affligge di più chi gestisce un server (anche solo casalingo), è senza ombra di dubbio il backup e la sua gestione. Non effettuare un backup oppure non verificarne la sua integrità, può senza dubbio essere letale in caso di malfunzionamento del sistema. Sostanzialmente un backup ben fatto e ben pianificato dovrebbe annullare o quanto meno tamponare i malfunzionamenti e permettere al gestore di riportare tutto alla normalità in tempi brevi e con il minimo “dolore” per chi usufruisce del servizio offerto.

Tuttavia, prima di pianificare un backup, è necessario domandarsi quali siano realmente i dati necessari da inserire in un backup. Grosso modo, le cose fondamentali da salvare sono quelle che analizzeremo qui di seguito.

Configurazioni del server

Solo salvando queste configurazioni sarà possibile ripristinare un servizio. Ad esempio, se sul nostro server gira un server di posta ed un server web, non possiamo ignorare il salvataggio delle loro configurazioni.

I dati degli utenti

Come ogni sistema operativo che si rispetti, anche in Linux ogni utente ha il suo spazio (solitamente in /home/nome_utente). Potrebbe essere necessario (ma non fondamentale… dipende dai casi!) salvare queste directory per permettere ai vostri utenti il recupero dei dati salvati. Questi però possono essere anche presentati in forma diversa. Se avete degli utenti di posta, dovrete pianificare il salvataggio della loro Mailbox, se avete dei siti internet dovrete salvare la root di ogni sito, e così via.

Tuttavia, sappiamo benissimo che lo spazio su un disco di backup non è infinito e, a meno che non abbiate a disposizione budget faraonici, dovreste cercare di selezionare con parsimonia tutto: questo anche in virtù del fatto che più dati andremo a salvare e maggiore sarà il tempo che ci impiegheremo per il recupero. Tra i files che possono essere ignorati dal backup, sicuramente abbiamo i binari (eseguibili): questi possiamo tranquillamente installarli nuovamente.

Se è vero che ripristinare un backup occupa del tempo, è anche vero che effettuarlo, di volta in volta, è anche tempo occupato (ma non perso!!!). Esistono diverse forme di backup, ma tra le più usate, sicuramente troviamo il backup completo e il backup incrementale.

Proviamo ora a simulare la creazione dei backup, immaginando che:

  • il disco origine sia /dev/hda1
  • il disco di backup sia /dev/sda1

Il backup completo

Il backup completo, ogni qual volta viene eseguito, effettua un nuovo backup partendo da zero. Il suo funzionamento è uno tra i più semplici, classici e funzionali. Tuttavia, effettuare un backup completo ha delle gravi incidenze sul tempo impiegato, quindi conviene pianificarlo una volta la settimana.

Per procedere con la realizzazione di un backup completo, dobbiamo prima sapere quali sono i punti di mount del nostro sistema. Semplice, logghiamoci sul sistema con l’utente root e lanciamo il comando “mount”:

# mount

proc on /proc type proc (rw)

/dev/hda1 on /home type ext3 (rw,noatime,quota)

/dev/sda1 on /mnt/backup type ext3 (rw,noatime)

Bene, ora sappiamo che la partizione hda1 è montata in /home (proprio la directory che vogliamo salvare noi!!!) e la partizione di backup sda1 è montata in /mnt/backup. Procediamo con il backup:

# dump –0 –u –f /mnt/backup/full_backup /dev/hda1

Eseguendo questo comando, lanceremo un backup di livello 0 (ossia completo) sul file full_backup nel punto di mount /mnt/backup. Infine, aggiorna il file /var/lib/dumpdates al termine del backup.

Nonostante questa sia una procedura fantastica (e neanche poi così lenta), potremmo non avere a disposizione un disco di backup collegato alla macchina. Ed ecco che ci viene in aiuto SSH. Grazie al protocollo SSH, potremo trasferire a run-time il backup: facile, semplice e sicuro. Per fare tutto questo, modifichiamo il comando sopra, come segue:

# dump –b 1024 –0 –u –f - /dev/hda1 | ssh –c arcfour nomeutente@backup.server.com \

          dd of=/home/backup/full_backup bs=20M

Per quanto riguarda il comando dump, non varia molto se non “-f –“ che sostanzialmente indica al programma di non inviare l’output su file bensì di inviarlo su stdout, lo standard output. Per quanto riguarda l’aggiunta del comando SSH, sostanzialmente viene utilizzata una codifica per SSH molto veloce (arcfour) e successivamente viene indicato il nome utente con cui loggarsi e l’host (potete inserire anche un indirizzo IP) su cui connettersi. Una volta connessi, SSH eseguirà il comando “dd of…..” salvando i dati del backup sul file /home/backup/full_backup (sulla macchina remota!!) utilizzando blocchi da 20MB.

Al termine del backup, è possibile anche comprimerlo (per risparmiare spazio sul disco) tramite gzip o bunzip2.

Il backup incrementale

Ciò che differenzia un backup incrementale da uno completo è che, il primo, effettua il backup di tutto (la prima volta) e di ciò che viene modificato (le volte successive). Nel proseguire con la descrizione di questo sistema di backup, dò per scontato che abbiate letto la parte riguardante il backup completo… se non l’avete fatto, è inutile proseguire: potreste perdere il significato di alcuni comandi.

Per eseguire il primo backup incrementale, possiamo lanciare questo comando:

# dump –1 –u –f /mnt/backup/full_backup /dev/hda1

Anche in questo caso, il backup verrà fatto sul nostro disco di ripristino (/dev/sda1). In questo caso potrete notare il cambiamento di –0 in –1: questo significa che siamo al livello 1 del backup incrementale. Per eseguire il backup incrementale di livello 2:

# dump –2 –u –f /mnt/backup/full_backup /dev/hda1

E così via… man mano che andrete avanti con i backup incrementali.

APPUNTI RIFLESSIVI

Se avete intenzione di pianificare un backup automatico tramite SSH, avrete la necessità di utilizzare uno schema di autenticazione a chiave, così potrete fare il backup senza bisogno di inserire la password dell’utente ssh ogni volta.

Per questa prima parte abbiamo finito. Nella seconda parte cercherò di spiegare come effettuare il restore dei dati backupati grazie a questo howto.

Hai trovato interessante questo articolo?

  • Google Reader
  • Twitter
  • Digg
  • Oknotizie
  • Yahoo Buzz
  • Reddit
  • Technorati Favorites
  • Ping
  • StumbleUpon
  • Facebook
  • Delicious
  • PrintFriendly
  • Condividi questo testo
Comments
Nessun Commento »
Categorie
Howto & Tips
Tags
/dev/hda, /dev/sda, backup, bunzip, bunzip2, completo, configurazione, disco backup, disco origine, dump, gzip, incremetale, linux, mount, ssh, unmount
Commenti RSS Commenti RSS
Trackback Trackback

Pagina 1 di 11

Cerca nel sito…

Info collegate all’articolo

I più votati

Get Adobe Flash playerPlugin by wpburn.com wordpress themes
rss Commenti RSS powered by Wordpress