 |
|
Als "Teergrube" bezeichnet man einen Mailserver, der durch geschickte Ausnutzung des Protokolls SMTP die
ankommenden Verbindungen möglichst lange aufrechterhält, um damit Ressourcen des Versenders (nämlich
TCP/IP-Ports) zu blockieren. In SMTP, dem zur Übertragung von E-Mail verwendeten Protokoll, gibt es (wie
auf http://www.daniel-rehbein.de/rfc2821.html erklärt) die Möglichkeit,
das der Server mehrzeilige Antworten gibt, was durch ein Minuszeichen nach dem dreistelligen Antwortcode
gekennzeichnet wird. Mit diesen Fortsetzungszeilen kann man den Rechner, der Mail einliefern möchte, beliebig
lange hinhalten.
Verglichen mit der gewöhnlichen Briefpost ist die Teergrube ein Briefkasten, der den Briefträger in ein endloses Gespräch
verwickelt, noch bevor dieser es geschafft hat, die Briefe einzuwerfen. Und wenn der Briefträger es nicht
schafft, einfach wegzulaufen und bei den anderen Haushalten die unerwünschte Werbepost zuzustellen, so wird
er bis zum St. Nimmerleinstag zugelabert.
Es werden also Resourcen (in diesem Beispiel Arbeitskraft), die eigentlich zum Versand von Werbung gedacht
sind, gebunden. Im Falle des Spam-Versandes sind die Resourcen die Rechner, die der Spam-Versender benutzt, bzw.
deren TCP/IP-Ports. Jede einzelne ausgehende TCP/IP-Verbindung ist vergleichbar mit dem Briefträger aus obigem Beispiel,
der unverlangte Werbepost zustellen soll. Werden nun die Briefträger bzw. die TCP/IP-Verbindungen, die bei der
Teergrube ankommen, dort festgehalten, so steht dem Spam-Versender weniger Kapazität zur Verfügung, um seinen
Werbemüll an die Empfänger zu bringen.
|
 |
Das Prinzip der Teergrube geht auf eine Idee von Axel Zinser zurück, die älteste im Internet zu findende
Beschreibung stammt von Kristian Köhntopp von November 1996. Sie kann nachgelesen werden
auf http://google.de/groups?selm=57bkpu%24cou%40white.koehntopp.de
Eine aufbereitete Erklärung hat Lutz Donnerhacke
unter http://www.iks-jena.de/mitarb/lutz/usenet/teergrube.html
bereitgestellt.
Das nachfolgende Programm mit dem bezeichnenden Namen "Teergrube" implementiert eine solche Teergrube. Sofern
der jeweilige Versender die Verbindung nicht von sich aus trennt, hält es die Verbindung endlos aufrecht. Die
Teergrube empfängt (solange nicht manuell interveniert wird) keine Mail vollständig, sondern
zögert die Kommunikation so lange heraus, bis die Verbindung getrennt wird. Damit die Namen der Kommunikationspartner
bekannt sind und von der Teergrube ausgegeben werden können, behandelt diese die SMTP-Kommandos EHLO, HELO,
RSET, MAIL und RCPT wie gewohnt, d.h. ohne nennenswerte Verzögerung. Erst bei anderen Kommandos, insbesondere DATA,
schlägt der Teergruben-Mechanismus zu. Etwa alle 10 Minuten wird eine kleine Statistik ausgegeben, die nach IP-Nummern
sortiert Auskunft über die Anzahl der aktiven Verbindungen und die Kommunikationspartner gibt.
Diese Teergrube verfügt außerdem über ein Hintertürchen, um einzelne Verbindungen doch vollständig abzuwickeln
und die durch die betreffende Verbindung eingelieferte Mail ansehen zu können. Kontaktieren Sie die Teergrube
mit einer telnet-Verbindung auf dem Port, auf dem sie läuft (typischerweise 25) und geben Sie nach der
Begrüßung den Befehl "view" gefolgt von der IP-Adresse der Verbindung, deren Mail sie sehen wollen, ein. Daraufhin
wird dann die Blockierung der von dieser IP-Adresse kommenden Verbindung (wenn mehrere bestehen, einer davon)
freigegeben, die betreffende Mail empfangen und anschließend im telnet-Dialog angezeigt. Insofern ist diese
Teergruben-Implementierung auch ein schönes Werkzeug, um einfach mal zu gucken, von wo Mails ankommen und sich
dann einzelne Mails davon gezielt herauszupicken.
Für weitergehende Steuerung und sogar whois-Abfragen sowie einen Portscan-Mechanismus verfügt die Teergrube
über ein Web-Interface. Mit Hilfe einer whois-Abfrage können Sie feststellen, auf wen eine bestimmte IP-Adresse oder
ein bestimmter Domainname registriert ist. Mit Hilfe eines Portscans können Sie die Rechner, die zu der Teergrube
eine SMTP-Verbindung aufgebaut haben, offene Ports besitzen, auf denen ein offenes Mail-Relay oder ein offener Proxy
läuft. Der eingebaute Portscan der Teergrube führt eine Analyse der offenen Ports durch. Wozu die gefundenen
Port genau verwendet werden, d.h. welche Dienste dort laufen, muß separat festgestellt werden (z.B. durch
Ausprobieren mittels Handeingabe via telnet oder über andere Werkzeuge).
Damit der Zugriff über die Web-Oberfläche möglich ist, wird
beim Start der Teergrube nicht nur ein Port für den SMTP-Dialog, sondern auch ein weiter Port für HTTP
definiert. Soll das Web-Interface von extern absprechbar sein, so ist dieser Port üblicherweise 80, ansonsten
wählt man in der Regel einen anderen Wert. Gestartet wird die Oberfläche mit Aufruf der Datei /start auf
beliebiger Verzeichnisebene. Im untenstehenden Beispiel würde man also z.B. http://localhost:8012/start
oder auch http://localhost:8012/seiten/irgendwas/start aufrufen.
Für alle nicht von der Web-Oberfläche genutzen Dateinamen liefert die Teergrube eine Webseite mit E-Mail-Adressen
von sich selbst. Alle Links bleiben grundsätzlich innerhalb derselben Verzeichnisebene. Diese Teergrube kann also
auch zum Harvester-Poisoning eingesetzt werden, indem man die Web-Oberfläche auf einem offenen Port laufen läßt und
dorthin verlinkt (natürlich nicht auf "/start", sondern auf eine beliebige andere Seite).
Eine einfache Version einer Teergrube ohne Statistik und ohne Web-Interface ist auch das Programm
"Mailblocker" auf der Webseite http://mailserver.aplerbeck.net/
Achtung: Diese Teergrube sollte man nur einsetzen, wenn man sicher ist, daß auf dem eigenen Rechner nur
Spam ankommt. Werden dagegen auch "normale" Mails per SMTP an den Rechner geschickt, oder besteht gar eine
Weiterleitung von einem Provider-Account auf eine Adresse auf dem eigenen PC, so würde eine Teergrube auch
diese Verbindungen blockieren.
Der Aufruf des Programms "teergrube" erfolgt nach folgendem Schema:
java teergrube mail.example.com 25 8012
Dabei bedeuten: | java teergrube | Aufruf des Programmes. |
| mail.example.com | Der Name, mit dem der SMTP-Server sich melden soll. Setzen Sie hier Ihren tatsächlichen Domainnamen ein. |
| 25 | Der TCP/IP-Port, auf dem der Prozeß laufen soll. Für den Empfang von E-Mails durch einen SMTP-Server ist dies üblicherweise Port 25. |
| 8012 | Der TCP/IP-Port, auf dem der HTTP-Server für die Administrationsoberfläche laufen soll. Wenn diese
von außen erreichbar sein soll, so handelt es sich typischerweise um Port 80. Soll die Oberfläche nur intern erreichbar sein, so wählt man in der Regel einen anderen
Port, im Beispiel 8012. |
|