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.

OVH – Xen 4.0 IPfailover e Bridge Linux in Debian
August 27, 2011 — 17:54

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

Ovh è tra le più interessanti aziende del panorama europeo in ambito soluzioni web.
Tra i tanti servizi offerti, si distingue per economicità e qualità l’offerta “server dedicati” che include, tra le tant ecose, fino a 3 indirizzi IP.

XEN e OVH
Ovh ha una distribuzione XEN preconfigurata.
Nel caso si desideri utilizzare una distribuzione Xen non-ovh, questo howto può essere utile per configurare le IP failover e associarle a macchine virtuali xen. l’howto è basato su Debian, ma è applicabile a tutte le differenti distribuzioni linux.

Configurazione IP failover
Per prima cosa occorre configurare le IP failover come aliases sul server fisico (Xen Host). In debian modificare il file /etc/network/interfaces

# Sostituire address con l'ip failover assegnata
auto eth0:1
iface eth0:1 inet static
        address 94.23.XX.YY
        netmask 255.255.255.255

A questo punto la nuova IP già risponderà al ping (naturalmente solo dopo aver eseguito il restart della rete o aver aggiunto manualmente l’indirizzo ip).

Preparazione del Bridge per le macchine virtuali
Il passo seguente consiste nel creare un bridge per le macchine virtuali. In soldoni, abbiamo bisogno di creare una rete privata virtuale dove le macchine virtuali e il server fisico possano comunicare.
I pacchetti proveninenti dalle macchine virtuali quindi, gireranno sulla rete privata dove il server fisico sarà il gateway delle macchine virtuali e si occuperà del forwarding dei pacchetti.

Consideriamo la rete 192.168.1.0 come rete privata e l’indirizzo 192.168.1.10 appartenente al server fisico (XEN host). Si procede quindi creando il bridge “br0″, aggiungendo la seguente entrata direttamente nel file /etc/network/interfaces di Debian:
Aggiungiamo al bridge l’interfaccia speciale dummy0 dal momento che non disponiamo di una seconda eth per la rete privata:

auto br0
iface br0 inet static
        bridge_ports dummy0
        address 192.168.1.10
        netmask 255.255.255.0

Il bridge “br0″ sarà l’interfaccia che si utilizzerà nei guest Xen

IP forwarding
Il server fisico (XEN Host) sarà quindi il gateway delle macchine virtuali e perciò, dal momento che sarà incaricato allo smistamento dei pacchetti verso l’esterno e quindi alle operazioni di forwarding, si deve abilitare l’ip forwarding con il seguente comando (nel caso non lo sia già):

echo 1 > /proc/sys/net/ipv4/ip_forward

Per far si che il parametro non si perda al prossimo reboot, settare net.ipv4.ip_forward a 1 direttamente nel file /etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Iptables (PREROUTING POSTROUTING)
A questo punto, non ci rimane altro che configurare le regole di prerouting e postrouting.
Nel seguente esempio, la macchina virtuale con IP 192.168.1.11 riceverà il traffico entrante dall’IP failover 94.23.XX.YY

-A PREROUTING -d 94.23.XX.YY/32 -i eth0 -j DNAT --to-destination 192.168.1.11
-A POSTROUTING -s 192.168.1.11 -o eth0 -j SNAT --to-source 94.23.XX.YY

Configurazione XEN
La gestione del bridge e delle interfacce di rete avviene direttamente con linux e non con Xen. Per questa ragione, controllare bene che nel file /etc/xen/xend-config.sxp siano commentati parametri quali:

#(network-script network-bridge)
#(network-script 'network-bridge netdev=eth1')
#(vif-script vif-bridge)
#(network-script network-nat)