Basiskonfiguration von Fedora-Servern

Nach der Erst-Installation von Fedora miste ich das System erst mal aus.

Festplatten-Checks abschalten

Gerade Server werden nur selten gebootet und wenn man dann nach drei Monaten wegen eines kritischen Kernel-Updates mitten in der Mittagszeit schnell einen Neustart machen muss, die Maschine aber anschließend wegen des fscks noch eine Stunde offline bleibt, ist das sehr ärgerlich. Daher mittels "tune2fs -c 0 -i 0 <device>" alle checks abschalten. Natürlich muss man jetzt ab und an mal manuell prüfen, aber das kann man dann wenigstens einplanen und so gestalten, dass es niemanden stört.

System aktualisieren

Zum sicheren System gehören die Updates, daher kommen die jetzt dran.

yum konfigurieren

Die devel- und updates-testing-Versionen haben auf einem Produktivsystem keinen Platz, daher werden sie sofort gelöscht (fedora-devel.repo und fedora-updates-testing.repo in /etc/yum.repos.d/).

Wenn interne Fedora-Mirrors verfügbar sind, setze ich die baseurl in fedora.repo und fedora-updates.repo entsprechend.

Dummerweise ist GPG-Überprüfung der Pakete zwar standardmäßig aktiviert, der entsprechende GPG-Key fehlt jedoch. Er ist u.a. auf der Fedora-CD enthalten (RPM-GPG-KEY-fedora) und auch online verfügbar. Mittels rpm --import <GPG-file> kann man den Schlüssel jedoch hinzufügen.

Einige interessante Pakete sind über das Fedora Extras Projekt verfügbar, daher nehme ich deren repository in der Datei fedora-extras.repo mit auf:

[extras]
name=Fedora Extras $releasever - $basearch
baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras

Überflüssige Pakete entfernen

Hierunter fallen Pakete, die ich aus verschiedenen Gründen auf meinen Server nicht brauche oder haben will.

yum remove ppp nfs-utils rp-pppoe wvdial irda-utils pcmcia-cs isdn4k-utils gpm finger ypbind yp-tools autofs jwhois desktop-file-utils rsh redhat-menus htmlview pinfo portmap wireless-tools xorg-x11-libs xorg-x11-Mesa-libGL

Portmap kann auf Fedora Core 2 wegen eines Fehlers im RPM nur gewaltsam entfernt werden (bug 125663), in diesem Fall muss dann ein rpm -e --noscripts portmap her.

Für Server deinstalliere ich auch cups, rein formal geht damit aber die LSB-Konformität flöten. yum remove cups cups-libs

Der xinetd ist zwar ganz nett, wenn man einige Dienste nur sehr selten braucht, aber auf einem Server sollten ja eigentlich ohnehin nur ständig benötigte Dienste laufen, daher schmeiße ich den meist auch runter.

Sendmail finde ich auch doof (da installiere ich später eh Exim): yum remove mdadm sendmail

Da ich mein System über yum aktuell halte, können auch zwei weitere Pakete weg, nämlich rhnlib und up2date.

Alles zusammen sieht dann so aus:

yum remove ppp nfs-utils rp-pppoe wvdial irda-utils pcmcia-cs isdn4k-utils gpm finger ypbind yp-tools autofs jwhois desktop-file-utils rsh redhat-menus htmlview pinfo portmap wireless-tools xorg-x11-libs xorg-x11-Mesa-libGL cups cups-libs mdadm sendmail xinetd rhnlib rhnlib

Updates einspielen

Ein yum update bringt das System auf den neuesten Stand. Da vermutlich ein Kernel-Update nötig ist, steht jetzt vermutlich ein reboot an.

Service-Partitionen

Die Service-Partition (z.B. für reibungslose Upgrades etc., bei mir meist hda2 und genauso groß wie hda1) sollte noch in die /etc/fstab eingetragen werden:

LABEL=/root/service     /root/service           ext3    defaults,noauto 1 2

Falls noch nicht geschehen, muss die Partition natürlich auch noch dieses Label bekommen (tune2fs -L /root/service <device>) und das Verzeichnis /root/service sollte noch angelegt werden. Mittels /sbin/e2label kann man sich auch bestehende Partitionslabels anzeigen lassen.

Benutzer anlegen

Nur damit es später nicht vergessen wird: Es sollte noch ein normaler Benutzer angelegt werden (/usr/sbin/useradd), ein Passwort für diesen festgelegt werden (passw <username>) und ggf. auch Einstellungen für das Einloggen mittels SSH vorgenommen werden (~username/.ssh/authorized_keys).

SSH-Login für root deaktivieren

Um die meisten einfachen Attacken abzuwehren, sollte der SSH-Zugang für root schon mal gesperrt werden. Daher wird "PermitRootLogin no" in die /etc/ssh/sshd_config eingetragen und der sshd neu gestartet. Vorher sollte man allerdings testen, dass man sich als normaler Benutzer mittels SSH einloggen und mittels su zu root werden kann, sonst hat man u.U. ein Problem!