![]() |
||
|
|
|
|
Warum?Jeder der einen eMail- Account hat wird früher oder später in den zweifelhaften Genuß von Werbebotschaften kommen, die ihm kleine Pillchen extrem günstig anbieten oder Offerten nach dem Motto "gib mir heute einen Euro und Du bekommst morgen 100.000 zurück" machen. VorbereitungenDie Erweiterungen zur Protokollierung verwenden die Perlmodule Um diese Module, sofern nicht bereits vorhanden, zu installieren genügt ein Aufruf von "perl -MCPAN -e shell". Dieser wirft uns in eine "cpan shell", in der es einfachst möglich ist neue Module zu installieren. Um die beiden o.g. Module dem System hinzuzufügen reichen folgende beiden Befehle: install Net::DNS Benötigte zusätzliche Pakete, wie z.B. DBI werden nach Rückfrage normalerweise selbständig mitinstalliert. Nachdem nun die Voraussetzungen für Perl geschaffen sind muß noch smtarpit selbst installiert werden. Die Quellen hierzu gibt es auf der Homepage des Projektes. Ist auch das erledigt muß das Programm erstmal konfiguriert werden. Dies geschieht im Script selbst und ist selbsterklärend. # telnet 192.168.1.1 2525 Der Serverstring der zurückkommt wird aus einem im Script definierten Pool zufällig ausgewählt und kann frei definiert werden. Hierzu existieren die Variablen @srvdom und @srvtype. Die entsprechende Linkliste ist in @linklist definiert. Das System ist nun erstmal betriebsbereit, allerdings noch nicht von Außen zu erreichen. Dies machen wir erst im letzten Schritt- wir wollen ja nichts verpassen. Die DatenbankBei mir kommt MySQL zu Einsatz. CREATE DATABASE smtarpit; CREATE TABLE IF NOT EXISTS connects ( CREATE TABLE IF NOT EXISTS hosts ( Auf Indizes habe ich im Schema bewusst verzichtet, da diese angepasst für den jeweiligen Anwendungsfall erstellt werden sollten. Zum Schreiben in die Tabelle sind Indizes erstmal nicht nötig. Um es nun einem Benutzer smtarpit zu ermöglichen mit dem Kennwort smtarpitpwd darauf zuzugreifen sind noch folgende Kommandos notwendig: CREATE USER 'smtarpit'@'localhost' IDENTIFIED BY 'smtarpitpwd'; connects hosts Änderungen an SMTarPitDie Änderungen am Programm selbst beziehen sich alle auf die Funktion "done". Hierzu einfach im Script nach 'sub done' suchen und nach der Zeile 'close (SMTPLOG);' folgenden Block einfügen: use DBI; Sind diese Änderungen erfolgt, so kann das originale nun gegen das modifizierte Script ausgetauscht werden. Ein Test mittels eines Telnet auf den konfigurierten Port (siehe oben) sollte nach einem QUIT, und etwas Wartezeit- schließlich ist es eine Teergrube ;-) - Einträge in den beiden Datenbanktabellen hinterlassen. FirewallregelUnser System bekommt nun noch keinerlei Daten von Außen. Um das zu ändern muß in der jeweiligen Firewall ein sogenanntes Port- Forwarding eingerichtet werden. In meinem Fall sollen alle Pakete, die von Außen an Port 25 der Firewall ankommen auf den Port 2525 meines Linux-Systems umgebogen werden. In IPTables sieht das in etwa so aus: iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 25 -j REDIRECT --to-port 2525 eth1 ist hierbei das Interface an dem das böse böse Internet angeschlossen ist. Wohin mit den Daten?Da die Teergrube ja derzeit nur Müll abbekommt und keine echten Mails, sind die gesammelten Daten meines Erachtens ideal um damit zum Beispiel eine Blacklist in einem MySQL- basierten Postfix- System zu füttern. Das Stichwort hierzu lautet access_client. Das Füllen der Tabelle, bzw. das Aufräumen kann entweder durch kleine externe Helferscripte erfolgen, oder aber direkt durch Trigger in der Datenbank- jeder nach seinem Gusto. |
||
(c) rs 2010 |
||