Categorie
featured tutorial

Backup con rsync e crontab

Inizio con il riportare la definizione di Rsync scritta su Appunti di informatica libera.

Rsync è un sistema di copia tra elaboratori (o anche all’interno del file system dello stesso sistema locale), in grado di individuare e trasferire il minimo indispensabile di dati, allo scopo di allineare la destinazione con l’origine. L’uso di questo programma è molto semplice ed è simile a quello di rcp (Remote shell copy) o anche di scp (Secure shell copy).

L’aggiornamento dei dati, in funzione delle opzioni utilizzate, può basarsi sul confronto delle date di modifica, delle dimensioni dei file e anche sul calcolo di un codice di controllo (checksum). In linea di principio, a meno di utilizzare opzioni che specificano qualcosa di diverso, non conta il fatto che i dati siano più recenti o meno, basta che questi siano diversi per ottenerne il trasferimento.

Alla luce di quanto scritto personalmente lo trovo un buon sistema per effettuare dei backup dove non ci sono problemi di spazio ( in quanto la copia viene fatta 1 a 1 con l’originale )

Supponendo di voler effettuare il backup della directory /home su /backup_giornaliero possiamo semplicemente scrivere :

rsync -a -v --delete /home /backup_giornaliero

questo il significato dei parametri …

  • -a duplica anche le sottodirectoy in modo ricordsivo
  • -v ci da il dettaglio dello svolgimento della copia
  • –delete cancella i file sotto /backup_giornaliero che non esistono in /home

Ma come possiamo automatizzare questo comando ?
Io ho usato cron.
( per una guida in italiano vi suggerisco questo link )

Ho editando il file /etc/crontab e aggiunto questa riga:

0 23 * * * root rsync -a -v --delete /home /backup_giornaliero

In questo modo ogni giorno alla 23.00 viene fatto partire rsync

Dato che sono paranoico e che un backup non mi basta , una volta alla settimana ed una volta al mese preferisco farne un altro.

0 23 * * * root rsync -a -v --delete /home /backup_giornaliero
0 2 * * 0 root rsync -a -v --delete /home /backup_settimanale
0 5 1 * * root rsync -a -v --delete /home /backup_mensile

In questo modo tutte le sere faccio il backup su /backup_giornaliero
Ogni domenica alla 2 del mattino lo faccio su /backup_settimanale
Ed il giorno 1 di ogni mese alla 5 del mattino viene fatto su /backup_mensile

Ricordiamoci di creare le directory !!!

Mi rimane ancora una domanda … come faccio a sapere se il backup è stato eseguito ?
Mi faccio mandare una mail !!!

0 23 * * * root rsync -a -v --delete /home /backup_giornaliero | mail tuamail@dominio.it -s "Log Backup"
0 2 * * 0 root rsync -a -v --delete /home /backup_settimanale | mail tuamail@dominio.it -s "Log Backup"
0 5 1 * * root rsync -a -v --delete /home /backup_mensile | mail tuamail@dominio.it -s "Log Backup"

In questo modo grazie all’opzione -s ed all’utilizzo della pipe ci inviamo l’output di rsync nella nostra casella di posta.

Categorie
tutorial

Installare un server LDAP ( micro howto )

Prima di tutto .. Che cos’è un server LDAP ?

La sigla LDAP è l’acronimo di Lightweight Directory Access Protocol ( protocollo “leggero” per l’accesso a servizi di directory) ed ha funzioni di accesso simili a quelle di un database.

La differenza sostanziale può essere cercata nella parola “leggero”: si tratta cioè di un sistema che ha alcune funzioni di un database ma è specializzato in modo da ottimizzare le prestazioni per l’uso attraverso la rete in operazioni di lettura, lista e ricerca di informazioni contenute in un “server” LDAP, ovvero un sistema che risponde a richieste di operazioni da parte di “clienti” effettuate mediante il protocollo stabilito.
Un server LDAP consente di effettuare operazioni di inserzione, cancellazione ed aggiornamento dei dati, come un database generico, ma e’ ottimizzato per effettuare operazioni di ricerca ed accesso alle informazioni.

Se usate sarge ( debian ) è una passeggiata … # apt-get install slapd
A questo punto parte un wizard di configurazione dove ci viene chiesto il nome del dominio ( in pratica il nome della radice del nostro albero gerarchico ) e la password di amministratore.

Se sbagliamo qualcosa o vogliamo riconfigurarlo basta digitare # dpkg-reconfigura slapd in questo modo farete ripartite il wizard di prima quante volte vorrete.

A questo punto vi chiederete come diavolo facciamo per amministrarlo …
Bhe … io ho provato diversi tools poi ho trovato la pace dei sensi con phpldapadmin.

Grazie a sarge installarlo è davvero banale: # apt-get install phpldapadmin.
Per usarlo avremo bisogno di apache , php e alcune estensioni di php … fortunatamente apt si occupa delle dipendenze e dopo aver riavviato il webserver ( # /etc/init.d/apache restart) possiamo collegarci al seguente indirizzo: http://ip-del-server/phpldapadmin.

Dopo aver digitato la password saremo liberi di aggiungere tutti i nodi di cui avremo bisogno scegliando tra diversi template per l’inserimento.

Durante i miei esperimenti ho avuto dei problemi con l’accesso amministrativo che ho risolto indicando nel file di configurazione di phpldapadmin ( che dovreste trovare in /etc/phpopenldapadmin/) l’accesso tramite sessioni e non tramire cookies.

Per i possibili usi di questo servizio immagino che abbiate già i vostri obbiettivi …

Io personalmente avevo bisogno di una rubrica condivisa sui client di posta elettronica.

Riferimenti:

http://www.debian.org/releases/stable/

http://www.openldap.org/

http://phpldapadmin.sourceforge.net/

Categorie
security tutorial

Assistenza remota con Putty e Vnc

Immaginiamo il seguente scenario:
Ci viene richiesto di fare assistenza su un macchina all’interno di una rete locale connessa a internet dietro un firewall

es.
Pc assistenza –> Internet –> Firewall –> ( rete locale ) –> Pc Remoto

La vpn non è presente e non è possibile installarla ma disponiamo di un accesso ssh ( senza alcun permesso ) al firewall ( magari con ip fisso ) e conosciamo l’ip della lan della macchina remota.
Ovviamente sulla macchina remota deve essere installato il servizio VNC.

Soluzione:
Lanciamo putty e configuriamo nella sezione "SESSION" ip e porta del firewall sulla quale è diponibile il server ssh ( di standard sulla porta 22 ma per motivi di sicurezza potrebbe anche essere diverso ). Come protocollo ovviamente selezioniamo ssh. Poi nella sezione "CONNECTION->SSH->TUNNELS" nella parte relativa al port fordwarding inseriamo i dati del servizio vnc:
SourcePort: 5900 ( questa è la porta standard ma vale il discorso della porta ssh del firewall)
Destinazion: "ip_pc_remoto:portavnc" ( es. 192.168.0.34:5900 )
Verifichiamo che sia selezionato il pallino affianco a "local"
A questo punto premiamo il pulsante Add.
La nostra configurazione dovrebbe apparire simile a questa : "L5900 192.168.0.34:5900"
Fatto questo clicciamo su open e inseriamo user e password per l’accesso al firewall.

Da questo momento ogni pacchetto inviato su localhost ( 127.0.0.1 ) sulla porta 5900 verra girato da putty sulla macchina remota.
Ne consegue che lanciando vnc viewer e indicato come indirizzo server "localhost" ci collegheremo al pc remoto il quale molto probabilmente ci chiederà la password per accedere alla sessione dell’utente.

Lo stesso giochino funziona anche con terminal server a patto che il pc remoto abbia il servizio attivo ( es. windows 2000 server) La porta remota in questo caso sara la 3389 (es. L3389 192.168.0.34:3389 ) .
Se avete problemi a collegarvi su "localhost" usando il remote desktop connection potete provare a digitare 127.0.0.1.

Link di riferimento:
putty
Real Vnc

Sperando che a qualcuno possa servire …

Categorie
tutorial

Ottenere informazioni su un sistema *nix

Oggi collegandomi ad un firewall per fare manutenzione non ricordavo quale versione del kernel fosse installata ….

Il comando che ho usato è uname, con il parametro -a in modo da farmi dare più informazioni possibili

~# uname -a
Linux linuxbox 2.4.18-bf2.4 #1 Son Apr 14 09:53:28 CEST 2002 i686 GNU/Linux

Le informazioni che restituisce sono:

  • kernel name
  • hostname
  • kernel release
  • kernel version
  • machine processor type
  • operating system

Per ulteriori informazioni “man uname” ….