lunedì 12 settembre 2011

Archlinux: mantenere sempre sincronizzato l'orario

Vediamo adesso come poter mantenere sempre sincronizzato l'orario del proprio Archlinux con i server online in modo che non perda mai nemmeno 1 secondo o che manchi un cambio d'ora solare/legale.
Innanzitutto installiamo ntp con un semplice:
sudo pacman -S ntp
Adesso controlliamo che abbiamo settato le impostazioni del nostro PC per bene e aggiungiamo il demone ntpd. Per farlo editiamo il file /etc/rc.conf con il nostro editor di testo preferito (ad esempio io userò gedit):
sudo gedit /etc/rc.conf
Assicuriamoci che nel file sia impostata la voce HARDWARECLOCK su UTC e TIMEZONE su Europe/Rome come da esempio:
...
LOCALE="it_IT.UTF-8"
HARDWARECLOCK="UTC"
TIMEZONE="Europe/Rome"
KEYMAP="it"
...
Se è già così impostato allora bene, altrimenti facciamo le dovute modifiche. Ora cerchiamo la voce DAEMONS ed aggiungiamo nptd in modo da ottenere come nell'esempio seguente:
DAEMONS=(... ntpd ...)
Salviamo i cambiamenti al file e chiudiamolo.

Riavviamo quindi il PC e il gioco è fatto! Adesso il nostro orario rimarrà sincronizzato con il famoso server online di pool.ntp.org

venerdì 2 settembre 2011

Archlinux: proteggere la propria password utente con SHA512 invece dell'MD5

Nelle distribuzioni Linux di solito le password di login degli utenti vengono salvate su un file criptate con la crittografia MD5. Ora, non voglio dire che l'MD5 sia insicuro, per carità, ma penso concorderete con me sul fatto che SHA512 sia un algoritmo decisamente più sicuro, visti anche gli ultimi casi di vulnerabilità al "cracking" dell'MD5 tramite il metodo di "collisione" (Collision Attack).
Se siete maniaci della sicurezza vediamo allora come cambiare la configurazione di sistema per passare dalla crittografia MD5 a quella SHA512.

Nota: come editor di testo nella seguente guida userò GEDIT ma voi potete usare quello che volete, non è importante quale usiate, basta sia un editor di testo.

Apriamo il file /etc/pam.d/passwd con permessi di root:
sudo gedit /etc/pam.d/passwd
e modifichiamo la stringa senza il # davanti, ossia:
password required pam_unix.so md5 shadow nullok
cambiando md5 con sha512 e aggiungendo alla fine rounds=65536.
Ovviamente potete aumentare o diminuire il valore di rounds, più è alto più sarà sicura la crittografia ma attenzione: valori alti significano anche che ad ogni login il vostro PC dovrà "faticare" parecchio per confrontare la password inserita. Quindi direi che quel valore va più che bene, visto che anche sui PC più datati non richiederà più di 1-2 secondi al login.
Quindi alla fine la stringa dovrebbe essere simile a questa:
password required pam_unix.so sha512 shadow nullok rounds=65536
Salviamo i cambiamenti e chiudiamo il file.
Ora apriamo il /etc/default/passwd sempre con permessi di root:
sudo gedit /etc/default/passwd
E cambiamo la linea:
CRYPT=des
in:
CRYPT=sha512
Salviamo i cambiamenti e chiudiamo il file.
Infine apriamo il file /etc/login.defs con permessi di root:
sudo gedit /etc/login.defs
ed aggiungiamo a fine file la seguente stringa:
ENCRYPT_METHOD SHA512
Salviamo i cambiamenti e chiudiamo il file.

Adesso reimpostiamo la password utente in modo che venga criptata col nuovo algoritmo.
Da terminale diamo:
sudo passwd nomeutente
con al posto di nomeutente il nostro nome utente o comunque il nome utente di cui vogliamo salvare la password col nuovo algoritmo di crittografia. Ci verrà richiesto di reinserire la nostra password per il login, facciamolo. Ripetiamo poi questo ultimo comando per ogni utente che abbiamo sul nostro sistema operativo.

Tutto qui, d'ora in poi qualunque utente aggiungiate la sua password sarà salvata con algoritmo SHA512 invece che MD5.