Root-Server mit Ubuntu 20.04
Der letzte Artikel zu Ubuntu 18.04 ist schon einige Jahre her, nun erfolgt die Aktualisierung auf Ubuntu 20.04 auf einem neuen Server. Das Gerät hat folgende Eckdaten:
- Intel Xeon E3-1246V3 (6999.62 Bogomips)
- 2x HDD SATA 2,0 TB Enterprise
- 4x RAM 8192 MB DDR3
Installation
Ich bin immer noch begeistert von Hetzners installimage, das eine Konfiguration der Installation im Rescuemodus möglich macht und die Rechner somit individuell konfigurieren lässt. Die Platten sind als RAID 1 gespiegelt, um eine Ausfallsicherheit zu erreichen.
Grundlegendes
Die Installationsimages sind nicht unbedingt tagesaktuell, daher aktualisieren wir nach der Anmeldung als root erstmal die Software:
apt-get update apt-get dist-upgrade
Und ein paar Tools:
apt-get install vim htop whois aptitude needrestart git unzip
Firewall
Als Firewall lässt sich ufw nutzen. Das Paket muss nachinstalliert werden:
apt-get install ufw
und lässt sich dann einfach konfigurieren. ufw kann mit Softwarepaketen und einzelnen Ports umgehen:
ufw allow 22 ufw allow OpenSSH
Obiges zu setzen bevor die Firewall aktiviert wird, ist wichtig, da man sich sonst aus dem System aussperrt. Nach einer Aktivierung mittels
ufw enable
zeigt die Firewall auch automatisch Wirkung.
Überprüfen lässt sich der Status mit
ufw status
bzw.
ufw status numbered
So können auch Regeln gelöscht werden:
ufw delete 1
Hetzner bietet in der KonsoleH ebenfalls Möglichkeiten zur Firewallkonfiguration. Vielleicht kann man so sogar noch Last vom Rechner abwenden. Ich probiere das mal aus.
Damit nicht die syslog mit Firewall-Messages überläuft, deaktivieren wir das Logging in /etc/rsyslog.d/20-ufw.conf, letzte Zeile:
& stop
Webserver Apache2
Für die Webserverkonfiguration ist wichtig, dass der Rechner unter verschiedenen Namen angesprochen wird. Apache bietet hierfür VirtualHosts an, sodass der Webserver merkt, welche Seite er ausliefern soll. Uwe Debacher hat seine Konfiguration grundlegend überarbeitet, daher nutze ich diese hier als Grundlage. Alle nötigen Schritte sind dort dokumentiert.
Konfiguriert sind in diesem Schritt nun Apache, MariaDB als DBMS und phpMyAdmin für den Webzugriff auf die Datenbanken sowie Let's Encrypt für Zertifikate. Für jeden VHost steht nun ein Ordner unter /var/www/vhosts bereit, der alle Konfigurationsdateien beinhaltet.
Dabei sind gegenüber der oben verlinkten Doku folgende Dinge anders: Ich nutze MariaDB als Datenbankserver, weshalb die Änderung in /etc/mysql/mariadb.conf.d/50-local.cnf (neu erstellt) erfolgen muss:
[mysqld] innodb_file_per_table=1 innodb_large_prefix=on innodb_file_format=barracuda innodb_flush_log_at_trx_commit = 2
Der Nutzer root verbleibt in der Standardkonfiguration mit nicht erlaubter Anmeldung, daher wird ein zweiter User erstellt, dessen Name beliebig gewählt werden kann. Dies kann alternativ auch direkt in der root-Konsole passieren:
root@server:#~ mysql MariaDB []> GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password';