Benutzer-Werkzeuge

Webseiten-Werkzeuge


infrastruktur:server:gallifrey

Dies ist eine alte Version des Dokuments!


gallifrey

gallifrey ist ein Server bei Hetzner. Dort laufen mehrere VMs und Container, die Dienste für das Chaotikum bereitstellen.

Administrativen Zugriff auf den Server haben:

  • Björn
  • Dominik
  • Jannis
  • Linus
  • Lukas
  • Moritz
  • Magu
  • Matthias
  • Nils
  • Kai
  • Paul

Netzwerkdaten

Öffentliche IPv4

Service-Container bekommen nicht selbst öffentliche IP-Adressen, sondern werden per DNAT oder Reverse Proxy angebunden.

IP Funktion
176.9.147.99 host-ip
176.9.147.120 ffhl-srv02
5.9.47.118 mail.chaotikum.net
176.9.147.89 dsbuild.chaotikum.net

Wenn eine IPv4 dazukommt, oder eine neue Funktion übernehmen soll sind folgende Schritte relevant

  • Beim hoster (aktuell hetzner) ist der Reverse-DNS-Eintrag anzulegen (Zugang hat der Vorstand)
  • Beim DNS (inwx) ist der A Record zu hinterlegen (Zugang hat der Vorstand)
  • Auf gallifrey /etc/network/interfaces anpassen (unten, Abschnitt vms). (Entweder reboot zum aktivieren, oder die geänderten Zeilen (ohne up am Anfang, $IFACE durch vms ersetzten) direkt in die shell tippen. Vorher Ausgabe von „ip r“ und nachher vergleichen, dann siehst du, was es bewirkt.) WICHTIG: Definitiv in die Datei schreiben, dasKommando ist anstelle des Reboots
  • Container konfigurieren: Dabei geht es um /etc/network/interfaces Beim Inhalt an existierenden Containern orientieren.
  • Im neuen Container /etc/init.d/networking restart um die neue Netzwerkkonfiguration zu aktivieren

IPv6 & internes IPv4

IPv6-Prefix: 2a01:4f8:160:3067::/64

Zwischen den VMs wird zusätzlich ein internes Subnetz verwendet: 192.168.1.0/24
Die VMs kommen per Masquerade ins IPv4-Internet.

Identifier IPv4 Funktion
::2 192.168.1.2 host-ip
::3 192.168.1.3 ffhl-srv01
::4 192.168.1.4 ffhl-srv02
::5 192.168.1.5 ccchl
::6 192.168.1.6 c3po (inaktiv)
::7 192.168.1.7 monitor
::8 192.168.1.8 ldap
::9 192.168.1.9 mail
::a 192.168.1.10 web
::b 192.168.1.11 seafile
::c 192.168.1.12 postgres
::d 192.168.1.13 redmine
::e 192.168.1.14 gitlab
::f 192.168.1.15 buildweb
::10 192.168.1.16 metanook
::11 192.168.1.17 status
::12 192.168.1.18 pretix
::13 192.168.1.19 microll
::14 192.168.1.20 schnitzeljagd
::15 192.168.1.21 ds-build
::16 192.168.1.22 ffhl-gluon01
::22 192.168.1.34 dashboard
::23 192.168.1.35 monitoring
::24 192.168.1.36 engelsystem
::25 192.168.1.37 c3moin
::26 192.168.1.38 nookVideo
::27 192.168.1.39 keycloak
::36 192.168.1.54 pad
::37 192.168.1.55 sediment
::38 192.168.1.56 codi
::39 192.168.1.57 nachtlicht

Wer dieser Liste etwas hinzufügen möchte und nicht besser weiß, was er/sie tut, ist wahrscheinlich gut bedient damit einen neuen Container anzulegen. Wie das geht steht weiter unten.

VMs

Die VMs liegen in der VG vg_data und werden nach dem Schema vm_name.img benannt.

VM Produktiv? Funktion

Container

Container sind per Default nur per IPv6 aus dem Internet erreichbar. Soll ein Service auch über IPv4 nutzbar sein, so sollte die Domain für den Server als CNAME auf gallifrey.chaotikum.net konfiguriert werden und die benötigten Ports per DNAT weitergereicht werden (IPv4 + IPv6).

Der Eintrag eines CNAMEs findet auf inwx.com statt, Zugang zum Account des Chaotikums hat der Vorstand. Dort ist unter DomainDomain List die Domain auszuwählen, zu der eine Subdomain erstellt werden soll. Unten DNS Records auswählen und einen neuen Eintrag entsprechend zu einem funktionierenden alten hinzufügen.

Container Produktiv? Funktion Weitergeleitete Ports
ccchl ja www.ccchl.de keine (Reverse Proxy durch web)
ldap ja LDAP-Server ldaps (tcp/636)
mail ja Mailserver (SMTP, IMAP) keine (eigene IPv4/IPv6)
web ja Webserver, Webservices 80, 443
seafile ja Seafile keine (Reverse Proxy durch web)
postgres ja PostgreSQL keine (nur intern/IPv6)
redmine ja Redmine keine (Reverse Proxy durch web)
buildweb nein Gitlab Runner keine, reiner Client
dashboard ja Smashing Dashboard keine (Reverse Proxy durch web)
pretix ja Pretix keine (Reverse Proxy durch web)
schnitzeljagd nein Schnitzeljagd ?
ds-build ja Tex-Build für die Datenschleuder keine (eigene IPv4/IPv6)
microll nein microll ?
engelsystem nein Engelesystem keine
nachtlicht ja Website des Nachtlchts keine (Reverse Proxy durch web)

Aufsetzen eines neuen Containers

Zum automatisierten Aufsetzen eines neuen Containes kann das Script

/root/mkcontainer.sh

verwendet werden.

Nach ausführen des Kommandos wird man gefragt welchen Name der Container haben soll, danach welche IP. Die Liste genutzter IPs findet sich weiter oben auf der Seite.

Die manuelle Installation ist eine Alternative zu /root/mkcontainer.sh und sollte gewöhnlich nicht notwendig sein.

Du kommst dann mit ssh [containername] auf deinen container.

Zum Datenschutz: Du kannst auf deinem Container neue Keys hinzufügen, damit mehr Menschen auf den Container kommen. Es gibt hier eine Einschränkung. Verarbeiten die Systeme auf dem Container personenbezogenen Daten darf die Anzahl von Menschen die Zugriff haben nicht größer als 9 Personen sein (was sie auf Gallifrey bereits ist).

Services

SSL

Um deine neue subdomain oder domain mit SSL zu versorgen musst du dem certbot sagen, dass die Domain existiert. Das tut man im web container.

Der Befehl sieht exakt genau so aus:

certbot certonly --expand -d chaotikum.org -d dashboard.chaotikum.org -d git.chaotikum.org -d mail.chaotikum.org -d pad.chaotikum.org -d redmine.chaotikum.org -d seafile.chaotikum.org -d wiki.chaotikum.org -d www.ccchl.de -d www.chaotikum.org -d metanook.de -d www.metanook.de -d pretix.chaotikum.org -d sediment.chaotikum.org -d status.chaotikum.org -d nook-luebeck.de -d www.nook-luebeck.de -d xn--nook-lbeck-feb.de -d www.xn--nook-lbeck-feb.de -d 2011.nook-luebeck.de -d 2011.xn--nook-lbeck-feb.de -d 2012.nook-luebeck.de -d 2012.xn--nook-lbeck-feb.de -d 2013.nook-luebeck.de -d 2013.xn--nook-lbeck-feb.de -d 2014.nook-luebeck.de -d 2014.xn--nook-lbeck-feb.de -d 2015.nook-luebeck.de -d 2015.xn--nook-lbeck-feb.de -d 2016.nook-luebeck.de -d 2016.xn--nook-lbeck-feb.de -d 2017.nook-luebeck.de -d 2017.xn--nook-lbeck-feb.de -d 2018.nook-luebeck.de -d 2018.xn--nook-lbeck-feb.de -d 2019.nook-luebeck.de -d 2019.xn--nook-lbeck-feb.de -d 2020.nook-luebeck.de -d 2020.xn--nook-lbeck-feb.de -d frab.nook-luebeck.de -d frab.xn--nook-lbeck-feb.de -d docs.chaotikum.org -d nachtlicht.chaotikum.org -d nobreakspace.org -d www.nobreakspace.org -d me.chaotikum.org -d c3moin.org -d www.c3moin.org

Da müssen alle Domains drin sein, also suche am besten die letzte Nutzung aus der Historie und ergänze ihn am ende um -d <DEINEDOMAIN>. Den Befehl hier im Wiki auch unbedingt immer updaten!.

Danach muss nginx die Konfiguration neu laden, damit es das neue Zertifikat auch ausliefert.

systemctl reload nginx

Trubbleshooting

Eventuell kommen jetzt Rückfragen vom Tool:

How would you like to authenticate with the ACME CA?
-------------------------------------------------------------------------------
1: Place files in webroot directory (webroot)
2: Spin up a temporary webserver (standalone)
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 1

Hier ist Place files in webroot directory (webroot) die richtige Auswahl. Mit der anderen Option erhält man zwar ein Zertifikat, aber müsste den Webserver stoppen, was vor allem nicht automatisch beim automatischen Erneuern des Zertifikates passiert.

Wenn man nach dem Pfad für den webroot gefragt wird ist /var/www/challenges/ die richtige Antwort (Das ist in der nginx conf für die Seite angegeben, der Location-Block mit .well-known).

Der certbot sollte nun durchlaufen und dir sagen, dass alles funktioniert hat.

Wenn man versehentlich per standalone ein Zertifikat geholt hat, muss man eine config Datei (/etc/letsencrypt/renewal/cal.chaotikum.org.conf) anpassen, damit das automatische Erneuern wieder geht: Im Abschnitt [renewalparams] muss authenticator = webroot gesetzt sein, und als nächste zeile webroot_path = /var/www/challenges/ vorhanden sein. Danach geht es wieder. Testen kann man dies mit certbot renew --dry-run, was man allerdings nicht zu oft machen sollte, da man sonst das API-Limit erreicht.

Backup

Ein nächtliches Backup von Gallifrey wird auf Case gesichert. Weitere Informationen siehe Backup.

Ideen

  • Zram?
  • dn42 subnetz?

Name

Gallifrey is a fictional planet in the long-running British science fiction television series Doctor Who. It is the original home world of the Time Lords, the civilisation to which the main protagonist, the Doctor belongs. It is located in a binary star system 250 million light years from Earth. https://en.wikipedia.org/wiki/Gallifrey

infrastruktur/server/gallifrey.1609845211.txt.gz · Zuletzt geändert: 05.01.2021 11:13 von Lukas Ruge