Docstoc

wiki

Document Sample
wiki Powered By Docstoc
					Krefix Linux 2 #
Motivation #

Auf dieser Seite sollen Gedanken und Ansätze gesammelt werden, um eine aktuelle Version von
KrefixLinux zu erzeugen. 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 Etch
  • 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).

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 der
Standard-Kernel gute 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/

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
      o ssh

  • Krefix als Router/Firewall
      o dnsmasq (ersetzt dhcp3-server und bind9 - Idee von PeterHormanns)
      o shorewall
      o ddclient
      o openvpn
      o ntpdate
      o bridge-utils
      o pppoe, pppoeconf

  • Pakete für besseres Konfigurationssystem
      o apache


=== booten von Festplatte ==

Zum Testen ist es sehr praktisch, KrefixLinux.ImageVonFestplatteBooten einzurichten. 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

Bei einem Sarge-System muss exim so konfiguriert werden, das es nicht stört. Seit Debian Etch ist
die Installation von exim gar nicht mehr nötig, was das Problem am besten löst.


joe

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


/etc/network/interfaces

In /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.


bind

Wer Spass an Bind hat, kann folgendes machen, den anderen empfehle ich DnsMasq:

/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


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

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:2
posted:11/11/2012
language:Unknown
pages:4