Basiskonfiguration von Fedora-Servern
Aus FelixSchwarz
Nach der Erst-Installation von Fedora miste ich das System erst mal aus.
Inhaltsverzeichnis |
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 (https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=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!

