Installation CentOS
CentOS ist ein Klon des Red Hat Enterprise Linux (RHEL). Bei CentOS wurde an sich nur rechtlich bedenkliche Dinge ausgetauscht und ‘up2date’ durch ‘yum’ ersetzt. Wenn man im Enterprise-Umfeld auf Linux setzt, kommt man vermutlich nicht an Red Hat vorbei – CentOS bietet hier eine kostengünstige Variante.
Voraussetzung zur virtuellen Installation
- Ein Server, PC oder Workstation mit installiertem Windows oder Linux Betriebssystem
- Installation des VMware Player von
- Download des Installations -ISO von http://www.centos.org (32Bit oder 64Bit)
Hardwareanforderung
- Mindestesns 512MB RAM (2GB empfohlen)
- Mindestens 10 GB HD (100GB oder mehr, plus zweite HD wird empfohlen)
- Mindestens eine NIC (2 empfohlen, wenn eine Firewall aufgebaut werden soll)
- 1 CD oder DVD Laufwerk (Bei virtueller Installation mit eingehängten CentOS ISO /kann nach der Installation entfernt werden)
Installation
Wird der Server mittels der ersten DVD gebootet beginnt die Installation. Nach der Installationsbestätigung kann das Medium auf Fehler geprüft werden.
Um eine Kickstart-Installation zu starten, müssen Sie das System von einem von Ihnen erstellten Boot-Medium oder der Red Hat Enterprise Linux CD-ROM Nr. 1 booten und einen speziellen Boot-Befehl am Boot-Prompt eingeben.
Sprache
Der Installer passt sich dem Benutzer an und so werden nun erst mal Sprachen und Tastatur-Layout abgefragt.
Installation oder Upgrade
Findet der CentOS-Installer eine bereits bestehende Installation, so bietet er die Möglichkeit ein Upgrade zu machen. Da wir das natürlich nicht wollen, geht es mit dem Punkt “Centos installieren” weiter.
Festplatte
Die Festplattenaufteilung ist nicht ganz unwichtig und so wird auch diese abgefragt.
Partitionierung
Mount | Größe | Partitionierung |
---|---|---|
Swap | ca 1,5 bis 2 X RAM | swap |
/ | ca 10GB | ext4 |
/home | ziemlich viel, je nach Verwendung des Servers | ext4 |
Wenn zweite HD vorhanden | ||
/Backup | komplett, idealerweise gleiche Größe wie HD1 | ext4 |
Netzwerk
Auch belasse ich bei der Netzwerk-Konfiguration alles laut Standardeinstellung. Sie bezieht in diesem Fall alle nötigen Daten über DHCP. Dieser Dienst muss natürlich auch im Netzwerk erreichbar sein.
Region
Wo steht der Server…
Wozu, wenn man doch schon das Tastaturlayout angegeben hat, muss diese Einstellung sein? Die einfache Antwort ist:
Die Erde unterteilt sich in 24 Zeitzonen. Ist die System-/BIOS-Uhr auf UTC gestellt, so kann anhand der Positionierung auf der Karte die korrekte Zeit eingestellt werden.
Root
Das Setzten des root-Kennwortes ist sicher eine Einstellung, die jeder nachvolziehen kann. Dieses Passwort sollte sicher und einmalig sein.
Software-Pakete
Die art der Installation (Spätere Verwendung des Servers)
Die Auswahl der zu installierenden Software gehört sicher zu jeder vernünftigen Installation! Auch hier ist das so. Da kein Mensch jedes der tausenden Software-Pakete kennen will, kann man hier eine grobe Auswahl treffen, die die entsprechenden Pakete automatische und mit allen Abhängigkeiten auswählt.
Darüber hinaus kann durch die Aktivierung der “Anpassen-Option” eben dieses im nächsten Schritt getan werden.
Auch in der erweiterten Einstellung wählt man keine einzelnen Pakete aus – Man wählt, was man will und die CentOS-Installation erledigt den Rest. So kann man sehr leicht seine persönliche Distribution zusammenstellen. Ob der Server nun ein grafisches Frontend haben soll, oder nicht und ob bzw. Datenbanken installiert werden sollen…
Installation
Die Installation der Software beginnt.
Hier besteht die Möglichkeit sich alles noch Mal zu überlegen. Da wir an dieser Stelle aber wild entschlossen sind, klicken wir auf “Weiter” und die Installation beginnt.
Nach einiger Zeit, nachdem der Fortschrittsbalken die 100% erreicht hat, wird zum Neustart des Servers aufgefordert.
Nach dem ersten Reboot
Sollte es sein dass sie vergessen haben eine grafische Oberfläche mit zu installieren, kann dies jetzt nachgeholt werden. Ist die Oberfläche schon installiert, ignorieren sie diesen Abschnitt.
Zuvor muss das Netzwerk aktiviert werden. Hierzu muss die Datei ifcfg-eth0 editiert und das Netzwerk restartet werden:
vi /etc/sysconfig/network-scripts/ifcfg-eth0 onboot = yes #HWADDR= #UUID= service networt restart reboot
Neu anmelden, dann können die fehlenden Pakete nachinstalliert werden:
yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"Optional kann noch installiert werden:
yum -y groupinstall "Graphical Administration Tools" yum -y groupinstall "Internet Browser"Wollen sie zur auswahl auch einen KDE Desktop haben, wird er so nachinstalliert:
yum -y groupinstall kde-desktop
Mit dem Befehl
startx
kann die grafische Oberfläche (in diesem Fall Gnome) gestartet werden. Bei einem Neustart wird immer zuerst ohne Grafik gestartet.
Benutzer anlegen
Den ersten Benutzer anlegen (Weitere Benutzer werden nach der Installation angelegt)
Die Firewall
Aktivierung oder Deaktivierung Anders als bei der IPTabels-Konfiguration kann man auch hier sehr komfortabel möglich, ohne sich im einzelnen die Regeln ausdenken zu müssen.
SELinux
Das steht für ein “sicherheitsverbessertes Linux”. Es handelt sich dabei um eine Erweiterung des Kernels, die die Zugriffe auf Ressources über Policies regelt. SELinux ist recht komplex und so verwundert es nicht, dass diese Funktion zumeist abgeschaltet ist. Hier ist die Installation abgeschlossen. Bei einer virtuellen Installation sollten noch die VM-Tools installiert werden. SELinux, welches übrigens maßgeblich von Red Hat und der NSA einwickelt wurde, ist aber nicht das einzige Produkt, was ein “verbessertes” Sicherheits-Linux bietet. AppArmor (Novel) ist nur eines. – Es sollte vor allen den Suse-Nutzern bekannt vorkommen.
Kdump
Es ermöglicht den Kernel-Speicher bei einem Linux-Crash abzugreifen. Wer sich in den Tiefen von Linux bewegt und sich dort mit “debug”-Maßnahmen konfrontiert sieht… Für den ist dies’ die richtige Option. Der “normalsterbliche” Mensch, der CentOS im semi-professionellen Einsatz hat, kann auf Kdump guten Gewissens verzichten.
Datum und die aktuelle Urzeit
Diese kann von Hand eingegeben, aber vor allem auch über NTP angeglichen werden. Letzteres ist eine praktikable Möglichkeit um mehrere System synchron zu halten. Mit einem gesteigerten Sicherheitsbedürfnis und entsprechender Größe der Netz-Infrastruktur ist es zu empfehlen einen eigenen NTP-Dienst aufzubauen.
Der Super-Nutzer ‘root’ existiert bereits. Da es nicht immer gut ist sich als ‘root’ anzumelden, bietet die Installation/Konfiguration die Möglichkeit einen Nutzer initial anzulegen. Weitere können später auch ohne Probleme über die CentOS/Red Hat-Tools angelegt werden. – ‘adduser’ gibt es auch – also besteht an dieser Stelle kein Zwang sich auf einen Benutzer festzulegen.
Ob eine Soundkarte in einem Server wirklich benötigt wird sei dahingestellt. Jedenfalls wird hier die Möglichkeit angeboten, diese zu konfigurieren.
CentOS besitzt, wie jede moderne Distribution, die Möglichkeit mehrere verschiedene Software-Repositories anzugeben. das erweitert die Softwareauswahl und macht manchmal den Unterschied bei der Distributionswahl aus. Diese Software-Verzeichnis-Erweiterungen lassen sich selbstverständlich auch im Nachhinein erweitern bzw. ändern.
Anmeldung
Endlich – der lang ersehnte Anmelde-Bildschirm.
Dies bedeutet, dass die Grundkonfiguration abgeschlossen und CentOS einsatzbereit ist. Meldet man sich hier mit dem zuvor angelegten Nutzer an, ist man auf der sicheren Seite und kann für’s erste nicht viel falsch machen.
Konfiguration
Administrative Systemkonfigurationen müssen als root durchgeführt werden
su -
VMware Tools installieren
Nur bei der Installation eines virtuellen Servers können die VMware-Tools installiert werden. Sie stellen ein Treiberpaket, optimiert für die virtuelle Hardware, dar und erhöhen die Performance der virtuellen Maschine.
- Im VMware Player (blauer Balken) unter Virtual Machine → Install VMware Tools aktivieren
- Die Datei VMwareTools*.tar.gz entpacken
- in diesem Ordner die Installation mit ./vmware-install.pl starten
- Mogleiche fehlende Abhängigkeiten
- perl fehlt → yum install perl
- GCC fehlt → yum install gcc
- Kernel Header fehlen → kernel-header nachinstallieren → Tools installieren
Sprache einstellen
In der Datei .dmrc werden die Spracheinstellungen jedes Benutzers eingestellt.
Die Sprache auf deutsch umstellen:
vim ~/.dmrc
[Desktop] Language=de_DE.UTF-8 Layout=de nodeadkeys
Speichern und neu anmelden (reboot ist nicht nötig)
Um allen weiteren Benutzern diese Sprache als Standart einzustellen, wird die Datei .dmrc nach skel kopiert
su - cp /home/user/.dmrc /etc/skel/
Systemweit wird die Sprache in /etc/sysconfig/i18n eingestellt:
LANG="de_DE.UTF-8" SYSFONT="latarcyrheb-sun16" export LC_MESSAGES="de_DE.UTF-8"
Weitere Benutzer anlegen
Alle weiteren benötigten User werden angelegt
useradd peteroder etwas ausführlicher:
useradd -s <SHELL> -m -d <HomeDir> -c <'Comment'> -g <Group> UserName -s SHELL # Login shell des Benutzerkontos # /bin/bash -> Standard Shell verwenden (die Bash) # /sbin/nologin -> darf sich nicht lokal am Server anmaleden -m # Heimatverszichnis erstellen, falls nicht vorhanden -d HomeDir # Pfad des Heimatverszichnis -c 'Comment' # Vollständiger Benutzername -g Group # Hauptgruppe des Benutzerkontos UserName # Benutzername (Loginname)
sudo
Falls gewünscht, kann ein User mit temporären administrativen Rechen ausgestattet werden. Dazu wird die Datei /etc/sudoers angepasst.
Diese Datei NIE mit einem Texteditor bearbeiten! Immer visudo verwenden
visudoBeispiele:
root ALL = (ALL) ALL # Das heißt root darf alle Befehle mit sudo ausführen. %administrator ALL = (ALL) ALL # Die Gruppe administrator darf alle Befehle mittels sudo als root ausführen. admin ALL = NOPASSWD: ALL # Der User admin darf ohne Passwortabfrage alle Programme ausführen. %users ALL = NOPASSWD: /bin/mount # Die Gruppe users darf den Befehl /bin/mount ausführen
Weite Informationen unter http://wiki.ubuntuusers.de/sudo/Konfiguration
Netzwerk
Vorgaben | ||
---|---|---|
Statische IP | eth0: 192.168.10.63 | eth1: 10.10.1.1 |
Gateway | eth0: 192.168.10.1(DSL-Router) | eth1: kein |
Servername | SRV | |
DNS | 194.25.2.129 (DNS des eigenen Provider) |
Den Provider DNS kann man unter www.denic.de ausfindig machen
Zuerst ermitteln wir die aktuelle Konfiguration
ifconfig
Servername vergeben und IPv6 deaktivieren
vim /etc/sysconfig/network
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=SRV
Netzwerk konfigurieren
Bitte Device-Name, HW Adresse, IP-Adresse, Gateway und DNS so wählen wie es für ihr Netzwerk sinnvoll ist.
Für die erste Netzwerkkarte: | vim /etc/sysconfig/network-scripts/ifcfg-eth0 |
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static HWADDR=00:0C:29:85:15:BC ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.10.63 GATEWAY=192.168.10.1 TYPE=Ethernet DNS1=194.25.2.129 # DNS des eigenen Provider NAME=INTERNET-eth0
Für die zweite Netzwerkkarte: | vim /etc/sysconfig/network-scripts/ifcfg-eth1 |
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth1 BOOTPROTO=static HWADDR=00:0C:29:85:15:C6 ONBOOT=yes NETMASK=255.255.255.0 IPADDR=10.10.1.1 TYPE=Ethernet DNS1=194.25.2.129 # DNS des eigenen Provider NAME=LAN-eth1Die IP Adrsse des DNS kann man bei www.denic.de sehen, wenn man nach seinem Provider sucht
Lokale Namensauflösung
vim /etc/hosts
127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 10.10.1.1 srv-lan 192.168.10.63 srv-internet # LAN Hosts 10.10.1.2 printer 10.10.1.10 laptop 10.10.1.11 office
Änderungen aktivieren mit:
service network restart
Kontrollieren mit:
ifconfig
Drucker
start → Administration → Drucken
Hiermit kann man dem Server einen neuen Drucker hinzu fügen
Über die Webseite: http://127.0.0.1:631 kann der Druckserver cups administriert werden. Sollte die Adresse nicht erreichbar sein, muss der Druckserver cups installiert und gestartet werden:
yum install cups service cups start chkconfig cups on
Anpassen der Repositories
Auf der Seite http://wiki.centos.org/AdditionalResources/Repositories
und http://www.fedorawiki.de/index.php/Centos:Repositories
Werden viele weitere Quellen für Installationsdateien (Repositories) angeboten.
Repositories freischalten
Für BASE
vim /etc/yum.repos.d/CentOS-Base.repo
hier alle ausgeschlossenen base URL aktivieren (das # entfernen)
Repositories hinzu fügen
ACHTUNG
Das hinzu fügen von Repositories zwielichtiger Herkunft oder mit Beta-Status kann das System schwer schädigen.
cd /etc/yum.repos.d/ vim reponame.repo # Die Endung .repo ist wichtig
Jetzt auf dem oberen Link ein Repositori auswählen und den Inhalt der .repo Datei kopieren. Dies aber nur durchführen, wenn es unbedingt wichtig sein sollte.
Beispiel rpmforge für ein CentOS 5
vim /etc/yum.repos.d/rpmforge.repo
[rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 0 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el5/en/$basearch/extras mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge-extras #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-extras enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 0 [rpmforge-testing] name = RHEL $releasever - RPMforge.net - testing baseurl = http://apt.sw.be/redhat/el5/en/$basearch/testing mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge-testing #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge-testing enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 0Weitere Informationen unter: http://wiki.centos.org/AdditionalResources/Repositories/RPMForge
Eine genauere Beschreibung Reositories einzubinden gibt es unter Einbinden des RPMForge Repository unter CentOS 6.x zu lesen.
Proxy verwenden
wenn ein Proxy verwendet werden muss wird dieser mit einem Export-Befehl in der Shell konfiguriert
export http_proxy=http://192.168.10.1:3128 # für Proxy ohne Passwort und dem Port 3128 export http_proxy=http://user:passwort@192.168.10.1:3128 # für Proxy mit User/Passwort
Weitere Infos unter: http://www.darian-brown.com/export-proxy-in-linux/
Nach dem Schließen der Shell oder einem Neustart ist die Export-Variable wieder deaktiv. Um sie permanent zu aktivieren wird die Datei
/home/benutzername/.profile
um die export-Zeile des Proxy erweitert. Direkt nach deranmeldung des Benutzers wird ihm der Proxy zugewiesen. Um allen Usern eines Systems einen (den gleichen) Proxy zuzuweisen wird die Teil ein die Datei
/etc/bash.bashrc
eingetragen.
Update
yum update # Update ohne Kernelupdates yum upgrade # Update mit Kernelupdates
Automatischer Dienststart anpassen
chkconfig --list # Listet alle Dienste und ihr Startverhalten chkconfig --list|grep dienstname # Zeigt das Startverhalten des Dinstes dienstname chkconfig dienstname off # Beendet den autmatischen Start des Dienstes dienstname chkconfig dienstname on # lässt den Dienst dienstname beim Booten automatisch starten
Runlevel ändern
Der Runlevel bestimmt das Startverhalten eines Systems. Die Standart-Runlevel sind:
# 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this)
Nach einer klassischen Installation startet der Server im Runlevel 5, also mit X. Um ressourcen zu sparen soll der Server im Runlevel 3 (ohne X) starten. Hierfür wird die Datei inittab angepasst:
vim /etc/inittab
Die Zeile
id:5:initdefault:
wird geändert zu
id:3:initdefault:
Jetzt ist die grafische Oberfläche deaktiviert. Sie kann nach dem Login mit dem Befehl
startx
nachgeladen werden. Beim Abmelden wird sie dann wieder beendet.
Filesystem tunen
Dieses Beispiel bezieht sich auf die Partition /dev/sdb1. Um Änderungen am Index vorzunehmen, darf die Partition nicht gemountet sein.
Index auf Baumstruktur setzen
tune2fs -O dir_index /dev/sdb1 umount /dev/sdb1 e2fsck -fD /dev/sdb1 e2fsck -f /dev/sdb1
Dateisystemcheck anpassen
tune2fs -c 10 -i 180 /dev/sdb1Dies erlaubt 10 Mount-Vorgänge oder ein halbes Jahr zwischen zwei e2fsck-Läufen. Werte von 0 schalten den automatischen Test komplett ab
Infos über FS
dumpe2fs -h /dev/sdb1 mke2fs -n /dev/sdb1 # Gibt die Blocknummer des Superblocks ausSollte e2fsck bei einem beschädigten Dateisystem wegen eines kaputten Superblocks die Arbeit verweigern, kann man das Tool anweisen, einen der Reserve-Superblocks zu verwenden: e2fsck -b Superblock
ACL aktivieren
tune2fs -o acl /dev/sdb1
Weitere Informationen siehe: http://www.heise.de/open/artikel/Verzeichnis-Optimierung-224376.html
Böse Fehler beheben
Manche fehlerhafte Einstellungen können den Start eines Systems verhindern. Beispielsweise löst ein
id:6:initdefault:
in der Datei /etc/inittab einen ständigen reboot aus. Um solche Fehler wieder beheben zu können muss der Server mittels einer Live-CD (zB Knoppix) gebootet werden. Von dort kann auf die Linux Partitionen und auf die dort liegenden Konfigurationsdateien zugegriffen werden und mit einem Texteditor der Fehler wieder behoben werden.