Backdoor

HQ Dash

Status
in production
Verantwortlicher
telegnom
Sourcen
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 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
<update\_rc???> 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

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

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

  1. auf tuer.hq einloggen
  2. lastbutton aufrufen (beenden mit ctrl+c)
  3. nerd bitten seinen button an den Leser zu halten
  4. ID kopieren (auf aktuellen Timestamp achten)
  5. lastbutton beenden
  6. ibm aufrufen
  7. Menüpunkt a auswählen
  8. nick eingeben
  9. button id einfügen
  10. bestätigen
  11. script mit q beenden
 
 
hqcontrol/backdoor.txt · Zuletzt geändert: 2020-08-21 19:56 von 127.0.0.1
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki