Postfix sendet Spam durch Dritte

DerBerliner

New Member
Hallo Experten,

Mein Linux Mailserver macht erheblich Probleme und ich bitte um Hilfe. Ich habe:
- wenig praktische Linux Erfahrung (ab Mitte der 80-iger einiges mit Xenix und Unix gemacht, aber das meiste vergessen)
- keine Postfix Erfahrung
- nur theoretische Apache Kenntnisse.

Nachdem zwei "Experten" den Server nicht wasserdicht bekommen haben, möchte ich selbst gern verstehen, was da passiert. Das war vorher mit meinem Windows Server ähnlich: Erfolgreiche Angriffe, weil der Admin die simpelsten Sicherungen nicht eingebaut hatte, z.B. nur anderer Admin Name als "Administrator" erlaubt und diesen Login verboten, Begrenzung der Login-Versuche, das war dort die simple Lösung.

Ich versuche nachfolgend, alle mir bekannten und vielleicht relevanten Informationen zu geben:

1) Situation
Das ist ein Linux Host mit SuSe 10 bei Hetzner, auf dem einige eigene Domains unter Apache2 und ein Postfix Mailserver gehostet sind.

Vor ein paar Monaten habe ich von Hetzner zwei Abuse Infos erhalten. Danach wurden von einem Externen ein paar Änderungen vorgenommen. Danach ein paar Monate Ruhe. Vor zwei Wochen wieder Abuse Infos. Ich würde gern verstehen, was da abläuft, und das daher selbst wasserdicht machen.

Der Rechner ist mit einem sehr langen PW gesichert. Außerdem erfordert su root ebenfalls ein sehr langes PW.

2) Relay Tests
Meine Tests mit www.abuse.net/relay.html und www.spamhelp.org/shopenrelay waren ok, keine Leaks festgestellt. Alle Tests bestanden.

3) Traffic
Seitdem kontrolliere ich den Traffic bei Hetzner und per maliq die "Rückstände". Es erfolgt regelmäßig Mail-Ausgang, obwohl ich nichts sende. Teils 50 bis >100 MB Ausgang pro Tag, der niemals von mir sein können. Wenn ich nachts Postfix abstelle, dann ist Ruhe beim Traffic, manchmal bis auf einen kleinen Rest von ein paar MB, obwohl Postfix stop(ped) wurde.

4) mailq
In mailq sind oft Einträge wie diese:
Code:
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
3DF1A9280CC     6201 Sun Jan 10 22:44:51  MAILER-DAEMON
(conversation with unitymediagroup.de[80.69.98.91] timed out while receiving the initial server greeting)
                                         sekaxeme1861@unitymediagroup.de

0CA499280D9     3656 Thu Jan 14 02:48:43  MAILER-DAEMON
(host mail.radalle.com[83.150.127.7] said: 450 4.2.0 <earthquaking213@radalle.com>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/radalle.com.html (in reply to RCPT TO command))
                                         earthquaking213@radalle.com

72E2B9280B5     1879 Wed Jan 13 16:52:54  wxmydg@studio-tao.com
         (connect to elef.rheumanet.org[81.201.105.125]: Connection timed out)
                                         elef@elef.rheumanet.org

720A49280CE     1895 Wed Jan 13 16:52:55  lfjokystnjds@decision-finance.com
            (connect to freebiemaniac.com[82.98.86.170]: Connection timed out)
                                         kangariadne@freebiemaniac.com

5) Einträge in mail.warn
Im mail.warn stehen viele Einträge wie dieser:

Code:
Jan 14 01:12:36 ns postfix/trivial-rewrite[4802]: warning: do not list domain xyzMeineDomain.com in BOTH mydestination and virtual_alias_domains

Meine Recherchen nach der Ursache waren bisher nicht erfolgreich. Hängt das mit dem Spam zusammen?

6) Einträge in mail.err
Da sind häufig Einträge über Benutzer, die nicht angelegt sind:
Code:
Jan  3 08:19:18 ns gnu-pop3d[12786]: Socket closed
Jan  3 08:19:19 ns gnu-pop3d[12787]: User gnats cmd USER status = 3 exit_flag = 0
Jan  3 08:19:19 ns gnu-pop3d[12787]: Socket closed
Jan  3 08:19:19 ns gnu-pop3d[12788]: User jeff cmd USER status = 3 exit_flag = 0
Jan  3 08:19:20 ns gnu-pop3d[12788]: Socket closed
Jan  3 08:19:20 ns gnu-pop3d[12789]: User irc cmd USER status = 3 exit_flag = 0
Jan  3 08:19:20 ns gnu-pop3d[12789]: Socket closed
Jan  3 08:19:20 ns gnu-pop3d[12790]: User list cmd USER status = 3 exit_flag = 0
Jan  3 08:19:21 ns gnu-pop3d[12790]: Socket closed
Jan  3 08:19:21 ns gnu-pop3d[12791]: User eleve cmd USER status = 3 exit_flag = 0
Jan  3 08:19:21 ns gnu-pop3d[12791]: Socket closed
Jan  3 08:19:21 ns gnu-pop3d[12792]: User proxy cmd USER status = 3 exit_flag = 0

7) main.conf
Unten die Einstellungen von Postfix inkl. der noch auskommentierten Werte.

8) Fragen

a) Erste blöde Frage: Wie kann ich überhaupt sicher feststellen, ob / daß mein Postfix wirklich fremden Spam aussendet? Ich hab daran zwar keine Zweifel, sehe aber nirgens eine Protokoll-Datei oder so etwas. Meine Suche danach hat auch nichts ergeben.

Und woher der kommt Spam, welche Mailbox ist Absender?

b) Sind die Einträge in mailq der "Beweis" für spamming durch Dritte?

c) Könnte das installierte PHP das "Einfallstor" sein?

d) Es sind keine trusted SMTP Clients gesetzt. Würde es etwas bringen, dort als mynetworks = meine IP einzutragen?

e) Ausgangs-Traffic
Ich bin derzeit bei einem Provider, der die Nutzung seines SMTP-Servers verlangt und meinen nicht zuläßt (AON Austria Telekom). Ich unterstelle mal, daß meine Emails überhaupt keinen Ausgangs-Traffic in meinem Postfix erzeugen, wenn ich über einen anderen SMTP-Server sende. Richtig?

f) Wiederholter Download der selben Emails
Ich greife mit Outlook Express auf meinen Mail-Server zu. Es kommt häufig vor, daß einzelne Emails mehrfach runtergeladen werden, manchmal auch solche, die ein paar Tage alt sind. Woran könnte das liegen?

Ich bitte herzlichst um Tips und Links, die mir weiterhelfen können. Mit dem Thema habe ich schon ein paar Tage verbracht, bin aber nicht weitergekommen. Ich würde die Vorgänge gern verstehen, auch weil bald weitere Server aufgestellt werden müssen.

Vielen Dank im voraus

Hier die main.cf:

Code:
#soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
mail_owner = postfix

myhostname = mail.MeineDomaine.com
mydomain = MeineDomaine.com
myorigin = MeineDomaine.com

#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost

#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#	mail.$mydomain, www.$mydomain, ftp.$mydomain

#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host

unknown_local_recipient_reject_code = 550

#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
#relay_domains = $mydestination

#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]

#relay_recipient_maps = hash:/etc/postfix/relay_recipients

#in_flow_delay = 1s
#alias_maps = dbm:/etc/aliases
#alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases
#alias_database = dbm:/etc/aliases
#alias_database = dbm:/etc/mail/aliases
#alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
#recipient_delimiter = +

#home_mailbox = Mailbox
#home_mailbox = Maildir/

#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail

#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"

#mailbox_transport = lmtp:unix:/file/name
#mailbox_transport = cyrus

#fallback_transport = lmtp:unix:/file/name
#fallback_transport = cyrus
#fallback_transport =

#luser_relay = $user@other.host
#luser_relay = $local@other.host
#luser_relay = admin+$local
#header_checks = regexp:/etc/postfix/header_checks
#fast_flush_domains = $relay_domains
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
#local_destination_concurrency_limit = 2
#default_destination_concurrency_limit = 20

debug_peer_level = 2
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain

debugger_command =
	 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
	 xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
setgid_group = maildrop
html_directory = /usr/share/doc/packages/postfix/html
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/packages/postfix/samples
readme_directory = /usr/share/doc/packages/postfix/README_FILES
inet_protocols = all
biff = no
mail_spool_directory = /var/mail
canonical_maps = hash:/etc/postfix/canonical
#virtual_alias_maps = hash:/etc/postfix/virtual
#virtual_alias_domains = hash:/etc/postfix/virtual
relocated_maps = hash:/etc/postfix/relocated
transport_maps = hash:/etc/postfix/transport
sender_canonical_maps = hash:/etc/postfix/sender_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
myhostname = MeineDomaine.com
program_directory = /usr/lib/postfix
inet_interfaces = $myhostname, localhost
masquerade_domains = 
#mydestination = hash:/etc/postfix/destination
#mydestination = $myhostname, localhost.$mydomain, $myorigin
mydestination = $myhostname, $mydomain, localhost.$mydomain, $myorigin, MeineDomaine.com, ..... und noch ein paar andere Domains auf diesem Server
defer_transports = 
mynetworks_style = class 
disable_dns_lookups = no
relayhost = 
mailbox_command = 
mailbox_transport = 
strict_8bitmime = no
disable_mime_output_conversion = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions = reject_unknown_client 
smtpd_helo_required = yes 
smtpd_helo_restrictions = 
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtp_sasl_auth_enable = no 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_use_tls = yes
smtp_use_tls = yes 
smtp_sasl_security_options = noanonymous
alias_maps = hash:/etc/aliases
mailbox_size_limit = 0
message_size_limit = 10240000
#virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
#virtual_mailbox_base = /var/spool/mail
#virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
#virtual_minimum_uid = 100
#virtual_uid_maps = static:5000
#virtual_gid_maps = static:5000
virtual_maps = hash:/etc/postfix/virtual_maps
virtual_alias_maps = hash:/etc/postfix/virtual_maps
virtual_alias_domains = hash:/etc/postfix/virtual_domains
 
Hallo,

5) Einträge in mail.warn
Im mail.warn stehen viele Einträge wie dieser:

Code:
Jan 14 01:12:36 ns postfix/trivial-rewrite[4802]: warning: do not list domain xyzMeineDomain.com in BOTH mydestination and virtual_alias_domains

Meine Recherchen nach der Ursache waren bisher nicht erfolgreich.

Ähm...
Es steht doch genau da, was ihn stört:
"do not list domain xyzMeineDomain.com in BOTH mydestination and virtual_alias_domains"

7) main.conf

Gott im Himmel. Was verpfuschteres und unübersichtlicheres habe ich bisher ehrlich gesagt noch nicht gesehen. Die kann man locker auf 1/3 zusammenstreichen.

Könnte das installierte PHP das "Einfallstor" sein?

Ist immer ein ganz heißer Kandidat für derartige Probleme.

f) Wiederholter Download der selben Emails
Ich greife mit Outlook Express auf meinen Mail-Server zu. Es kommt häufig vor, daß einzelne Emails mehrfach runtergeladen werden, manchmal auch solche, die ein paar Tage alt sind. Woran könnte das liegen?

I.d.R. ist das eine Einstellungssache auf Seite des Clients.

Auch wenn du das vermutlich nicht hören willst:
Zieh die Geschichte auf einen Managed-Server oder ein entsprechendes Hosting-Paket um.
Schont mittel- bis langfristig deine Nerven und deinen Geldbeutel.


LG
 
Kannst du mal bitte die Ausgabe von
Code:
postconf
hier posten, das dürfte ein bischen übersichtlicher sein, finde ich zumindest.

Wenn du wirklich kein open-relay hast, und deine smtp-authorisation funktioniert, wenn dem wirklich so ist, dann liegt es sehr nahe, dass die Mails entweder über ein fehlerhaftes PHP/Perl oder sonstwasscript verschickt werden, oder dass dir jemand Software auf den Server geschoben hat die das macht.
 
Auch wenn du das vermutlich nicht hören willst:
Zieh die Geschichte auf einen Managed-Server oder ein entsprechendes Hosting-Paket um.
Schont mittel- bis langfristig deine Nerven und deinen Geldbeutel.
Unter "normalen Umständen würde ich zustimmen, es gibt aber gravierende Gründe, das nicht zu tun. Das hängt mit den Leistungen meiner in Kürze fertigen Produkte zusammen.

Leider kann ich mir wirkliche Experten im Moment nicht leisten und es war immer gut, wenn "der Chef" wenigstens ein wenig Ahnung hat, von dem was in seinem Laden passiert. Siehe meine Windows Server Erfahrung. Das war ein wirklicher Experte, der aber schlampig gearbeitet hat.

postconf kommt gleich...
 
Hier das Ergebnis von postconf

Code:
alias_maps = hash:/etc/aliases
biff = no
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports = 
disable_dns_lookups = no
disable_mime_output_conversion = no
html_directory = /usr/share/doc/packages/postfix/html
inet_interfaces = $myhostname, localhost
inet_protocols = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command = 
mailbox_size_limit = 0
mailbox_transport = 
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains = 
masquerade_exceptions = root
message_size_limit = 10240000
mydestination = $myhostname, $mydomain, localhost.$mydomain, $myorigin, MeineDomain.com, ...und noch ein paar andere Domains auf diesem Sever
mydomain = MeineDomain.com
myhostname = MeineDomain.com
mynetworks_style = class
myorigin = MeineDomain.com
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost = 
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = no
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtpd_client_restrictions = reject_unknown_client
smtpd_helo_required = yes
smtpd_helo_restrictions = 
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_use_tls = yes
strict_8bitmime = no
strict_rfc821_envelopes = no
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_domains = hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual_maps
 
Folgendes ist mir aufgefallen:

Hier das Ergebnis von postconf

Code:
mynetworks_style = class
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination

Mit dieser Einstellung erlaubt dein Postfix jedem anderen Rechner, der bei deinem Provider steht, Mails einzuliefern, die für andere Rechner bestimmt sind.

Daher würde ich mynetworks_style auf host setzen. Oder gleich durch mynetworks ersetzen. Details zu den beiden Einstellungen siehe http://www.postfix.org/postconf.5.html#mynetworks
 
@Jens
Ganz herzlichen Danke, das mache ich gleich.

Ich habe zwischenzeitlich auf dem Rechner noch etwas aufgeräumt. Da waren mehrere Verzeichnisse mit openweb Code, allerdings aus der Zeit der Erstinstallation. Die habe ich mal prophylaktisch entfernt bzw. umbenannt.

Ansonsten suche ich weiter nach möglichen untergeschobenen Skripten.
 
Ich persönlich würde dir den Tip geben ein geeignetes Howto durchzugehen, und den Postfix nochmal neu zu konfigurieren, also die main.cf neu zu schreiben. Denn es sind schon ein paar Sachen drin, die nicht so ganz stimmen: Angefangen bei der mynetwork-Diriktive wie schon mein Vorredner geschrieben hat, bis hin zu den smtp-restrictions usw.

Zu deinem Spamproblem:
Du solltest dich darum kümmern, woher der Spam kommt. Schau dir genau die Abuse von hetzner an. Vielleicht war dort ja eine Mail die angeblich von deinem Server verschickt wurde dabei. Wenn ja, dann würde ich mir von dieser Mail mal den Header ansehen. Das bring einen manchmal schon weiter.

Danach solltest du mal deine Apache-Logs durchgehen, ob hier etwas auffälliges zu finden ist. Ausserdem kann das mail.log interessant sein. Hier müsstest du sehen, wer von wo nach wo Mails verschickt. Auch die Datei messages musst du dir ansehen, um herauszufinden welche Aktivitäten es auf deinem System gibt. Nach was du genau zu suchen hast ist schwehr zu sagen, da man ja nicht weiß woher es kommt.
Der einfachste Ansatz dürfe das mail.log sein und ein Header einer Spammail.

Ansonsten würde ich dir dringend raten, dir professionelle Hilfe zu suchen, da es ziemlich schnell ziemlich teuer werden kann und auch im Rechtsstreit enden kann, wenn dein Server Spam verschickt.

Gruß Mordor
 
@Mordor
Erst mal herzlichen Dank für die Tips. Ich gehe das durch.

Schau dir genau die Abuse von hetzner an. Vielleicht war dort ja eine Mail die angeblich von deinem Server verschickt wurde dabei. Wenn ja, dann würde ich mir von dieser Mail mal den Header ansehen. Das bring einen manchmal schon weiter.
Danke, das habe ich noch mal genau getan. Im Mail Kopf steht user id = 500 drin. Das ist lt. passwd der user spamfilter. Hier der Eintrag:

Code:
spamfilter:x:500:500::/home/spamfilter:/bin/false

Wie kann spamfilter als Absender benutzt werden? Und dann noch von außen? Das ist mir ein Rätsel.

da es ziemlich schnell ziemlich teuer werden kann und auch im Rechtsstreit enden kann, wenn dein Server Spam verschickt.
Danke für den Tip, aber ich bin schon seit vielen Jahren nicht mehr in D. ansässig, auch nicht mit der Firma, nachdem mir diverse Behörden und auch ein Gericht (Prozeß gegen Großkonzern) klargemacht haben, daß innovative Unternehmer in D. absolut unerwünscht sind.

Außerdem hat kein anderes Land ein so perveres Abmahn-Unwesen, mit dem sich Anwälte sinn- und grundlos auf Kosten anderer bereichern dürfen. Einfach nur pervers. Und die absurden Steuern hab ich noch gar nicht erwänt.

Eine Politik zur Vernichtung des Mittelstands!
 
Back
Top