Ein eigener Webserver
__ rootserver kann man heute fast zum Schnäppchenpreis bekommen. Jedoch ist es sehr wichtig, dass man sich mit der Materie auskennt, da ansonsten ein falsch konfigurierter Server schnell gehackt wird.
Ich setze deshalb in sämtlichen rootserver tutorials fundiertes linux wissen voraus und werde nicht auf Linux-Basics eingehen. __
Dieses Tutorial soll den Aufbau eines "Webhosting-Tauglichen", d.H. auf Sicherheit wenn mehrere, teils unbekannte Leute Zugriff auf den Server haben.
Dies ist kein Einsteiger-Tutorial! -Linux Einsteiger müssen sich zuerst tiefgreifend mit der Unix-/Linux Materie beschäftigen, bevor sie überhaupt daran denken einen rootserver online zu stellen!
Es wird deshalb in diesem Tutorial von fundierten Linux Kenntnissen ausgegangen.
Anforderungen
Als Hauptanforderung benötigen wir natürlich ein sicheres Grundsystem, am besten eine CentOS- oder Debian-Minimalinstallation. X-Oberflächen haben auf einem Webserver nix zu suchen.
Da wir auf diesem Server viele Ports gegen aussen offen haben werden ist die Absicherung der einzelnen Dienste ebenfalls sehr wichtig.
Auch eine Benutzerverwaltung ist ganz gut, da es auf diesem System viele Benutzer geben wird. Diese dürfen immer nur ihre Benutzerrechte haben! -Dies wird besonders wichtig beim Punkt Apache/PHP.
Was werden wir machen?
In diesem Tutorial werden wir zuerst einen LAMP (Linux Apache MySQL PHP) Server aufsetzen, danach einen Mailserver einrichten und zuletzt noch ein DNS-Server.
Web- Mail- und DNS-Server können auch je auf einem separaten Rechner, oder virtueller Maschine betrieben werden, müssen aber nicht.
Noch ein Punkt: Im Normalfall sollte der Nameserver keinesfalls auf der gleichen Maschine laufen wie der Webserver! -Wer den Nameserver nicht auf einen anderen (oder besser sogar zwei andere wegen master/slave) Server legen kann, sollte besser von free-dns Angeboten wie z.B. afraid.org Gebrauch machen.
Grundinstallation
Am Anfang zeige ich hier eine CentOS Grundinstallation, diese kann als Basis für jedes Server System genommen werden, wenn für Web-, Mail- und DNS-Server eine eigene Maschine verwendet wird.Zuerst starten wir also das System mit einer aktuellen CentOS CD/DVD; beim "Medium Test" kann im normallfall "Skip" ausgewählt werden.
Bei der Sprache sollte man "English (English) wählen, da ansonsten später unter umständen die ganzen Befehlsausgaben "gedeutscht" werden, was sehr mühsam ist und die Suche nach Hilfe erheblich erschwert.
Beim Keyboard dann kann man natürlich wieder seine "Lieblingssprache", ausgewählt werden. ;-)
Partitionierung
Im nächsten Dialog wählen wir dann: "Create Custom Layout".Falls das system kein echtes Hardware-RAID, aber zwei Festplatten hat:
erstellen wir zuerst eine kleine Partition mit 128MB und danch eine mit dem ganzen Rest auf jeweils beiden Platten (File System Type: Software RAID).
Danach wird der Button RAID gedrückt und zwei Arrays erstellt.
Standardmässig schlägt der installer md0 fürs erste array und dann +1 für jedes weitere vor. Übersichtlicher wirds jedoch, wenn man die nummern so vergibt wie sie bei den Partitionen sind, z.B. md1 für die Partitionen sda1 und sdb1, md2 für sda2/sdb2, usw.
Falls das system ein echtes Hardware-RAID hat:
In diesem Falle wird eine kleine Partition (ca. 128MB) mit ext3 und dem Mountpoint /boot (+ Checkbox: "Force to be a primary partition" selektieren) erstellt, da die meisten Bootloader mühe haben zu booten, wenn sich /boot auf dem LVM befindet.
Danach wird mit dem Rest eine Partition "physical volume (LVM)" erstellt.
LVM
Nun drücken wir den Button LVM und geben der VolumeGroup einen etwas besseren Namen, z.B. "rootvg" und erstellen darin die folgenden Volumes und grösse:| Mount Point | FS | Logical Volume Name | Size (MB) |
| / | ext3 | root_lv | 1024 |
| /home | ext3 | home_lv | 32 |
| /tmp | ext3 | tmp_lv | 128 |
| /usr | ext3 | usr_lv | 1024 |
| /var | ext3 | var_lv | 384 |
| SWAP | swap_lv | 512 |
Die Partitionierung ist bewusst "spärlich" gewählt, da das vergrössern eines Logical Volumes sehr viel einfacher ist als das verkleinern.
Später, wenn irgendwo mehr Platz gebraucht wird kann man das volume ganz einfach mittels
Später, wenn irgendwo mehr Platz gebraucht wird kann man das volume ganz einfach mittels
lvextend -L__<neue Grösse>__G /dev/rootvg/__<voulme name>__ && resize2fs /dev/rootvg/__<voulme name>__vergrössert werden.
Ist alles erledigt, gehts mit Next weiter und gleich nochmals Next beim Bootloader-Dialog.
Die Netzwerk Einstellung individuell konfigurieren und Next drücken, Zeitzone auswählen, Next, Passwort setzen, Next.
Software Auswahl
Im Software-Auswahl Dialog wird nun alles Deaktiviert und unten (x)Customize now angewählt. Nach einem klick auf Next wird hier wiederum alles Deaktiviert, ausser: "Applications => Editors".Jetzt noch zweimal Next klicken und die Installation starten lassen.
Nacharbeiten
History-Size raufsetzten
Die shell history wird sehr häufig gebraucht und manchmal sucht man auch noch Befehle, die man vor Monaten oder gar Jahren gebraucht hat. Deshalb sollte man in der Datei: /etc/profile den Wert von HISTSIZE auf etwa 100000 setzen.Firewall ausschalten
Die Vorkonfigurierte Firewall sollte in jedem Fall angepasst werden; falls das System bereits hinter einer Hardware Firewall steht, kann diese auch komplett deaktiviert werden:/etc/init.d/iptables stop; chkconfig iptables off
SELinux deaktivieren
SELinux erschwert in erheblichem Masse die Fehlersuche und führt zu sehr lästigen Fehlerfällen. Deshlab sollte man dieses, sofern man es nicht unbedingt benötigt, deaktivieren / auf permisse setzen.Dazu einfach in der Datei /etc/selinux/config den Wert:
SELINUX=enforcingauf:
SELINUX=permissivesetzen (das System muss neu gestartet werden, damit die Änderung übernommen wird!).
Basis-Pakete nachinstallieren
Nun installieren wir einige häufig genutzte Pakete in der neuesten Version:yum install man bind-utils wget slocate ntp ftp perl telnet lsof sudo smartmontools screen unzip samba-client rsync unzip yum-priorities
rpmforge repository hinzufügen
Es ist zwar dir selbst überlassen ob du Zusatz-Repositorys hinzufügen möchtest, oder ein strikt nur CentOS-Core system betreiben willst, jedoch basieren einige meiner Workshops zumindest auf ein installiertes rpmforges repository.
Da CentOS teils schon sehr alte packages und auch bei weitem nicht alles, was man so installieren möchte (z.B. nagio,nrpe,usw.) empfielt es sich das rpmforge repository hinzu zu fügen.
Zuerst muss jedoch das yum-priorities plugin installiert werden, damit die Zusatzpakete nicht mit den Stadard Paketen kollidieren, so wie wget um überhaupt an das rpmforge-rpm ran zu kommen. ;-)
yum install yum-priorities wget wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.$(uname -i).rpm rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt rpm -K rpmforge-release-0.5.2-2.el?.rf.*.rpm rpm -ihv rpmforge-release-0.5.2-2.el?.rf.*.rpm
Nun gehe alle .repo files in /etc/yum.repos.d/ durch und füge bei jedem repository-Eintrag jeweils die Zeile:
priority=Nhinzu, wobei N eine Zahl zwischen 1 und 99 ist.
Die Empfohlenen Einstellungen sind:
[base], [addons], [updates], [extras] ... priority=1 [centosplus],[contrib] ... priority=2 "Third Party Repos" so wie z.B. rpmforge ... priority=N (wobei N hier eine Zahl grösser als 10 sein sollte)
Siehe dazu: Installing RPMforge
Zusätzliche Software installieren
Nun können wir noch in den Genuss der einiger beliebter Zusatz-Pakete kommen, die uns rpmforge bietetyum install iperf atop iftop htop
System updaten und finaler restart
Zum Schluss bringen wir noch alle Pakete auf den neuesten Stand und starten das System neu:yum upgrade yum clean all yum update shutdown -r now
Du hast nun ein stabiles und schlankes "roh-linux" System, dass du für alle arten von servern verwenden kannst.
Related Links
| Link | Beschreibung | ||
| Tutorial Installation Debian ETCH Server | Gut aufgebautes Webserver Tutorial | ||
| Installing RPMforge | rpmforge installieren | ||

Neuen Kommentar posten