Im Prinzip hatte ich bereits ein fast komplette Anleitung für einen LAMP Server unter Ubuntu verfasst. Zu finden ist sie im Artikel "Wordpress Installation in 5 Minuten".
Dennoch möchte ich heute eine etwas ausführlichere Anleitung niederschreiben, die als Grundlage für weitere Installationen dienen kann.
1. Apache Server installieren
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2
Der Server startet direkt nach der Installation und ist unter http://localhost zu erreichen.
Weitere Konfigurationen wie bzw. das Härten sind in anderen Anleitungen zu finden. Siehe beispielsweise den Artikel "Hardening Apache".
Hier geht es nun mit dem MySQL Server weiter.
2. MySQL Server installieren
sudo apt-get install mysql-server
Das verlangte root Passwort vergeben und zwingend merken.
sudo apt-get install libapache2-mod-auth-mysql php5-mysql
Um die Installation abzurunden und eine erste Härtung vorzunehmen, sollte folgendes Skript ausgeführt werden.
sudo /usr/bin/mysql_secure_installation
Remove anonymous users? [Y/n] y
... Success!
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
- Removing privileges on test database...
... Success!
Reload privilege tables now? [Y/n] y
... Success!
Falls keine Testdatenbank existiert, kann diese auch nicht gelöscht werden, es erscheint die Meldung "Failed Database doesn't exists".
Der MySQL Server ist nun fertig eingerichtet.
Mit dem Befehl "mysql -u root -p" könnt ihr euch auf die SQL Konsole einloggen, um Datenbanken anzulegen.
Sollte eine andere IP als 127.0.0.1 verwendet werden, so muss "sudo nano /etc/mysql/my.cnf" editiert werden:
bind-address = 127.0.0.1
3. PHP5 installieren
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
Neben dem bereits weiter oben installierten php5-mysql Paket gibt es weitere Pakete, die installiert werden können, je nach Anforderung.
Eine Liste der bereits installierten Module kann mit Hilfe einer "info.php" abgerufen werden. Hierzu ist noch etwas Konfigurationsaufwand nötig:
sudo nano /var/www/html/info.php
Danach kann unter http://localhost/info.php eine Übersicht der Installation abgerufen werden.
Weitere Module lassen sich mit "apt-cache search php5" auflisten und mit "sudo apt-get install modulname" nachinstallieren.
Abschluss
Die Installation des LAMP Servers ist nun abgeschlossen.
Jedoch ist es sinnvoll den Server weiter zu härten.
Es empfiehlt sich ein Umstellung auf HTTPS, sowie das Abschalten unsicherer Protokolle wie SSL 3.0.
Die Umstellung auf HTTPS werde ich noch einmal kurz erläutern.
4. LAMP Server auf HTTPS umstellen
Zunächst muss das SSL Modul installiert werden.
sudo a2enmod ssl
sudo service apache2 restart
Danach sollte ein Zertifikat erzeugt werden. Um die etwas kryptische Zeile zu verstehen, gebe ich eine eine kurze Erklärung zu dem Befehl.
- Es wird ein selbstsigniertes Zertifikat erzeugt, dieses ist 1 Jahr gültig ("-days 365") und hat einen 4096bit RSA Schlüssel ("-newkey rsa:4096").
- Die Option "-x509" sorgt für ein selbstsigniertes Zertifikat und keine Anfrage für einen CA (csr).
- Indem der Wert "-nodes" verwendet wird, fällt die Abfrage nach einer Passphrase für den Schlüssel weg.
sudo mkdir /etc/apache2/crypt
sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/apache2/crypt/srv.key -out /etc/apache2/crypt/srv.crt
Bitte darauf achten den richtigen CN zu vergeben.
Nachdem das Zertifikat erstellt wurde, muss dem Apache Server beigebracht werden, auf HTTPS zu lauschen.
Hierzu müssen ein paar Werte angepasst werden.
sudo nano /etc/apache2/sites-available/default-ssl.conf
SSLCertificateFile /etc/apache2/crypt/srv.crt
SSLCertificateKeyFile /etc/apache2/crypt/srv.key
Folgende Werte sollten zusätzlich eingefügt werde, um unsichere Protokolle zu deaktivieren:
SSLProtocol All -SSLv2 -SSLv3
SSLCompression off
Die neue Konfiguration muss abschließend aktiviert werden
sudo a2ensite default-ssl.conf
sudo service apache2 restart
Zur Erklärung: Durch den Befehl “a2ensite” wird ein symbolischer Link im sites-enabled Verzeichnis auf die .conf Datei des virtuellen Hosts im sites-available Verzeichnis gesetzt.
5. Ende
Nun ist der LAMP Server unter einer HTTPS Adresse zu erreichen. Für eine produktive Nutzung müssen natürlich noch weitere Schritte unternommen werden, auf die ich hier nicht weiter eingehe.
Die Grundinstallation ist jedoch geschafft und der Server kann zu Testzwecken verwendet werden.