SMTP Telnet localhost verbieten

strowi

New Member
Hallo zusammen,

ich darf mich gerade mit einem Plesk10-basierten Server herumschlagen der bereits mehrfach wg. Spam geblacklisted wurde.

Der Server wurde nicht von mir aufgesetzt, aber ich 'darf' mich nun um die Problembehebung kümmern.

Anscheinend wurden hier u.a. mehrfach Newsletter von autorisierten Kunden (mit ~400 Empfängern im BCC!) via SMTP-AUTH versandt und auch einige via gehackten Wordpress/Joomla-Installationen.

Nach eingehender Analyse der Logfiles habe ich nun folgendes gemacht:

Was ich bisher gemacht habe:
1. Postfix: recipient_limit auf 20, sodass eine Mail max an 20 Empfänger gesendet werden kann.
2. Postfix: rate_delay=2s, damit max. alle 2s eine Email an denselben Empfangsserver gesendet werden können. Gibt es hier gute Richt- oder Erfahrungswerte?
3. Um die Webseiten herauszufinden die Mails via sendmail versenden das sendmail-logging aktiviert

Nun noch ein Punkt bei dem ich mit allerdings etwas unsicher bin:
Einige Webseiten benutzen die php-fsock* Funktionen um via telnet auf localhost mails zu versenden. Hier gibt es keinerlei Authentifizierung o.ä.
Eine Möglichkeit ist sicher, die fsock*-Funktionen komplett zu sperren - müsste ich dann allerdings auch in perl etc.. machen.

localhost komplett sperren geht natürlich nicht, gibt es ne Möglichkeit hier die entsprechenden Verbindungen von localhost->localhost:25 zu sperren ohne den restlichen Postfix zu beeinflussen? Die Webseiten müssten dann eben die externe IP nehmen und sich authentifizieren.
Alternativ würde ich gerne mitloggen wer bzw. welches Skript die Verbindung aufbaut... Gibt es da irgendeine Möglichkeit?

Ansonsten bin ich für weitere Tipps gerne offen:)

Gruß,
strowi
 
Eine Möglichkeit ist sicher, die fsock*-Funktionen komplett zu sperren - müsste ich dann allerdings auch in perl etc..
Oder mit der Firewall blockieren. Eine Methode wäre hier mod_owner um die Mailserver-eigenen Benutzer zu erlauben

gibt es ne Möglichkeit hier die entsprechenden Verbindungen von localhost->localhost:25 zu sperren ohne den restlichen Postfix zu beeinflussen?
Das sollte möglich sein, allerdings solltest du aufpassen dass auch root und evtl. Spamfilter in der Firewall erlaubt werden

Die Webseiten müssten dann eben die externe IP nehmen und sich authentifizieren.
Oder PHP's mail-Funktion =)
Alternativ kannst du einfach die Email-Anzahl drosseln falls das für deinen Bedarf ausreicht

Alternativ würde ich gerne mitloggen wer bzw. welches Skript die Verbindung aufbaut... Gibt es da irgendeine Möglichkeit?
Iptables kann loggen. syslog-ng respektiv rsyslog sind in der Lage die Log in eine eigene getrennte Datei zu leiten.


Um zB die Anzahl an Verbindungen auf den Mailserver je Zeitraum zu blockieren würe dann ein Log-Parser ausreichen welcher den entsprechenden User über iptables mod_owner für entsprechende Verbindungen rejected.
Funktioniert ziemlich zuverlässig, selbst auf Systemen mit erhöhter Benutzerzahl.
 
Oder mit der Firewall blockieren. Eine Methode wäre hier mod_owner um die Mailserver-eigenen Benutzer zu erlauben

Das sollte möglich sein, allerdings solltest du aufpassen dass auch root und evtl. Spamfilter in der Firewall erlaubt werden
Stimmt, mod_owner ist mir glaub ich auch schonmal in Zusammenhang mit CPanel untergekommen. Müsste ja reichen wenn ich das auf postfix, root/cron und evtl. spamlösung einschränke.

Oder PHP's mail-Funktion =)
Alternativ kannst du einfach die Email-Anzahl drosseln falls das für deinen Bedarf ausreicht
Da hab ich den Benutzern einfach mal das entsprechende Fachverständnis abgesprochen (irgendwelche CMS mit optischem Look von "damals"):P

Iptables kann loggen. syslog-ng respektiv rsyslog sind in der Lage die Log in eine eigene getrennte Datei zu leiten.

Um zB die Anzahl an Verbindungen auf den Mailserver je Zeitraum zu blockieren würe dann ein Log-Parser ausreichen welcher den entsprechenden User über iptables mod_owner für entsprechende Verbindungen rejected.
Funktioniert ziemlich zuverlässig, selbst auf Systemen mit erhöhter Benutzerzahl.

vielen Dank für den Tipp mit mod_user, das Schlüsselstück fehlte mir!
Geloggt wird sonst mittlerweile fast jede Mail bis auf diese fsock/telnet Verbindungen eben, die tauchen dann mit nem from=<> im log auf.
Mit mod_user werd ich das dann wohl hinbekommen:)

Gruß,
strowi
 
Back
Top