PAM RFID

PAM RFID ist ein Linux PAM Modul, womit sich ein Benutzer mit einer RFID Karte an seinem Rechner anmelden kann. PAM RFID benutzt dazu den EM4100 RFID Leser, der mittels USB-TTL Adapter an den Rechner angeschlossen wird. Mit ein wenig handwerklichem Geschick kann der Sensor in ein kleines Universalgehäuse eingebaut werden. Fertig sieht das Ganze dann wie folgt aus:

PamRFID

Hardware

PAM RFID benötigt zusammengefasst also folgende Hardware:

  • 125 kHz RFID-Modul RDM6300 (entwickelt wurde mit dem EM4100 RFID Leser)
  • mindestens eine 125 kHz RFID-Karte (sog. RFID-Tag)
  • USB-TTL Adapter
  • (optional) Universalgehäuse (75x55x25mm)

 

Anschluss der Hardware

Der RFID-Sensor wird wie folgt mit dem USB-TTL Adapter verbunden:

Anschluss von Sensor und USB-TTL Adapter

 

Software

Wie auch bei PAM Fingerprint besteht PAM RFID aus dem Linux PAM Modul selbst, sowie aus zwei Programmen, die zur Einrichtung dienen:

  • Dem Konfigurationsprogramm pamrfid-conf
  • und dem Programm zur Prüfung der Konfiguration pamrfid-check

Um einem bestehenden Benutzer eine RFID Karte, ein sog. RFID-Tag, zuzuweisen, wird das Konfigurationsprogramm benutzt. Folgender Befehl liest ein RFID-Tag ein und weist beispielsweise dieses dem Benutzer "bob" zu:

~# pamrfid-conf --add-user bob

Um zu überprüfen, ob sich der Benutzer "bob" mit seinem RFID-Tag an seinem PC anmelden könnte, wird das Prüfungsprogramm benutzt. Folgender Befehl liest ein RFID-Tag ein und überprüft, ob dieses zu einem vorhandenen passt und gibt demnach eine Erfolgs- oder Misserfolgs-Meldung zurück:

~$ pamrfid-check --check-user bob

Weitere Befehle können in der Manpage mittels folgendem Befehl nachgelesen werden:

~$ man pamrfid-conf

Gespeichert werden die Anmeldedaten der Benutzer in der Datei /etc/pamrfid.conf in der Sektion [users]. Der Aufbau eines Eintrags ist dabei:

Benutzername = Salt, Salted SHA256(RFID-Tag)

Niemals sollten Einträge dieser Sektion manuell bearbeitet werden! Dafür ist das Konfigurationsprogramm da. In der anderen Sektion [PyRfid] können Einstellungen des RFID-Lesers geändert werden.

Da PAM RFID komplett in Python implementiert wurde, ist es auf jeder Architektur verwendbar, für die eine Python Implementierung vorhanden ist. Somit kann auch der Raspberry Pi mit der ARM-HF Architektur unter Verwendung von beispielsweise Raspbian mit PAM RFID betrieben werden. Für den RFID-Sensor EM4100 wurde eine Bibliothek in Python implementiert, die als eigenes Projekt namens PyRfid angeboten wird. Diese wird unbedingt für PAM RFID benötigt und automatisch bei der Installation mitinstalliert.

Installation

Falls das Repository von PM Code Works im Paketmanager eingebunden ist genügt es diesem die Installation des Pakets "libpam-rfid" mit folgendem Befehl anzuordnen:

~# apt-get install libpam-rfid

Alternativ kann die Installation selbstverständlich auch mit einem grafischen Paketmanager, wie z.B. synaptic, durchgeführt werden.

Falls das Repository von PM Code Works noch nicht von einem Paketmanager eingebunden wurde, gibt es eine Anleitung unter Linux Repository.

USB

Da PAM RFID über USB kommuniziert und dies standardmäßig nur "root" vorbehalten ist, muss jedem Benutzer, der PAM RFID benutzen will, dies erlaubt werden:

~# usermod -a -G dialout <username>

Ein Neustart ist hier zwingend notwendig! Anschließend können, wie oben beschrieben, Benutzer zu PAM RFID hinzugefügt werden.

Lizenz

PAM RFID wurde unter der D-FSL-Lizenz veröffentlicht und ist somit Open-Source. Der Quelltext kann entweder über das Repository oder als Zip-Archiv heruntergeladen werden. PAM RFID existiert nun übrigens auf GitHub.

Eigenes PAM Modul

Wie genau PAM funktioniert und wie eigene PAM Module implementiert und in Linux integriert werden können, gibt es eine Anleitung unter Linux PAM.

Aktueller Entwicklungsstand

Wer einen Blick auf den aktuellsten Entwicklungsstand werfen oder gar mitarbeiten will, kann das Repository auf GitHub besuchen.