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