chalda.it
2nov/091

Shorewall: abilitare e configurare il firewall in linux (debian, ubuntu)

firewall

Il firefall su un server è una cosa fondamentale.
Per configurarlo occorre sapere a perfezione la sintassi di iptables? No!
Shorewall ci viene incontro grazie ad una sintassi più umana e la possibilità di configurare zone... Ma procediamo per ordine!

La versione di shorewall che installeremo sarà la 4.0.15-1, quella inclusa nella distribuzione Debian Lenny

31ott/090

Trovare la dimensione di una cartella in linux

Qui ci torna utile il comando du:

du -hs

Dove:

  • h: visualizza al dimensione in formato "Umano", cioè aggiungendo K per kbyte, M per mega, G, per giga, etc...
  • s: visualizza solo il totale, senza questo parametro visualizzerebbe ogni dimensione di ogni file...
30ott/090

Comprimere in linux con tar… in modo furbo :-)

Penso che tutti sappiano ormai come comprimere e decomprimere i file tgz, tar.gz, z, etc, in linux...
Ma per chi non lo sapesse esiste un metodo più furbo per creare semplici backup incrementali utilizzando le date, in modo da avere già nel nome del file la data di creazione.

Il comando per visualizzare una data è ovviamente date. Consiglio di utilizzare le date in formato YYYYMMDD così se i file vengono ordinati in modo alfabetico vengono ordinati dal più vecchio al recente :)

Ma passiamo ai comandi! Per comprimere:

tar -czvf nome_tarball.`date +%Y%m%d`.tgz file_o_cartella_da_archiviare1 file_o_cartella_da_archiviare2 ...

In questo modo verrà creato un file nome_tarball.20091030.tgz contenenti i file o le cartelle specificati

Per decomprimere:

tar -xzf nome_tarball.20091009.tgz
30ott/090

Convertire tutti i file ISO-8859-1 in utf-8

Certe volte, soprattutto in ambito web, i caratteri speciali (come le lettere accentate) appaiono in modo strano e incomprensibile anche se abbiamo impostato il nostro web server ad utilizzare utf-8.

Questo nella maggior parte dei casi è dovuto ad una errata codifica dei file, spesso in ISO-8859-1.

Per convertirli tutti in un colpo solo è sufficiente dare un solo comando:

  
  
   
find /directory/da/modificare -type f -exec sh -c "( iconv --from-code ISO-8859-1 --to-code UTF-8 {} -o {}.iconv ; mv {}.iconv {} ; )";
  

E voilà! Tutti i file ora sono in utf8!

Se non dovesse funzionare ed utilizzate htmlentities, ricordate di specificare il charset (terzo parametro)!

htmlentities($testo,ENT_COMPAT,'UTF-8'); 
26ott/092

Come cercare e rimuovere file in linux

Per ricercare un file si utilizza il comando find con le opzioni -type f (di tipo file) e -name nomefile (di nome nomefile).
Utilizzando i risultati del comando è possibile rimuovere i file:

find ./directory -type f -name 'Thumbs.db' -exec rm {} \;

Un esempio pratico ed utile è quello di rimuovere i file Thumbs.db sulle cartelle condivise da utenti windows:

find /share -type f -name 'Thumbs.db' -exec rm {} \;
21ott/090

Settare i permessi a file/directory per apache

I permessi su linux sono essenziali :)
Una buona configurazione dei permessi per apache è settare il proprietario a root e solo i file/directory necessari a www-data.
Inoltre i permessi per i file devono essere a 644 (permessi di scrittura solo al proprietario e
lettura a tutti), mentre le directory a 755.

Per farlo in modo automatico è sufficiente dare i seguenti comandi:

find /directory/da/modificare -type f -exec chmod 644 {} \;

In questo modo si ricerca ogni file e si setta a 644

find /directory/da/modificare -type d -exec chmod 755 {} \;

Qui invece si ricercano le directory e si settano a 755

Ovviamente per cambiare l'utente/gruppo si da il comando

chown -R www-data:www-data /directory

Dove con -R si intende in modo recursivo.

19ott/090

Aggiungere una localizzazione in Linux

Le localizzazioni sono molto utili quando per esempio abbiamo bisogno che certe funzioni ritornino la data o la valuta formattata secondo standard locali.
Questo è un caso classico della funzione strtotime di php.

Per aggiungere una lingua basta modificare il file /etc/locale.gen ed inserire il codice della localizzazione. Per l'italiano:

it_IT.UTF-8@euro UTF-8

Poi rigeneriamo le localizzazioni con il comando

locale-gen

19ott/090

Search & Replace tra i file in linux

Capita molto spesso di dover fare una classica ricerca e sostituzione all'interno dei file.
Ok, ma come farlo in modo semplice ed automatico in linux?
Utilizzando il seguente comando:

grep -rl 'OLDSTRING' . | xargs perl -pi~ -e 's/OLDSTRING/NEWSTRING/'

Ovviamente al posto di OLDSTRING metteremo la stringa di ricerca e in NEWSTRING la stringa con cui la rimpiazzeremo.

In tali stringhe di ricerca potete utilizzare le espressioni regolari, ovviamente con sintassi perl :)

9giu/090

Come aggiungere font TTF in linux

Per aggiungere i font TTF su linux (Debian, Ubuntu, Kubuntu) è semplicissimo:

Basta aprire un terminale ed eseguire questa riga:

mv nomefont.ttf /usr/share/fonts/truetype/ 

Ecco fatto! Ora bisogna aggiornare la cache dei font:

fc-cache -f -v

Ecco alcuni siti simpatici per scaricare font gratuitamente:

  • http://www.webpagefonts.com/
9giu/090

Come proteggere una cartella in apache

Per proteggere una cartella in apache da occhi indiscreti la procedura è molto semplice.


Per prima cosa bisogna creare il file .htaccess nella directory da proteggere:

AuthUserFile /percorso/htdocs/dir-protetta/.htpasswd
AuthGroupFile /dev/null
AuthName "Directory protetta, inserire i dati di accesso:"
AuthType Basic
<Limit GET>
require valid-user
</Limit>

In dettaglio:

  • AuthUserFile: Specifica il file contenente le password
  • AuthName: Testo da visualizzare nella finestra di accesso

Bene, ora bisogna creare il file .htpasswd nella directory specificata in AuthUserFile.

Per farlo si utilizza il comando htpaswd:

htpasswd –c .htpasswd username 

Dove al posto di username inseriremo il nome utente che vogliamo.

Eseguito il comando ci chiederà la password e il gioco è fatto!