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 neue Version von KrefixLinux zu 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 Sarge * Kernel 2.6 * Shorewall 3 Dazu gibt es nach wie vor Rufe nach einer leichteren Konfiguration z.B. durch eine '''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, sollte nochmal diskutiert werden. 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 stehen: * Grundlegende Pakete ** ssh * Krefix als Router/Firewall ** dhcp3-server ** bind9 ** shorewall ** ddclient ** openvpn ** ntpdate ** bridge-utils * 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 zu 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. Diese habe ich als Grundlage genommen, um zu überlegen, was wir nach dem heutigen Stand alles voreinstellen wollen. Dabei ist folgendes herausgekommen: ==== exim ==== Bwei der Installation des Systems bzw. später mit '''dpkg-reconfigure exim4-config''' sollte man exim auf "Local Mail only", alle Namen auf "localhost" und "DNS Queries minimal" auf "Yes" konfigurieren. Ansonsten versucht exim, beim hochfahren auf das Internet zuzugreifen. Ist dieses nicht da, verzügert sich der Bootprozeß um einige Minuten, bis ein Timeout 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 läuft. Dann müsste man die entsprechenden Dateien von Hand anpassen. ==== joe ==== Wer will, kann in ''/etc/joe/joerc'' wordwrap und backups ausschalten. ==== /etc/network/interfaces ==== 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. // denke daran, das fat32system mit mkfs.vfat zu formatieren! in /etc/network/interfaces lokale Konfiguration eintragen ==== /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 ==== die lokale Zone ''db,intranet'' und ggf. noch andere eigene, eintragen. ==== db.intranet ==== anlegen und mit einer leeren Zone füllen. ==== /etc/resolv.conf ==== den Nameserver 127.0.0.1 angeben ==== 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 ==== 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.