# Perfekter Debian Server scheinbar nicht sicher genug



## M. Zink (11. Juli 2010)

Hallo,

ich habe seit 14 Tagen einen neuen Server und diesen nach der Anleitung für einen perfekten Server mit Debian Lenny und ISPC 3 installiert. Heute habe ich eine Mail erhalten von Hetzner, dass die eine Abuse Meldung von AOL bekommen haben wegen einer Spammail die von meinem Server verschickt wurde. Dachte erst das ist einen Falschmeldung bis ich mir die Logs mal genauer angeschaut habe. Also das ist der absolute oberhammer aber da ist tatsächlich zeitweise einer dabei wie ein irrer Spam über meinen Server zu schieben. Das hab ich bis jetzt nie bemerkt da eine Mailadresse verwendet wurde die es auf meinem Server nicht gibt und dadurch hab ich natürlich auch die Rückmeldungen nie erhalten. Die Mailadresse ist immer web3@Domain - meiner - Firma . de. Ich finde in den Logs zeitweise 30-40 Einträge pro Sekunde wo wie irre versucht wird Mails nach draußen zu schicken. Allerdings habe ich keinen blassen Schimmer wie ich anhand der Log Einträge prüfen soll welcher PC das sein soll denn ich gehe mal davon aus ein total fremder kann das eigentlich nicht sein außer Jail2ban und alles weitere hätte versagt und es hat jemand wirklich Zugriff auf den Server oder?

Laut auth.log versuchen auch zahllose IP Adressen auf den SSH von meinem Server zu kommen mit verschiedenen Benutzernamen. Und die IP Adressen kommen alle weiß der Teufel woher. Aber soweit ich das im Fail2Ban Log sehe tut der seine Dienste und sperrt die IPs alle für eine gewisse Zeit. Deshalb ist meine Vermutung immer noch das es ein PC sein muss mit Zugriff auf den Server in Form eines Mailkontos oder sowas.

rkhunter hat bis auf Warnungen wegen aktualisierter Pakete und was weiß ich auch nichts gefunden also zumindest keinerleu Rootkits oder so. Spricht also auch wieder für meine Vermutung das noch nieman den Server geknackt hat.

Ich kann im Moment leider nur mit Sicherheit sagen, dass es nicht mein eigener privater PC sein kann da der zu den Zeiten wo der Spam verschickt wurde nicht an war.

In der mailq hängen übrigens auch noch Beweise für verschickten Spam wo Mails nicht zugestellt wurden und die Rückantwort wiederum nicht durch kam da es wie gesagt ja die Absenderadresse auf meinem Server nicht gibt.

Wie sollte ich nun vorgehen um wirklich Sicher zu sein, dass hier nicht schlimmeres passiert? Könnte das auf ein Skript bei einem Webprojekt sein welches unsauber programmiert wurde? Dann müsste ich aber im Apacke Log zur gleichen Zeit irgendwas finden oder? Weil da ist nichts soviel ist sicher.

Meine herren das nervt mich schon wieder. 14 Tage alter Server und schon wird versucht den irre zu machen von allen Ecken und Enden. Sollte ich übrigens die IPs die in der auth.log versuchen den Server zu knacken mit einem route add -host IP reject ganz von meinem Server fern zu halten? Ich hab gelesen wenn ich da hunderte von Routen drin hab wird irgendwann der ganze Server bzw. Netzwerkverkehr langsam.

Da die Logs übrigens mega groß sind poste ich diese nicht einfach. Falls ich das tun soll bitte genau sagen was wichtig ist damit ich den entsprechenden Teil raus kopieren kann.


----------



## Till (11. Juli 2010)

> *Perfekter Debian Server scheinbar nicht sicher genug*


das im perfect Server Tutorial beschrieben Setup ist sicher. das über Deinen Server Spam verschickt wird, ist sicherlich ärgerlich, hat aber nicht unbedingt etwas mit dem Setup zu tun. Ich kenne sehr viele Kunden Systeme auf Basis des perfect servers und alle Spam-versende-Probleme die ich in den letzten Jahren für Kunden behoben habe beruhten auf Bugs in Webseiten oder aber erratenen bzw. irgendwo mitgeschnittenen Passworten, nicht aber auf Problemen mit dem Setup selbst. Ansonsten hätten wir das Setup bereits angepasst.



> Laut auth.log versuchen auch zahllose IP Adressen auf den SSH von meinem  Server zu kommen mit verschiedenen Benutzernamen. Und die IP Adressen  kommen alle weiß der Teufel woher. Aber soweit ich das im Fail2Ban Log  sehe tut der seine Dienste und sperrt die IPs alle für eine gewisse  Zeit.


das ist ganz normal und hast Du bei jedem an das internet angeschlossenen Server. Deshalb nutzt man fail2ban sowie ein sicheres Passwort (Zahlen, Buchstaben in groß- und Klienschreibung sowie ggf. Sonderzeichen und das in ausreichender Länge.


Zu Deinem eigentlichen Problem:



> Wie sollte ich nun vorgehen um wirklich Sicher zu sein, dass hier nicht  schlimmeres passiert?


Erstmal vorweg, das ein Server spam verschickt bedeutet nicht, das er in der Art gehackt wurde das jemand shell Zugriff Zu Deinem System erlangt hat. Also bitte nicht verwechseln! Mit rkhunter scannen hast Du bereits gemacht. Wenn das kein negatives Ergebnis gebracht hat, dann ist ds schonmal recht gut. Ansonsten stell sicher dass Du alle Linux Updates eingespielt hast. das sollte man alle paar Tage prüfen.



> Könnte das auf ein Skript bei einem Webprojekt sein welches unsauber  programmiert wurde?


Das ist in den meisten Fällen der Grund. Das kannst Du mit der folgenden Methode untersuchen.

http://www.howtoforge.com/how-to-log-emails-sent-with-phps-mail-function-to-detect-form-spam

Des weiteren solltest Du mal ins mail log schauen, ob Du einen smtp Authentifizierungsvorgang für einen bestimmten User hast, direkt bevor eine neue spam-Welle versendet wird. Das kann dann ein indiz dafür sein, das jemand ein smtp Passwort bekommen hat. Typische Szenarien sind da: 1) user hat unsicheres Passwort verwendet oder 2) user hat Passwort in öffentlichem wlan benutzt ohne SMTP Verschlüsselung oder 3) irgendein User mit Mailkonto auf Deinem Server hat sich einen virus eingefangen, der das Passwort ausgelesen hat.



> Sollte ich übrigens die IPs die in der auth.log versuchen den Server zu  knacken mit einem route add -host IP reject ganz von meinem Server fern  zu halten? Ich hab gelesen wenn ich da hunderte von Routen drin hab wird  irgendwann der ganze Server bzw. Netzwerkverkehr langsam.


Das macht fail2ban alles automatisch, wenn Du es wie im FAQ auf route umgestellt hast. Fail2ban entfernt die Routen ja auch wieder, da wird also nichts zu viel und langsam, da immer nur ein paar Routen geblockt sind.


----------



## M. Zink (11. Juli 2010)

OK also der Titel von dem Thema ist unglücklich gewählt. Ich wollte damit nicht zum Ausdruck bringen, dass das HowTo scheiße ist. Es hätte lauten sollen
"Der Perfekte Server schützt einen nicht vor allen Gefahren die User des Servers machen können"
Oder irgendwas in der Richtung.

Jedenfalls hab ich das Problem gefunden! Ich erkläre mal genau den Sachverhalt weil das ganze wirft ein Problem auf was eigentlich sehr viele User haben müssten und mich wundert das ich über die Suche nichts dazu gefunden habe.

Also, die Spam Mails (hunderte) die mein Server verschickt hat waren alles Mails die ich persönlich verschickt habe. Und zwar habe ich in einem meiner Projekte einen Newsletter verschickt (mittels PHP) und das war genau die Uhrzeit wo das allem Anschein nach angefangen hat mit den Spam Mails. Folgendes ist das Problem daran. Hier mal ein Auszug aus dem Mail Header.

```
Return-Path: <web3@meine domain .de>
...
From: webmaster@mein projekt .de
```
So, und AOL hat allem Anschein nach dann kombiniert, dass die Empfängeradresse nicht existiert und diese beiden Angaben unterschiedlich sind und somit kann es sich bei der Mail nur um Spam handeln.

Die Frage ist nun wieso unterscheiden sich Regurn-Path und From voneinander? Die Adresse die bei Return-Path steht ist immer die, entsprechend zum Web des Projektes und immer die Domain meiner Firma (auch die Domain des Servers nur eigentlich mit Subdomain). Muss der Return-Path nicht auch immer der Absender der Email sein?

Merkwürdig das das noch nie jemand aufgefallen ist oder habe ich irgendwas auf meinem Server anders konfiguriert so, dass der das nur bei mir so macht?

Übrigens habe ich Fail2Ban jetzt noch so weit umconfiguriert, dass auch Email und FTP mit überwacht werden und die Sperrzeit hab ich auch 3600 hoch gesetzt. Ist mir lieber so dann lauf ich zwar Gefahr mich mal selbst auszusperren wenn ich mal das PW falsch tippe aber ist mir lieber als wie das jemand alle 10 Minuten da irgend einen Mist baut.

Also dann, sorry noch mal für meine Ausdrucksweise und ich hoffe mir kann da noch mal wer erklären wie das mit dem Return-Path und dem From ist. Weil so is jedenfalls doof.


----------



## Till (12. Juli 2010)

Return path und absender Adresse dürfen sich auch unterscheiden. Deshalb gibt es ja 2 Felder in der Email und nicht nur eines. Ich gehe also nicht davon aus, das aol die Email deswegen aussortiert hat, da es ja so auch bei allen anderen funktioniert, wie Du selbst oben geschrieben hast.

Eine wahrscheinliche Ursache ist eher folgendes:

1) Du hast eine Emailadresse in Deinem Verteiler, die auf einen honeypot verlinkt.
2) Einer der Abonnenten hat Deinen Nwsletter bei aol als Spam gemeldet.
3) Irgend etwas am Inhalt Deiner Email hat beim aol Server zum Blacklisting geführt.

Du kannst auch den returnpath ändern, indem Du die entsprechenden Direktiven je nach verwendeter PHP Methode im vhost master template oder aber in der cgi oder fcgi master datei auskommentierts und dann eine Einstellung im web änderts, so dass die Konfiguration neu geschrieben wird.


----------



## M. Zink (12. Juli 2010)

Laut der Mail die ich bekommen habe hat AOL das gemeldet wegen einem Feed Back Loop, was auch immer das sein soll. Ich denke mal mein Server hat versucht den Newsletter zu schicken, AOL hat versucht zu antworten das es die Mailadresse nicht mehr gibt und mein Server hat darauf wieder geantwortet die Mailadresse gibt es hier auch nicht und deswegen die Bezeichnung Feed Back Loop. Jedenfalls find ich das bissl doof weil wenn ich nen Newsletter verschicke wäre es doch auch nicht übel zu erfahren welche Forenuser ihre Mailadresse geändert haben da ich diese User immer sperre. Denn letztenendes grade bei den Freemailern besteht die Möglichkeit das nach nem Jahr oder so irgendjemand ganz anderes sich die Mailadresse registriert und so an das Passwort von dem User in meinem Forum kommt. Ich finde wenn jemand seine Mailadresse ändert kann er das auch in meinem Forum tun. Heißt ja nicht das er Newsletter akzeptieren muss er kann ja angeben das er keine möchte.

Wie dem auch sei, wie könnte ich denn jetzt zumindest für diese eine Domain den Return-Path fest auf eine Mailadresse setzen die es auch wirklich gibt? Weil das mit dem Mastertemplate hab ich nicht wirklich geschnallt. Wenn ich da was auskommentiere wird der Return-Path gar nicht mehr gesetzt oder wird er dann anders gesetzt?


----------



## Till (12. Juli 2010)

Der return-path ist eine zusätzliche Emailadresse die im Fall von auftretenden Zustellungsfehlern alternativ zum from versucht wird da sie nicht durch den php mail befehl verfälscht werden kann und sie existiert auch, da web3 ein Linux system User deines Servers ist. Return-path ist nicht die Adresse an die versendet wird, wenn Du im Emailclient auf reply klickst.

Ein Feedback loop ist was ganz anderes. Ein feedback loop bedeutet dass aol Dir eine Nachricht zurück an die from Adresse geschickt hat und Dein Server wieder automatisch darauf geantwortet hat. Also sowas wie ein Autoresponder.

Ein anderes Beispiel aus der Praxis:

Der return path bei howtoforge.com emails ist z.b. sowas wie "www-data@server123.howtoforge.com". Wenn Du dort auf reply klickst, wird die Antwort aber nicht an www-data ... zurück geschickt sondern an die webmaster Adresse, die im From Header steht. Und Howtoforge Emails werden übrigens nicht bei aol als spam aussortiert.

Wie Du siehst bist Du also mit Deien Vermutiungen nicht auf der richtigen Spur.


----------



## M. Zink (12. Juli 2010)

Hm, die From Adresse existiert aber und die nutze ich sogar aktiv. Ich habe dort auch ca. 10 Emails auf den Newsletter bekommen wie z.B. "Befinde mich bis zum xxx im Urlaub..." und solche Sachen. Die Adresse an die der Newsletter ging ist eine web.de Adresse und die gehören ja irgendwie mit AOL zusammen oder wie auch immer das läuft. Kann es sein das die trotzdem für solche Antworten den Return-Path nutzen? Oder wie kann das dann zustande gekommen sein?

Ich meine letztenendes ist mir total egal was im Return-Path steht. Ändern wollte ich den nur weil ich davon ausgegangen bin, dass grade Freemailer wohl darauf zurück greifen um Meldungen wie User existiert nicht zu schicken. Nun ja, gib mir am besten mal ein paar Schlagworte nach denen ich in Google suchen könnte um das ganze besser zu verstehen weil im Moment stocher ich ja irgendwie im leeren rum wenn meine Vermutungen nicht zutreffen.

Wie macht ihr das hier eigentlich wenn ein Newsletter verschickt wird mit den Usern bei denen die Mailadresse nicht mehr existiert? Löscht ihr die oder macht ihr da gar nichts? Und wo lasst ihr die hunderten von Mails hin gehen? Landen die alle auf der Webmaster Adresse? Das is doch recht nervig oder? Man müsste sich da irgendwas bauen das PHP die Mails verarbeitet und automatisch bei allen Usern wo die Mailadresse nicht mehr existiert irgendein Kriterium umstellt oder so zumindest das erst mal kein Newsletter mehr geschickt wird und so.

Hab übrigens Fail2Ban jetzt noch so eingestellt, dass ich bei jedem Ban eine Mail bekomme. Kann es sein, dass die Angriffe plötzlich weniger werden? Weil laut Log waren am Donnerstag z.B. fast 2000 Angriffe alleine nur auf SSH und von gestern Abend bis heute waren es grade mal 10 inkl. Email und FTP.


----------



## Till (13. Juli 2010)

> Wie macht ihr das hier eigentlich wenn ein Newsletter verschickt wird  mit den Usern bei denen die Mailadresse nicht mehr existiert?


Aus dem Verteiler löschen. Es gibt auch diverse Newletter Scripte, bzw. Programme, die sich um die Rückläufer kümmern und sie automatisch aus dem Verteiler löschen.



> Oder wie kann das dann zustande gekommen sein?


Du sagst dass die Newsletter Rückläufer auf Dein normales Postfach auflaufen. Hast Du bei Deinem normalen Postfach irgendeine Art Autoresponder drauf?



> Hab übrigens Fail2Ban jetzt noch so eingestellt, dass ich bei jedem Ban  eine Mail bekomme. Kann es sein, dass die Angriffe plötzlich weniger  werden? Weil laut Log waren am Donnerstag z.B. fast 2000 Angriffe  alleine nur auf SSH und von gestern Abend bis heute waren es grade mal  10 inkl. Email und FTP.


Das ist normal das es recht stark schwankt.


----------



## M. Zink (13. Juli 2010)

Auf meinem Postfach gibts keinen Auto Responder. Die Mails kommen einfach an. Wobei ich nur Mails bekommen habe mit Abwesenheitsnotiz oder automatischer Antwort. Keine einzige Mail war dabei von Adressen die es nicht mehr gibt. Das heißt scheinbar werden die automatischen Antworten der verschiedenen Provider doch an den Return-Path geschickt denn ich verstehe diese Angabe im Mailheader doch auch so, dass dort die Mails hin sollen die nicht zugestellt werden können oder? Meistens ist ein Newsletter doch so, dass die Versandadresse eine Mailadresse ist die selbst keine eingehenden Mails annimmt. Und in dem Fall muss es ja eine alternative Mailadresse geben um nicht zustellbare Mails abzufangen. Hier ist das noch mal recht gut beschrieben mit dem Grund warum der Return-Path vom From abweichen kann / soll. -> http://www.lanwirt.de/2007/11/21/php-und-postfix-return-path-setzen/

Wie dem auch sei, wie ich nun schon mehrfach gelesen habe kann man nicht einfach so den Return-Path setzen per PHP selbst wenn man den Mail Header selbst zusammen setzt. In 90% der Fälle wird die Angabe des Return-Path einfach ignoriert.

Wenn ich nun möchte dass z.B. der Return Path immer eine gültige Mailadresse auf dem Server ist (z.B. Webmaster@...) oder aber das ich ggf. sogar wählen kann welche Mailadresse dort stehen soll würde sich sowas nicht irgendwie in ISPC verankern lassen? Ich hab das Problem jetzt temporär umgangen indem ich einfach eine Weiterleitung von der Return-Path Adresse auf meine tatsächliche Adresse gelegt hab. Funktioniert auch wenn ich eine Mail an eine nicht existierende Mailadresse sende. Aber irgendwie stört es mich.

Übrigens, weiter oben hast Du mir den Tip gegeben den PHP Sendmail nach dem Howto umzubauen um ein Log speziell für die mit PHP gesendeten Mails zu bekommen. Wenn ich mich exakt an das HowTo halte kann ich gar keine Mails mehr mit PHP schicken und finde aber auch kein Log wo eine Fehlermeldung drin stehen könnte. Welches Log müsste das sein wo da der Fehler zu sehen ist?


----------



## Till (13. Juli 2010)

Wie Du den return path setzen kannst, hab ich ja bereits oben geschrieben. Du kannst ihn in den master templates der cgi und fcgi wrapper sowie dem aster template des vhosts ändern.


----------



## M. Zink (13. Juli 2010)

Also die Templates hab ich gefunden aber in keinem einzigen steht irgendwas von Return Path drin. Ist das ein Eintrag den ich dazu bauen muss oder wie bekomme ich den da hin? Soll ich mal ein Template von mir posten zur Sicherheit?


----------



## Till (14. Juli 2010)

Der Returnpath kann als Parameter dem Sendmail warpper binary übergeben werden. Aus dem vhost template:

php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fwebmaster@<tmpl_var name='domain'>"

Es sollte also auch möglich sein den sendmail_path mittels -d Parameter für das php binary im cgi und fcgi wrapper zu setzen.


----------



## M. Zink (14. Juli 2010)

Ich hab bei mir ja nur WBB im Einsatz und dort kann man einen -F Parameter setzen und wenn der gesetzt wird ist der Return-Path gleich dem From. Das genügt mir absolut da ich nichts anderes nutze wo der Parameter nicht zu setzen gehen würde von daher lasse ich lieber das meiste im Standard. Speziell auch da irgendwann demnächst das neue Debian kommt und je mehr man am System bastelt desto mehr muss man nachher auch wieder grade biegen.

Wobei ich natürlich die Templates auch übernehmen könnte das spielt ja keine Rolle. Mal überlegen.


----------

