XEN Kernel EFW: Unterschied zwischen den Versionen

Aus Neobikers Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 58: Zeile 58:
<tr><td>[http://www.xensource.com XEN Source]</td></tr>
<tr><td>[http://www.xensource.com XEN Source]</td></tr>
<tr><td></td><td>[http://www.xensource.com/download/ XEN Sourcen, Demo CD]</td></tr>
<tr><td></td><td>[http://www.xensource.com/download/ XEN Sourcen, Demo CD]</td></tr>
<tr><td></td><td>[http://bits.xensource.com/oss-xen/release/3.0.3-0/kernel-rhel4x/SRPMS/kernel-2.6.9-42.0.2.EL.xs148.src.rpm kernel-2.6.9-42.0.2.EL.xs148.src.rpm ]</td></tr>
<tr><td></td><td>[http://bits.xensource.com/oss-xen/release/3.0.3-0/kernel-rhel4x/SRPMS/kernel-2.6.9-42.0.2.EL.xs148.src.rpm kernel-2.6.9-42.0.2.EL.xs148.src.rpm] XEN DomU Guest Kernel</td></tr>
</table>
</table>



Version vom 25. November 2006, 17:33 Uhr

Vorbereitung

Basis der Endian Firewall ist CentOS, das eine OpenSource Implementierung von RedHat Enterprise Linux ist. RHEL hat öffentliche Sourcen, welche die Basis von CentOS bilden. Für Anpassungen der Endian Firewall benötigen wir die passende Entwicklungsumgebung.

RPM

Die Endian Firewall ist wie RHEL RPM basiert. In einem chroot-jail kann die RPM-Entwicklungsumgebung auch unter Debian implementiert werden. Die kann man bei Bedarf auch unter Debian schaffen, z.B. durch mounten eines Images einer RPM-basierten Linux-Distribution, welche mittels chroot zur Entwicklung genutzt werden kann.

Tip: Bei XEN Source bietet die Demo-CD die Möglichkeit CentOS, Debian und SuSE (gleichzeitig) direkt von CD zu benutzen. Auf der CD findet man also fertige XEN-Umgebungen und Images für CentOS, SuSE und Debian. Die Images können auch mit chroot verwendet werden ...

Tip: Es bietet sich hier alternativ eine Installation der EFW in einer VmWare an. Die VmWare-Disk der EFW (offline!) mountet man einfach in einer anderen VmWare-Installation als 2.te Disk und zieht mit tar die komplette EFW-Installation in ein tar-file ab. Die EFW-Installation kann dann auf einem anderem Rechner in einem beliebigen Verzeichnis ausgepackt und mit chroot benutzt werden.

EFW Developer Umgebung

Die Entwicklungsumgebung für EFW habe ich (in etwa) wie folgt erstellt:

mkdir -p /efw-dev/usr/src
cd /efw-dev/usr/src
wget http://mesh.dl.sourceforge.net/sourceforge/efw/EFW-COMMUNITY-2-devel-RPMS.tar.gz
tar xvzf EFW-COMMUNITY-2-devel-RPMS.tar.gz
cd /efw-dev
mkdir -p usr/src/endian var/lib/rpm dev etc
cp -a /dev/null /dev/zero /dev/urandom /dev/random dev
touch etc/fstab etc/passwd etc/group
cd usr/src/endian
mkdir BUILD RPMS SRPMS SPECS SOURCES
cd /efw-dev/usr/src/EFW-COMMUNITY-2-devel-RPMS
rpm --initdb --root /efw-dev
rpm --root /efw-dev -Uvh *.rpm --nodeps

chroot /efw-dev

Jetzt die Sourcen laden und versuchen, den Kernel zu übersetzen:

cd /usr/src
wget http://mesh.dl.sourceforge.net/sourceforge/efw/EFW-COMMUNITY-2-devel-SRPMS.tar.gz
tar xvzf EFW-COMMUNITY-2-devel-SRPMS.tar.gz

cd EFW-COMMUNITY-2-devel-SRPMS
rpmbuild --bc kernel-2.6.9-34.0.1.EL.endian14.src.rpm

Der Kernel sollte jetzt zumindest übersetzt werden, dann haben wir eine Entwicklungsumgebung für die Endian Firewall.


Sourcen

Endian Firewall
EFW_COMMUNITY_2_RESPIN.iso
EFW-COMMUNITY-2-devel-RPMS
EFW-COMMUNITY-2-devel-SRPMS
XEN Source
XEN Sourcen, Demo CD
kernel-2.6.9-42.0.2.EL.xs148.src.rpm XEN DomU Guest Kernel


Kernel patchen

Grösstes Problem ist, dass EFW auf dem Kernel 2.6.9 basiert, die XEN-Sourcen aber erst ab höheren Versionen (>= 2.6.12) kompilieren. Dank XenSource gibt es aber für RHEL 4.4 XEN-Sourcen für die Version XEN 3.0.3! RHEL verwendet den Kernel 2.6.9 in einer etwas neueren Version als EFW.


Wenn man die beiden Kernel-Sourcen vergleicht (die Details entnimmt man den beiden SPEC-Files), stellt man fest, dass nur wenige Patches für EFW zusätzlich zum RHEL-Kernel einzubauen sind:

Patch3010: linux-2.6.9-endian-usbatm-CVS-2005-07-02.patch
Patch8003: linux-2.6.11-broken_conntrack_nf_fix.patch
Patch8005: kernel-2.6.9-2.6.10-layer7-1.2.patch
Patch8006: http://www.openswan.org/download/openswan-2.4.0.kernel-2.6-natt.patch.gz
Patch100000: iptables-1.3.2-pptp-20050720-workaround.patch

Das SPEC File des RHEL-XEN-Kernels wird entsprehend erweitert, damit die EFW-Patches eingebunden werden. Die Sourcen der EFW-Patches müssen auch in das SOURCES Verzeichnis von RHEL-XEN kopiert werden. Anschliessend kann man den Kernel übersetzen:

rpmbuild --bc kernel-2.6.9-42.0.2.EL.xs148.src.rpm