|
Doppelklick
In diesem Paket sind alle Routinen zusammengefasst, die ein Passwortschutz oder eine Restriktion
von bestimmten Hosts ermöglicht. Die Sicherheit, die hiermit geboten wird ist
zwar weit davon entfehrnt perfekt zu sein, aber es hält jeden Probier-mal-Hacker ab.
Gegen richtige Hacker nutzt dagegen kein Skript im Web, auch dieses nicht.
Dies ist eine abgespeckte Version. D.h. die Verschluesselungsroutine wurde herausgenommen,
damit diese nicht öffentlich wird. Jeder der sich einigermassen gut mit PERL auskennt
sollte in der Lage sein, seine eigenen Verschlüsselungsroutinen einzubauen.
Source Code-
sec.pl
secure.pl
cgi-library.pl
Aufruf-
Der Aufruf erfolgt selbstständig durch die Programme, in denen das Sicherheitstool eingebaut ist.
Im Moment nur durch das Diskussions-Board.
Damit das Tool aktiv wird, muss es in dem aktuellen Verzeichniss die Datein .secure finden und
lesen können. In dieser Datei sind alle relevanten Einstellungen gesichert.
Hier ist ein Beispiel, wie eine solche Datei auszusehen hat:
-
- Moderator:Wolfgang Wiese,xwolf@xwolf.com
- Code:ABC123
- Restrict:user
- Interval:150
- Begin User
- Tom,ABGIHfXPCEpFU
- Tim,ABrku1FF949Cs
- End User
- Begin Hosts
- rzcip31.rrze.uni-erlangen.de
- d250-hrz.uni-duisburg.de
- 131.188.74.42
- End Hosts
- #
Dieses Format und die Reihenfolge ist strikt einzuhalten. Die Anzahl der hosts bzw. user ist allerdings egal.
Syntaxbeschreibung:
- Moderator:Wolfgang Wiese,xwolf@xwolf.com
Der Name hinter dem ':' wird zusammen mit der E-Mail-Adresse ausgegeben, wenn jemand von einem
gebannten Host auf den Rechner zugreifen will. Er erfährt somit, an wen er sich wenden kann.
- Code:ABC123
ABC123 ist der Alghorithmus, mit der die öffentliche Crypt-Funktion die User-Passwörter
und die texte verschlüsselt werden.
- Restrict:user
Hier gibt es mehrere Options: user, ban hosts, allow hosts. Sie können miteinander durch
Komma getrennt miteinander verknüpft werden. Also z.b. Restrict:user,allow hosts.
Eine Verknüpfung ban hosts,allow hosts wäre allerdings sinnlos.
- Interval:150
Diese Zeit (in Sekunden) legt fest, wie lang ein Benutzer, der sich einmal eingeloggt hat, inaktiv sein darf,
bis er das nächste mal sich erneut identifizieren muss. Eine Zeit unter 20 Sekunden macht allerdings
kein Sinn. Bemerkung: Auch das lange schreiben einer Nachricht in der Text-Form wird darin nicht mitgezählt
als aktive Zeit. Aktivität ist für das Programm nur jeder Zugriff, der zu einem Neuaufruf führt.
- Begin User
Hinter dieser Marke beginnen die User-Einträge.
- Tom,ABGIHfXPCEpFU
So sieht ein typischer Usereintrag aus. (Name),(verschl. Passwort) .
Das Passwort muss mit dem Alghoritmus der in Code: angegeben wurde gecrypted sein.
- End User
Endmarke der User-Einträge.
- Begin Hosts
Hinter dieser Marke beginnen die Hosts, die man entweder bannen oder erlauben möchte.
- rzcip31.rrze.uni-erlangen.de
Eine typische Adresse einer Site. Die vollständige Adresse wird dabei verlangt.
Man kann sowohl Hostname als auch IP-Adresse verwenden.
- End Hosts
Die Endmarke.
Anmerkung-
Das Tool benutzt zusätzlich 2 Text-Dateien, in denen wichtige Logs und Zugriffsparameter stehen.
Wer das Skript installiert sollte diese nur den Webmastern und dem Server zugänglich machen.
In den Logs stehen detalierte Angaben der Zugriffe. Es lässt sich damit exakt bestimmen, wer
auf das Programm zugegriffen hat.
Will man das Sicherheisttool in seinen eigenen CGI-Skripts einbauen, so muss man in seinem Skript nur wenige
Zeilen zufügen.
Der Aufruf erfolgt durch die Routine
- $Sec_Status = &Secure($verzeichnisname,$url_des_aufrufenden_progs);
Der Rückgabewert $Sec_Status ist entweder security oder no security.
Wie man diesen weiterverwendet ist jedem selbst überlassen.
Als Beispiel empfehle ich sich das Skript von Diskussionsboard anzusehen.
Zur Verschlüsselung der Passwörter kann man folgendes Skript nutzen:
-
- #! /local/bin/perl
- if ($#ARGV < 0) {
- print "Syntax: crypting.pl (Schluessel der Codierung) (Zu codierender String)\n" ;
- } else {
- $c=crypt($ARGV[1],$ARGV[0]);
- print "$c\n";
- }
Das Skript ist auch für sich kopierbar als File vorhanden.
Beste Darstellung mit
|
Schlechteste Darstellung mit
|
|