Prove tecniche qemu/KVM & Zeroshell-1.0.beta7


KVM mette a disposizione estensioni per ottimizzare le virtualizzazioni sia su CPU Intel-vt che AMD-v. Il tutto consiste in un modulo kernel, kvm.ko, che fornisce le direttive base e un modulo specifico per il processore in uso, kvm-intel.ko o kvm-amd.ko.

In particolare ho voluto emulare Zeroshell net services una nuova piccola distribuzione per server e dispositivi embedded configurabile ed amministrabile via web tramite un browser..

vorrei fare connettere la nostra macchina virtuale con zeroshell nella mia LAN ed evitare di fare routing col portatile, decido di utilizzare quindi la macchina reale come proxy arp:

modprobe tun
tunctl -t tap0
chmod 666 /dev/net/tun
brctl addbr br0
ifconfig eth0 10.0.2.2 promisc
brctl addif br0 eth0
dhclient br0
brctl addif br0 tap0
ifconfig tap0 10.0.2.2 up
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
route add -host 10.0.2.2 dev tap0
arp -Ds 10.0.2.2 eth0 pub

..in questa maniera abbiam creato un bridge br0 e abbiamo associato la nostra interfaccia di rete fisica eth0 diventata così porta logica del bridge (per il nostro caso non necessita di alcuna assegnazione particolare..)

successivamente abbiamo assegnato un ip (nel caso particolare attraverso dhclient) della nostra lan per la “nuova” interfaccia della macchina reale.

Passiamo adesso a qemu-kvm e lanciamo quindi la nostra ZeroShell e vediamo come decidere per lei in modo che si interfacci attraverso il nostro bridge..

Tramite questo script switcheremo sull’ interfaccia di rete virtuale la macchina emulata:

#!/bin/sh

echo “Executing /etc/ifupScript…”
echo “Bringing up $1 for bridged mode…”
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo “Adding $1 to br0…”
sudo /usr/sbin/brctl addif br0 $1
sleep 2

quindi..

ricordiamoci i moduli: modprobe kvm kvm_intel;

..poi creiamo un img raw per contenere (nel caso in cui volessimo installare zeroshell su hd) il sistema operativo emulato… ed io mi tengo veramente largo e decido per 1 giga:

qemu-img create /root/Zeroshell 1G

e infine lanciamo il livecd di Zeroshell attraverso qemu specificando architettura, memoria ,device e il boot della macchina emulata:

qemu-kvm -M pc -m 512 -cdrom /root/ZeroShell-1.0.beta7.iso -hda /root/Zeroshell -net nic,vlan=0,ifname=tap0,script=/etc/ifupScript -monitor pty -boot d
una volta partito il sistema emulato dobbiamo ovviamente configurare almeno la rete..nel mio caso, userò solo dhclient:

zeroshell-qemu1.jpg

..in questa maniera, adesso, dalla LAN a cui son connesso col portatile chiunque potrà provare Zeroshell specialmente attraverso il proprio browser sul tool di amministrazione:

zeroshell-qemu2.jpg

attraverso questa comoda ed elegante interfaccia è possibile configurare con successo (ho provato quasi tutto il possibile con esito più che positivo):

  • server RADIUS (con gestione chiavi di cifratura per Wireless 802.11b, 802.11g e 802.11; wpa e wpa2; e instradare da server radius dietro le piu svariate direttive (autenticazioni, mac acl e altro) su VLAN 802.1Q assegnata ad un essid. (ho già in mente di comprare una nano px e installare la versione zeroshell per compact flash.. e farci un bel mini sistema embedded.. )
  • Captive Portal per il supporto del web login su reti wireless e wired. ( avete presente gli HotSpot ? 😛 );
  • Gestione del QoS (Quality of Service) e traffic shaping per il controllo del traffico.
  • VPN host-to-lan.VPN lan-to-lan in tunnel SSL/TLS, con supporto per VLAN 802.1Q.
  • Router con route statiche e dinamiche;Bridge 802.1d con protocollo Spanning Tree per evitare loop anche in presenza di percorsi ridondati;
  • Firewall Packet Filter e Stateful Packet Inspection (SPI) con filtri applicabili sia in routing sia in bridging su tutti i tipi di interfaccia di rete comprese le VPN e le VLAN;Controllo mediante Firewall e Classificatore QoS del traffico di tipo File sharing P2P; NAT;TCP/UDP port forwarding (PAT) (vps ? ;);
  • Server DNS multizona e con gestione automatica della Reverse Resolution in-addr.arpa;
  • Server DHCP multi subnet (con gestione dei mac address)
  • Virtual LAN 802.1Q (tagged VLAN) applicabili sulle interfacce Ethernet, sulle VPN lan-to-lan, sui bonding di VPN e sui bridge composti da interfacce Ethernet, VPN e bond di VPN;
  • Client PPPoE per la connessione alla WAN tramite linee ADSL, DSL e cavo;
  • Client DNS dinamico che permette la rintracciabilità su WAN anche quando l’IP è dinamico (ddclient, no-ip etc..)
  • Gestione dinamica del record dns MX per l’instradamento SMTP della posta elettronica;
  • Server e client NTP (Network Time Protocol);
  • Server syslog;
  • Autenticazione Kerberos 5 mediante un KDC integrato e cross autenticazione tra domini;Autorizzazione LDAP, NIS e RADIUS;Autorità di certificazione X.509 per l’emissione e la gestione di certificati elettronici;
  • Integrazione tra sistemi Unix e domini Windows Active Directory in un unico sistema di autenticazione e autorizzazione mediante LDAP e Kerberos 5 cross realm authentication.

L’interfaccia è ancora incompleta perchè mancano un po’ di features fighe che ci vedo.. ma guardando sul sito ufficiale pare che ci stiano lavorando su bene e le prospettive sono più che buone 🙂 Per quello che c’è su adesso va più che bene.. poi che aggiungere? Comoda e veloce anche quando virtualizzata dietro qemu-kvm.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.