Raspberry Colocation bei EDIS
Du bist hier : | {{#youAreHere:Raspberry Colocation bei EDIS}} |
Hintergrund und Motivation
Der österreichische Provider EDIS bietet wieder an, kostenlos Raspberry Pi's in seinem Rechenzentrum zu unterbringen (sog. colocation). Man muss dazu nur seinen Raspberry Pi einsenden, er wird dann an's Internet angeschlossen (statische IP), 100GB Traffic sind monatlich inklusive, was für die meisten Fälle ausreichen sollte.
Von der LUG beteiligen sich MichaelWe, JoelH, Matthias, ChristianP, KlausB, JoergE am Projekt und senden ihre Pi's ein.
Wir wollen hier dokumentieren wie wir unsere Pi's konfiguriert haben, welche besondere Maßnahmen wir getroffen haben, und welche Anwendungen wir uns dafür ausgedacht haben.
Kurze Intro und Tipps verlinkt Edis selber (wohl Erfahrungsberichte aus der 1. Runde an Colocation) : Linux Journal sowie Dean Barroy's Blog
Von der Beschaffung bis zum ersten Boot
Diesen Schritten kann man der Reihenfolge entsprechend vorgehen, um eine Grundinstallation für einen Raspberry Pi Debian Server zu bekommen:
Hardware vorbereiten
Debian für Raspberry Pi
Partitionen und Images
Erster Boot und Update
Netzwerkkonfiguration
- Eindeutige SSH host keys
- Statische Netzwerkschnittstelle
- DNS einstellen
- IPv6 Setup
Damit haben wir ein generisches, schlankes, up-to-date System.
Zwischenstand
Noch nicht enthalten aber teilweise unbedingt erforderlich für sicheren Betrieb ist:
- sichere Einstellungen für Serverbetrieb
- spezifische Software
- weitergehende Partitionierung je nach Anwendung
In den folgenden Kapiteln werden entsprechende Maßnahmen beschrieben. Diese kann man je nach Bedarf kombinieren.
Weitere Maßnahmen und Vorgehensweisen
Google Docs Sheet mit Notizen von KlausB
Automatisches Update
Staging Umgebung
- qemu-arm-system
- etckeeper
Firewall und Hardening
- iptables oder ufw oder shorewall
- fail2ban
- logwatch
- unnötige Pakete entfernen
LVM
- weitere Partitionen
- dmcrypt Verschlüsselung
- LVM für Rootpartition ? Möglichkeit von Snapshots als Backup-Lösung
Mail Service
- ssmtp
- mailx
- postfix
- fetchmail
Nginx und Wordpress
Notfallplan
Performance Tests
- hdparm
- nginx compile
upstart
Diverses
fstrim
- unklar ob von Vorteil?
- /etc/cron.daily/fstrim macht ein tägliches fstrim auf "/"
- fstrim auf SD Card funktioniert, aber bei Stick gibts "fstrim: /media/stick: FITRIM ioctl failed: Operation not supported"
Checkliste vor dem Einschicken
- kein Overclocking, "grep arm_freq /boot/config.txt" muss "arm_freq=700" ergeben
- ssh konfiguriert, nicht-Standard Port verwendet, Port ist in Firewall freigeschaltet, evtl. sftpd enabled
- ssh root login gesperrt, root Passwort nicht-trivial
- user pi gelöscht
- anderer non-root user Account definiert, mit nicht-trivialem Passwort, für sudo freigeschaltet, für ssh login freigeschaltet
- alle notwendigen Partitionen auf SD Karte und Stick angelegt, mount Verzeichnisse angelegt, /etc/fstab enthält entsprechende UUID Einträge
- Stick Partition mit Option noauto in /etc/fstab, mount Befehl in /etc/rc.local
- eindeutige SSH host keys verwendet
- /etc/resolv.conf mit gültigen/optimalen Nameservern
- /etc/network/interfaces enthält statische IP Konfiguration für eth0
- /etc/rc.local enthält EDIS IPv6 Konfiguration
- DHCP ist abgeschaltet und deinstalliert
- bind deinstalliert
- exim deinstalliert
- Firewall installiert und getestet
- /etc/udev/rules.d/70-persistent-net.rules kontrolliert auf genau einen einzigen Eintrag
- optional: upstart statt sysv Init System installiert und getestet
- optional: sftpd konfiguriert, geprüft ob nur /home/<sftp user> zugreifbar ist und sonst nichts
- optional: postfix installiert, pi in aliases entfernt
- optional: automatische System Updates
- optional: Ändern der Stunde der daily cron jobs in /etc/crontab
- optional: Sprache und Zeitzone eingestellt
- (bevor IP Adresse auf EDIS umgestellt wird) . nochmal booten und prüfen dass alles hochkommt (keine Änderungen, die noch nicht übernommen wurden)
- RPi korrekt beschriftet (email + IP Adresse), vgl Bestätigungsmail von EDIS
Was kann man damit anfangen?
- Webserver aufsetzen
- BitMessage Client/Node