CentOS minimalisieren

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche

Für einen Server ist eine Installation von CentOS ohne Ballast sinnvoll. Dennoch bringt eine während der Installation auswählbare Minimalinstallation noch sehr viele überflüssige Pakete mit. In Anlehnung an einen Artikel der Zeitschrift Linux-Professionell ("Weniger ist sicherer"; Ausgabe 3/2006, Seite 88ff) wird hier beschrieben, wie im Anschluß an eine minimale Installation das System deutlich schlanker gestaltet werden kann.
Eine virtuelle Maschine bietet eine elegante Möglichkeit, ein neues System zu installieren und dabei mit einem bereits funktionierendem System im Hintergrund zu operieren. Vor allem kann nach der Grundinstallation von CentOS eine Kopie der virtuellen Maschine angelegt werden und die Minimalisierung "am lebenden Objekt" durchgeführt werden. Läuft die virtuelle Maschine nach der Schlankheitskur nicht (mehr), kann auf die Kopie zurückgegriffen werden, ohne erneut eine zeitaufwändige Installationsprozedur durchführen zu müssen. Deswegen wird die Minimalisierung von CentOS anhand einer virtuellen Maschine mit VMware beschrieben.
Dieser Artikel wurde auf der Basis von CentOS 4 (Updates 3 und 4) erstellt.

Inhaltsverzeichnis

CentOS installieren

Virtuelle Maschine anlegen

Eine neue virtuelle Maschine anlegen. Siehe hierzu: VMware - eine neue virtuelle Maschine anlegen.
Für eine minimale CentOS-Installation genügen die Einstellungen.

  • RAM: 256 MB
  • HD: 1,5 GB (davon 100 MB für /boot; 384 MB für Swap; 1 GB für / . Eine individuelle Partitionierung ist natürlich auch möglich.)

Für einen Server ist es empfehlenswert, eine statische IP-Adresse zur Verfügung zu haben. Hierzu sollte einerseits eine statische MAC-Adresse in der .vmx-Datei eingetragen und andererseits kein DHCP-Client notwendig sein.

Virtuelle Maschine erstmals starten (Installation CentOS)

Die neue virtuelle Maschine erstmals starten, während im DVD-Laufwerk des Wirtsystems die CentOS DVD (hier: Version 4.4) eingelegt ist.

Achtung Achtung: Es ist darauf zu achten, daß für einen Start von CD/DVD das virtuelle Laufwerk nicht als SCSI-Laufwerk konfiguriert ist. Starten ist nur von virtuellen IDE-Laufwerken möglich.
  • Gegebenenfalls die angebotene Medien-Prüfung durchführen.
  • Tastaturlayout und Sprache auswählen
  • Installationstyp Benutzerdefiniert auswählen
  • manuelles Partitionieren wählen
Partitionen mit
  • 100 MB für Partition "/boot" (Ext2)
  • 384 MB für Partition "/swap" (swap)
  • 1 GB (Rest) für Partition "/" (Ext3)
anlegen und mit <Weiter> Partitionierung bestätigen und abschließen.
  • Netzwerkkonfiguration
Zunächst eine Netzwerkkonfiguration automatisch über DHCP wählen, auch wenn ein Server grundsätzlich nicht über DHCP eine IP-Adresse erhalten sollte. Dennoch ist es sinnvoll, bei der ersten Erstellung einer virtuellen Server-Maschine die automatische Adressvergabe mittels DHCP zu wählen, damit diese virtuelle Maschine als Kopiervorlage für weitere Server dienen kann ("Template"), ohne daß es bei der weiteren Verwendung einer Kopie zu Adresskonflikten durch fest eingestellte IP-Adressen kommt. Bei der endgültigen Konfiguration der virtuellen Maschine wird eine feste IP-Adresse konfiguriert und das Paket DHCP-Client außer Betrieb genommen und möglichst deinstalliert.
  • Konfiguration der Firewall
Aktiviere Firewall auswählen. Für das weitere Vorgehen ist es sinnvoll, mit SSH auf den Server zugreifen zu können. Um dies zu ermöglichen, Fernwartung (SSH) ankreuzen. Aus Sicherheitsgründen für die Verwendung als Server SELinux aktivieren? auf Aktiv einstellen.
  • Zusätzliche Sprachen
keine weiteren Sprachen auswählen.
  • Auswahl der Zeitzone auf Europa/Berlin einstellen und Systemuhr verwendet UTC anwählen. Sinnvollerweise verwendet ein Server die UTC-Zeit.
  • Root Paßwort vergeben.
  • Auswahl der Paketgruppen
Hierbei Minimal auswählen, auch wenn feststeht, für welchen besonderen Zweck der Server benötigt wird. Nachdem die virtuelle Maschine fertiggestellt ist, kann eine Kopie mit der benötigten Software mittels Yum nachgerüstet werden. Für ein schlankes und minimalisiertes System werden an dieser Stelle keine weiteren Pakete oder Paketgruppen ausgewählt.


  • Installation beginnt

Nach Beendigung des Vorganges das virtuelle System neu starten lassen.

Repositories einbinden

Auf einem lokalen Rechner (beispielsweise mit dem DNS-Alias "nfs") könnten Installations- und Update-Dateien von den öffentlichen Servern gespiegelt abgelegt sein, um Bandbreite zu sparen und einen schnelleren Zugriff der lokalen Rechner zu gewährleisten.

Für das Einbinden eines Einhängepunktes (Mountpoint) im Verzeichnis "/mnt" ein Verzeichnis "/mnt/nfs" und "mnt/nfs/install" erstellen.

[root]# mkdir /mnt/nfs
[root]# mkdir /mnt/nfs/install

Das auf dem Server "nfs" freigegebene Verzeichnis einbinden:

[root]# mount -t nfs -o tcp nfs:/srv/install /mnt/nfs/install

(erforderlichenfalls die Pfade entsprechend anpassen)
Im Verzeichnis /etc/yum.repos.d/ muss eine Repository-Datei für diese lokalen Repositories angelegt werden und die Repositories in den bereits vorhandenen Dateien mit "enabled=0" ausgeschaltet werden oder alternativ die vorhanden Dateien im Verzeichnis /etc/yum.repos.d/ löschen, falls nur lokale Repositories verwendet werden sollen. Sicherheitshalber zuvor die vorhandenen Dateien sichern, um im Fehlerfalle darauf zurückgreifen zu können.

[root]# mkdir /root/backup
[root]# mkdir /root/backup/etc
[root]# mkdir /root/backup/etc/yum.repos.d
[root]# cp /etc/yum.repos.d/CentOS-* /root/backup/etc/yum.repos.d/

Mit einem Texteditor (z.B. vi/vim) die Repository-Dateien in /etc/yum.repos.d/ entsprechend bearbeiten.

Unnötige Dienste ausschalten

Der Daemon smartd ist in einer virtuellen Maschine nicht notwendig, um die "Festplattengesundheit" zu überwachen. Mit chkconfig sollte smartd dauerhaft ausgeschaltet und aus der Startreihe der Daemonen entfernt werden.

[root]# chkconfig --del smartd

Die nachfolgenden Dienste sollten in einer minimalen virtuellen Maschine nicht enthalten sein, die als "Kopiervorlage" für weitere virtuelle Server dienen soll. Wenn einer dieser Dienste in einer speziellen virtuellen Server-Maschine benötigt wird, kann er wieder aus den lokalen Repositories nachinstalliert werden.

Das Ziel ist, einen virtuellen Server mit einer festen IP-Adresse zu betreiben. Wie bereits erwähnt, wird der DHCP-Client zu gegebener Zeit erst entfernt und bleibt zunächst erhalten.

[root]# service cups stop
[root]# chkconfig --del cups
[root]# service sendmail stop
[root]# chkconfig --del sendmail
[root]# chkconfig --del readahead
[root]# chkconfig --del readahead_early
[root]# chkconfig --del autofs

Falls die virtuelle Maschine kein Mehrprozessorsystem bieten soll:

[root]# chkconfig --del irqbalance


Anmerkung Anmerkung: Wenn die lokalen Repositories mittels NFS nicht benötigt werden, weil nur mit Datenträgern gearbeitet wird, kann der Portmapper und NFS ausgeschaltet werden. Ansonsten sollten die folgenden Dienste beibehalten werden.


[root]# chkconfig --del netfs
[root]# chkconfig --del xinetd
[root]# chkconfig --del portmap

Unnötige Dienste entfernen

Mit yum werden für einen minimalistischen Server unnötige Dienste entfernt. Hierzu zählen auch solche Dienstprogramme, die einem Angreifer zu leichtfertig Informationen zur Verfügung stellen könnten.

Kommunikation

[root]# yum remove isdn4k-utils
[root]# yum remove bluez-*
[root]# yum remove irda-utils
[root]# yum remove wireless-tools

(Mit den wireless-tools wird auch der NetworkManager entfernt)

Backup und Recovery

[root]# yum remove dump rmt
[root]# yum remove mt-st

Microsoft DOS- und Windows-Tools

[root]# yum remove dosfstools mkbootdisk
[root]# yum remove dos2unix unix2dos
[root]# yum remove syslinux

Unnötige Netzwerkdienste

[root]# yum remove finger ftp lftp rsh rsync telnet rdist talk
[root]# yum remove traceroute mtr
[root]# yum remove iptstate
[root]# yum remove ipsec-tools stunnel
[root]# yum remove nc tcpdump

Modem-Einwahl

[root]# yum remove ppp wvdial rp-pppoe

NIS - Yellow Pages

[root]# yum remove yp-tools ypbind

Serielle Schnittstellen

[root]# yum remove lrzsz minicom setserial statserial

Stromsparfunktionen

[root]# yum remove apmd

Alternative Shells

[root]# yum remove ash pdksh tcsh

Wörterbücher

[root]# yum remove aspell-* words

Eine Verbindung zum Paßwort-Check wurde nicht entdeckt.

Kernel- und System-Tools sowie PCMCIA/CS

[root]# yum remove netdump diskdumputils
[root]# yum remove pcmcia-cs
[root]# yum remove gpm
[root]# yum remove parted
[root]# yum remove eject
[root]# yum remove cryptsetup
[root]# yum remove hdparm
[root]# yum remove vconfig
[root]# yum remove pyxf86config rhpl up2date

Eventuell können die Konfigurationstools entfernt werden, wenn die Konfiguration über Textdateien bekannt ist:

[root]# yum remove system-config-*
[root]# yum remove lha zip
[root]# yum remove htmlview pinfo
[root]# yum remove jpackage-utils jwhois
[root]# yum remove OpenIPMI*
[root]# yum remove lksctp-tools
[root]# yum remove sysreport

Prozeßkontrolle

[root]# yum remove lsof psacct

CentOS aktualisieren

Das auf dem Server "nfs" freigegebene Verzeichnis einbinden:

[root]# mount -t nfs -o tcp nfs:/srv/install /mnt/nfs/install

(erforderlichenfalls die Pfade entsprechend anpassen)

Mit yum Updates aus den lokalen Repositories abrufen und einspielen:

[root]# yum update

Anschließend das NFS-Verzeichnis aushängen

[root]# umount /mnt/nfs/install

Virtuelle Maschine herunterfahren

Wenn keine allgemeingültigen weiteren Anpassungen an der virtuellen Maschine erforderlich sind, die virtuelle Maschine herunterfahren:

[root]# halt -p


Virtuelle Maschine sichern

Die erstellte virtuelle Maschine kann als Vorlage für weitere virtuelle Server genutzt werden. Sicherheitshalber kann die erstellte Vorlage vom Wirtsystem aus auf Datenträger gesichert werden.

[root]# tar -czv /root/backup/vmCentOS44template.tar.gz ./vmCentOS44template/

wobei vmCentOS44template das Unterverzeichnis ist, in welchem die virtuelle Maschine installiert wurde.

Das mit tar erzeugte Archiv beispielsweise auf CD/DVD brennen.

Weiteres


Links