Dieses Skript prüft für PAM, ob der ausführende Rechner sich im heimatlichen Netzwerk aufhält oder nicht und meldet das Ergebnis als Rückgabewert: * `0` bedeutet: „Der Rechner ist zuhause.“, * `9` (oder jeder andere Wert) bedeutet: „Er ist nicht zuhause oder es kann nicht entschieden werden.“ Das Skript muss herunter geladen und im Ordner '''/usr/local/sbin''' als ausführbare Datei abgelegt werden. Es muss [:root:] gehören und nur `root` darf in die Datei schreiben können. Auch die Ordner im Pfad '''/usr/local/sbin''' dürfen nur durch `root` beschreibbar sein. Dateibesitzer und Dateirechte sind ggf. mit dem Programmen [:chown:] und [:chmod:] richtig einzustellen. Im Skript ist in der Zeile 8 der Wert für die Variable `TOKEN` individuell einzustellen. Dazu führt man im Heimatnetz den Befehl [[Vorlage(Befehl, "ip -6 neigh" ) ]] aus und kopiert aus dessen Ausgabe die Angaben für den eigenen Router als Wert in das Skript. Dabei ändern sich individuell: * die IPv6-Link-Local-Adresse des Routers `fe80:…` * der Name der Netzwerk-Schnittstelle (im Beispiel `cable`) * die Layer-2-Adresse des Routers (die 6 Hexadezimalzahlen nach `lladdr`) * der DNS-Name des Routers (im Beispiel `router`) Nicht mit kopieren darf man das letzte Wort der Ausgabezeile mit dem momentanen Status der Nachbarschaftsangaben. Das Skript ist vorgesehen für die Ausführung durch das PAM-Modul `pam_exec`. Dieses versorgt das Skript mit einigen [:Umgebungsvariablen:] wie `PAM_TYPE`, `PAM_USER` u.a. Das Skript soll nur für das Thema `auth` etwas prüfen und liefert bei einem Aufruf in anderen Kontexten immer Misserfolg zurück. Für `auth` werden drei Prüfungen durchgeführt: 1. Wurde überhaupt ein Benutzername benannt? 1. Ist dieser Benutzer berechtigt, statt einer Passwort-Eingabe ein TOKEN zu verwenden? Dazu muss er zur Gruppe `nopasswdlogin` gehören. Diese Gruppe muss man selber anlegen und die gewünschten Benutzer dieser Gruppe zuordnen. Man kann aber auch ganz auf diese Prüfung verzichten. 1. Ist der Rechner im Heimatnetz? Wenn alle Prüfungen bejaht wurden, meldet das Skript Erfolg zurück, sonst Misserfolg. Natürlich ist das alles fälschbar und somit ist das Verfahren höchstens solange sicher, bis der Angreifer weiß, was er fälschen muss.