Nach der Erst-Installation von Fedora miste ich das System erst mal aus.
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.
Zum sicheren System gehören die Updates, daher kommen die jetzt dran.
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
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
Ein yum update
bringt das System auf den neuesten Stand. Da vermutlich ein Kernel-Update nötig ist, steht jetzt vermutlich ein reboot an.
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.
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
).
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!