====== Zugang ======
Unser ausgefeiltes Schließsystem hilft unseren Mitgliedern unsere Räume zu betreten, ohne physikalischen Schlüssel. Dadurch können die Räume zu jeder Zeit benutzt werden.
Gäste sind Mittwochs ab 19 Uhr gerne willkommen.
Das [[projekte:hardware_turelektronik_keller:start|elektronische Schließsystem]] basiert im Keller auf einer [[https://www.eq-3.de/downloads/download/homematic/bda/HM-Sec-Key_UM_GE_eQ-3_web.pdf|KeyMatic]] mit einem Raspberry Pi und im Obergeschoss auf einem Raspberry Pi.
Das System öffnet die Tür, wenn über das Wlan **"foobar"** oder **"foobar Enterprises"** ein gültiger SSH-Login stattgefunden hat.
====== Buttons ======
===== Aerie =====
Auf den Buttons neben der oberen Tür wird die unter https://github.com/dylangoepel/buttonctl
dokumentierte Software eingesetzt. Um nicht von den Statusinformationen der [[infrastruktur:netzwerk:raumstatus:start|API]] abhängig zu sein muss hier nach der durch einen Knopfdruck erfolgenden Auswahl einer Tür zwischen Öffnen und Schließen gewählt werden.
===== Keller =====
Die Buttons im Keller können unten (unterer Button) und oben ( oberer Button ) auf- und zuschließen. Sie indizieren den Status der jeweiligen Tür durch Farben:
* **Grün**: offen
* **Rot**: geschlossen
* **Gelb**: uninitialisiert
* **Weiß**: (Übergangsanimation) schließen/öffnen
Falls der Status uninitialisert ist, muss erstmal ein normaler Schließvorgang durchgeführt werden, wie unten beschrieben. Der Status ändert sich nicht sofort, sodass nach einer Übergangsanimation erstmal wieder der selbe Status wie zuvor angezeigt werden kann. Nach einem kurzen Zeitraum (10 Sekunden) sollte der richtige Status angezeigt werden. Falls dies nicht der Fall sein sollte, kann dies an Verbindungsproblemen liegen.
Die sich im Einsatz befindende Software ist eine leicht veränderte Version von https://github.com/c3e/Buttons
====== Status ======
[[infrastruktur:netzwerk:raumstatus:start| Hier ]] wird erklärt wie der Status gesetzt wird und wo man ihn sehen kann.
====== Schlüssel ======
Mitglieder des Chaospott erhalten über ein elektronisches Schließsystem Zugang zu den Clubräumen. Zum Öffnen und Schließen wird SSH-Key verwendet.
===== Schlüssel generieren =====
Der foodoord akzeptiert nur Pub-Keys im **OpenSSH2-Format**. Keys lassen sich unter anderem mit OpenSSH oder PuTTygen erzeugen. RSA-Keys mit weniger als **4096 bits** werden vom Schließsystem nicht akzeptiert. Neu: Keys vom Typ ed25519 werden auch akzeptiert. Ed25519 bringen bereits eine "fixed length" mit.
==== OpenSSH ====
**Keys generieren**
* Mit ssh-keygen -b 4096
lassen sich Keys generieren.
* ssh-add $Pfad_zum_Key
fügt den Key dem ssh-Agent hinzu. Die Option ssh-add -l
zeigt geladene Keys an.
* ssh-keygen -l -f $Pfad_zum_Key
gibt den Fingerprint und andere Informationen zurück.
**Keys konvertieren(PuTTY>OpenSSH):**
* ssh-keygen -i -f $Pfad_zum_Key > $Pfad_neuer_Pfad.pub
liest ssh2-kompatible Keys(RFC 4716) ein und speichert diese im OpenSSH-Format.
* Mit ''puttygen'' auf Linux kann auch ein Key umgewandelt werden: puttygen -o $privkey.ppk $privkey
==== PuTTY ====
{{ :infrastruktur:zugang:puttygen.png?500}}
PuTTY ist die empfohlene Software zur Verwendung unter Windows. Da die Tür nur Keys im OpenSSH-Format verträgt, dürfen auch mit Putty nur OpenSSH-Keys genutzt werden.
**Keys generieren (OpenSSH-Format mit PuTTYgen):**
* 1. PuTTYgen öffnen
* 2. Unten "Number of Bits in a generated Key:" 4096 eintippen
* 3. "Generate" klicken um Key zu generieren
* 4. Nach dem generieren oben im Menu "Conversions" > "Export OpenSSH-Key"
* 5. Speichern
Es ist zu beachten, dass PuTTY den PrivateKey im PuTTY-Format benötigt! Das heißt, falls der generierte Key vor dem Export nicht gespeichert wurde, muss der private Key noch konvertiert werden, siehe nächster Punkt!
**Keys konvertieren(OpenSSH>PuTTY):**
* 1. PuTTYgen öffnen
* 2. "Load" drücken
* 3. OpenSSH-Key auswählen
* 4. "Save Private-Key" drücken
* 5. Speichern
===== Schlüssel einreichen =====
{{ :infrastruktur:zugang:overview_key.png?500}}{{ :infrastruktur:zugang:upload_key.png?500}}
Die Schlüssel werden über ein git-Repository verwaltet, welches regelmäßig von den Türen abgefragt wird. nachdem ihr einen Schlüssel generiert habt, müsst ihr einen Pull Request stellen, damit euer Key in das Repository hinzugefügt wird. Die Datei muss nach folgendem Schema ''<(Nick-)name>-.pub'' benannt werden.
** Voraussetzungen **
Um einen Schlüssel einzureichen benötigt ihr einen Schlüssel, einen Account für [[https://git.chaospott.de]] und ihr müsst in die Gruppe ''PullRequest'' der Organisation ''Keyverwaltung'' aufgenommen werden.
* Wie ihr den Schlüssel erstellt ist oben beschrieben
* Einen Git-Account könnt ihr euch über [[https://git.chaospott.de]] erstellen. Denkt daran, die Mailadresse anschließend zu bestätigen.
* Euer Account muss nun in die Gruppe ''PullRequest'' der Organisation ''Keyverwaltung'' aufgenommen werden. Dazu fragt ihr einfach ein Mitglied der Ownergruppe (siehe Maintainer oben). Dazu bietet sich z.B. ein Chaostreff (mittwochs/sonntags) an.
* **Euer Public-Key enthält ein Kommentar**
** Einreichung **
Den Schlüssel könnt ihr entweder per Git-Kommandos hinzufügen, oder das Webinterface benutzen.
Im Folgenden wird das Vorgehen für das Webinterface beschrieben. Die Screenshots unten zeigen das Webinterface des Git.
- Du öffnest das Repository für die Schlüssel [[https://git.chaospott.de/Keyverwaltung/foodoor-keys]]
- Unten auf der Seite findet sich eine Readme mit den wichtigsten Hinweisen.
- Du öffnest den Ordner ''keys''. Das ist unten auch im Screenshot zu sehen, dort ist der Button unten rot eingekreist.
- Rechts oben klickst du auf ''Upload File''
- In die blaue Box fügst du deinen öffentlichen Schlüssel (*.pub!) mit in dem beschriebenen Dateiformat (siehe Readme) ein.
- Unten wählst du die Radiobox //Create a new branch for this commit and start a new pull request//
- In die Box //New branch name// trägst du deinen Nick ein.
Das war's! Nun musst du warten bis dein Pull-Request angenommen und gemerged wurde.
====== Schlüsselbenutzung ======
===== Via Trigger Android App =====
Wenn du Android benutzt, gibt es App "Trigger". Diese kann im [[https://play.google.com/store/apps/details?id=app.trigger|Google-Play-Store gekauft]] oder auf [[https://f-droid.org/packages/com.example.trigger/|F-Droid gedowngedeloaded und bezogen]] werden.
==== Einrichtung ====
**TL;DR:**
- Door Type: Generic SSH
- Server Address:
- Oben: 10.42.1.28
- Unten: 10.42.1.20
- Login name: door
- Open Command: open
- Close Command: close
- State Command: status
- SSID: "foobar"
- Man legt oben rechts pro Tür eine Verbindung an und benennt sie (bspw. c3e oben/c3e unten).
- Man wählt bei "Door Type" den Typ "Generic SSH"
- Man importiert den zuvor generierten SSH-Key (oder generiert einen neuen und reicht den, wie oben beschrieben, ein)
- Bei Server Address setzt man
- für die Tür oben "10.42.1.28" und
- für die Tür unten "10.42.1.20"
- Der Login-Name ist für diese App "door"
- Es wird kein Passwort benötigt und daher auch nicht gesetzt
- Der Open Command ist auf "open", der Close Command auf "close" und der State Command auf "solid state" "status"
- Ganz heruntergescrollt zu dem Punkt "SSID", kann man "foobar" oder "foobar Enterprises" eintragen; je nach dem, was man so benutzt.
- Alle anderen Einstellungen kann man so übernehmen.
===== Via SSH =====
==== Methode 1 ====
=== Keller ===
- Mit dem Wlan **foobar** oder **foobar Enterprises** verbinden.
- Zum Öffnen ssh open@10.42.1.20
ausführen.
- Zum Schließen ssh close@10.42.1.20
ausführen.
=== OG ===
- Mit dem Wlan **foobar** oder **foobar Enterprises** verbinden.
- Zum Öffnen ssh open@10.42.1.28
ausführen.
- Zum Schließen ssh close@10.42.1.28
ausführen.
==== Methode 2 ====
- Mit dem Wlan **foobar** oder **foobar Enterprises** verbinden.
- ssh door@10.42.1.20 $ACTION
für den Keller oder ssh door@10.42.1.28 $ACTION
für das OG ausführen. Dabei $ACTION durch die gewünschte Aktion (open, close, status) ersetzen.
====== Software ======
* Für ganz komfortable Tür-Öffnung und -Schließung unter Android kann man [[https://f-droid.org/packages/com.example.trigger/|Trigger]] verwenden.
* Wer es klassisch über SSH mag, kann unter Android z.B. [[https://f-droid.org/repository/browse/?fdid=org.connectbot|ConnectBot]] benutzen.
* Für iOS gibt es [[https://www.termius.com/ios|Termius]].
Hinweis zu Termius: Unter Einstellungen "Recognize OS" ausschalten, damit nur ein Zugriff erfolgt.
====== Maintenance ======
Der Raspberry Pi kann ohne Probleme neu gestartet werden. Dies kann am einfachsten im Serverschrank am PoE-Injektor erledigen. Sonst kann man auch einmal im Matrix-Chat oder per Mail Bescheid geben, falls Probleme auftreten.
Wenn der Türschließer (Abus CFA1000) die konfigurierten Positionen nicht mehr korrekt anfährt, ist wahrscheinlich die Diode der Positionslichtschranke abgerissen. Die ist in der Vergangenheit schon einmal zweimal vorgekommen. Das lässt sich wie folgt beheben:
- Geräteschrauben an der Rück- und Vorderseite (Drehrad/Schlüsselaufnahme) herausdrehen.
- Drehrad/Schlüsselaufnahme herausnehmen.
- Diode finden und anlöten.
- Die Schlitze im Drehrad/Schlüsselaufnahme reinigen und einsetzen.
- Nachdem Zusammensetzen einmal Kalibrieren.
{{:infrastruktur:zugang:abus-cf1000-oeffnen-01.jpg?112 |}}{{:infrastruktur:zugang:abus-cf1000-oeffnen-02.jpg?200 |}}