Endian Firewall in DomU
Zuerst benötigt man einen XEN-Kernel für die EFW. Die Kernel-Module müssen in das EFW-Filesystem (DomU) kopiert werden, der Kernel selbst nicht - der Kernel wird vom XEN Hostsystem (Dom0) gestartet.
Im Beispiel ist EFW bei Bedarf unter /efw20 gemountet.
mount /dev/lvm/efw20 /efw20 cd /efw20 wget http://www.neobiker.de/wiki/dl/efw2-kernel-i686-xen.tar.bz2 tar tvjf efw2-kernel-i686-xen.tar.bz2 cp boot/*2.6.9-42.0.2.EL.efw2xenU* /vserver/boot umount /efw20
Wenn man EFW noch nicht konfiguriert hatte, kann man natürlich die wichtigsten Konfigfiles auch manuell editieren. Dazu muss das Filesystem wieder gemountet werden:
mount /dev/lvm/efw20 /efw20 chroot /efw20 setup # EFW Konfiguration (ohne Netzwerk) echo "eth0" > /var/efw/ethernet/br0 echo "eth1" > /var/efw/ethernet/br1 vi /var/efw/ethernet/settings # GREEN / ORANGE / BLUE Konfiguration vi /var/efw/uplinks/main/settings # RED Konfiguration (eth1 ohne bridge!) vi /var/efw/ethernet/br0 # GREEN bridge (eth0) vi /var/efw/ethernet/br1 # ORANGE bridge (eth2)
/var/efw/ethernet/settings
BLUE_ADDRESS= BLUE_BROADCAST= BLUE_CIDR= BLUE_DEV=br2 BLUE_NETADDRESS= BLUE_NETMASK= CONFIG_TYPE=3 GREEN_ADDRESS=192.168.2.1 GREEN_BROADCAST=192.168.2.255 GREEN_CIDR=24 GREEN_DEV=br0 GREEN_NETADDRESS=192.168.2.0 GREEN_NETMASK=255.255.255.0 ORANGE_ADDRESS=192.168.3.1 ORANGE_BROADCAST=192.168.3.255 ORANGE_CIDR=24 ORANGE_DEV=br1 ORANGE_NETADDRESS=192.168.3.0 ORANGE_NETMASK=255.255.255.0
/var/efw/uplinks/main/settings
BACKUPPROFILE= DEFAULT_GATEWAY=192.168.1.254 DNS1=192.168.1.254 DNS2=192.168.2.2 ENABLED=on MAC= MTU= RED_ADDRESS=192.168.1.1 RED_BROADCAST=192.168.1.255 RED_CIDR=24 RED_DEV=eth2 RED_NETADDRESS=192.168.1.0 RED_NETMASK=255.255.255.0 RED_TYPE=STATIC RTABLE=200 TRACE_HOSTS=64.94.110.11 TRACE_MIN_HOP=2
Starten realisiere ich wie folgt mit /etc/xen/efw2:
name="efw2" kernel="/vserver/boot/vmlinuz-2.6.9-42.0.2.EL.efw2xenU" #ramdisk="/vserver/boot/initrd-2.6.9-42.0.2.EL.efw2xenU" memory=128 root="/dev/hda1 ro" disk=['phy:/dev/data/vm03,hda1,w'] # Bridged network on GREEN (eth0), ORANGE (eth1) and RED (eth2) # MAC = aa:cc:xen:brdg:eth:vm (aa:cc XEN-Network; xen host; brdg nr; eth nr; vm id) vif=[ 'mac=aa:cc:11:00:00:01, bridge=xenbr0', 'mac=aa:cc:11:02:01:01, bridge=xenbr2', 'mac=aa:cc:11:01:02:01, bridge=xenbr1' ] dhcp="no" # ethernet card on RED -> "PCI not supported" in the 2.6.9-xenU kernel :-( # pci=['02:09.0'] extra=""