====== Backdoor ======
**HQ Dash**
; Status : in production
; Verantwortlicher : [[chaoten:telegnom|telegnom]]
; Sourcen : [[https://chaos.expert/ccc-ffm/backdoor.git|Chaos Expert]]
Ein Ersatz für die bestehende Tür-Dockstar auf Basis eines Raspberry Pis und mit mehr fancy bling bling!
===== Key-Admins =====
Aktuell sind als Admins für die SSH-Keys eingetragen:
- myIgel
- telegnom
===== Software =====
Auf dem Pi bootet ein Alpine-Linux, readonly gemountet von der SD-Karte. Das Script zur Ansteuerung der GIPOs ist ein kleines [[https://chaos.expert/ccc-ffm/backdoor|Python-Script]].
==== Dependencies ====
* python3
* python3-rpi.gpio
==== config am raspi ====
Auf dem Pi gibt es drei User, die das Öffnen und Schließen der Tür steuern. Diese sind, wie gehabt, ''open'', ''close'' und ''strom''. Weiterhin gibt es einen User zum Deployen der Keys und für Wartungsarbeiten. Dieser ist ''backdoor''.
=== Benutzer und Gruppen ===
== USER: open / close / strom ==
Die drei Nutzer ''open'', ''close'' und ''strom'' teilen sich die UID 2342 und sind in der Gruppe ''backdoor''. Die User haben jeweils ein für ihre Aufgabe spezifisches Login-Script.
Die Login-Scripte liegen unter ''/opt/backdoor/''.
Alle Scripte unterhalb dieses Ordners gehören dem Nutzer mit der UID 2342.
== USER: backdoor ==
Der Nutzer ''backdoor'' hat die UID 1337 und ist ebenfalls in der Gruppe ''backdoor''. Er dient als Admin-Zugang zur backdoor und verfügt über die nötigen Rechte, die SSH-Keys (aus dem Git-Repo) auf dem Pi zu deployen.
Das Script zum Deployen der SSH-Keys wird mit dem Befehl ''/opt/backdoor/update_keys.sh'' aufgerufen.
== GROUP: backdoor ==
Die Gruppe ''backdoor'' hat die UID 1337. Das Verzeichnis ''/opt/backdoor/'' gehört der Gruppe ''backdoor''. Sie hat ebenfalls Lese-, Schreib- und Ausführungsrechte auf alle Dateien im Verzeichnis.
=== Configs ===
== LBU ==
''lbu\_include /opt/backdoor''\\
''lbu\_include /etc/init.d/''\\
''lbu\_include /etc/local.d''
== SUDO ==
Die Datei ''etc/sudoers'' nach ''/etc/sudoers.d/ibutton'' kopieren
== CRONY ==
Die Datei ''etc/local.d/sync\_clock'' nach ''/etc/local.d/sync\_clock'' kopieren
== DEAMON ==
Die Datei ''etc/initd/ibutton'' nach ''/etc/init.d/ibutton'' kopieren\\
'' ibutton'' ausführen
===== Hardware =====
==== Raspi ====
Es handelt sich bei dem Host ''backdoor'' um einen Raspberry Pi 3. Er hat die IP-Adresse 192.168.2.10, welche statisch konfiguriert ist. Die Hostnamen ''tuer.hq'', ''backdoor.cccffm.space'' und ''tuer.cccffm.space'' lösen aus dem Member- und Infra-LAN auf diese Adresse auf.
==== Fernbedienung ====
Die Fernbedienung der Türschlösser ist an den GPIO 20 (open) und GPIO 21 (close) angeschlossen. Die Kontakte zum Pi sind über Pull-Down-Widerstände auf GND gezogen, damit die Fernbedienung nicht aus Versehen getriggert wird, sollten die GPIO mal floaten.
=== Anschluss an den Pi ===
rotes Kabel -> Pin 4 (+5V)
blaues Kabel -> Pin 6 (GND)
gelbes Kabel -> Pin 38 (GPIO 20)
orangenes Kabel -> Pin 40 (GPIO 21)
==== iButton Reader ====
[[https://www.aliexpress.com/item/5-pcs-lot-DS1990A-iButton-Probe-Reader-with-LED-Dallas-Key-Sensor-DS9092-Zinc-TM/32856076372.html?spm=a2g0s.9042311.0.0.47f84c4doY27jM|(5 pcs/lot) DS1990A iButton Probe Reader with LED Dallas Key Sensor DS9092 Zinc TM Card Tag Conductor]]
=== Anschlüsse ===
weiß: gnd led
schwarz: vcc led
rot: gnd ibutton
grün: data und vcc ibutton
rotes Kabel an GND vom Raspberry Pi
grünes Kabel an GPIO4 (PIN 7) mit 1k PullUp an 3.3V
=== Hinweise ===
- Da wir die blaue LED direkt an einem GPIO des Pis betrieben, muss diese einen 27Ω Vorwiderstand erhalten.
=== ibutton support ===
echo 'options wire timeout=1 slave_ttl=3' > /etc/modprobe.d/w1.conf
==== Open-Close-Button ====
=== Verkabelung ===
Cat 6e Patchkabel mit folgender Belegung:
orange / orange -> VCC LED close
orange / weiß -> Kontakt close button
grün / grün -> VCC LED open
grün / weiß -> Kontakt open button
blau / blau -> GND
blau / weiß -> GND
braun / braun -> VCC LED iButton Reader
braun / weiß -> frei / unbelegt
=== Hardware ===
Die Box ist dumm, sie besteht aus 5mm MDF und zwei Tastern mit eingebauter LED. Die Magie passiert im PI, bzw. auf der noch zu dokumentierenden Platine daneben.
===== Admin Manual =====
==== ssh key eintragen ====
SSH-Key ins Repository https://chaos.expert/ccc-ffm-infra/backdoorkeys eintragen. Jeweils eine Datei pro Nerd (nick = dateiname) und bitte den Nick und das Datum (im ISO-Format (1970-01-01)) in den Kommentar des Keys schreiben. In der commit message den nick und das Datum des Plenums, an dem der Zugang gewährt wurde (ebenfalls im ISO-Format), eintragen. Wenn ein Wesen mehrere Keys hat, kommen diese alle in eine Datei.
Beispiel ssh-key:
ssh-rsa A272F27F[...]3492912ABFABA= musterhacker 1970-01-01
Beispiel commit messages:
added musterhacker (Plenum: 1970-01-01)
removed musterhacker (Austritt: 1970-01-01)
updated musterhacker (1970-01-01)
Nach dem Hinzufügen des Keys, auf tuer.hq einloggen und das Script ''/opt/backdoor/update_keys.sh'' ausführen
fertig.
==== iButton freischalten ====
- auf tuer.hq einloggen
- ''lastbutton'' aufrufen (beenden mit ''ctrl+c'')
- nerd bitten seinen button an den Leser zu halten
- ID kopieren (auf aktuellen Timestamp achten)
- lastbutton beenden
- ''ibm'' aufrufen
- Menüpunkt ''a'' auswählen
- nick eingeben
- button id einfügen
- bestätigen
- script mit ''q'' beenden