XEN Kernel EFW: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 35: | Zeile 35: | ||
</pre> | </pre> | ||
Jetzt die Sourcen laden und versuchen | Jetzt die Sourcen laden und (zumindest versuchen) den Kernel zu übersetzen: | ||
<pre> | <pre> | ||
cd /usr/src | cd /usr/src | ||
Zeile 45: | Zeile 45: | ||
</pre> | </pre> | ||
Der Kernel sollte jetzt | Der Kernel sollte jetzt übersetzt werden, also haben wir eine funktionstüchtige Entwicklungsumgebung für die Endian Firewall geschaffen. | ||
Zeile 63: | Zeile 63: | ||
== Kernel patchen == | == 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 | 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 [http://www.xensource.com XenSource] gibt es aber für eine RHEL 4.4 DomU die Sourcen für einen XEN 3.0.3 Gast-Kernel mit der Version 2.6.9! | ||
Wenn man die beiden Kernel-Sourcen vergleicht (die Details entnimmt man den | Wenn man die beiden Kernel-Sourcen vergleicht (die Details entnimmt man den jeweiligen SPEC-Files), stellt man fest, dass nur wenige Patches für EFW zusätzlich zum RHEL-Kernel einzubauen sind: | ||
<pre> | <pre> | ||
Patch3010: linux-2.6.9-endian-usbatm-CVS-2005-07-02.patch | Patch3010: linux-2.6.9-endian-usbatm-CVS-2005-07-02.patch | ||
Zeile 78: | Zeile 78: | ||
rpmbuild --bc kernel-2.6.9-42.0.2.EL.xs148.src.rpm | rpmbuild --bc kernel-2.6.9-42.0.2.EL.xs148.src.rpm | ||
</pre> | </pre> | ||
Den Kernel und ein tarball zum kompilieren stelle ich hier zur Verfügung. |
Version vom 25. November 2006, 17:44 Uhr
Vorbereitung
Basis der Endian Firewall ist CentOS, eine OpenSource Implementierung von RedHat Enterprise Linux. RHEL stellt seine Sourcen zur Verfügung, 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 (zumindest 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 übersetzt werden, also haben wir eine funktionstüchtige Entwicklungsumgebung für die Endian Firewall geschaffen.
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 eine RHEL 4.4 DomU die Sourcen für einen XEN 3.0.3 Gast-Kernel mit der Version 2.6.9!
Wenn man die beiden Kernel-Sourcen vergleicht (die Details entnimmt man den jeweiligen 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 entsprechend 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
Den Kernel und ein tarball zum kompilieren stelle ich hier zur Verfügung.