Iptables for dummies: Come rimuovere tutte le regole?
December 6, 2012 — 16:10

Author: f0ff0 | Category: Linux | Tags: , , , | Comments: 0

Come e’ possibile rimuovere tutte le regole di IPtables senza eseguire nessun restart di servizi e/o sistema operativo? Semplicissimo:

 
 


iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Alcune considerazioni: (-t specifichiamo la table), -F significa flush. Stiamo quindi flushando il chain attuale. Con l’opzione -X specifichiamo che vogliamo eliminare tutte le regole del chain espressamente aggiunte dall’utente.
Le ultime tre regole aggiungono alle policy INPUT, FORWARD, OUTPUT di accettare qualunque rispettiva richiesta.

Fatto!

Installare FreeIPA in un guest paravirtualizzato XEN
September 27, 2012 — 10:30

Author: f0ff0 | Category: SysAdmin | Tags: , , , , , , , | Comments: 0

Perchè non installare FreeIPA in un ambiente para virtualizzato XEN? niente di meglio :)
Questo articolo spiega rapidamente come implementare FreeIPA su un guest XEN CentOS 6 paravirtualizzato in un host XEN Debian 6.

Cos’è FreeIPA

FreeIPA è un sistema integrato di sicurezza che integra differenti soluzioni per amministrare le credenziali di accesso. Combina diversi sistemi quali 389 (Fedora Directory Server), MIT Kerberos, NTP, DNS.

 

Installazione Guest XEN CentOS

Per l’installazione del guest CentOS su un host debian seguire questi semplici passi presenti nel seguente articolo.

FreeIPA pre-installazione specifica in XEN

Per lanciare il daemon Slapd dobbiamo controllare che il device shm (/dev/shm shared memory) sia disponibile nella nostra installazione CentOS.
Se i tools di FreeIPA non trovassero questo spazio di condivisione di dati tra programmi, otterremmo un errore simile al seguente:

Could not start the directory server using command ‘/usr/lib64/dirsrv/slapd-PKI-IPA/start-slapd’. The last line from the error log was ‘[17/Sep/2012:11:38:39 -0400] – Failed to create semaphore for stats file (/var/run/dirsrv/slapd-PKI-IPA.stats). Error 13.(Permission denied)

Per ovviare al problema, controllare che sia disponibile shm, in caso contrario:

echo tmpfs /dev/shm tmpfs defaults 0 0 >> /etc/fstab
mount /dev/shm

 

Installazione FreeIPA

Per installare FreeIPA ci serviamo dei repo standard di CentOS 6:

yum -y install ipa-server bind-dyndb-ldap

A questo punto lanciamo il tool guidato ipa-server-install:

ipa-server-install –setup-dns

Il tool è totalmente guidato, le interazioni e le domande che ci verranno sottoposte non meritano di essere commentate in quanto sono di facilissima risposta.

Iptables, Apertura porte FreeIPA

Prima di iniziare a testare e/o collegarsi ai tools di FreeIPa, controlliamo che le seguenti porte siano aperte:

TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp

Per aprire le porte:

for x in 80 443 389 636 88 464 53 ; do iptables -I INPUT -p tcp –dport $x -j ACCEPT ; done
for x in 88 53 123 ; do iptables -I INPUT -p udp –dport $x -j ACCEPT ; done

Xen: installare un guest paravirtualizzato CentOS 6 in host Debian 6
September 25, 2012 — 17:12

Author: f0ff0 | Category: SysAdmin | Tags: , , , , , | Comments: 0

Per installare un XEN guest CentOS 6 paravirtualizzato su una macchina fisica Debian 6, in questo periodo storico non c’è ancora una procedura documentata e supportata al 100%.
Tuttavia, con qualche semplice passo è possibile ottenere il risultato. Ecco come installare un guest CentOS con il tool xen-tools.

Aggiungere i repo di testing di Debian

Prima cosa, attiviamo i repo di testing di Debian. Debian 6 ha una versione di xen-tools che non prevede la creazione di immagini di macchine virtuali CentOS con il metodo rinse.
Aggiungere i seguenti repo:

deb http://ftp.it.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.it.debian.org/debian/ testing main contrib non-free

Installare il tool xen-tools

Lanciare il seguente comando per aggiornare il pacchetto xen-tools alla versione 4.3.1 che su Debian supporta nativamente la creazione di macchine paravirtualizzate CentOS

aptitude update
aptitude install xen-tools

Configurazione Rinse

Editare il file /etc/rinse/centos-6.packages e controllare che siano presenti i seguenti pacchetti che rinse installerà:

plymouth-core-libs
libuuid
plymouth
libblkid
passwd
libuser

Creazione guest CentOS 6 paravirtualizzato

Eseguiamo adesso il seguente comando per creare un guest CentOS paravirtualizzato nella nostra installazione Debian 6.

xen-create-image –hostname dir01.xsep.net –ip 10.34.33.111 –install-method=rinse –dist centos-6 –mirror=http://mi.mirror.garr.it/mirrors/CentOS/6.3/os/x86_64/

Questo passaggio potrebbe richiedere una minima conoscenza del tool xen-create-image e della preparazione anteriore del tool xen-tools.
Sostituire –hostname –ip con l’fqdn del futuro guest XEN.

Post Installazione

Una volta ultimata l’installazione della macchina virtuale CentOS, accenderla (xm create -c dir01.xsep.net.cfg) ed installare i seguenti pacchetti (opzionale).

aptitude install openssh-server vim

Commentare in seguito i repo di testing (se sono stati aggiunti con una procedura poco ortodossa come fatto in precedenza).

Note

Nella mia configurazione di test, ho riscontrato un problema risolvibile con le eth della macchina virtuale (bridge su dummy per la parte privata). In sostanza al primo avvio non sono state alzate correttamente. Lanciare se necessario il comando ifconfig eth[0,1,2..] up prima di iniziare ad installare i pacchetti aggiuntivi.

Alternativa Unetbootin: Come creare un disco usb bootable da un’immagine ISO di CentOS
September 12, 2012 — 17:03

Author: f0ff0 | Category: Linux | Tags: , , , , , | Comments: 0

Spesso le magie di Unetbootin durante il riversamento dell’immagine ISO di CentOS su di un disco usb fanno si che “l’EFI esegua un’incorretta mappatura” dei vari device.

Il problema si riscontra solo durante l’installazione di CentOS e più precisamente al momento dell’installazione del bootloader GRUB, dove si verifcano gli errori più disparati e l’installer di CentOS non riesce ad configurare Grub su nessun device specificato.

Per ovviare a questo problema, e quindi installare senza problemi CentOS da un disco USB, basta servirsi dell’utility livecd-tools in alternativa a Unetbootin.

In Fedora/CentOS/RHEL il pacchetto binario è installabile dai repo ufficiali:


Installed Packages
Name : livecd-tools
Arch : x86_64
Epoch : 1
Version : 16.15
Release : 1.fc16
Size : 140 k
Repo : installed
From repo : updates
Summary : Tools for building live CDs
URL : http://git.fedorahosted.org/git/livecd
License : GPLv2
Description : Tools for generating live CDs on Fedora based systems including
: derived distributions such as RHEL, CentOS and others. See
: http://fedoraproject.org/wiki/FedoraLiveCD for more details.

Per installare l’utility basta lanciare quindi il seguente comando:

yum install livecd-tools

Una volta installato, per creare il disco usb bootable partendo dall’ISO di CentOS, basta servirsi del comando livecd-iso-to-disk.


livecd-iso-to-disk --format --reset-mbr CentOS-6.3-x86_64-minimal.iso /dev/sdX

(sostituire sdX con il nome del device USB desiderato (es. /dev/sdb) e CentOS-6.3-x86_64-minimal.iso con il file ISO scaricato.

Apache, Nginx, Lighttpd, ISS: Come identificare l’identità di un webserver
September 10, 2012 — 19:39

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , , | Comments: 0

Come possiamo verificare su che webserver gira una pagina web?
Ci sono diverse risposte alla domanda in questione, alcune possono sembrare meno ortodosse come ad esempio telnet (telnet www.foo.bar 80), altre molto più utili ed intuitive come cURL.

Il comando cURL è disponibile in tutte le distribuzioni linux e unix-like come anche Mac OSX.

Ecco come verificare l’identità del webserver con cURL:

curl -I http://www.foo.bar

 

L’output del comando sarà simile al seguente:


HTTP/1.1 200 OK
Server: Apache
Date: Mon, 10 Sep 2012 17:25:33 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Nginx Attivare la compressione HTTP con gzip
September 8, 2012 — 16:51

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , | Comments: 0
datacenter

La compressione HTTP con il modulo gzip di Nginx è un’importante feature che ci permette di migliorare il rendimento del sito web hostato principalmente su diversi fronti:

  • Riduzione di banda totale e transfert rate del nostro sito web.
  • Best practices di Google per quanto riguarda il SEO e la velocità di risposta del sito internet.
  • Velocizzare il tempo di caricamento delle pagine web.

Controindicazioni principali:

  • Comprimere con gzip aumenta il carico sulle CPU del server.
  • Il processo di compressione e decompressione può in alcuni casi essere controproducente se si tratta di pochi bytes.

 

Nei pacchetti Linux precompilati il modulo Nginz gzip static è quasi sempre attivo di default. Nel caso si sia compilato Ngix partendo dai sorgenti, controllare se si è passato l’opzione seguente in fase di compilazione:

./configure --with-http_gzip_static_module

La compressione HTTP con il modulo gzip static di Nginx è attivabile nei seguenti contesti:


http
server
location

Di seguito si trova un esempio di configurazione tipica del modulo di compressione gzip.

gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/html text/css application/json application/javascript application/x-javascript text/javascript text/xml application/xml application/rss+xml application/atom+xml application/rdf+xml;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

Alcune piccole delucidazioni sulla configurazione:

  • gzip_types: con questa direttiva possiamo specificare quali tipi di MIME-Types desideriamo comprimere. Di default è abilitato solo text/html.
  • gzip_min_length: determiniamo la dimensione minima dei file che vogliamo comprimere. Abbassare drasticamente questo parametro può provocare maggior carico sulle CPU del server e tempi di risposta aumentati che quindi non giustificano il risparmio ottenuto dalla compressione.
  • gzip_disable: anche se ormai si assottiglia sempre più la percentuale di visitatori che navigano con browser che non supportano la compressione HTTP, questa direttiva ci permette di non creare problemi agli utenti di Internet Explorer fino al 6.
  • gzip_vary: abilita il response header “Vary: Accept-Encoding”. Questa direttiva fa si che IE non esegua caching dei contenuti (Bug noto). Tratto da wikipedia: “Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server”.
MySQL, convertire unixtime in timestamp
September 7, 2012 — 23:01

Author: f0ff0 | Category: MySQL SysAdmin | Tags: , | Comments: 0
datacenter

Quando si eseguono integrazioni software o più semplicemente si interviene direttamente su database esistenti, ci si può imbattere in tabelle MySQL con campi contenenti timestamp in formato unixtime.

Il formato Unixtime, tipico dei sistemi Unix e Unix-like come Linux o MacOSX, rappresenta il tempo come offset in secondi rispetto alla mezzanotte del 1 gennaio 1970 (UTC).

Per convertire una data UnixTime in Timestamp in MySQL basta eseguire una semplice query come la seguente:


-- MySQL convertire data UnixTime Timestamp
SELECT TIMESTAMP(FROM_UNIXTIME(campo_unixtime)) FROM tabella;

Recuperare files persi e foto cancellate con Linux
August 20, 2011 — 12:09

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , | Comments: 0

Si possono recuperare files cancellati da supporti quali per esempio schede di memorie SD? La risposta è si!

Esistono diversi tools per recuperare files cancellati in linux anche se tra i tanti spiccano principalmente due:

* photorec
* foremost

Preparazione / Backup:
Prima di fare qualunque tipo di intervento, per evitare ulteriori perdite di dati, cloniamo la partizione in un file con il comando dd. La partizione in oggetto è sdb1 e la si clonerà nel file file.img:

dd if=/dev/sdb1 of=file.img bs=512

Photorec:
Photorec non ha molte opzioni e si limita a recuperare solo immagini e video. Tra le opzioni a linea di comando può risultare utile specificare la directory di destinazione dove il programma salverà i documenti recuperati:

photorec /d file.img

Foremost:
Foremost è un software molto potente che permette recuperare sia documenti che immagini.
Possiamo anche discriminare la ricerca dei file persi ad un tipo esatto di documento.
Per esempio, se desideriamo recuperare solo le immagini jpg cancellate:

foremost -o -T -t jpg file.img

Per conoscere tutti i formati supportati da foremost utilizzare il man di foremost (man foremost).
Con l’opzione “-t All”, per esempio, foremost cercherà di recuperare tutti i tipi di documenti conosciuti.
Risulta essere un programma molto valindo in quanto è capace di recuperare immagini anche parzialmente.