Status Quo: Neuer Server / IPv6 Services bei UUGRN

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Sat, 16 Feb 2013 04:37:47 +0100
Hallo zusammen,

die letzten Wochen habe ich den neuen UUGRN Vereinsserver fertig gemacht
und weitgehend in Betrieb genommen. Der neue Server löst den Anfang 2006
gekaufen Server top.uugrn.org ab, der bis heute auf einem P4 mit 2GB RAM
seinen Dienst verrichtet hat.

Auf dem alten Server war vieles "gewachsen" und wurde daher reichlich
unflexibel, der Server läuft bis jetzt noch unter FreeBSD 7.4 (i386).

Der neue Server (top3.uugrn.org) läuft mit FreeBSD 9.1 (amd64). 

== Migration Altsysteme ==
Ich *wollte* aufgrund der großen Differenzen keine alten Jails 1:1 auf
dem neuen Server hochfahren, auch wenn dies vermutlich weitgehend
geklappt hätte. Aus diesem Grund habe ich alle UUGRN-Services und (fast) 
alle aktiven Mitglieder-Jails auf den neuen Server neu aufgebaut!

Mitglieder, die seit sehr langer Zeit gar nichts mehr mit ihren Jails
gemacht haben wurden nicht migriert, die Jails sind aber noch offline 
vorhanden (Backup) und können auf Wunsch neu aufgebaut werden. 

Jail vermisst? Einfach melden!

== Neubau statt Migration ==
Da ich einen stark automatisierten Buildprozess für Packages und Images
habe und jetzt außerdem auf ZFS aufsetzen kann, kann ich mit
verhältnismäßig wenig Aufwand ein komplettes neues Jail anlegen.

== IPv6 ==
Die gesamte Migration bringt auch weitere Neuerungen: Alle Services, 
die wir über IPv4 anbieten, bieten wir prinzipiell jetzt auch unter 
IPv6 an. Es könnte irgendwo noch Ausnahmen geben, da wurde es schlichtweg 
noch nicht reinkonfiguriert.

Das bedeutet aber auch, dass Mitglieder mit Zugang auf shell.uugrn.org
oder eigenen Jails nicht nur via IPv6 hinkommen, sondern auch von dort
wieder wegkommen.

== Aktuelle Services/Jails ==
Aktuell haben wir folgende Jails am laufen:

* shell.uugrn.org (Special: sshd auf port 443/tcp für Proxy-CONNECT)
* web.uugrn.org (Wiki, Blogs, Planet, ...)
* irc.uugrn.org
* lists.uugrn.org (Mailman und Web-Archive)
* mail.uugrn.org (interner MTA, Mailrouting, Virtuser, outgoing-MX, ...)
* news.uugrn.org (demnächst, läuft noch auf dem alten Jail)
* xmpp.uugrn.org (noch nicht in Betrieb)
* mysql.uugrn.org
* uugrn.uugrn.org (Vereinswebseite, Vorstand, Mitgliederverwaltung)
* bnc.uugrn.org (IRC-Bouncer, User können eigene v6-Adressen bekommen, mit rDNS!)
* ftp.uugrn.org (v4+v6, ftp, http, https)
* fbsd9.uugrn.org (Buildsystem)
* qa.uugrn.org (Qualitätssicherung, Testumgebung)
* diverse Mitglieder-Jails.

== Verluste ==
Bei der Migration der Dienste wurden manche Dinge nicht mit übernommen,
beispielsweise ist der Webserver auf shell.uugrn.org ersatzlos entfallen
mangels erkennbarer aktiver Nutzung. Sollte jemand einen Webserver 
benötigen richtige ich gerne ein eigenes Jail dafür ein. 

== Neue Jails ==
Es existieren folgende fertige Images, aus denen sich ad-hoc neue Jails 
anlegen lassen:

* virgin: das enthält nur und ausschließlich das Ergebnis von 
  "make installworld distribution" und ist so nicht nutzbar.

* tiny: virgin plus zahlreiche Einstellungen, die ein Jails benutzbar
  machen, keine Packages!

* small: tiny +   bash coreutils sudo gsed findutils nano screen 
                  portupgrade pkg_cutleaves portaudit

* medium: small + vim-lite emacs mc gnupg mutt slrn tin irssi lynx 
                  w3m wget rsync procmail figlet fetchmail"

* large: medium + links rar unrar zip zsh gawk ksh93 pwgen unix2dos muh climm
                  graphviz ImageMagick dovecot apache22 php5 php5-extensions

* webstatic: tiny + apache22

* webphp: webstatic + php5 php5-extensions ImageMagick

Das ist jeweils die Basis für ein neues Jail. Ein einmal installiertes 
Jail kann natuerlich per Packages oder durchselbst kompilieren von Ports 
(make install clean) beliebig verändert oder erweitert werden.


== Mailrouting ==
Ich habe das Mailrouting (IMHO) vereinfacht und gewachsene
Altlasten entsorgt. Da gab es teilweise arg verworrene, sich
widersprechende Konfigurationen verteilt über mail/mx1, shell, verein
und lists. Mailadressen wurden teilweise mit alias UND per virtusertable
auf verschiedene Ziele konfiguriert etc.

Das "vereinfachte" Mailkonzept sieht so aus: 
* Incoming Mails via mx1 und mail (mx2 wird es bald auch einen geben),
  mailrouting anhand von Domains in die jeweiligen Jails (mailertable)

* Outgoing-Mails einheitlich via mail.uugrn.org

* @uugrn.org: Mails @uugrn.org werden nur via mx1.uugrn.org eingeliefert
  und gespamfiltert und weitergeleitet auf mail.uugrn.org und werden dort 
  ausschließlich(!) per virtusertable weiter verteilt. Unbekannte
  Adressen @uugrn.org haben einen catch-all auf 
  "error:5.7.0:550 Address invalid" umgeleitet. 

* Für Mitglieder bestehen idR Weiterleitungen auf externe Mailadressen
  oder auf user_at_shell.uugrn.org oder user_at_user.uugrn.org. Wer das nutzt,
  sollte prüfen, dass es jetzt noch tut.

* @uugrn.de: Unter dieser Domain haben wir nur die allerwichtigsten
  Roleaccounts als Alias für die jeweiligen .org eingerichtet. 

* Mailinglisten (Listenadresse und alle Request-Adressen) grundsätzlich 
  über <listenname>@mailman.uugrn.org erreichbar, im Falle von
  UUGRN-eigenen Mailinglisten existieren passende
  Virtuser-Weiterleitungen in der Form 

  <listename>@uugrn.org     <listename>@mailman.uugrn.org

* Mitglieder-Domains werden per Mailrouting direkt in die jeweiligen
  Mitglieder-Jails geroutet, der dortige MTA (sendmail) muss
  entsprechend Mails annehmen können.

== DNS / Eigene Domains ==
Jedes Mitglied kann im eigenen Jail eigene Domains hosten.
Entsprechendes Mailrouting gibts dann gratis dazu.

UUGRN hostet seine Domains (und diverse rDNS) im Vereinsjail
"uugrn.uugrn.org" als Hidden Primary. Öffentliche DNS sind
ns{1,2,3}.jpru.de, weitere (inoffizielle) slaves sind u.a. auf
top3.uugrn.org, welcher auch gleichzeitig der primäre recursor für alle
Jails ist, d.h. Änderungen an der Zone werden auf dem Server sofort
wirksam (also-notify) und sehr zeitnah auch an die öffentlichen DNS-
Server notifiziert, Vorausgesetzt man hat die serial erhöht und die
zone reloaded.

== IRC/BNC/DNS/IPv6 ==
Wer eine eigene Domain hat und damit ins IRC möchte, kann auf
bnc.uugrn.org einen User und eine *persönliche* IPv6-Adresse mit 
rDNS auf einen Namen aus der eigenen Domain bekommen, also zB
        nickname!user_at_foo.example.com 

Wer BNC will aber keine Domain hat, kann wahlweise mit 
        nick!user_at_bnc.uugrn.org (v4+v6) 
oder 
        nick!user_at_wunschname.uugrn.org (nur v6) 
 
auf einen oder mehrere IRC-Server eigener Wahl zugreifen und dazu die
Vorteile eines BNC (wir bieten znc mit SSL) insgesamt nutzen.

== Was fehlt? ==
* VIMAGE: Jails können innerhalb eines vollkommen autonomen IP-Stacks
  betrieben werden, d.h. eigenes IP-Setup, Routing, Firewalling, ... 

* ping ist weiterhin nicht möglich, sorry (raw sockets).

* XMPP ist vorbereitet, tut aber noch nicht. Hilfe gesucht.

* shared memory gibts auch noch nicht, AFAIK sind shared memory segmente
  (immernoch) nicht "jailbar" und stellen daher eine Sicherheitslücke
  zwischen den Jails dar. Möglicherweise kann ich Shared memory "per
  jail" erlauben und auf diese Weise ein dediziertes PostgreSQL
  betreiben. Es gibt da so Ansätze, mir fehlt die Zeit und die
  Motivation.

* Eigene DNS-Server: Domains laufen bei uns idR via TWX/Jürgen Unger und
  somit über seine Server. Die Zonen können bei uns lokal editiert
  werden. Komplett eigene DNS würden uns unabhängiger/flexibler machen, 
  birgt aber auch ein erhöhtes Ausfallrisiko und ggf. Kosten (verteilt 
  aufgestellte Systeme). Ich kann mit dem aktuellen Stand gut leben.

* mx2.uugrn.org ... irgendwo ganz weit extern als Fallback für einen
  Totalausfall (Server, Netze, Standort). Wer könnte uns was mit
  sendmail hosten? FreeBSD oder debian willkommen, eigene root-Rechte
  erforderlich.

* jailed-ZFS: Eigene Volumes im Jail managen, zB Snapshots, Rollback, ...
  Müsste Out-of-the-Box funktionieren, ich hab nur noch nicht die
  richtigen Stellschrauben gefunden, um das (gefahrlos) für alle
  root_at_mitgliederjails zu aktivieren.

* debian-kfreebsd Image: Ich habe irgendein altes RC von wheezy schon
  vorbereitet, aber da muss *nur* noch Finetuning passieren, damit die
  debian-Jails auch ordentlich funktionieren. 
  
  Bootstrappen von debian/kfreebsd aus FreeBSD ist PITA, d.h. es 
  funktioniert *etwas*. Der alternative Ansatz ist, ein zB in 
  VirtualBox installiertes wheezy verwenden als Staging für den Bau 
  der eigentlichen Images mittels debootstrap.

  Da ich das Ganze in meiner Freizeit baue, hatte ich bisher einfach
  keine Lust das Thema voranzutreiben. Wer gerne selbst ein Debian statt
  FreeBSD-Jail haben möchte, sollte sich einfach bei mir melden (zwecks
  Motivation) und außerdem suche ich noch Probanden, also
  experimentierfreudige Debian-Gurus, die das von mir gebaute
  auseinandernehmen oder reparieren und (nichtreligiöse) konstruktive 
  Kritik anbringen können. 

  Wenn sich jemand von euch die Zeit nimmt, nehme ich sie mir auch, 
  das Thema "debian-Jail" habe ich schon seit sehr vielen Jahren auf 
  dem Radar und hab es mangels Durchhaltevermögen und Motivation nie 
  wirklich umgesetzt.

* Menschen mit KnowHow, Engagement und Zeit, also Du!

Fragen? Anregungen?

Viele Grüße
Raphael

PS: Mailman ist im ersten Versuch dieser Mail prompt fehlgeschlagen beim 
Versand, Mailsetup stand noch auf @uugrn.org statt @mailman.uugrn.org *hmpf*

-- 
Raphael Eiselstein <rabe@uugrn.org>               http://rabe.uugrn.org/
xmpp:freibyter@gmx.de  | https://www.xing.com/profile/Raphael_Eiselstein   
GnuPG:                E7B2 1D66 3AF2 EDC7 9828  6D7A 9CDA 3E7B 10CA 9F2D
.........|.........|.........|.........|.........|.........|.........|..


-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 16.02.2013

Dieses Archiv wurde generiert von hypermail 2.2.0 : 16.02.2013 CET