Root-Server mit Ubuntu 20.04

Aus LT42-Wiki
Zur Navigation springenZur Suche springen

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';