Rootserver-alt

Aus Weimarnetz Wiki
Version vom 3. Juli 2013, 14:34 Uhr von Storchi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Diese Seite ist nur noch aus historischen und sentimentalen Gründen vorhanden. Den aktuellen Rootserver findet man hier: Rootserver =Über den Root-Server /…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Diese Seite ist nur noch aus historischen und sentimentalen Gründen vorhanden. Den aktuellen Rootserver findet man hier: Rootserver

Über den Root-Server / Technik

  • Es handelt sich um einen virtuellen Root-Server mit Debian als Betriebssystem.
  • der neue Rootserver steht in Berlin und ist eine alte HP Proliant-Gurke:
  • HP ProLiant DL360 Server G3, 19" Ausführung, 1 Höheneinheit
    • 2x Intel Xeon 2.8 GHz, 533 MHz/512 kB Cache
    • 4 GB RAM
    • 2 x 72.8 GB Hot Swap Ultra320 SCSI Festplatten 10.000 RPM
    • RAID-Controller HP Smart Array 5i Plus mit 64 MB Cache und Akkupack
    • CD-ROM
    • 3.5" Diskettenlaufwerk
    • 2 redundante Netzteile
    • 2 x PCI-X Steckplätze
    • 1 x SATA-Controller
    • 1000 Gigabyte SATA-Festplatte
  • Sound:
    • unerträglich laut (SCSI@10.000 RPM)
  • Anschlüsse:
    • 2 x Gigabit LAN, VGA, seriell, 2x USB, iLO, PS/2 Maus und Tastatur
    • angepriesen als "guter Zustand - absolut staubfrei aus DATA-Center"

Kosten

  • Anschaffung Ende 2009 zum Preis von 140 Euro + 10 Euro SATA-Controller + 70 Euro SATA-Festplatte
  • Kosten im RZ Berlin (http://in-berlin.de) fuer das Housing: 25 Euro/Monat, davon tragen 15 Euro einige Vereinsmitglieder
  • domain weimarnetz.de = 1 Euro / Monat
    • wird vom weimarnetz-Konto monatlich abgebucht

Setup

  • am 26. Januar 2011 brachten andi, storchi und michi in einer halsbrecherischen Nacht- und Nebelaktion den Server ins Rechenzentrum nach Berlin
  • Stromversorgung
    • redundantes Netzteil zugunsten einer günstigen Festplatte entfernt
    • zweites Netzteil ist in Berlin, damit es bei Bedarf getauscht werden kann
  • Netzwerk
    • Domains: root.weimarnetz.de auf eth0?, ilo.weimarnetz.de auf iLO
    • benötigen 10 IP: 1 eth0, 1 iLO, 8 Gäste, erste Gast-IP: 77.87.48.18/28
  • Festplattenkonfiguration
    • 2x 72 GB SCSI-Platten im RAID 1 (sind die im Server original verbauten Platten)
    • 1x 1,0TB (zu klein!) im Server "verlegt" und an SATA-PCIe-Karte angeschlossen
  • Betriebssystem
    • Wirt: Ubuntu 10.04 LTS Lucid Lynx
    • Gast-Template unter /home/weimarnetz/skeleton angelegt, Start mit
      • linux udba=$dateiname umid=$user mem=400M con=null eth0=tuntap,tap1 &
    • Gastbetriebssystem: Debian lenny
    • max. 8 Gastsysteme, je 400 MB RAM, je 6 GB HDD auf RAID1, Datenpartition auf Pornoplatte: Größe = (Gesamt * 0,8)/8 = 100GB
    • pro Gast eine feste, öffentliche IP
    • pro Gast ein Nutzer für SSH und UML
    • jeder Nutzer erhält die Möglichkeit seine eigene Maschine zu starten und zu beenden, kein sudo
    • Neustart Wirtssystem nur für bestimmte Nutzer
    • Gast als UserModeLinux, "Skelett" wird bereitgestellt, automatischer Start (per init-skript pro Gast)
    • Anleitung für UML unter Ubuntu: https://help.ubuntu.com/community/UserModeLinux <== die geht nicht, überhaupt bekommt man Ubuntu 10.04 nicht als UML-Gast zum laufen
  • Gäste
    • jeder Gast hat ca. 100 Gigabyte Datenplatz + 7 Gigabyte Systemplatte (Quota)
    • 77.87.48.19 weimarnetz.de (config siehe weiter unten)
    • 77.87.48.20 Storchi (cs)
    • 77.87.48.21 Andi (ab)
    • 77.87.48.22 - fe80::fcfd:ff:fe00:4/64 Basti (bb)
    • 77.87.48.23 Findi (tf)
    • 77.87.48.24 Sveni (sam)
    • 77.87.48.25 freenet heiko (hf)
    • 77.87.48.26 Stephan (sj)
  • IP-Konfiguration
    • eth0, feste, öffentliche IP
      • Nutzung des oberen Anschlusses
      • IP-Adresse: kommt per DHCP
      • Netz: 77.87.48.16
      • Netzmaske: 255.255.255.240 =/28 = 14 IP-Adressen + Netz + Gateway = 16
      • Gateway: 77.87.48.17
    • eth1:
      • untagged IN-Berlin: 217.197.91.138
      • tagged Freifunk-VLAN mit bridge 77.87.48.18 = tag1300
        • dadurch sind alle Gäste per Bridge mit dem Freifunk-VLAN verbunden
    • iLO
      • integrated Lights Out
      • IP-Adresse: 217.197.91.137
      • Domain: ilo.weimarnetz.in-berlin.de
      • Subnetmask: 255.255.255.192 =/26
      • Gateway: 217.197.91.129
      • DNS-1: 192.109.42.41
      • DNS-2: 192.109.42.42
      • ermöglicht:
        • Zugriff direkt auf Konsole
        • Ein- und Ausschalten der Stromversorgung
        • Mounten von Imagedateien
        • passwortgeschützt und verschlüsselt

Todo

    • IP-Adressen setzen:
      • für Freifunk-VLAN (2. Karte und Guests: 77.87.48.16/28, .18 bis .30 für die Geräte)
    • Startscripts für UML-Maschinen (siehe hier: http://www.jjoseph.org/linux_work/user_mode_linux_and_gentoo) ==> beispielhaft erledigt für weimarnetz-maschine
    • Datenpartitionen
    • Nutzer anlegen und Dateien kopieren (root_fs pro Nutzer und Datenpartition)
    • Vertrag mit IN-Berlin abschließen ==> erledigt
    • Domain umziehen: läuft, wird erledigt, wenn Server in Berlin

Wirt: Hauptrechner

  • user: weimarnetz
    • root-Rechte entzogen
    • SSH-Login als root gesperrt
  • Schritte um eine neue UML-Maschine anzulegen:
    • Kopieren der Datei /media/daten/uml/uml-root_skel (enthält das RootFS) vorzugsweise in das Homeverzeichnis (schnelle Platten im RAID 1)
    • Erzeugen einer Datenpartition in /media/daten/$username mit
      • dd if=/dev/zero of=$username-loopdev.bin bs=10M count=9200
    • Kopieren der Optionsdatei /media/daten/uml/uml_default_settings nach /uml/uml_$username
      • eindeutige MAC vergeben
      • Pfade zu den Dateien für das RootFS (UBDA) und die Datenpartition (UBDB) anpassen
      • Nutzer- und Maschinennamen anpassen
    • Erzeugen eines Links /etc/init.d/uml_$username auf /etc/init.d/uml_startstop
  • Schritte danach:
    • IP-Adresse (standardmäßig auf DHCP) muss auf statische gesetzt werden, IP-Verteilung siehen oben
    • Root-Passwort ändern!
    • Hostname setzen in /etc/hostname und /etc/hosts (FQDN)
    • Rechenzentrum IN-Berlin empfiehlt: Installation apticron, sucht nach Updates und versendet eine Mail wenn neue Updates vorliegen
  • Möglichkeit für "externe" swap-Partition in Init-Script eingebaut
    • UBDC_OPT=
    • [ -w $UBDC ] && UBDC_OPT="ubdc=$UBDC"
  • Gäste benutzen den shared memory des Hosts mit der Grösse=$MEM -> 8 x 400M
    • ==> FUNZT NICHT: der shared mem des Hosts ist per default Ram(4GB) / 2 -> irgendwann knallts -> /etc/default/tmpfs auf 4GB gestellt
    • Größe im Betrieb verändern: mount -o remount,size=4G /dev/shm
    • Eintrag in fstab erfolgt: tmpfs /dev/shm tmpfs defaults,size=4g 0 0 ==> jetzt ist tmpfs nach dem Reboot sofort richtig eingestellt
  • Wegen Zeitabweichung ntp installiert und gestartet

Gäste allgemein

  • Konfiguration unter
/uml/uml_$nutzername
  • Datenpartition einbinden
    • jeder Nutzer kann seine Daten im Verzeichnis /media/daten/$nutzername haben (dauert ca. 20min@75mb/s)
dd if=/dev/zero of=/media/daten/bb/bb-loopdev.bin bs=10M count=9200
    • Rechte an dieser Datei setzen, sonst kann jeder Gast diese Datei mounten!
    • Eintrag in /etc/fstab oder
    • Device node auf Gast erzeugen als root mit
mknod /dev/ubdb b 98 16
mount /dev/ubdb /.../... 
  • Swap erstellen
dd if=/dev/zero of=swap.bin bs=1M count=64
    • manuelles einbinden:
mkswap swap.bin
swapon swap.bin
    • bzw. einbinden in /etc/fstab
  • Netzwerk konfigurieren in /etc/network/interfaces
auto eth0
       iface eth0 inet static
       address 77.87.48.xx
       netmask 255.255.255.240
       gateway 77.87.48.17
  • DNS einrichten in /etc/resolv.conf
domain lan
search lan
nameserver 192.109.42.41
nameserver 192.109.42.42
  • SSHd einrichten in /etc/ssh/sshd_config
    • PermitRootLogin no
  • Passwort setzen!
passwd
  • backup des eigenen rootfsw machen:
    • mit df -h nachschauen, wieviel das rootfs belegt (z.b. 500 Megabyte)
    • maschine stoppen
    • ext3 rootfs in ext2 wandeln, um es später kleiner zu machen
tune2fs -O ^has_journal /home/bb/uml_root_bb
    • checken
e2fsck -f /home/bb/uml_root_bb
    • kleiner machen
resize2fs /dev/sda1 500M
    • komprimieren und sichern
lzma -9 /home/bb/uml_root_bb        # aus 500 Megabyte werden so 150 Megabyte
cp /home/bb/uml_root_bb /home/bb/uml_root_bb.lzma.backup
    • ext3-journal wieder herstellen und filesystem wieder aufblasen:
e2fsck -f /home/bb/uml_root_bb
resize2fs /dev/sda1 6000M
tune2fs -j /home/bb/uml_root_bb

Gast: weimarnetz

  • Root-Rechte entzogen
    • SSH-Login als root gesperrt
  • Swap eingerichtet
  • ejabberd
    • Paket installiert
    • Konfiguration von altem Server übernommen (/etc/ejabberd/ejabberd.cfg)
    • Datenbank auf neuen Server migriert, nach diesem Tutorial: http://www.ejabberd.im/migrate-host
    • Zertifikat vom alten Server kopiert
  • pyicqt
    • Paket installiert
    • Konfiguration von altem Server übernommen (/etc/pyicqt.xml.comf)
  • inn2
    • Paket installiert
    • /etc/news/incoming.conf übernommen - definiert die Server, die uns news schicken dürfen
    • /etc/news/newsfeeds - konfiguriert die Kopplung von Mailingliste und Newsgruppen sowie die Verteilung von News an befreundete Server
    • /etc/news/nntpsend.ctl - bestimmt Zeitpunkt der Synchronisation mit anderen Newsservern
    • /etc/news/readers.conf übernommen - setzt Berechtigungen
    • Nutzer freifunk übernommen
    • Dateien news2mail und mailpost in /usr/lib/news/bin vom alten Server übernommen. Diese Dateien bereiten Emails oder News für das jeweils andere System auf.
    • Sync nach dieser Anleitung eingerichtet: http://wiki.freifunk.net/Newsserver_einrichten
    • Paket procmail installiert
  • Webserver lighttpd
    • Paket lighttpd und php5-cgi installiert
    • module fastcgi, fastcgi-php, simple-vhost, auth aktiviert
    • index.php und Verzeichnis newsgroups (php-basierter Newsreader) vom alten Server kopiert
  • uml-utilities und vtun für tun/tap
    • Pakete installiert
    • Kernel 2.6.37 neu kompiliert mit TUNTAP-Unterstützung für VPN-Tunnel, die .config entspricht sonst der des anderen Kernels. Das zweite Image liegt unter /uml/kernel32-2.6.37_tuntap
    • eth0:0 in /etc/network/interfaces hinzugefügt mit Adresse 10.63.30.253
    • Konfigurations von altem Server übernommen:
      • /etc/init.d/vpn ==> erstellt Netzwerkumgebung, schreibt olsr-config und startet VPN-Server, angepasst für eth0:0
      • /etc/olsrd.conf_head ==> enthält allgemeine Einstellungen
      • startet automatisch in rc2.d: S21weimarnetz-vpn -> ../init.d/vpn
    • Router mit Internetzugang registrieren sich per Webanfrage an http://weimarnetz.de/freifunk/vpn/index.php (von altem Server übernommen. Achtung böser Hack: die Webanfragen vom alten Server werden derzeit per .htaccess-Regel auf den neuen Server umgeleitet. Alle Router (zumindest die mit Internetzugang) benötigen die neu gesetzte nvram-Variable für den Rootserver (komischerweise wird hier die IP genommen, vielleicht stellen wir das auf Domainname um) ==> per FW-Update erledigt
    • bei Registrierung wird Datei /tmp/vpnrestart angelegt, ein cron-job prüft alle 5 Minuten, ob die Datei existiert und startet das VPN-Script in diesem Fall neu
  • OLSRd
    • kompiliert und installiert
    • Extensions txt_info, dot_draw, dns kompiliert, installiert und eingerichtet
    • graphviz und imagemagick per apt-get installiert
  • Intercity VPN
  • eingehende Email
    • exim4 durch postfix ersetzt

Gast: ab

Auslastung

Die Auslastung des Rechners kann mit Jens seinem Skript kontrolliert werden.

Die Serverskripte bzw. Dateien

/etc/init.d/vpn
/etc/vtund.conf
/etc/olsrd.conf_head

sind Eigenentwicklungen.

Gefrickel

Damit Änderungen am Server von Allen nachvollzogen werden können werden Bauarbeiten im Frickel-Logbuch dokumentiert.

Zugang