<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div>Hallo Daniel</div><div><br></div><div>Vielen Dank für den raschen Fix! Wünsche dir angenehme Feiertage.</div><div>Beste Grüße aus Biel,</div><div>Andreas </div><div><br></div><div><br></div><div><br></div><div id="composer_signature"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">--<div>Andreas Habegger </div><div>Professor of Informatics in Micro- and Medical-Technology</div><div><br></div><div>Bern University of Applied Sciences</div><div>Institute for Human Centered Engineering - microLab [HG 508]</div><div>Quellwasser 21</div><div>CH-2501 Biel/Bienne</div><div><br></div><div>T: +41 32 321 67 81</div></div><div><br></div><div style="font-size:100%;color:#000000"><!-- originalMessage --><div>-------- Original message --------</div><div>From: Daniel Baumann <daniel.baumann@bfh.ch> </div><div>Date: 12/25/16 11:32 (GMT+01:00) </div><div>To: bfh-linux-announce@lists.bfh.ch, bfh-moodle-announce@lists.bfh.ch, its-moodle-webadmin@lists.bfh.ch </div><div>Cc: its-linux-sysadmin@lists.bfh.ch </div><div>Subject: Zwei Moodle Unterbrueche in der letzten Woche </div><div><br></div></div>Hallo zusammen,<br><br>die vergangene Woche gab es zwei Moodle Unterbrueche:<br><br> * Montag, 19.12.2016: 07:47 bis 08:01<br> * Freitag, 23.12.2016: 19:31 bis Samstag, 24.12. 11:54<br><br>Kurze Erklaerung:<br><br> * Moodle laeuft innerhalb eines Linux Containers. Der Container laeuft<br> auf einem sogenannten Container Server.<br><br> * Die Container Management-Tools haben eine sicherheitsrelevante<br> Einstellung fuer das Verzeichnis, welches alle Container Dateien<br> enthaelt.<br><br> * Fuer beide Ausfaelle war eine zu restriktive, sicherheitsrelevante<br> Standardeinstellung fuer das Container Verzeichnis verantwortlich.<br> Der Effekt war dass der Webserver die Moodle Dateien nicht lesen<br> und daher waehrend der angegebenen Zeitraeume die Moodle Webseite<br> nicht benutztbar war.<br><br> * Die Einstellung ist korrigiert, das Problem wird nicht mehr wieder<br> auftreten.<br><br><br><br><br>Lange (technische) Erklaerung:<br><br> * Auf dem Container Server liegen alle Container unter /srv/container<br> auf dem Dateisystem (resp. /srv/container ist der Mountpoint des<br> NetApp Shares).<br><br> * Im allgemeinen Fall gilt:<br> - Wenn unprivilierte User sich auf dem Container Server anmelden<br> koennten, und das Container Verzeichnis (/srv/container) fuer<br> diese les- und ausfuehrbar ist (Mode 0755 resp. rwxr-xr-x, was<br> den Standart-Permissions fuer ein Verzeichnis enspricht), koennen<br> diese in die Container Root Verzeichnises hinein (z.B.<br> /srv/container/example.bfh.ch).<br> - Die ist grundsaetzlich nicht erwuenscht: einerseits koennten so<br> Dateien gelesen werden die nur User des Containers lesbar sein<br> sollten, anderer seits im Falle von gleichen UIDs (z.B. User<br> foo/1000 auf dem Container Server koennte zufaelligerweise dem<br> User bar/1000 im Container ensprechen) koennen sogar Daten im<br> Container vom Container Server aus geloescht werden<br> (z.B. /srv/container/example.bfh.ch/home/foo).<br> - Um dies zu verhindern, setzt man standardmaessig das Container<br> Verzeichnis auf root-only (d.h. Mode 0700 resp. rwx------). Damit<br> wird oben beschriebens Problem ausgeschlossen und das<br> manipulieren von Container Files vom Container Server aus ist nur<br> durch root moeglich.<br> - container-tools (CNT) implementiert dies als sichere<br> Standardeinstellung, solange diese nicht mit dpkg-statoveride<br> lokal ueberschrieben wird, wird bei jedem dpkg-reconfigure oder<br> dpkg --configure dies wieder hergestellt:<br> -> siehe ensprechende Code Zeile:<br><br>https://sources.debian.net/src/open-infrastructure-container-tools/20161101-lts2-1/debian/open-infrastructure-container-tools.postinst/#L28<br> -> resp. der Commit der Aenderung damals:<br><br>https://sources.progress-linux.org/users/daniel/debian/packages/open-infrastructure-container-tools/commit/?id=6306bdcc6383d13b3db6108af44051507d19d92e<br> - LXC macht das bis heute leider nicht und ist by default angreifbar<br> (ja, wenn ich mal Zeit haette wuerd ich ein CVE Submission machen<br> dafuer).<br><br> * Als wir im Juli von die Container Management-Tools weg von LXC hin<br> zu CNT migriert haben, haetten wir:<br> - einerseits das NetApp Share sinnvollerweise neu strukturieren<br> sollen.<br> - andererseits das Moodle Share welches aus anderen Gruenden noch<br> anderst aufgebaut ist, mit den anderen "normalen" Container<br> Shares harmonisieren sollen.<br> - Beides haben wir aus Zeitgruenden leider immer wieder nach hinten<br> schieben muessen. Geplant ist schon laenger, dies waehrend der<br> seit Mitte Dezember laufenden Upgrades aller Container Server auf<br> Debian 9 (stretch) bis Ende Januar 2017 abzuschliessen.<br><br> * Konkret fuer BFH summieren sich dann folgende Dingen zusaetzlich<br> auf:<br> - Im Moodle Container Server Fall befindet sich wegen anderem<br> NetApp Layout der Mountpoint nicht unter /srv/container, sondern<br> unter /mnt/nfs/moodle.<br> Grund: Daten und Container liegen aus Performance Gruenden auf<br> dem gleichen, schnelleren Share (beide SAS), statt wie normal auf<br> zwei unterschiedlichen (Container auf SAS, Daten auf SATA).<br> - Da nspawn (berechtigterweise) keine Symlinks als root<br> Verzeichnisse (z.B. /srv/container/example.bfh.ch) fuer Container<br> akzeptiert, muss das darueber liegende Verzeichnis<br> (/srv/container) gesymlinkt sein.<br> Es zeigt also /srv/container nach /mnt/nfs/moodle/[...].<br> - Ohne dpkg-statoverride wird /srv/container auf 700<br> zurueckgesetzt, und damit sind die Daten fuer den Container nicht<br> mehr lesbar. Dies geschiet automatisch in gewissen interfallen,<br> namentlich immer beim einspielen jeglicher (Security) Updates.<br><br> * Abhilfe (und warum das Problem nicht mehr auftauchen wird):<br> - einerseits haben wir temporaer auf dem Moodle Container Server per<br> dpkg-statoverride die Permissions gesetzt, diese werden von den<br> Container Management-Tools nicht wieder zurueckgesetzt.<br> - andererseits wird ab Januar 2017 unser neue Monitoring<br> Infrastruktur fuer LFE Dienste dies ueberwachen und sofort<br> alarmieren.<br><br>Wir entschuldigen uns fuer die beiden Ausfaelle und wuenschen bei<br>dieser Gelegenheit allen weiterhin frohe Festtage und einen guten Rutsch.<br><br>Gruesse,<br>Daniel<br><br>-- <br>Berner Fachhochschule / Bern University of Applied Sciences<br>IT-Services / Team Infrastructure Services<br>Daniel Baumann<br>IT System Engineer Linux<br>___________________________________________________________<br>Dammweg 3, CH-3013 Bern<br>Phone direct +41 31 848 48 22<br>Phone Servicedesk +41 31 848 48 48<br>daniel.baumann@bfh.ch<br>https://servicedesk.bfh.ch<br>https://www.bfh.ch<br>https://linux.bfh.ch<br>_______________________________________________<br>bfh-linux-announce mailing list<br>bfh-linux-announce@lists.bfh.ch<br>https://lists.bfh.ch/listinfo/bfh-linux-announce<br></body></html>