Es ist relativ sinnlos fli4l alleine in einer VM laufen zu lassen.
Zur Sicherheit sollten die zusätzlichen VM, die vom Internet zugänglich sind, in einer DMZ laufen.
Die DMZ wird in "grüne" und "orange" Netze unterschieden. "rot" ist das ppp0-Interface von fli4l.
In der folgenden Konfiguration wird der IP-Bereich für "grün" 192.168.10.xx und für "orange" 192.168.11.xx sein
Die Adressbereiche sind natürlich frei wählbar.
Die bridge wird in der "dom0" eingebunden. Da die VM's nur über eine intere Bridge kommunizieren können, muss
eine angelegt werden.
Dazu ist es nötig die Datei "/etc/xen/scripts/xend-config.sxp" zu bearbeiten:
Es muss nur ein Eintrag hinzugefügt werden:
(network-script fli4l-network-script)
Sollte der andere Eintrag aktiviert sein, diesen mit # auskommentieren
#(network-script network-bridge)
Es sollten jetzt nur 4 Einträge existieren:
xen-dom0:/etc/xen# grep -v ^# xend-config.sxp | grep -v ^$ (network-script fli4l-network-script) (vif-script vif-bridge) (dom0-min-mem 196) (dom0-cpus 0)
Das Skript muss natürlich auch angelegt werden:
xen-dom0:/# vi /etc/xen/scripts/fli4l-network-script
In diese Datei nun folgendes eintragen:
#!/bin/sh dir=$(dirname "$0") "$dir/network-bridge" "$@" vifnum=0 bridge=br-green netdev=eth0 "$dir/network-bridge" "$@" vifnum=1 bridge=br-orange netdev=dummy1
Nun noch die Datei ausführbar machen:
xen-dom0:/# chmod +x /etc/xen/scripts/fli4l-network-script xen-dom0:/#
Das Skript kann hier heruntergeladen werden
Nach einen Neustart überprüfen ob die Bridge korrekt eingebunden ist:
xen-dom0:~# brctl show
bridge name bridge id STP enabled interfaces
br-green 8000.feffffffffff no vif0.0
peth0
br-orange 8000.000000000000 no
xen-dom0:~#
Nun muss die Datei "/etc/xen/fli4l" angepasst werden:
vif = [ 'vifname=fli4l-green,mac=00:16:e3:00:10:11,bridge=br-green','vifname=fli4l-orange,mac=00:16:3e:00:11:11,bridge=br-orange' ]
Der Eintrag "mac=" ist hilfreich um in fli4l die richtige Zuordnung zu erkennen.
Der Eintrag "vifname=" ist der Name mit der die Bridge angezeigt wird
Nun die Datei "base.txt" editieren:
# Ether networks used with IP protocol:
#------------------------------------------------------------------------------
IP_NET_N='2'
IP_NET_1_DEV='eth0' # number of IP ethernet networks, usually 1
IP_NET_1='192.168.10.11/24' # IP address of your n'th ethernet card and
IP_NET_1_TYPE='green' # netmask in CIDR (no. of set bits)
# required: device name like ethX
IP_NET_2_DEV='eth1'
IP_NET_2='192.168.11.11/24'
IP_NET_2_TYPE='orange'
Als nächstes die DMZ einrichten:
#------------------------------------------------------------------------------ # Simple DMZ setup for dial-up based routers -- see documentation #------------------------------------------------------------------------------ OPT_DMZ='yes' DMZ_NAT='yes' DMZ_LOG='yes' DMZ_RED_DEV='ppp0' DMZ_ORANGE_RED_N='0' DMZ_ORANGE_ROUTER_N='1' DMZ_ORANGE_ROUTER_1='53 ACCEPT' #------------------------------------------------------------------------------
Wen ein Webserver betrieben werden soll muss noch dafür gesorgt werden, das Anfragen an den Port 80 weitergeleitet werden:
# Optional package: PORTFW #------------------------------------------------------------------------------ PORTFW_N='1' # how many portforwardings to set up PORTFW_1_TARGET='80' # example 1: forward ext. port 8080 PORTFW_1_NEW_TARGET='192.168.11.12:80' # ...to int. host 192.168.6.15 port 80 PORTFW_1_PROTOCOL='tcp' # ...using tcp #--------------------------------------------------
Da sich die devices verschoben haben, muss in der "dsl.txt" der Eintrag geändert werden:
PPPOE_ETH='eth2'
Nachdem die Dateien übertragen und fli4l gestartet wurde, überprüfen ob die Zuordnung korrekt ist:
fli4l-router 3.1.2 # ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:E3:00:10:11
inet addr:192.168.10.11 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:133 errors:0 dropped:0 overruns:0 frame:0
TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18120 (17.6 KiB) TX bytes:3757 (3.6 KiB)
eth1 Link encap:Ethernet HWaddr 00:16:3E:00:11:11
inet addr:192.168.11.11 Bcast:192.168.11.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:126 (126.0 B)
................
Hier kann man anhand der MAC-Adresse leicht erkennen ob alles geklappt hat.
wenn nicht, die Devices in der "base.txt" tauschen.
In der Xen-Domain0 auch noch überprüfen, ob die Bridges richtig zugeordnet sind:
xen-dom0:~# brctl show
bridge name bridge id STP enabled interfaces
br-green 8000.feffffffffff no vif0.0
peth0
fli4l-green
br-orange 8000.feffffffffff no fli4l-orange
xen-dom0:~#
Zum Anfang
Wie in der Anleitung von http://www.pug.org
beschrieben mit "debootstrap" ein Image erzeugen.
Diese als Vorlage speichern.
Leichter geht es mit den "xen-tools"
Von dieser Vorlage mit cp eine Kopie anfertigen:
xen-dom0:~# cp /xenimages/vorlagen/basis.img /xenimages/webserver.img xen-dom0:~#
Für weitere VM's diesen Vorgang einfach wiederholen
Nicht vergessen das Image für die swap-Partition.
Da die DMZ keine Zugriffe auf das Internet zulässt, muss diese VM zuerst im "grünen" Netz gestartet werden.
Jetzt muss die Konfigurationsdatei erzeugt werden:
xen-dom0:~# vi /etc/xen/webserver xen-dom0:~#
In dieser Datei nun folgendes eintragen:
Zuerst Speicher und Name
memory = 70 name = "webserver"
Wieviel Speicher einer Domain man noch zuordnen kann erfährt mit den Befehl
xen-dom0:~# xm info
Als nächstes das Netzwerk zuordnen:
vif = [ 'bridge=br-green,vifname=webserver' ]
Noch die Zuordnung der Laufwerke:
disk = [ 'file:/xenimages/webserver.img,sda1,w','file:/xenimages/swap1.img,sda2,w', ]
Zum Schluss noch root und Runlevel eintragen:
root = "/dev/sda1" extra = "2"
Zugriff auf die Imagedatei erhält man indem man es als loop-Device mountet
xen-dom0:~# mount -o loop /xenimages/webserver.img /mnt
Im Verzeichnis "/mnt" kann nun auf das Image zugegriffen werden und z.B. die Datei
"fstab" editiert werden. Darauf achten, immer von "/mnt" ausgehen!
Für unerfahrene Anwender empfiehlt es sich mit chroot zu arbeiten.
xen-dom0:~# chroot /mnt
Nach Abschluss der Arbeiten die chroot-umgebung mit "exit" verlassen und
die Imagedatei unmounten
xen-dom0:~# umount /mnt
Die Datei "<Mountpoint>/etc/fstab" in der VM muss dementsprechend angepasst werden:
/dev/sda1 / ext3 defaults 1 2 /dev/sda2 none swap sw 0 0
Ab Xen3 muss das Netzwerk in der Imagedatei konfiguriert werden
Dazu muss die Datei "<Mountpoint>/etc/network/interfaces" editiert werden.
In diese Datei folgendes Eintragen:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.10.12
gateway 192.168.10.12
netmask 255.255.255.0
Nach dem starten und konfigurieren bzw installieren von Apache die VM in die DMZ verschieben.
Dazu in "/etc/xen/webserver" die Netzwerkeinträge ändern:
Vorher natürlich die VM stoppen.
vif = [ 'bridge=br-orange,vifname=webserverint' ]
Ebenso müssen die Netzwerkeinträge in der Datei "interfaces" der VM geändert werden.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.11.12
gateway 192.168.11.12
netmask 255.255.255.0
Nun wieder starten und überprüfen ob sie in der DMZ ist:
xen-dom0:~# brctl show
bridge name bridge id STP enabled interfaces
br-green 8000.feffffffffff no vif0.0
peth0
fli4l-green
br-orange 8000.feffffffffff no fli4l-orange
webserverint
xen-dom0:~#