Benutzer-Werkzeuge

Webseiten-Werkzeuge


ag:infrastruktur:chaotikum:gallifrey

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
  • Moriz
  • Magu
  • Matthias
  • Nils
  • Kai

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-srv01
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
::22 192.168.1.34 dashboard
::23 192.168.1.35 monitoring
::24 192.168.1.36 engelsystem
::25 192.168.1.37 c3moin
::36 192.168.1.54 pad
::37 192.168.1.55 sediment

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
ffhl-srv01 ja Freifunk-VM
ffhl-srv02 ja Freifunk-VM

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
monitor nein Icinga keine (nur intern/IPv6)
ccchl ja www.ccchl.de keine (Reverse Proxy durch web)
ldap ja LDAP-Server keine (nur intern/IPv6)
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)
gitlab ja GitLab keine (Reverse Proxy TODO)
buildweb ja Gitlab Runner ?
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 ?
monitoring ja Icinga next generation keine
pad nein etherpad-lite keine
engelsystem nein Engelesystem keine

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).

SSL

Um deine neue subdomain oder domain mit SSL zu versorgen musst du dem certbot sagen, dass die Domain existiert.

Der Befehl sieht ungefähr so aus:

certbot certonly --expand -d cal.chaotikum.org -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 taskboard.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

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>. Am besten updaten man auch den Befehl hier im Wiki.

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 1 die richtige Auswahl. Mit 2 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.

Ideen

  • Zram?
  • dn42 subnetz?
ag/infrastruktur/chaotikum/gallifrey.txt · Zuletzt geändert: 15.09.2019 18:08 von Malte Schmitz