From 27a1bfb960ba9b826cecc2cbc2021391575f976c Mon Sep 17 00:00:00 2001 From: Janik von Rotz Date: Mon, 7 Jun 2021 16:59:40 +0200 Subject: [PATCH] blog post --- Blog-Posts.md | 3 +- Der eigene Messenger für ihre Schule.md | 41 +++++++++----- Fail2ban.md | 3 + Login with GitLab.md | 17 ++++++ Mint System Referenzen.md | 3 +- ...omizing ohne zukünftige Einschränkungen.md | 52 ++++++++++++++++++ Odoo Hosting - Mintsys Cloud.md | 2 +- Odoo Hosting.md | 4 +- Odoo Login Integration.md | 1 + Odoo OCA.md | 12 +++- Odoo Revisions.md | 29 +++++++++- Odoo.md | 3 - Offensive Security.md | 5 ++ Prozesse Sicherheit - Assessment.md | 1 + Security.md | 3 +- Sicherheit.md | 3 + Vergleich von Minsys Cloud und Odoo.sh.md | 7 +++ Zugriffskontrolle.md | 4 +- assets/001-reuse.png | Bin 0 -> 2680 bytes assets/002-ux.png | Bin 0 -> 3994 bytes assets/003-minus.png | Bin 0 -> 2952 bytes assets/004-clock.png | Bin 0 -> 4901 bytes assets/005-paper.png | Bin 0 -> 3523 bytes assets/006-construction.png | Bin 0 -> 2798 bytes assets/007-shapes.png | Bin 0 -> 4188 bytes 25 files changed, 165 insertions(+), 28 deletions(-) create mode 100644 Fail2ban.md create mode 100644 Login with GitLab.md create mode 100644 Odoo Customizing ohne zukünftige Einschränkungen.md create mode 100644 Offensive Security.md create mode 100644 Prozesse Sicherheit - Assessment.md create mode 100644 Sicherheit.md create mode 100644 Vergleich von Minsys Cloud und Odoo.sh.md create mode 100644 assets/001-reuse.png create mode 100644 assets/002-ux.png create mode 100644 assets/003-minus.png create mode 100644 assets/004-clock.png create mode 100644 assets/005-paper.png create mode 100644 assets/006-construction.png create mode 100644 assets/007-shapes.png diff --git a/Blog-Posts.md b/Blog-Posts.md index fa8a874c..b42181ae 100644 --- a/Blog-Posts.md +++ b/Blog-Posts.md @@ -7,4 +7,5 @@ [[Problematik der IT-Monokultur]]\ [[IT-Monokultur in der Verwaltung]]\ [[Den eigenen Login-Anbieter mit Keycloak]]\ -[[Der eigene Messenger für ihre Schule]] \ No newline at end of file +[[Der eigene Messenger für ihre Schule]]\ +[[Odoo Customizing ohne zukünftige Einschränkungen]] \ No newline at end of file diff --git a/Der eigene Messenger für ihre Schule.md b/Der eigene Messenger für ihre Schule.md index 17f89bc1..0dec9b3f 100644 --- a/Der eigene Messenger für ihre Schule.md +++ b/Der eigene Messenger für ihre Schule.md @@ -3,15 +3,17 @@ # Der eigene Messenger für ihre Schule Wie sieht eine Alternative zu Whatsapp und Co für den Schulbetrieb aus? -Whatsapp-Verbote an Schulen machen Sinn. Doch wie sieht eine Alternative aus? Man möchte so komfortabel wie mit Whatsapp und Co kommunizieren. E-Mail wäre eine gute Lösung, doch eine Mail-Adresse für jede Schülerin ist keine Option. Der Datenschutz spielt eine grosse Rolle, aber oft bleibt es bei einem leeren Versprechen? Es wäre super, wenn man selber eine sichere Messenger-Lösung für die Schule betreiben kann. "Doch ist das überhaupt möglich?", fragen sie sich vermutlich. +Whatsapp-Verbote an Schulen machen Sinn. Doch wie sieht eine Alternative aus? Grundsätzlich möchte man so komfortabel kommunizieren wie man es sich mit Whatsapp und Co gewohnt. E-Mail wäre vielleicht eine Lösung, doch eine Mail-Adresse für jede Schülerin ist keine Option. Der Datenschutz spielt eine grosse Rolle, aber bleibt es bei einem leeren Versprechen? Es wäre super, wenn man selber eine sichere Messenger-Lösung für die Schule betreiben kann. "Ist das überhaupt möglich?", fragen sie sich vermutlich. Genau das ist möglich. In diesem Beitrag möchten wir aufzeigen wie eine Schule einen eigenen Messenger-Dienst betreiben kann. -Aber zuerst eine wichtiger Punkt zum allgemeinen Verständnis: E-Mail hat den modernen Messenger immer noch etwas voraus. Jeder, der möchte, kann seinen eigenen Mail-Server aufsetzen und seinen eigenen Mail-Client entwickeln. Alle Protokolle zur Kommunikation mit Mail sind offengelegt. +Aber zuerst eine wichtiger Punkt zum allgemeinen Verständnis: E-Mail hat den modernen Messenger immer noch etwas voraus. Jeder, der möchte, kann seinen eigenen E-Mail-Server installieren und seinen eigenes E-Mail-Programm entwickeln. Alle Protokolle zur Kommunikation mit E-Mail sind offengelegt. Jeder kann mitmachen. -Was E-Mail schon lang kann, funktioniert jetzt auch für Messenger. Zumindest für bestimmte Messenger. Jeder Messenger, der das [Matrix-Protokoll](https://matrix.org/) versteht, ermöglich die Kommunikation mit anderen Matrix-Messengern. Würde beispielsweise Whatsapp und Threema das Protokoll implementieren, könnte man mit Whatsapp einem Threema-Kontakt eine Nachricht schreiben. +Was E-Mail schon lang kann, funktioniert erst bis vor kurzen mit Messenger. Zumindest für ganz stimmte Messenger. Jeder Messenger, der das [Matrix-Protokoll](https://matrix.org/) versteht, ermöglich die Kommunikation mit anderen Matrix-Messengern. Würde beispielsweise Whatsapp und Threema das Matrix-Protokoll implementieren, könnte man mit Whatsapp an einem Threema-Kontakt eine Nachricht schreiben. -Wir haben eine ausgezeichnete Messenger-Lösung zusammenstellt, schauen wir uns dazu die Einkaufsliste an. +So viel zur Technik. Nun fragen sie sich vielleicht wie man selber zu einem Matrix-Messenger kommt und haben vielleicht mühe die neuen Begriffe und Themen einzuordnen. + +Um das zu vereinfachen haben wir ein Messenger-Paket für Schulen zusammengestellt, schauen wir uns dazu die Einkaufsliste an. ## Einkaufsliste @@ -19,15 +21,15 @@ Was brauche ich für die eigene Messenger-Lösung an der Schule und was kostet d **1x Domain** -Sie brauche eine Webadresse wie zum Beispiel `m.schule-sisikon.ch`. Unter dieser Adresse ist der Matrix-Server erreichbar. +Sie brauche eine Webadresse wie zum Beispiel `matrix.schule-sisikon.ch`. Unter dieser Adresse ist der Matrix-Server erreichbar. Kosten: 20 CHF pro Jahr **1x Managed Server** -Sie brauchen einen Server um die Lösung zu hosten. Entweder betreiben sie diesen selber oder Fragen bei einem Anbieter um eine Offerte. +Sie brauchen einen Server um die Lösung zu hosten. Entweder betreiben sie diesen selber oder Fragen bei einem Anbieter um eine Offerte. Die Kosten sind Abhängig von der Benutzerzahl. -Kosten: 50 CHF pro Monat pro 100 Benutzer +Kosten: ca. 80 CHF pro Monat pro 100 Benutzer **1x Software-Installation** @@ -43,6 +45,8 @@ Kosten: 0 CHF ## Unterstützung +Es gibt viele Unternehmen, die sich mit Open Source Software auskennen und sie beim Einkauf und der Inbetriebnahme unterstützen können. + **Mint System** Mint System unterstützten Schulen beim Betrieb von Open Source Software. Mit der [Openeduca]()-Initiave präsentieren wir sinnvolle Lösungen für den Schulbetrieb. @@ -51,20 +55,23 @@ Mint System unterstützten Schulen beim Betrieb von Open Source Software. Mit de Ungleich leistet seit Jahren Pionierarbeit im Bereich von alterantiven Softwarelösungen. Sie ist Partner von Matrix und dazu verschiedene Produkte im Angebot. - ## Funktionsweise Haben wir ihre Neugierde geweckt? Sie möchten genaueres zu Matrix und Element wissen? Hier erläuteren wir die Funktionen von Matrix und Element. -Den Matrix-Server kann man sich wie ein Mail-Server vorstellen. Anstatt Postfächer gibt es einen Accounts. Als Benutzer registriere ich mich auf einem Matrix-Server nach Wahl oder erhalten einen vordefinierten Account. Auf dem Matrix-Server gibt es Räume (Rooms) und Umgebungen (Spaces). Ein Raum kann beispielsweise eine Klasse repräsentieren und eine Umgebung wäre alle Unterstufenklassen. Matrix-Benutzer können sich selber in Räumen organisieren, ganz ähnlich den Gruppen-Chats. +Den Matrix-Server kann man sich wie ein Mail-Server vorstellen. Anstatt Postfächer gibt es Accounts. Als Benutzer registriere ich mich auf einem Matrix-Server nach Wahl oder erhalten einen vordefinierten Account vom Administrator. Die Benutzer-Identität ist ähnlich wie die E-Mail-Adresse, beispielsweise `marta.muster@schule-sisikon.ch`. Mit dieser Adresse kann ich mit anderen Matrix-Benutzer kontakt aufnehmen. + +Auf dem Matrix-Server gibt es Räume (Rooms) und Umgebungen (Spaces). Ein Raum kann beispielsweise eine Klasse repräsentieren und eine Umgebung wäre alle Unterstufenklassen. Matrix-Benutzer können sich selber in Räumen organisieren, ganz ähnlich den Gruppen-Chats von Messengern. + +Mehre Matrix-Server bilden eine Netztwerk. Das ist eine grossartige Sache, denn nur so kann die Messenger-Vielfalt wie auch das Problem der Datenhoheit bewältigt werden. ![](https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fzblesk.net%2Fblog%2Fcontent%2Fimages%2F2020%2F07%2Ffederation.png&f=1&nofb=1) -Mein Matrix-Account ist wie eine Mail-Adresse aufgebaut. Eine Lehrerin an der Schule Sisikon erhlält beispielsweise die Adresse `marianne.muster@schule-sisikon.ch`. +Alle Benutzerdaten bleiben immer auf dem eigenen Matrix-Server. Verlässt eine Benutzerin die Schule kann der Account auch auf einen neuen Matrix-Server migriert werden. ## Vorteile -Der Einsatz dieser Messenger-Lösung hat diese Vorteile: +Der Einsatz der Messenger-Lösung hat folgende Vorteile für sie: **Datenmissbrauch unmöglich** @@ -72,7 +79,7 @@ Alle Daten sind verschlüsselt auf dem Matrix-Server gespeichert. Der Nachrichte **Geringer Administrationsauwand** -Der Matrix-Server läuft stabil und ist einfach zu warten. Neue Acccount skönnen ohne Aufwand angelegt werden. +Der Matrix-Server läuft stabil und ist einfach zu warten. Neue Acccounts können ohne Aufwand angelegt werden. **Pädagogisch Sinnvoll** @@ -86,12 +93,16 @@ Die Schülerin/Leherin ist im Besitz des Matrix-Accounts und das auch nach dem W Die präsentierte Lösung ist Open Source. Man ist weder vom Entwickler noch vom Lieferanten abhängig. -## Vision +## Chance Wir erinnern uns: Matrix funktioniert ähnlich wie E-Mail. Jeder Matrix-Server kann mit jedem Matrix-Server kommunizieren. Jede Schule mit einem Matrix-Server kann mit einer anderen Schule kommunizieren. Es ist also möglich ein Netzwerk aus Matrix-Server zu bauen. -Bei Mint System haben wir folgende Vision: +Bei Mint System verfolgen wir diese Vision: > Im Jahr 2030 verfügt jede öffentliche Institution der Schweiz, die über eine Domäne identifiziert werden kann, einen eigenen Matrix-Server. Jeder Angestellte hat Zugriff auf einen Matrix-Account und nutzt diesen aktiv zur Kommunikation. -Das ist eine gewagte Vision. Doch wir glauben fest daran, dass Matrix das gängige E-Mail ablösen wird. Effizient und sicher zu kommunizieren wird an Bedeutung gewinnen und Matrix/Element trifft hier ins Schwarze. \ No newline at end of file +Das ist eine gewagte Vision. Doch wir glauben fest daran, dass Matrix das gängige E-Mail ablösen wird. Effizient und sicher zu kommunizieren wird an Bedeutung gewinnen und Matrix/Element trifft hier genau ins Schwarze. + +## Kontakt + +Haben sie noch Fragen oder würden gerne eine Demo habe Matrix/Element haben? Nehmen sie mit uns kontakt auf. Wir freuen uns über ein unverbindliches Gespräch mit ihnen. \ No newline at end of file diff --git a/Fail2ban.md b/Fail2ban.md new file mode 100644 index 00000000..903bbb55 --- /dev/null +++ b/Fail2ban.md @@ -0,0 +1,3 @@ +# Fail2ban + +Website: \ No newline at end of file diff --git a/Login with GitLab.md b/Login with GitLab.md new file mode 100644 index 00000000..9bc1553c --- /dev/null +++ b/Login with GitLab.md @@ -0,0 +1,17 @@ +# Login with GitLab + +Install `auth_oidc` module. + +Configure the auth provider with these options: + +Provider Name: `Login with GitLab` +Auth Flow: `OpenID Connect (authorization code flow)` +Token Map: `sub:user_id` +Client ID: `1671ed7714ec2c2fb58c43f71f7cced55c5c85355f7d88f85fc6614b9c7c1b1d` +Client Secret: `**************************************************` +Allowed: `[x]` +Body: `Login with GitLab` +Authorization URL: `https://gitlab.com/oauth/authorize` +Scope: `openid` +Token URL: `https://gitlab.com/oauth/token` +JWKS URL: `https://gitlab.com/-/jwks` diff --git a/Mint System Referenzen.md b/Mint System Referenzen.md index 034bf2ca..d3d8956c 100644 --- a/Mint System Referenzen.md +++ b/Mint System Referenzen.md @@ -5,6 +5,7 @@ **Branche Elektrische Komponenten und Systeme** * [Aersolution Interior AG](https://www.aersolution.com/), Herr Roger Bünter * [Trimada AG](https://www.trimada.ch/), Herr Daniel Koepfli +* [PAVIC d.o.o](https://www.pavicdoo.rs/ "https://www.pavicdoo.rs/"), Herr Stefan Folini **Webauftritte und Webshops** @@ -12,4 +13,4 @@ **Odoo Entwicklungen** -- [Certification Planner](https://github.com/Mint-System/Certificate-Planner), Herr Christian Zenker \ No newline at end of file +* [Certification Planner](https://github.com/Mint-System/Certificate-Planner), Herr Christian Zenker \ No newline at end of file diff --git a/Odoo Customizing ohne zukünftige Einschränkungen.md b/Odoo Customizing ohne zukünftige Einschränkungen.md new file mode 100644 index 00000000..86ec91b3 --- /dev/null +++ b/Odoo Customizing ohne zukünftige Einschränkungen.md @@ -0,0 +1,52 @@ +# Odoo Customizing ohne zukünftige Einschränkungen +Wie man eine Software so anpasst, dass man zukünfigte Upgradekosten einspaar. + +Wir möchten einen Einblick geben, wie wir als Integratoren das Odoo-System den Bedürfnissen des Kunden anpassen und sicherstellen, dass in Zukunft keine funktionalen Einschränkungen oder Regressionen entstehen. + +Eine Regression in Kontext der Softwareentwicklung bezieht sich auf einen Fehler in einem Feature. Das Feature hat beispielsweise vor der Aktualisierung der Systemumgebung funktioniert, aber nachher nicht mehr. Es ist ein Bug entstanden, ohne, dass am Code des Systems etwas geändert wurde. + +Diese Art von Fehler möchte man auf jeden Fall vermeiden und falls er doch Eintritt möchte man ihn schnell behben könne. Dieses Szenario lässt sich verallgemeinern. Als Odoo-Integratoren müssen wir sicherstellen, dass jede Änderungen, die wir heute an einer Odoo-Installation vornehmen in Zukunft keine Fehler verursachen. + +Es ist natürlich schwierig abzuschätzen wie sich eine Software in Zukunft verändert, dennoch lassen sich paar wichtige Prinzipien definieren, um diese Art von Problemen zu vermeiden. + +### Kurze Releasezyklen fahren + +![[004-clock.png]] + +Odoo veröffentlich alle paar Tage eine neue Version der Software. Es kommen laufend neue Funktionen und Verbesserungen dazu. Damit wir den Anschluss nicht verpassen, versuchen wir so oft wie möglich Odoo zu aktualisieren. + +### Wiederverwenden statt entwickeln + +![[001-reuse.png]] + +Bei einer Anforderung für eine Anpassungen, die der Odoo-Standard nicht leistet, prüfen wir in der Odoo Community, ob bereits eine ähnliche Anpassungne umgesetzt wurden. Eine Entwicklung hat mehr Bedeutung wenn andere diese nutzen. + +### So wenig wie möglich verändern + +![[003-minus.png]] + +Bei jeder Anpassung wollen wir wissen, ob das Kosten-Nutzen-Verhältnis stimmt. Oft wird die Software den individuellen Bedürfnissen angepasst und man vergisst dabei grösseren Kontext. Eine Anpassung am System muss immer wirtschaftlich sein. + +### Visuelle Änderungen vorziehen + +![[002-ux.png]] + +Anpassungen der Benutzeroberfläche sind einfacher in der Wartung, weil sie weiter weg vom Kern des System sind. Visuelle Änderungen beziehen sich im Normalfall auf die bestehende Datenstruktur. + +### Verberbungssystem nutzen + +![[007-shapes.png]] + +Odoo verfügt über ein rafiniertes Vererbungssystem. Das heisst keine Anpassung an einer Ansicht oder einem Geschäftsobjekt kann so forumliert werden, dass sie sich immer auf eine bestehende Ansicht oder Objekt bezieht. + +### Änderungen am System dokumentieren + +![[005-paper.png]] + +Alle Anpassungen an einer Odoo-Installation werden dokumentiert. Das macht es einfacher für Dritte nachvollzuziehen, was bei erneuten Anpassungen und insbesondere Systemupgrades beachtet werden muss. + +### Erweiterungen modular halten + +![[006-construction.png]] + +Erweiterungen lassen sich entweder zusammenfassen oder aufteilen und dadurch können Abhängigkeiten entstehen oder vermieden werden. Die Philosophie von Odoo sieht vor, dass man Erweiterungen so modular wie möglich hält. Das heisst Abhängigkeiten zischen Odoo-Modulen gilt es zu vermeiden. \ No newline at end of file diff --git a/Odoo Hosting - Mintsys Cloud.md b/Odoo Hosting - Mintsys Cloud.md index f41436ce..fc806f80 100644 --- a/Odoo Hosting - Mintsys Cloud.md +++ b/Odoo Hosting - Mintsys Cloud.md @@ -26,4 +26,4 @@ Das Upgrade der Odoo Enterprise Datenbank auf eine neue Odoo Version ist Hosting **Umfassender Anwendungsschutz** -Die Odoo-Anwendung wird mit einer [[Web Application Firewall]] (WAF) geschützt. Die WAF wird fortlaufend trainiert und für neue Angriffsszenarien gerüstet. \ No newline at end of file +Die Odoo-Anwendung wird mit einer [[Web Application Firewall]] (WAF) geschützt. Die WAF wird fortlaufend trainiert und für neue Angriffsszenarien gerüstet. diff --git a/Odoo Hosting.md b/Odoo Hosting.md index c5140f8a..13894f17 100644 --- a/Odoo Hosting.md +++ b/Odoo Hosting.md @@ -14,4 +14,6 @@ Odoo wird in folgenden Hosting-Modellen angeboten: * [[Odoo Hosting - Odoo.sh]] * [[Odoo Hosting - Mintsys Cloud]] -* [[Odoo Hosting - On-Premise]] \ No newline at end of file +* [[Odoo Hosting - On-Premise]] + +Dazu ein [[Vergleich von Minsys Cloud und Odoo.sh]] \ No newline at end of file diff --git a/Odoo Login Integration.md b/Odoo Login Integration.md index bdc23aef..f429a56b 100644 --- a/Odoo Login Integration.md +++ b/Odoo Login Integration.md @@ -5,6 +5,7 @@ Mint System unterstützt die Verbindung von Odoo mit verschiedenen Login-Systeme * OAuth * [[Login mit Odoo.com]] * [[Login Mint System]] + * [[Login with GitLab]] Login-Systeme von Facebook, Google oder Odoo.com können für interne und externe Benutzer freigeschaltet werden. diff --git a/Odoo OCA.md b/Odoo OCA.md index dfbf6cb7..796cc6c2 100644 --- a/Odoo OCA.md +++ b/Odoo OCA.md @@ -1,7 +1,15 @@ # Odoo OCA [[Odoo Community Association]] +Details of the OCA modules + ## Management System -OCA-Projekt: https://github.com/OCA/management-system -Demo: http://3434009-13-0-6446ed.runbot1-2.odoo-community.org/web?debug=1#action=111&active_id=mailbox_inbox&cids=1&menu_id=93 \ No newline at end of file +Repository: https://github.com/OCA/management-system +Demo: http://3434009-13-0-6446ed.runbot1-2.odoo-community.org/web?debug=1#action=111&active_id=mailbox_inbox&cids=1&menu_id=93 + +## Web timeline + +Repository: + +Demo: diff --git a/Odoo Revisions.md b/Odoo Revisions.md index d41533e2..5565527e 100644 --- a/Odoo Revisions.md +++ b/Odoo Revisions.md @@ -181,17 +181,42 @@ Revision: 14.0.2020510 cd enterprise && git checkout 4df76691f8bb742caae39298f19e808581beae07 # Create tag on the enterprise repo -git tag -a 14.3 -m "14.3" +git tag -a 14.5 -m "14.5" # Checkout odoo repo cd odoo && git checkout 811f429707c75b84d7f1da9611dac3c355e828f1 # Create tag on the odoo repo -git tag -a 14.3 -m "14.3" +git tag -a 14.5 -m "14.5" # Pull docker image docker pull odoo@sha256:26479e1c9294862e5efc226b116cccab437da0b895c94a84b0165f7a6c892a55 # Tag the docker image docker tag c4370cddec27 odoo:c4370cddec27 +``` + +## [[Odoo 14.5]] + +Version: 14.0 +Revision: 14.0.2020524 + +```bash +# Checkout enterprise repo +cd enterprise && git checkout 8e14e2a401ff4aef6855fa6fff2cee569f8b1fdd + +# Create tag on the enterprise repo +git tag -a 14.5 -m "14.5" + +# Checkout odoo repo +cd odoo && git checkout c49bcce249b9ffcbc98dded17b6dbe71a1c22552 + +# Create tag on the odoo repo +git tag -a 14.5 -m "14.5" + +# Pull docker image +docker pull odoo@sha256:542e36dfc7ad121ea51813e8f6526b5417983cbf490c6702512d5ffcfa7efb8e + +# Tag the docker image +docker tag 5ca003a231ac odoo:5ca003a231ac ``` \ No newline at end of file diff --git a/Odoo.md b/Odoo.md index b623a178..9da56915 100644 --- a/Odoo.md +++ b/Odoo.md @@ -59,6 +59,3 @@ Mint System GmbH bietet ein [[Odoo Hosting]] und ein [[Odoo Handbuch]]. * [[Odoo Community]] * [[Odoo Zertifizierung]] * [[Odoo Tutorials]] - - - diff --git a/Offensive Security.md b/Offensive Security.md new file mode 100644 index 00000000..9bd10378 --- /dev/null +++ b/Offensive Security.md @@ -0,0 +1,5 @@ +# Offensive Security + +## Fail2ban + +Auf jedem Mint System Server ist [[Fail2ban]] installiert. Mit Fail2ban werden verdächtige Loginversuche erkannt und Angreifer blockiert. \ No newline at end of file diff --git a/Prozesse Sicherheit - Assessment.md b/Prozesse Sicherheit - Assessment.md new file mode 100644 index 00000000..34935a85 --- /dev/null +++ b/Prozesse Sicherheit - Assessment.md @@ -0,0 +1 @@ +# Prozesse Sicherheit - Assessment \ No newline at end of file diff --git a/Security.md b/Security.md index c748d222..afb52a39 100644 --- a/Security.md +++ b/Security.md @@ -4,4 +4,5 @@ Topics: * [[Web Application Firewall]] * [[Zugriffskontrolle]] * [[Passwortmanager]] -* [[Spam]] \ No newline at end of file +* [[Spam]] +* [[Offensive Security]] \ No newline at end of file diff --git a/Sicherheit.md b/Sicherheit.md new file mode 100644 index 00000000..c0f35ac9 --- /dev/null +++ b/Sicherheit.md @@ -0,0 +1,3 @@ +# Sicherheit + +[[Security]] \ No newline at end of file diff --git a/Vergleich von Minsys Cloud und Odoo.sh.md b/Vergleich von Minsys Cloud und Odoo.sh.md new file mode 100644 index 00000000..c8270b98 --- /dev/null +++ b/Vergleich von Minsys Cloud und Odoo.sh.md @@ -0,0 +1,7 @@ +# Vergleich von Minsys Cloud und Odoo.sh + +| Funktion | Minsys Cloud | Odoo.sh | +| --------------------- | ------------ | ------- | +| Tägliches Backup | Ja | Ja | +| Kontrolle Customizing | Ja | Nein | +| | | | diff --git a/Zugriffskontrolle.md b/Zugriffskontrolle.md index 879c3b00..4d1ae692 100644 --- a/Zugriffskontrolle.md +++ b/Zugriffskontrolle.md @@ -2,4 +2,6 @@ Mitarbeiter der Mint System erhalten nur auf bestimmte Server Administrations-Zugriff. Zugriffe auf Server werden protokolliert. Es gibt keine System-Benutzer. -Die Authentisierung erfolgt mittels SSH-Schlüssel. \ No newline at end of file +## Private/Public-Keys + +Die Authentisierung erfolgt mittels SSH-Schlüssel und ohne Passwörter. \ No newline at end of file diff --git a/assets/001-reuse.png b/assets/001-reuse.png new file mode 100644 index 0000000000000000000000000000000000000000..2eae50ac251e3990790ce2390ae0cb06a1038a0a GIT binary patch literal 2680 zcmeH|`!^Gg8^`B9i&#yDE*d^I<(}{@!{)k-UGRwya>?9HE-42ow<))34Rf7a6jP~4 zE?MM$AHw=Zik2a463JJ8#`m1h>zw!VKF@QWAD;96z?i+SbN`uOg-FYbkwh{nGTJNL z7Z4pCtrZX&6yf6)=Bq^x_sd^7uLuALx8m#^E%)~J_V@qg-vs_26R^>eDBr)E8%eMy z0)&J`M8(7f{m0GS!_&+Avag?iKu|C_>`Fvr z)Ya%~*JEPi;%_9}yp@=goRUgOyL~4;BQq=e-u(x(oZP(pg2JNW5=LoRc}3;Js_I9N zYigNwPo6%jfBxcS!>gv(%`L5MZ`xUJJ38NWb@%l4^$!dV4Udko$0sJ=PtR~Z{P*MR z+^6}^Ulta>a=$I{R#v~St#9xJn?JUGZtwis{p}`xMhgHCH?*}dcZ4b|x9_6a0wIa- zKR#T^vfzZ2u2G*VC{~8(Yv!liV`>J|LYCVjL+E3p*c`1Wtq>U`$`P5-VJ)k6H(0?) zP3aSw*sGpmlmeHGUfuJKMSh%L!Cj4AU5SWp<1C4({vm0gNbo%=AepF++*}Sm?0u?i z_Q9v7tJ_h9rf%y?T{RT3E^33~RNG*dvmFNIsJ2)B?7q4C44v<1x2#NU#Vtp4{OF6ci^4eQ8~+ zbg%`%_#N`RalZcHNQKs^0gvJ=OI5oIANYZJKFOhP8ydOef;jW~aO?3Ruc(xNVlAe-|1FxxFJ{d=zS$m8jhY~O;? z1y4oR*_J|j94V0fY5!m<>cG&Gv+1 z$guE1B6T_y-N2ZH%b}Ac=m-Nb1otvZaRgq-z+8> z!3qFb-xFdJp)ycI{KfQ(MrPH$;?MEjW~0s+2}Tj)33Dweu*Wfe!qVQmUTP%|s>60}P~(RFOC~0SyZA?=;y3Wno)D13_X5eJv#B!C&p#0qQ$f z*plORt0R7Q!11)*<_iK7oMwQM2o*Z#SGRCXgNGY%>qVZ0&PEU6H=n*09`8SQJ+)0a zVMA1;Ip|g(&7`?cQ54EHD;8K)k!n3nondC%E-|$?!#6R3$l!-zne<8U?C%3q8p_y5 z&S0Di36(Ln9e{~$z4P6?Cig9_n6A;~5AxI9f*AY+X4f+XHbSMI+7%e3q6(a3c`?KB zHd2am+W?|b^ClJ)By@TA4ojYr>?YG=as;r1=tpNUu)L>GU0t4oub4Q$s!~UqC30hF zMe73EZi%%C=DUOJf0zZRXj)pe>2X}iYJQZ*n&2Hol+mE ziXPwscjmH>c&WF3@`jb@*t_E=R1`NwO(+^echgg2|rl^$9kOUdi;hgT2 zgQ*D3M3fR-GvRnv6QXg0(XS0RpfmaoVg6oCgw2zQF^9IHGWbV&sI(dqMs4_1OCI4a z81z09|0vq5!8R0QX=TyxY+vmQM?FcW!&G2Y0=7B`hVpvEsO+Xt8Uw5I5{DZziNwn& z(UgMng=0y*0-3--J@CuaL0o;;?QG*L{Ft7c7d`4eJ%p6h?qZ$c_dvmGYuY|WP613~ zyT-)bOU%YL+SHjU$yTz%W1^VhCslv!j$`Y-0E@lipr9y=P$VDW0}3CcQeuL-6g5*Z zl`<8|thCg0nTDoVmY6KbGzA}(QTa^NRz8q`R7lNN5~!hqpn?kp3FQL9z5Ve$r#mxe zpL6!vd-gf|+`B((&02RqX7=2(e|zRPzxmB?AR{9qBO@cDBa#a^Hvkw73?$G}(&I-#ba-WAJIZH3@q z@_fy?*aF-H3<5fn(dcXqi~-)je$W2~ngE`1E?iKTYGx!&AEXSL@A`0%R#-T(0Cfo& z?US!!3&7+~*e`qr>H;b;1h@?~D{Fx_foZ`0A@c4A{2o}6&$~EZ){qc+hXZ#2OY?bO z1Ev6bgvgr#k2uFWgDnvgLKHF{yVY>@hpP#;9pr$k^7jPg-3(k>;+ajr4JGmwl$vux z)IG!g-DbNdCRE6LE~Q^WrE)F{nfLsFyw`@z`;7|q&xj!a+XEjt_kRSugqmabi`>n~ z`)P^|Ol$Lb-7?n!I~aNQrntpflh51ioL>#}4*y$pNGt)UW|(&hvKAJY3mgxu1bP8? z0;BTRIwNDl`26wdKo=wL4B%wo17JJgKH#AIwQj(vz{LFVH?j4U>A-2ghd@8zFUV{S z8uFZk^nz+=0>&XhZA2CUzoU$qw;W+xfP0*K_j0cHcdpMeuFY_+?d0Sg>|CF2Tzkei zznS7M{6Ht~Z_E4-rMTEBqY={&L;kN;3sB9FZ!70`iF3RhSYP6P^Y2Z-TLERY8pl0L zY&5)(i zLTth839Ja2_h}mM1=bo%2XIeJsE~Ou>VwO@gb#rO0`l%h@o>>itAWo1S>>i|vy{FRy9+qlIX)_8c^Ne( zt^iDTjvt6wUPg_{p{Ag~J^2)dw4yVy0$NQ%3SzvsA0;6lO+KoG4ID~1^< zCL0EJa54et;A8^O!AWB2S0~^^w8VTM@)wN58sz^!9k`2d>lV_$p1^r%zGPbu_~4 zY3tPjV9OZwOq$V@Ui{)S-4?NamH_zd0xqD~nPWX_y5i6cTiOQ!7gFpBmIk^2zr^-R zYDQD&n_`yzDQx@7IAAJj6=UJ61z7Bq^*!>-k7Lq=npCswrKHpK>rm`^E<|e=e9#5; z|7Q8uMJOkcE})lF&Jz*KDaS158ELdOejmGzr+Y5HH+J_jGeQ}b0QedPx|;rCPvx4t z;T&(Bz%%0F>Lx2Zm%j>o?L}-|C@DKYYlD>8;b{~@&`63sjmMI%R$vsef0&$w>;b99 zhYm2nDd%=CHG{5btzW63&=9Qpze z0iUf&ZGyQ5d&QJXC*&!0N^PoB9cdPT!zk9Gn<-wS*n^1c;yf@2ILA4+9F2nhYn;m= zK}nqfE6rixT<6q3iB=AycW}OE($i+%u8*bQm4LY%brW*rc3bAwjBUZc8%Ce1p)Luef#NKhXE zeum}&PDJ5P3#C+}I(_TXVRV4yXc$;&8g(}C)IURw^+MUJTv-G%rXH#b^ws38`d5AC2WV$CZy1XwYwi4qn=4~4Yiqjm`}71 zI59iGOo}6Zmf|UFy5&<3O=1yE&(1*_!;jY`-2xf$X5$c;8aw>a?<-x>}k{- ziW68a&vME;hop(ls2f{}->-fH+HNO~tGU$zxB()rz>g4gM&tBdXwzCRCcj5bo*R)4 zuo>+uU|PzS(Kep`7|r}WNjf$Eax|gXhC2{_DHo_~U4fc?cgC?=%=bN~aKdK`P>Qn% zFX^c?o3<0`HWx63;$5qPmPSo#QaCd^SC=Q)QmH(orAs1D++g@{SppB z=H>-4%c}|XvIBrDbG3-7*-G&~2%TvYv{vM65NFQ5QAm{?;BMf%cyMnH!HdrEChRZN zSI~%tqTT`k>ihRc)2K-b!U*ShOKeNsMvB+-N2Os*>}jd!i)fOjC(;G_QoM2~3fJe$ z0*wT2LEGMUM-Hs!jNKgKTLycgrC`HQNSm?v(Pa{)o;pC%TtqnipoO+I4RQFkQ|^A{ zZ?6lf(gBiY5;6i+Vj{8^#HDwI2?BV2p0Y4VJ0)w&l-}5oMb{&;ln^xq_>nh1dhs^r|@u21-B<I5M=uC<&gE# z$KuQPP;f_+gMi14<1^9d;|-+jnJvIF6dSP7Vis7W*%Uky^`-k8=enXV%-x*H7f+xF z940#=ZQp$PEwr@^4Nn{;@JJ{BMV{((2KsT!DOzrG?2B$FYH6wGuFu!6QSoXANJ0Si zMnlL-nsy7)%99|6S{ZW$(t;v>4^HTrwZiKtAPFwTR`!;o$Xh=^lQ9Ky$X=fWITYi_ z)RCS=i%T2A(K9S*R02mBf3HPWwn9YAsYox_J%79}8rSX<4(^0hYc1PN}fM#sJyr3Pz-JQ9T=6+-nZmo1!3Yf-88O4_;r(3d_6c%{re?;smM_VQzrMgaiX z-uD5{$8L&S(1MO3z|(c8SGyyv0su0(PR4EtK1M5weJ$bY@T6G)GHO6v0dQmB#r4?> z!VDUb`j~r-MqB}S729w#4u77oIkbhG=>^oT?C@zI?l5pA@~k~7f7}x(XN!pM64eiR z;h0Q|S!PB6aoxfP5q^{BIB6c~v|BV9-lu~XqP6`=YUcBR<7g)yIBCMy7d0DM>&`_% zllv1t4)1!@=l>Bk{k7OcqC;Xf30GFQH>0uXg8jZ{xLrVy%{`<2u%~mp0<;IO>F_v^ zjP{DVc=c>hASLtUE3~;>WwZ}EBQI+6JvRgWa%jB$DzKH2VIvyfyM~^O#-kUCQ?QG3 z{udZt+{d98o%C2fOX)~+30S&*EZUZ|-j&NzvgrZr*50Bonu2{h1r^Pbzw|K*YjZ3P zrDEjgkR85nnR_xCgJ$Gf-w?~yGcqzVGHS;E07qfZXH`PD!2kdN07*qoM6N<$g5Z&k A`2YX_ literal 0 HcmV?d00001 diff --git a/assets/003-minus.png b/assets/003-minus.png new file mode 100644 index 0000000000000000000000000000000000000000..f2a0150038956d3cae87fd9e9688bb09498898a1 GIT binary patch literal 2952 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 literal 0 HcmV?d00001 diff --git a/assets/007-shapes.png b/assets/007-shapes.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f0c251a6f4fc38c84adb751fdb4f4e935dd2b4 GIT binary patch literal 4188 zcmV-i5ToyjP)XoG@NH&KU1_HHCMzH50`mb@mX)uSg(iX~Mxx>y1mxTOvFF0vb7$te z^SX1t@6KlCC?0wIibLO1AQC0Fxz?r}j;4xt9yz46>0XqT@0@_W|a^RQ1 z0P$`h7ewSh;2vMrKY)>{+L>FW1t2010(%uLM*=40W&k463sd-Z&cD8@syF3QX+elc ze!rr8nN`WL@UK&^e1NGUvQCcmmNbs!(gKJ`KVUwvS;#5JtLjymS6mPQEx^gZQ$@(q z1>XRU@EyLb9}PX0jZTZ)n< zlXVMlDbUMz{2_2UfU4dLJnEc(vWRSwu?!_K$jkslWDM|mC;J*zea?4$mh=Dq*i2zb zL1bb8A|k+LPWF4i6n}=Q&IM*W=N&I1L$Z(~4k9v8M9vYBJm*4Mo~&;E2y8yw&!wum zB;ee$vH9pKeSq^alA|F+WFYVWFb%l2osA&%jf+Sh;6f++zrgo{&R5mPfnPh>M~TSr zw6ZjUPx+trvW}*WjUbDgJ^>i!|_-ml3W z-u)A}KI%GEeHNJEWFICXu3|DrReu84y6$oX>Rf&pttW> zv5!D;xBz(H$#XlDxltNHLIV(yoq@xg>|0dzi8$qW!^A6{>^(%}b4lb%Lc1G5(wn;s zduLZ!L49X1PFZg{c^7z-OHHAjjUe`V01+7n?BQhp$a|;9MpfSykxPJ!ec3w#hX8lP zlfRw9h*8>(i<<0|o#VltI^($br zN_$1r>z+Hh=#|PLa$fAn8GB9OvB0)Y-gH%cD`q)0c#}rcoa}9ZiD}Bsm@!2QkOvJL zfQaS z)XoqN1C9fJ++Z=+W3PcERIp`g8@i$a$9l7uJ&y+89fPs)y8r$0S3oj;M^%7loO=ET z^vn6(SOKo1{$1V)9Miz{J-!ccKGsq5bEv(=LBNSw*5k(;;$6$y-u@bK zuwVXldDYztbZG!0@=4$*C;M)-b$*$ns=vir7eA+oh}$%$rrnhfjdcRub$+XXGx8B< z4eq4U0OC(GM^Y-^h%^8Z84K+1WM8YQ^YRl3RP_PiAt(DpZ_hz$O69L5)BqyZ`AyDM zqP4gSNY^9zbn_ZY<<}C`0vyTOWm8oySJhW@lxGd9`WSGRll=`5*)nC(6DgIyhCl-l zk-pfcT0e_{%X62gmUFP7Se4$?Pe#RM2Id^0O4}+Q!drmv0z;j=$*SspyU!I>eFnJ2 z$^MFn1Z_KSw9HOyO8b|zx$+^v07PUX>fgWr!X`?JU^1}EcifBm?*_5(8NujwRz3u` z0OwNwN%VAWY@J``sOkc&)8^+85!oqaxt)2-x(|nRb5K`F!ZyYE4q?|Q~*R|Jg}Sdzn`e;i%pj(nk#|V zoV@AHTtM2>=n#<(ta)`=M?|JHS)N8%0Qj9si~tS?ZYxHdK#mfT(M1apfcqmyu<`IU z&6g!p{;jIp6jgaQb`&|gLicoW>N30tClfwa6j*l}KBxe(cJs6-i!q-BMKQC$y3;VT z1Goa4UL8yAUcc_be}GGhnyK_S1$Z87O}j&fbUD^%nwhJ&@RHW2$L@J6X^heU+MLn= z+MLn=S`-nPBO>ZcQ}U>%G=MgzG=MgzG=MfIuZSUt$UazzlF}P^GDbMZxlGvPVgMqt zHRcq$JIso87jk))dA$O@NU8j+ao0g)LS6>YH>Yyjm3OJ%ACU>U^#L4Sq6`1QC84~A z`CxQi>19H*4B$moozkSbN@7qB1KXUWu3~$O$P^KA-Nqy->!b{J{FWpnwgGq%LVkno z*}Er=5s1iC;0M5*(g=znmH~Lm|1E2ygY88^BM_1ESsN>87^M*uLfjT$B=w6(V;g~p zOrzc#*f3yxOnFLD63YNQuN~v5Uj^H+5s1ii%<+TER8@6d$Cu^^|1&LW`^h{y#5 z`}vt#4ik$Z(I}uRBcR@?BqDMV!Fvr$l z0AACz6|f7i9VsJ=cGm=a1dG(QB0^~o0iTLdW(9NX^=d?!&jaI{VgSJUSS0bAF|Xop zh6uF`cmbFNoIu9InN~{Jo`|EV4~Oed3xEkJpZn$5cb2d^?gzHd+yJm%>(SWmpD63@ zDm{s<3fib>rDdr6&jNpoxaW7VucCc2s&6>(yNLQ$0Y3sZ%)|hIgMnvLC_N~>g+(G; zw`c{XP{bD4=8dS1+6-WDPWA6cePC~YdL8owUlWi!P6az*LykC#T^;lMmw|~zD>LSU zU)O8J+{mi_^cUbWO^~GnIEnDruwtW-v9SyQ3mh5M)OP}p0;dB9V!@_1#omP*V6$D- z-NJVgJ+4*EbLl!oE4P8?vNN{pDeOL80lrGcA$A*(Yh&Q*E`ETw0e!nFsDgPB4=d!~ zSa9c9<4#jvPg-eJOijcQ2wx`1{Z*cT*5jlza;EJ8VBvqZLs_z9|mlQRA ziuDs-cmBOCaBCimB19x>*SJq*TwZ3V>IcAcZhlbMxP7RP%&`JENLAgaBAKG9bFq$< z`}ObuES^zjh{!l#p6AV^ZE>T9^#^XGHd;8qaoVKFVXC?i8%ez7{A-ek?4Cs(p7MVM zd>nYVosGb40VV;1oV-g_^@b+N1AwYNhfObk=*p6|Y!Ue!ru=I2zXfe<1pcUDgMsfk z|DOY#*-U||sOs-oyLq(AC=od%Wzqk{T+I7vTO;td0Mn@5(WAik)WWP5#TC>m>q0Ni zQ6f}z5io}OenwjwK{aaFhFDm2KewxDq0vNCbp`dUz;Iyyl;xI2;8AS>4xn~jS|`Cf zc#GghY%ajh!D$OEjlifHz(G#_pH=mRW(yO9_X=_sK7K(&+>uI>vfJJWD&Azseop?K zMFIR#K22JyBk3VFbZ3`gPpv^MF`RWu3WC%d9$*~^)-c{7NENrKr>r_`M^z0tgmTw0P8q; z?)-bJ;L7F74YtZC=_lT;fxD^g1cE7ljHepvSZTacOtuLvRbQrHHs|0$PDl&T*>Y zYN>pqf^Aw@<>ZYkMx0ll@4F@=E1=bXHSEFv z4>*RLwu)oh@vkL%OZZG+Sj}|-1)Ufod{de-%;CcC17x^2uZNeR?0v9(6z@hT;qSn% z8P?ewIF)+;!v6FmuxH@)A%*@Tppd2H+_CXmpddGBExAKD;yyOVUZ-xK%AallhNP_L zK+H!&SRG3+ryQYuohYjcatHGv8Fs>)I(H}7_1RM36GbaE;XUmP{5e8F?_>KOV);hG zc1+KTD0d~csb+&N%ZjLE5aHgd|42qYZ?K7(Ul9E6S_bT0v?5d9p8#LMeEWte>?Ppv z2Fe+d zP83@?c|VpY#lB5+9D&uq&w))+$q`fN{#dYr_Zn1aqp1^{tKO<;#WdLnDp)UlNzCUp zmxQn0R0iM^d^6yOFWPe|D7@d~2-{wnYyaA>A=XJEm*Vm^iDH>mWb z*bbfv6zoT@)e<)SeQ&@sdmjt7ow+OBOhd+q$okkM$Y3vRigi*JV@uB#1FvhAmG(eH mWPeQI!?94j=W0$1RsIjGc5vMwuOF-c0000