Hier eine kleine Anleitung bzw. neudeutsch Tutorial für die Absicherung eines Linux vServers und die Installation eines Apache 2 Webservers mit MySQL und PHP5.
Die Grundkonfiguration & Sicherheit
Wenn man einen Linux vServer von einem Hoster bekommt ist es im Normalfall eine Standard-Installation und keinerlei Sicherheiten sind eingebaut. Dies sollte man unbedingt ganz zu Anfang ändern.
Fangen wir an: Login als “root” via SSH Console z.B. mit Putty
Ganz zu Anfang sollte sofort das generierte Passwort geändert werden
vserver~’# passwd
Es empfielt sich ein Passwort mit mind. 10 Stellen aus Groß-/Kleinbuchstaben, Sonderzeichen und Zahlen zu wählen. Z.B.: TlP&`Kk3!y
Nun bringen wir apt-get auf den neusten Stand:
vserver ~# apt-get update
vserver ~# apt-get upgrade
Ein paar nützliche Tools installieren, die das weitere Arbeiten angenehmer machen:
vserver ~# apt-get install aptitude
aptitude löst meiner Meinung nach die Abhängigkeiten der verschiedenen Pakete besser auf und installiert sorgfältiger.
vserver ~# aptitude install htop
vserver ~# aptitude install mc
vserver ~# aptitude install zip
vserver ~# aptitude install unzip
vserver ~# aptitude install bzip2
vserver ~# aptitude install screen
vserver ~# aptitude install rsync
vserver ~# aptitude install traceroute
vserver ~# aptitude install ftp
vserver ~# aptitude install lynx
vserver ~# aptitude install autoconf
vserver ~# aptitude install automake1.9
vserver ~# aptitude install libtool
vserver ~# aptitude install autotools-dev
vserver ~# aptitude install g++
vserver ~# aptitude install build-essentials#
Bringen wir nun dem Server noch die aktuelle Uhrzeit bei:
vserver ~# aptitude install ntp
vserver ~# aptitude install ntpdate
Nun kommen wir zur Sicherheit des Servers. Wir erstellen einen neuen Benutzer:
vserver ~# adduser neuerUser
Auch hier sollte das Passwort wie beim root Passwort mind. 10 Stellen haben und aus Groß-/Kleinbuchstaben, Sonderzeichen und zahlen bestehen.
Man sollte sowieso selten als root arbeiten und deswegen sperren wir den Root Zugriff via SSH.
vserver ~# mcedit /etc/ssh/sshd_config
Wir stellen:
PermitRootLogin yes
auf:
PermitRootLogin no
und ändern den SSH Port von 22 (Standard) auf einen beliebigen 4-stelligen Port 1234. Speichern und Schließen mittels F10.
Wir starten den SSH-Server neu:
vserver ~# /etc/init.d/ssh restart
Wir öffnen eine zweite Konsole und überprüfen ob wir uns als root noch anmelden können und ob unser erstellter User funktioniert. Bei etwaigen Fehlern können wir diese mittels erster Konsole beheben.
Mit “su” werden wir wieder root und mit “su username” werden wir wieder ein normaler Benutzer.
Apache2 mit PHP5 und MySQL
vserver ~# aptitude install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert
vserver ~# aptitude install php5 php5-common php5-curl php5-dev php5-gd php5-idn php5-imagick php5-mysql php5-xcache libapache2-mod-php5
Mit einem Aufruf der IP-Adresse oder Subdomain bzw. Domain über den Browser sollten wir nun ein erstes Erfolgserlebnis sehen: “It works!”. Nun testen wir noch ob PHP richtig funktioniert. Wir legen eine PHP Info Datei mit folgendem Inhalt an:
<?php
phpinfo();
?>vserver ~# mcedit /var/www/nfo.php
Danach machen wir einen Apache 2 restart:
vserver ~# /etc/init.d/apache2 restart
Sollten wir beim Aufruf der Datei mittels Browser, IP-Addresse, Subdomain oder Domain und /nfo.php keine Fehlermeldung oder die Datei zum Download angeboten bekommen funktioniert PHP erstmal optimal.
Jetzt aktivieren wir noch ein paar Apache 2 Module, die für den weiteren Betrieb nützlich sind mittels a2enmod:
vserver ~# a2enmod suexec rewrite ssl actions include
Ein weiterer Apache 2 restart:
vserver ~# /etc/init.d/apache2 restart
Zum guten Schluss installieren wir noch MySQL5 und PHPmyAdmin:
vserver ~# aptitude install mysql-server phpmyadmin
Während der Installation werden wir nach einem gewünschten MySQL-Root-Benutzerpasswort gefragt und welchen Webserver wir verwenden möchten. Als Passwort wählen wir wieder ein neues mind. 10-stelliges Passwort aus Groß-/Kleinbuchstaben, Sonderzeichen und Zahlen. Als Webserver wählen wir Apache 2 aus.
Wenn wir nun mittels Browser, IP-Adresse, Subdomain oder Domain PHPmyAdmin aufrufen und alles ordnungsgemäß angezeigt wird haben wir es geschafft. Apache 2 mit PHP5 und MySQL sind installaliert.