Neuinstallation von MERLIN
Leider muss ich meinen Server MERLIN neu installieren. Hier beschreibe ich, wie ich das mache.
Hardware
Bisher war MERLIN ein AMD K6-III 400. Nun wird es ein Pentium III mit 1000 MHz. Das Root-Dateisystem soll auf eine 20GB-Platte. Außerdem sind noch zwei 120GB-Platten als RAID-1 drin. Es steckt eine 100 Mbit-Netzwerkkarte darin und noch eine 10 Mbit-Netzwerkkarte für DSL, außerdem noch eine ISDN-Karte.
Installation & Konfiguration
Als erstes besorge ich mir eine Debian 4.0r2 Netzinstallations-CD. Damit installiere ich nun Debian auf der 20GB-Platte. Ich habe Standard-System ausgewählt. Was dann noch fehlt, ergänze ich später. Ich habe für die Lokalisierungseintellungen de_DE.UTF-8 gewählt. Mal sehen, ob das mittlerweile alles funktioniert mit UTF-8.
Als nächstes installiere ich openssh-server, damit ich von meinem Rechner aus weitermachen kann.
Nun installiere ich einige nützliche Pakete:
- bzip2
- mc
- pydf
- unzip
- vim
- w3m
Vim wird gleich zum Standardeditor gemacht mittels:
# update-alternatives --config editor
Netzwerkeinstellungen
Nun konfiguriere ich MERLINs Netzwerkeinstellungen. Dazu kopiere ich die /etc/network/interfaces zurück. Im Moment sind erstmal nur die LAN-Einstellungen wichtig. Daher kommentiere ich zunächst alles außer eth0 und lo aus. Ich füge noch das provisorische Standardgateway ein. Wenn alles fertig ist, soll MERLIN ja wieder selbst mit dem Internet verbunden sein.
E-Mails
Da das im Moment am dringendsten ist, versuche ich zunächst die Maildienste zum Laufen zu bekommen.
# aptitude install fetchmail cyrus-imapd-2.2 cyrus-admin-2.2 cyrus-doc-2.2
Procmail ist anscheinend schon installiert.
Cyrus
Die Sache mit Cyrus gestaltet sich anscheinend etwas komplizierter. Vorher war Cyrus 1.5.x installiert, bei Etch ist jedoch Cyrus 2.2 dabei. Mittels
# saslpasswd2 -c cyruskann man beispielsweise den Benutzer cyrus anlegen und ihm ein Passwort zuweisen.
Außerdem lege ich mit Hilfe von cyradm und dort mittels
cm user.benutzernameMailboxen an. Dann kopiere ich die alten Mails wieder nach /var/spool/cyrus/mail/ und folge der komplizierten Vorgehensweise in der Cyrus-Dokumentation, um alles an die neue Version anzupassen.
Gut, jetzt kann ich endlich wieder Mails lesen, wenn auch nur alte.
Procmail
Damit neue Mails an Cyrus weitergeleitet und dort richtig einsortiert werden, muss ich Procmail konfigurieren. Dazu kopiere ich einfach die alten .procmailrc-Dateien in die jeweiligen Home-Verzeichnisse.
CRM114
In den .procmailrc-Dateien steht, dass Mails teilweise durch den Spamfilter CRM114 gefiltert werden sollen. Daher muss ich nun CRM114 installieren und die alten .crm114-Verzeichnisse wieder in die Homeverzeichnisse der jeweiligen Benutzer kopieren.
Fetchmail
Damit wieder neue Mails ankommen, brauche ich Fetchmail. Ich kopiere also die alte fetchmailrc nach /etc und schalte den Fetchmail-Dämon in /etc/default/fetchmail an. Nachdem ich ihn starte, rattert er fleißig und holt alle Mails ab, die bis dahin aufgelaufen sind.
Allerdings funktioniert die Auslieferung an cyrus noch nicht. Ich habe mir da erstmal so geholfen, dass ich /usr/sbin/cyrdeliver SUID root gemacht habe. Irgendwann muss ich mir da mal noch eine bessere Lösung einfallen lassen.
Nameserver
Als nächstes ist der Nameserver dran. Dazu installiere ich bind9 und kopiere die Konfigurationsdateien zurück. Dann stelle ich noch in /etc/resolv.conf ein:
search messing.net nameserver 127.0.0.1Das war's im Wesentlichen schon.
Firewall
Seit "Etch" gibt es leider nicht mehr diesen Mechanismus, der beim Start
iptables-restore < /var/lib/iptables/activeausführt. Es gibt selbst das ganze Verzeichnis /var/lib/iptables nicht mehr. So wie ich das verstehe, soll man nun stattdessen ein Skript nach /etc/network/interfaces/if-up.d packen.
DSL
Zunächst installiere ich das Paket pppoe. Dann kopiere ich die Dateien /etc/ppp/peers/dsl-provider, /etc/ppp/pap-secrets und /etc/ppp/chap-secrets zurück sowie einige Skripte in /etc/ppp/ip-up.d. Anschließend kommentiere ich die Zeilen für eth1 und ppp0 in /etc/network/interfaces aus.
Damit Pakete anderer Rechner auch weitergeleitet werden entkommentiere ich noch folgende Zeile in /etc/sysctl.conf:
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.conf.default.forwarding=1
DHCP
Ich installiere dhcp3-server. In /etc/default/dhcp3-server stelle ich ein:
INTERFACES="eth0"und die dhcpd.conf kopiere ich nach /etc/dhcp3/dhcpd.conf.
Software-RAID
Ich installiere mdadm. Während der Installation kommt die Frage, welche Arrays schon frühzeitig beim Booten aktiviert werden sollen, weil sie für das Root-Dateisystem benötigt werden. Ich entscheide mich für "none", da mein RAID nicht das Root-Dateisystem umfassen soll. Die Frage, ob mdadm beim Booten alle Arrays automatisch starten soll, bejahe ich.
Anschließend ändere ich in /etc/mdadm/mdadm.conf die Zeile
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=2d2cbb53:01133b54:87c126da:b3be5336
in
ARRAY /dev/md/d1 level=raid1 num-devices=2 UUID=2d2cbb53:01133b54:87c126da:b3be5336
Nun lege ich das Verzeichnis /raid an und füge den entsprechenden Eintrag in /etc/fstab ein:
/dev/md/d1p1 /raid ext3 defaults 0 2
Kleinigkeiten
Schöne Eingabeaufforderung
Damit die Eingabeaufforderung ordentlich aussieht, ersetze ich in /etc/bash.bashrc den entsprechenden Code durch das folgende:
# set prompt if [ "$SHELL" = "/usr/bin/pdksh" -o "$SHELL" = "/usr/bin/ksh" -o "$SHELL" = "/bin/ksh" ]; then PS1="! $ " elif [ -n "$ZSH_VERSION" ]; then if test "$UID" = 0; then PS1='%n@%m:%~ # ' else PS1='%n@%m:%~ > ' fi elif [ "$SHELL" = "/usr/bin/ash" -o "$SHELL" = "/bin/ash" ]; then PS1="$ " elif [ -n "$BASH_VERSION" ] ; then set -p case $TERM in xterm*|rxvt*) TITLEBAR='\[\033]0;\u@\h:\w\007\]' ;; *) TITLEBAR="" ;; esac if test "$UID" = 0 ; then PS1=$TITLEBAR'\[\033[0;32m\][\t] \[\033[1;31m\]\h:\[\033[1;36m\]\w \[\033[1;31m\]#\[\033[0m\] ' else PS1=$TITLEBAR'\[\033[0;32m\][\t] \[\033[1;32m\]\u@\h:\[\033[1;36m\]\w \[\033[1;32m\]$\[\033[0m\] ' fi else PS1='\h:\w \$ ' fi PS2='> ' ignoreeof=0 export PS1 PS2 ignoreeof
Anschließend füge ich noch in /etc/profile folgendes ein:
test -e /etc/bash.bashrc && . /etc/bash.bashrcdamit die schöne Eingabeaufforderung sowohl in interaktiven Shells als auch in Login-Shells sichtbar ist.
Anschließend entferne ich noch in den entsprechenden Dateien in den Homeverzeichnissen der Benutzer sowie in /etc/skel alle Prompt-Einstellungen.
Vim
Damit Vim ordentlich aussieht kopiere ich meine .vimrc nach /root und /home/smessing. Nicht vergessen, den Besitzer der Datei anzupassen.
Backup
Damit alle Daten auf dem RAID des nachts gesichert werden können, lege ich den Benutzer dirvish an und kopiere den entsprechenden Public Key nach var/local/dirvish/.ssh/authorized_keys. Dann installiere ich noch rsync. Außerdem verschiebe ich /var/spool/cyrus/mail nach /raid/mail und lege stattdessen einen symbolischen Link an, damit auch alle Mails nachts gesichert werden.
Samba
Ich installiere Samba und richte es so ein, dass ein Unterverzeichnis des RAIDs nur für den Benutzer smessing lese- und schreibbar freigegeben ist. Das ist die smb.conf:
[global] workgroup = OBERDORF server string = %h server interfaces = 192.168.0.0/255.255.255.0, 172.17.1.0/255.255.255.0, 127.0.0.1 obey pam restrictions = Yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* . syslog = 0 log file = /var/log/samba/log.%m max log size = 1000 dns proxy = No panic action = /usr/share/samba/panic-action %d invalid users = root [smessing] path = /raid/smessing write list = smessing guest ok = No [printers] comment = All Printers path = /var/spool/samba create mask = 0700 printable = Yes browseable = No [print$] comment = Printer Drivers path = /var/lib/samba/printers
Nun füge ich noch folgende Zeile auf smessing in /etc/fstab ein, damit die Freigabe //merlin/smessing immer eingehängt wird:
//merlin/smessing /home/smessing/raid cifs user=smessing%passwort,uid=smessing,gid=smessing 0 0
Subversion
Ich installiere subversion und lege unter /raid/smessing/Studium/diplomarbeit ein neues Subversion-Repository an.
Zope & Plone
So, dann will ich mal Zope und Plone installieren:
# aptitude install plone-site
Das wars schon.
Hylafax
Zunächst müssen einige Pakete installiert werden:
# aptitude install hylafax capi4hylafax dialog make linux-headers-2.6.18-6-686
Anschließend laden wir das den Treiber für die Fritz-Karte von AVM herunter und entpacken ihn:
# wget http://www.avm.de/files/cardware/fritzcrd.pci/linux/suse.93/fcpci-suse93-3.11-07.tar.gz # tar xvzf fcpci-suse93-3.11-07.tar.gzNun müssen wir in src/tools.h
die folgenden Zeilen auskommentieren (ab Zeile 74):
static inline unsigned long atomic_xchg ( volatile atomic_t * v, unsigned value ) { return __xchg (value, &v->counter, sizeof (unsigned)); } /* atomic_xchg */
Jetzt können wir mittels ./install das Kernelmodul kompilieren und installieren lassen.
Wir entfernen nun die Hisax-Treiber mittels:
aptitude remove isdnutils-base
Nach einem Neustart müsste dann das fcpci-Modul geladen werden.
Nun konfigurieren wir Capi4Hylafax mittels:
# capi4hylafaxconfig Outgoing MSN: 25 Incoming MSNs: 25 Fax Number: +49.3622.4019725 Fax Identifier: Messing Number Prefix: 0
In /etc/default/capi4hylafax entkommentieren wir nun die Zeile
run_capi4hylafax=1
und starten capi4hylafax und evtl. auch hylafax neu. Und das Modul capi müssen wir noch laden irgendwie. Das schreib ich jetzt einfach mal in /etc/modules mit rein. Anscheined muss man noch in der Datei /etc/isdn/capi.conf das Kommentarzeichen vor dem Eintrag fcpci entfernen. Das scheint alles garnicht so einfach zu sein mit dem Faxkram.
Hier ist noch ein Howto, allerdings für Sarge: http://www.brueck-computer.de/index2.php?modul=1402&link=1
...TODO
Wichtig
Weniger wichtig, ging aber vorher
- ISDN -> Anrufbenachrichtigungen an VDRs schicken
- Apache -> MRTG o.ä.
- CUPS
Unwichtig
- Prompt im mc