This page (revision-5) was last changed on 27-May-2007 21:18 by ThomasBayen 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
5 27-May-2007 21:18 8 KB ThomasBayen to previous Modernisierung des Artikels
4 14-Nov-2006 15:53 8 KB PeterHormanns to previous | to last Link Unterseite
3 13-Nov-2006 15:12 8 KB PeterHormanns to previous | to last für JSPWiki mit Filter
2 13-Nov-2006 15:08 8 KB PeterHormanns to previous | to last für JSPWiki mit Filter
1 03-Oct-2006 21:29 8 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

Dies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.

Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an
und entferne diesen Text.

Vielen Dank!

{{{
>>= Krefix Linux 2 =

== Motivation ==

Auf dieser Seite sollen Gedanken und Ansätze gesammelt werden, um
eine <<aktuelleneue>> Version von KrefixLinux zu <<erzeugen.erstellen.>> Diese soll komplett
von Null neu erstellt werden. Der Hauptgrund für eine ganz neue
Krefix-Version ist die Nutzung von aktuelleren Basispaketen, d.h.

* Debian <<EtchSarge>>
* Kernel 2.6
* Shorewall 3

Dazu gibt es nach wie vor Rufe nach einer leichteren Konfiguration<<
>>z.B. durch eine <<'''Weboberfläche''' (die allerdings bisher noch nicht erhört wurden).'''Weboberfläche'''.>>

== Dokumentation eines Anfangs ==

Gestartet habe ich mit einem MinimalesDebian. Dieses habe ich mit
'''debootstrap''' erstellt und bin dann mit '''chroot''' in diese
Installation hineingegangen. Dort habe ich den Standard-Kernel von
Debian installiert. Die Entscheidung, ob ein eigener Kernel (wie in
Krefix 1) oder der Standard-Kernel letztlich mehr Vorteile bringt,
<<hängt von den konkreten Zielen des Systems ab. Im allgemeinen >>sollte <<dernochmal>> <<Standard-Kerneldiskutiert>> <<gutewerden.>> <<Arbeit leisten und er hat den Vorteil, bereits zur Verfügung zu stehen. >>Dann habe ich folgende Pakete<<
>>nachinstalliert, die einen, weil ich ohne sie verrückt werde, die
anderen weil sie für KrefixLinux essentiell sind:

 apt-get install less joe
 apt-get install bootcd bootcd-mkinitrd
 apt-get install kernel-image-2.6-686

Die aktuelle ''bootcd''-Version ist etwas aufgeräumter als früher,
d.h. schneller konfiguriert (oder bin ich nur erfahrener?!?) und
unterstützt jetzt auch Kernel mit initrd. (Dies war einer der
Gründe, warum wir einen eigenen Kernel gebaut haben). Mit dem neuen


 bootcdmkinitrd

wird das verwendete initrd-Image angepasst. Dazu konfiguriere ich
vorher ggf. ''/etc/mkinitrd/mkinitrd.conf''. '''TODO:''' Hier ist
noch ein Potential, um Platz zu sparen, indem ich die
MODULES-Einstellung auf ''dep'' anpasse und selber angebe, welche
Module ich haben will. Bei einem möglichst universellen KrefixLinux
lasse ich dies jedoch lieber auf ''most''.

Dann habe ich in der Konfigurationsdatei
''/etc/bootcd/bootcdwrite.conf'' einige Änderungen vorgenommen:
 NOT_TO_CD="/usr/share/doc /usr/share/doc-base /usr/share/man
/usr/share/locale /usr/share/zoneinfo /var/cache/apt
/var/cache/debconf /boot"

für ein LinuxOhneBildschirm noch zusätzlich:
 APPEND="console=ttyS0,38400n8 reboot=bios"
 FASTBOOT=no

Wer kein ssh installiert haben sollte:
 SSHHOSTKEY=no

Danach kann man mit '''bootcdwrite''' ein CD-Image schreiben.
Dieser ganze Vorgang geht mindestens so einfach wie früher mit der
Krefix 1.0 - Version. Lang lebe bootcd! :-) Bis hierhin hat das
Image übrigens 55MB (ohne weitere Pakete).

=== Paketliste ===

Vorher ist es natürlich noch sinnvoll, ein paar Pakete zu
installieren. Ich habe mich dabei an den bewährten und wirklich
benutzten Paketen aus Krefix 1.00 orientiert, die auf der
<<[KrefixLinux.PaketListe]KrefixLinux/PaketListe>> stehen:

* Grundlegende Pakete
** ssh
* Krefix als Router/Firewall
** <<dnsmasq (ersetzt >>dhcp3-server<<
**
>> <<und >>bind9<< - Idee von PeterHormanns)>>
** shorewall
** ddclient
** openvpn
** ntpdate
** bridge-utils
<<** pppoe, pppoeconf
>>* Pakete für besseres Konfigurationssystem
** apache

<<Mein Vorschlag:>>
<<
** '''dnsmasq''' ersetzt dhcp3-server und bind9 -PeterHormanns


>>=== booten von Festplatte ==

Zum Testen ist es sehr praktisch,<<
KrefixLinux/ImageVonFestplatteBooten
>> <<[KrefixLinux.ImageVonFestplatteBooten]zu>> <<einzurichten.haben.>> Man braucht dann<<
>>nicht jedesmal eine CD zu brennen, wenn man eine Kleinigkeit<<
>>geändert hat.<< >>

<<
>>=== Konfiguration des Grundsystems ===

Die Ursprünge unseres Projektes liegen auf der Seite<<
LinuxOnCD/BootCDAlsBasis.
>> <<[LinuxOnCD.BootCDAlsBasis]. >>Diese habe ich als Grundlage genommen, um<<
>>zu überlegen, was wir nach dem heutigen Stand alles voreinstellen<<
>>wollen. Dabei ist folgendes herausgekommen:

==== exim ====

<<BeiBwei>> <<einemder>> <<Sarge-SystemInstallation>> <<mussdes>> <<Systems bzw. später mit
'''dpkg-reconfigure exim4-config''' sollte man
>>exim <<soauf>> <<konfiguriert"Local>> <<werden,Mail
only",
>> <<alle Namen auf "localhost" und "DNS Queries minimal" auf
"Yes" konfigurieren. Ansonsten versucht exim, beim hochfahren auf
>>das <<esInternet>> <<zuzugreifen. Ist dieses >>nicht <<stört.da,>> <<Seitverzügert>> <<Debiansich>> <<Etchder
Bootprozeß
>> <<istum>> <<dieeinige>> <<InstallationMinuten,>> <<vonbis>> <<eximein>> <<garTimeout>> <<greift. Diese
Einstellung sollte man auf dem Masdtersystem machen, da da
reconfigure-Skript auf dem ISO-Krefix (dessen Paketmanagement
ausser Gefecht gesetzt ist)
>>nicht mehr <<nötig,läuft.>> <<wasDann>> <<dasmüsste>> <<Problemman>> <<amdie
entsprechenden
>> <<bestenDateien>> <<löst.von Hand anpassen.>>

<<
>>==== joe ====

Wer will, kann in ''/etc/joe/joerc'' <<und ''/etc/joe/ftyperc'' >>wordwrap und backups
ausschalten.

<<
>>==== /etc/network/interfaces ====

<<InDie>> <</etc/network/interfaces wird die lokale Konfiguration eingetragen.

''Die
>>automatische Konfiguration per DHCP hat wohl nie jemand
benutzt. Irgendwie ist die Idee, das man zuerst per DHCP die
eigenen Schnittstellen konfiguriert und dann einen DHCP-Server
startet, um andere Rechner zu konfigurieren, auch etwas paradox
gewesen. Beides zusammen funktioniert natürlich auch in Krefix 1.00
nicht, weshalb man immer eines deaktivieren sollte. Das einzige
Mal, als ich das in Funktion gesehen habe, war, als wir aus
Versehen zwei Schnittstellen an denselben Switch geschlossen hatten
und die Schnittstellen sich ständig gegenseitig per DHCP
umkonfiguriert haben. :-( Da das also
keiner benutzt hat, konfiguriere ich unsere Schnittstellen fest und
gehe damit kein Risiko <<ein.''ein.>>

<<
====
//
>> <<binddenke>> <<====

Wer
daran,
>> <<Spassdas>> <<anfat32system>> <<Bindmit>> <<hat,mkfs.vfat>> <<kannzu>> <<folgendesformatieren!
>> <<machen,

in
>> <<den/etc/network/interfaces
lokale
>> <<anderenKonfiguration>> <<empfehleeintragen>> <<ich DnsMasq:>>

<<'''/etc/bind/named.conf.options'''==== /etc/bind/named.conf.options ====>>

Der Bind9 muss angepasst werden, weil er mit DHCP zusammenarbeiten
soll. In dieser Datei muss man verhindern, daß bind
internet-interface lauscht, indem man die lokalen Interfaces
angibt.

<<==== /etc/bind/named.conf.local ====>>
<<'''/etc/bind/named.conf.local'''>>
<<
>>die lokale Zone ''db,intranet'' und ggf. noch andere eigene,
eintragen.

<<'''db.intranet'''==== db.intranet ====>>

anlegen und mit einer leeren Zone füllen.

<<'''/etc/resolv.conf'''==== /etc/resolv.conf ==== >>

den Nameserver 127.0.0.1 angeben

<<'''etc/modules'''==== etc/modules ====>>

''capability''  eintragen.

<<
>>==== Internet Zugang einrichten ====

Einrichten des Internetzugangs mit pppoeconf

Ganz selten kann es das Problem geben, daß ein Provider die
Verbindung abbricht und dann eine Neuverbindung nicht funktioniert.
Nach ein paar Minuten bricht pppoe dann komplett ab, was heisst,
man muss auf dem Krefix-System "pon" machen, um sie wieder
hochzufahren. Wer das automatisch machen will, kann einen
"Watchdog" mit '''crontab -e''' einrichten:

 # min  << >>hour <<   >>domonth month <<  >>doweek << >>command
 0-59/5 << >>*    <<   >>*       *     <<  >>*      << >>if ( ! ( /sbin/ifconfig |<<
>>/bin/grep ppp0 >/dev/null ) ); then pon; fi

<<
>>==== Einrichten von Shorewall ====
<<
>>* /etc/network/options -> ip-forwarding einschalten - ohne das
bekanntlich kein routen !
* Datei '''/etc/default/shorewall''' - Shorewall aktivieren
Dann im Verzeichnis ''etc/shorewall'' mehrere Dateien erzeugen:
* Datei '''zones''' - Hier werden Netzwerkzonen definiert
* die Datei '''Interfaces''' - Hier werden die Zonen den Interfaces
zugeordnet
* die Datei '''policy''' - Grundregeln für Datenverkehr zwischen
den Zonen
* die Datei '''masq''' - Masqurading für welches Interface
* die Datei '''rules''' - Kernstück der Firewall, eigentliche
Regeln
* '''shorewall.conf''' - ''CLAMPMSS=Yes'' setzen
<<
>>
==== /etc/dhcp3/dhcpd.conf <<- Beim Einsatz von DnsMasq unnötig >>====

die Datei  leases steht in ''var/'' und geht immer wieder verloren
... was so ein ram-var halt mit sich bringt. Deshalb diese neu
anlegen in der Datei '''/etc/init.d/dhcp3-server''' mit ''touch
/var/lib/dhcp3/dhcpd.leases''.

<<
>>==== Bootskripte ====

'''Shorewall''' hat kein forwarding gemacht, wenn das System von
alleine hochfuhr (obwohl es im Kernel so eingestellt war). Um das
zu eruieren, habe ich die '''shorewall''' hinter die Log-Skripten
gesetzt, da hat sie nicht nur geloggt, sondern jetzt auch forward
gemacht...?!? '''OpenVPN''' benötigt (um mit richtigen Zertifikaten
zu arbeiten) die richtige Uhrzeit. '''ntpdate''' benötigt wiederum
den Nameserver '''bind9''', um seinen Timeserver zu finden. Also
habe ich alle diese Skripte richtig sortiert. ''(Wäre es besser
gewesen, bind9 vorzuziehen statt die anderen nach hinten?)''

<<
>>==== Sonstiges ====

Der Nameserver bind9 benötigt das Kernelmodul "capability", das aus
irgendeinem Grunde in der modules.dep zweimal genannt wird, davon
einmal in einem "boot"-Verzeichnis. Dieses Verzeichnis ist im
debootstrap-System vorhanden, auf der CD aber nicht. Ich nehme also
an, daß es irgendwas mit ''bootcd'' zu tun hat. Auf jeden Fall
stört dieser Eintrag. Eine Idee wäre, dieses Modul in
'''/etc/mkinitrd/modules''' einzetragen. Ich halte es jedoch für
sauberer, vor dem erzeugen der CD das Verzeichnis
'''/lib/modules/.../boot/''' zu löschen und '''depmod -a'''
auszuführen. Kann sein, daß man das jedesmal wiederholen muss.

<<
>>==== Spezielle Anpassungen ====

Für einen speziellen Rechner habe ich noch die Dateien
''/etc/init.d/wrapleds'' und die Datei ''/root/leds.pl''
installiert. Dies erwähne ich hier aber nur der Vollständigkeit
halber. Sie sind für normale Benutzer nicht von Belang. Wer sie
dennoch braucht, muss ''/etc/init.d/ntpdate'' verändern und
''/etc/rc2.d/S99wrapleds'' anlegen.
<<}}}
<<--ThomasBayen