Kampf dem Spam: Spamfreies Gästebuch
Die Anonymität des Netzes
Wenn jemand auf irgendeinen Dienst im Internet zugreift, so ist die Identität
desjenigen i. d. R. nicht bekannt. Schließlich lassen sich viele dieser Dienste
nutzen, ohne daß man seine Identität preisgeben muß, und etwaige Adreßangaben
werden oftmals ebenfalls nicht überprüft. Diese Anonymität machen sich daher
Spammer und Cyberkriminelle gerne zu Nutze, um unerkannt ihren digitalen Unrat
abzuladen oder ihren dubiosen Machenschaften nachzugehen.
Leider haben Sie als normaler Internetnutzer keine Möglichkeit, anhand der
IP-Adresse herauszufinden, wer sich dahinter verbirgt. Dazu wäre es notwendig,
die Verbindungsdaten für die betreffende Adresse abzufragen, doch das ist ein
Ding der Unmöglichkeit, da höchstens Ermittlungs- und Sicherheitsbehörden die
Möglichkeit haben, im Rahmen von Ermittlungen an diese Daten heranzukommen. An
andere Personen werden Provider diese Daten nicht herausgeben, da man kaum ein
berechtigtes Interesse geltend machen kann.
nach oben
Die Identität des Verfassers
Wenn man einen Eintrag entgegennehmen möchte, so möchte man natürlich
sicherstellen, daß es sich um einen real existierenden Benutzer und nicht um
einen Bot handelt. Dies jedoch erfordert, daß der betreffende Benutzer sich
irgendwie ausweist.
Dabei sollte man jedoch nicht mit Kanonen auf Spatzen schießen und gleich die
kompletten persönlichen Daten des Verfassers abfragen, zumal das zusätzlich
auch rechtliche Bedenken mit sich bringt: Gemäß
§ 3a BDSG
sind Sie bei der Erhebung und Verarbeitung personenbezogener Daten dazu
verpflichtet, nur die Daten zu erheben, die für Ihren Zweck unabdingbar
notwendig sind. Wenn Sie dem Verfasser also kein Schriftstück zuschicken
wollen, mit dem dieser seine Identität nachweist oder das PostIdent-Verfahren
vorschreiben wollen (derjenige würde sich garantiert für diese erhebliche
Belästigung bedanken), gibt es keinen Grund, Adreßdaten zu erheben. Also muß
etwas anderes her, was als Identitätsnachweis dienen kann.
Hier kommt die E-Mail-Adresse des Verfassers ins Spiel. Wenn Sie die Angabe einer Mailadresse zur Bedingung machen, damit ein Eintrag verfaßt werden kann, haben Sie ein sehr elegantes Werkzeug bei der Hand, um festzustellen, ob Sie es mit einer real existierenden Person zu tun bekommen oder nicht. Sie müssen lediglich eine Mail an besagte Adresse schicken und den Empfänger bitten, die Adresse zu bestätigen. So können Sie sicherstellen, daß der Absender tatsächlich eine real existierende Person ist.
nach obenSo filtert die Bestätigungsmail Unsinn aus
Der Effekt beruht letztlich darauf, daß Bots eine (oftmals frei erfundene)
Mailadresse angeben, um diese Hürde zu nehmen, und genau dies kann man gegen
sie einsetzen: Schicken Sie einfach eine Mail an die angegebene Adresse.
Kehrt die Mail als unzustellbar zurück, so wissen Sie, daß die Adresse ungültig
ist, und Sie können die Nachricht sofort verwerfen. Und selbst wenn die
Mailadresse doch gültig sein sollte, könnte sich der Empfänger fragen, weshalb
er sie überhaupt erhalten hat. Hier empfiehlt es sich, eine Erklärung
abzugeben, weshalb diese Nachricht überhaupt versandt worden ist und
darzulegen, welche Möglichkeiten er hat.
Hier ist es besonders wichtig, daß der Mailempfänger die Möglichkeit hat, gar
nichts zu tun. In diesem Fall sollte die entgegengenommene Nachricht nach einer
angemessenen Frist, z. B. einer Woche, stillschweigend gelöscht werden.
Schließlich wäre es unangemessen, wenn der Mailempfänger in einer Sache, die
ihn überhaupt nicht betrifft, irgendetwas tun müßte. Das ist nur dann wirklich
notwendig, wenn er selbst einen Eintrag verfaßt hat. In diesem Fall bieten Sie
einen Verweis an, mit dem er die Rechtmäßigkeit des Eintrags bestätigen und ihn
so freischalten kann.
Als weitere Option können Sie einen weiteren Verweis angeben, mit der der
Empfänger der Bestätigungsmail die weitere Verwendung seiner Mailadresse
sperren kann. In diesem Fall tragen Sie die Adresse als gesperrt ein und können
alle Versuche, sie für Eintragungen in Ihr Gästebuch zu verwenden, gleich
abweisen, ohne eine weitere Mail zu versenden.
Und wenn sich eine Mailadresse als legitim erweist, so wäre es ebenfalls
lästig, wenn die betreffende Person bei jedem erneuten Eintrag wieder seine
Mailadresse bestätigen müßte. Daher können Sie die Tatsache, daß sie bestätigt
wurde, ebenfalls festhalten und so für eine bestimmte Zeit eine erneute
Bestätigung unnötig machen. Dadurch vermeiden Sie, daß sich Ihre Benutzer
wiederum belästigt fühlen.
Sollten Sie dabei jedoch feststellen, daß real existierende Mailadressen
verwendet werden, um Spam zu verschicken, so haben Sie die Möglichkeit, diese
selbst manuell zu sperren, so daß man diese Sicherheitsvorkehrung mit den
betreffenden Adressen nicht mehr umgehen kann. Kombiniert mit der
Moderation des Gästebuchs werden Sie so jedwede
Form von Spam garantiert los, bevor sie in ihrem Gästebuch sichtbar wird.
Der andere Punkt ist der, daß ein Spammer wohl kaum seine eigene Mailadresse wird angeben wollen, da diese ob der Menge des Spams, die i. d. R. verschickt wird, sonst mit Bestätigungsmails überflutet würde. Wenn er alle Einträge manuell bestätigen müßte, käme er sonst zu nichts anderem mehr. Zudem können Sie Mailadressen, die Sie im Verdacht haben, zu einem Spammer zu gehören, auch manuell sperren, so daß diese Umgehungsstraße ganz schnell nicht mehr gangbar ist.
nach obenAutomatisierter Mailversand
Hierfür ist es empfehlenswert, einen Mailserver aufgesetzt zu haben, über den
die Bestätigungsmails versandt werden können. Alternativ können Sie dies auch
über eine Mailadresse laufen lassen, die Sie bei einem Mailanbieter extra für
diesen Zweck anlegen, aber das ist bestenfalls suboptimal. Mit einem eigenen
Mailserver stellen Sie sicher, daß man die Bestätigungsmails
Ihnen eindeutig zuordnen kann. Dazu
ist es erforderlich, daß Sie einen Mailserver selbst so aufsetzen können, daß
er nicht als offene Relaisstation für Spam verwendet werden kann und Sie die
für die Bestätigungsmail notwendige Absenderadresse hinzufügen können.
Das Freischalten von Gästeucheinträgen durch Bestätigungsmails basiert dabei
auf zwei Komponenten: Die vom Steuerskript des Gästebuchs versandten
Bestätigungsmails sowie einer Seite, die eigens für die zu tätigende
Verifikation aufgerufen wird.
Zunächst einmal ist es erforderlich, daß Sie das Steuerskript für das Gästebuch
derart modifizieren, daß es automatisch eine Bestätigungsmail an die vom
Verfasser angegebene Mailadresse schickt. In dieser Mail befindet sich dann
wünschenswerterweise ein Verweis, den der Empfänger der Mail (so er denn
existiert) anklicken kann, um die Aktion abzuschließen. Intern wird dazu ein
Eintrag in einer Datenbank angelegt, der ein Merkmal enthält (z. B. einen
vielstelligen Hexadezimalcode, der sich nur mit erheblichem Aufwand erraten
ließe), das den fraglichen Eintrag
eineindeutig identifiziert.
Dieser Verweis, in dem dieses Element ebenfalls auftritt, zeigt wiederum auf
eine Seite, die den Hexadezimalcode aus dem Verweis ausliest und mit den
Einträgen in der Datenbank abgleicht. Bei einem Treffer läßt sich so der
freizuschaltende Gästebucheintrag herausfinden, der auf diesem Wege bestätigt
wird. Gibt es hingegen keinen Treffer, so kann die Aktion mit einem Fehler
verworfen werden. Wird bei Aufruf dieser Seite hingegen kein Code angegeben, so
kann man entweder ebenfalls einen Fehler ausgeben, was sich vergleichsweise
sehr einfach bewerkstelligen läßt, oder man bietet stattdessen ein Formular an,
in das man den Bestätigungscode z. B. per Copy & Paste einfügen kann. Wird
hier wieder nichts oder etwas Falsches angegeben, so sollte man den Vorgang am
besten mit einem Fehler abbrechen.
Um dies zu bewerkstelligen, ist es erforderlich, einige Vorbereitungen zu
treffen. Melden Sie sich für alle weiteren Arbeiten zuerst einmal als
root an, da Sie die damit verbundenen Berechtigungen
benötigen. Danach erzeugen Sie eine Routine, die Mailadressen auf Plausibilität
prüft und E-Mails über Ihren Mailserver versenden kann:
Allerdings wird bei der Plausibilitätsprüfung auch geschaut, ob die Domain der obersten Ebene (also der Teil, der ganz rechts im Domainnamen steht) überhaupt definiert ist. Da sich diese Liste jedoch mit der Zeit verändert, ist es erforderlich, sie regelmäßig zu aktualisieren. Dazu legen Sie einen Hintergrundprozeß an, der diese Aufgabe periodisch übernimmt:
Kopieren Sie dieses Skript am besten in ein geeignetes Verzeichnis, z. B.
/usr/local/bin, oder legen Sie eines für etwaige
Hintergrundprozesse an, beispielsweise unter dem Verzeichnis
/opt (z. B.
/opt/background). Anschließend setzen sie einfach
einen Eintrag in die Crontab, um dieses Skript periodisch auszuführen. Rufen
Sie dazu mit crontab -e die Crontab für
root auf. Ist keine vorhanden, so wird automatisch
eine angelegt.
Danach geben Sie eine Zeile an, die ähnlich wie diese aufgebaut ist:
Speichern Sie ab und verlassen Sie crontab wieder.
Haben Sie dies richtig eingegeben, so wird die neue Zeile übernommen. Ansonsten
beschwert es sich, und Sie werden aufgefordert, den Fehler zu beheben.
In diesem Beispiel wird das Aktualisierungsskript, abgelegt im Verzeichnis
/opt/background, sonntags um fünf nach zwei (bezogen
auf die lokale oder eingestellte Zeitzone) ausgeführt und erzeugt das Modul für
die Überprüfung der TLDs neu. Allerdings ist es erforderlich, daß Sie diese
Aktualisierung einmal manuell ausführen, um das Modul anzulegen, da das
Versenden von Bestätigungsmails sonst bis zur ersten Aktualisierung nicht
funktioniert.
Nach diesen Vorbereitungen legen Sie noch eine Absendeadresse für diese Bestätigungsmails an. Dies geschieht über die Datei /etc/aliases.
Dies bewerkstelligt zweierlei: Erstens macht diese Zeile dem Mailprogramm den
Absender noreply bekannt, und zweitens verschwindet
jede Mail, die dieses „Postfach“ erreicht, im digitalen Nirwana. Schließlich
soll dieser Absender nur zum Versenden von Mail verwendet werden – ein Empfang
davon ist hier nicht vorgesehen.
Nachdem Sie diese Zeile eingefügt haben, speichern Sie ab und rufen Sie den
Befehl newaliases auf, um die Alias-Datenbank neu
aufzubauen, und starten Sie anschließend den Mailserver neu. Damit sind Sie
für den Versand von Bestätigungsmails gesetzt.
Jetzt geht es daran, die Steuerlogik in das Kontrollskript für das Gästebuch
einzufügen. Diese muß verschiedene Dinge sicherstellen, insbesondere daß keine
weiteren Nachrichten verfaßt werden können, wenn noch eine Bestätigung
aussteht, und zudem haben Sie so die Möglichkeit, im Falle von bereits
bestätigten Mailadressen einige der anderen Überprüfungen zu entschärfen.
Zunächst einmal fügen Sie folgende Subroutine in das Steuerskript ein:
Dann fügen Sie folgenden Block ein, und zwar hinter den übrigen Überprüfungen und vor der Freischaltung des Eintrags:
Wie Sie feststellen werden, ist eine Möglichkeit vorgesehen, daß Sie den
Versand von Bestätigungsmails abschalten können. Dies ist für den Fall
vorgesehen, daß sich zuviele Leute dadurch belästigt fühlen sollten, allerdings
sollte es in Jedermanns Interesse liegen, irgendwelchen Unsinn im Netz
möglichst abzublocken, insofern sollte das Abschalten nur dann geschehen, wenn
es sich als unabdingbar notwendig erweist, z. B. im Fall von juristischen
Schritten.
Wichtig ist, daß die Bestätigungsmail nichts enthält, das man als Werbung
auslegen kann (siehe dazu ein
Urteil des BGH vom
15.12.2015, AZ VI ZR 134/15), so daß Sie keine Abmahnung riskieren. Halten
Sie die Nachricht daher neutral.
Haben Sie dies in Ihrem Skript untergebracht, kommen irgendwelche Einträge mit unsinnigen Mailadressen nicht mehr durch, da die Bestätigungsmail ins Leere läuft und die Einträge somit nicht bestätigt werden. Sollte irgendwelcher Müll es wider Erwarten doch an Ihren Spamfiltern und -fallen vorbei schaffen, spätestens hier dürfte Schluß sein – und sollte ein Spammer seinen Unrat doch manuell verfassen oder eine automatisierte Bearbeitung der Bestätigungsmails eingerichtet haben, hilft sowohl die Moderation des Gästebuchs als auch das dauerhafte Sperren der fraglichen Mailadressen weiter, um diesen Unsinn fürderhin zu unterbinden.
nach oben