Dislikes Dislikes:  0
Ergebnis 1 bis 4 von 4

Thema: Postfix, SMTP und 'ne Menge Spam

  1. #1
    Avatar von Hackse
    Registriert seit
    31.07.06
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    40

    Standard Postfix, SMTP und 'ne Menge Spam

    Anzeige
    Hallo zusammen,

    ich stellte kürzlich fest, dass über meine Domain vermutlich Spam versendet wird. Es gibt viele unbekannte User, die meine Domain und deren (fremden) Namen als Absender haben.

    Hier ein Beispiel:
    Code:
    Dec 16 11:49:54 meine_domain postfix/submission/pickup[7380]: 31381B80684: uid=33 from=<christian_acevedo@meine_domain.com>
    Dec 16 11:49:54 meine_domain postfix/submission/cleanup[7397]: 31381B80684: message-id=<17be82cdc58be67cf12f0b884f08123e@meine_domain.com>
    Dec 16 11:49:54 meine_domain opendkim[3066]: 31381B80684: no signing table match for 'christian_acevedo@meine_domain.com'
    Dec 16 11:49:54 meine_domain postfix/submission/smtp[7361]: 4B65BB8056E: to=<hbrown01@charter.net>, relay=mx1.charter.net[68.114.188.69]:25, delay=0.95, delays=0.13/0/0.45/0.37, dsn=2.0.0, status=sent (250 2.0.0 Lapt1u01u30MVas01apt2z mail accepted for delivery E0000)
    Ich verstehe meine Konfiguration eigentlich so, dass ausschließlich authentifizierte User Mails senden können, daher bin ich zugegeben etwas irritiert.

    master.cf
    Code:
    smtp      inet  n       -       -       -       -       smtpd -o smtp_bind_address=188.138.82.139
    submission inet n       -       -       -       -       smtpd
      -o syslog_name=postfix/submission
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o milter_macro_daemon_name=ORIGINATING
    pickup    fifo  n       -       -       60      1       pickup
    cleanup   unix  n       -       -       -       0       cleanup
    qmgr      fifo  n       -       n       300     1       qmgr
    tlsmgr    unix  -       -       -       1000?   1       tlsmgr
    rewrite   unix  -       -       -       -       -       trivial-rewrite
    bounce    unix  -       -       -       -       0       bounce
    defer     unix  -       -       -       -       0       bounce
    trace     unix  -       -       -       -       0       bounce
    verify    unix  -       -       -       -       1       verify
    flush     unix  n       -       -       1000?   0       flush
    proxymap  unix  -       -       n       -       -       proxymap
    proxywrite unix -       -       n       -       1       proxymap
    smtp      unix  -       -       -       -       -       smtp -o smtp_bind_address=188.138.82.139
    relay     unix  -       -       -       -       -       smtp -o smtp_bind_address=188.138.82.139
    showq     unix  n       -       -       -       -       showq
    error     unix  -       -       -       -       -       error
    retry     unix  -       -       -       -       -       error
    discard   unix  -       -       -       -       -       discard
    local     unix  -       n       n       -       -       local
    virtual   unix  -       n       n       -       -       virtual
    lmtp      unix  -       -       -       -       -       lmtp
    anvil     unix  -       -       -       -       1       anvil
    scache    unix  -       -       -       -       1       scache
    maildrop  unix  -       n       n       -       -       pipe
      flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
    uucp      unix  -       n       n       -       -       pipe
      flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
    ifmail    unix  -       n       n       -       -       pipe
      flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
    bsmtp     unix  -       n       n       -       -       pipe
      flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
    scalemail-backend unix	-	n	n	-	2	pipe
      flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
    mailman   unix  -       n       n       -       -       pipe
      flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
      ${nexthop} ${user}
    
    policy-spf unix - n n - - spawn
      user=nobody argv=/usr/sbin/postfix-policyd-spf-perl
    # Amavis
    smtp-amavis  unix    -    -    n    -    2    smtp
     -o smtp_data_done_timeout=1200
     -o smtp_send_xforward_command=yes
     -o disable_dns_lookups=yes
    
    # Second postfix instance
    127.0.0.1:10025 inet    n    -    n    -    -    smtpd
     -o content_filter=
     -o local_recipient_maps=
     -o relay_recipient_maps=
     -o smtpd_restriction_classes=
     -o smtpd_helo_restrictions=
     -o smtpd_sender_restrictions=
     -o smtpd_recipient_restrictions=permit_mynetworks,reject
     -o mynetworks=127.0.0.0/8
     -o strict_rfc821_envelopes=yes
     -o smtpd_error_sleep_time=0
     -o smtpd_soft_error_limit=1001
     -o smtpd_hard_error_limit=1000
     -o receive_override_options=no_header_body_checks

    main.cf
    Code:
    # Base config
    myhostname = mail.meine_domain
    myorigin = /etc/mailname
    mydestination = $myhostname, $mydomain, localhost, localhost.$mydomain
    relayhost =
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    relay_domains = $mydestination
    syslog_name=postfix/submission
    
    # Aliases / Recipients
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    local_recipient_maps = proxy:unix:passwd.byname $alias_maps
    
    # SSL/TLS
    smtpd_tls_cert_file=/etc/ssl/certs/meine_domain.pem
    smtpd_tls_key_file=/etc/ssl/private/meine_domain.key
    smtpd_use_tls=yes
    smtpd_tls_auth_only = yes
    smtpd_enforce_tls = yes
    smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
    smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
    smtpd_tls_security_level=may
    smtpd_tls_protocols = !SSLv2, !SSLv3
    smtpd_tls_wrappermode=no
    smtpd_sasl_type=dovecot
    smtpd_sasl_path=private/auth
    smtpd_sasl_auth_enable=yes
    milter_macro_daemon_name=ORIGINATING
    
    # Security and Anti-Spam cinfig
    policy-spf_time_limit = 3600s
    smtpd_helo_required = yes
    
    smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
    smtpd_sender_restrictions    = reject_unknown_sender_domain
    
    smtpd_helo_restrictions = reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname
    
    smtpd_client_restrictions = permit_sasl_authenticated, reject_unknown_client_hostname
    
    smtpd_data_restrictions =
     reject_unauth_pipelining
    
    # DKIM
    milter_default_action = accept
    milter_protocol = 6
    smtpd_milters = inet:localhost:8891
    non_smtpd_milters = inet:localhost:8891
    
    # Amanis Contentfilter 
    content_filter = smtp-amavis:[127.0.0.1]:10024
    receive_override_options = no_address_mappings
    Greetz
    Hackse

  2. #2
    Moderator Avatar von bitmuncher
    Registriert seit
    30.09.06
    Danke (erhalten)
    143
    Gefällt mir (erhalten)
    1637

    Standard

    Ich vermisse in deinen smtpd_client_restrictions ein reject_unauth_pipelining. Bei den smtpd_data_restrictions würde ich noch ein reject_multi_recipient_bounce einfügen.

    Ansonsten solltest du aber auch mal den Versand des Spams mit den SASL-Logins abgleichen. Evtl. wurde auch einfach ein Account gekapert und darüber werden Emails mit gefakten Absendern verschickt, damit etwaige Bounces nicht im Postfach des gekaperten Accounts landen und somit auffallen.

    Insgesamt reicht aber bei öffentlich erreichbaren Mailservern nur die Sicherung des Postfix selbst nicht aus. Installiere dir z.B. noch fail2ban um Bruteforces zu unterbinden: Postfix in Fail2Ban sinnvoll einbinden - Blog by Franz Kinader Oder packe dir OSSEC mit auf die Maschine, damit du mitbekommst, wenn von bestimmten IPs besonders viele Logins fehlschlagen. Die sollte man dann mittels iptables aussperren.

    Bitmuncher's TechBlog - My Homepage
    Denken ist manchmal so, als würde man wissen auskotzen.

    Neue Beiträge im Habo via Twitter - Das HaBo auf FB

  3. Danke Hackse thanked for this post
    Gefällt mir Hackse liked this post
  4. #3
    Avatar von Hackse
    Registriert seit
    31.07.06
    Danke (erhalten)
    0
    Gefällt mir (erhalten)
    40

    Standard

    Ich danke Dir, bitmuncher. Habe die Mailkonfiguration entsprechend Deinen Vorschlägen geändert und werde jetzt noch fail2ban einbinden.

    Habe mir auch die Zeit genommen um die Ursache zu erforschen und passiert ist folgendes:

    Es gab atypische Zugriffe in den Apache Logs. Es wurde in einer der Websites auf dem Server eingebrochen und eine Backdoor article.php hochgeladen, gut verschleiert und der Hauptinhalt base64 Codiert. Mein clamav hat nichts bemerkt. Über die o.g. Datei wurden via POST Spam-Mails verschickt und zwar massenhaft, d.h. ca. 24.000 Mails pro Tag. Scheinbar genügt es heutzutage nicht mehr Wordpress und dessen Plugins wöchentlich upzudaten. Habe das DocumentRoot nun rekursiv auf root:www-data mit 0x750 umgestellt. Selbst wenn Wordpress nun eine 0day aufweist, kann zumindest nichts mehr hochgeladen werden. Beim Update stelle ich die Rechte dann temporär um.

    Was ist mit dem Schadcode? Interessiert das jemanden und darf ich den hochladen oder ist das nicht gewünscht? Komme selbst erst am Sonntag dazu ihn zu analysieren.

  5. #4
    Moderator Avatar von bitmuncher
    Registriert seit
    30.09.06
    Danke (erhalten)
    143
    Gefällt mir (erhalten)
    1637

    Standard

    Anzeige
    Um solche Angriffe zukünftig zu verhindern solltest du ein HIDS wie OSSEC - Home — OSSEC - einsetzen und es so konfigurieren, dass es Änderungen an deinen htdocs-Verzeichnissen überwacht. Alternativ kann man auch das Dateisystem mit einer Konsistenzprüfung via AIDE - aide download | SourceForge.net - wenigstens ein Mal täglich überprüfen. ClamAV ist nicht geeignet um ein System vor solchen Angriffen zu schützen, da er nur reagiert, wenn eine Datei direkt mit ihm gescannt wird. Via Angriff auf eine Webapp eingeschleuste Dateien landen üblicherweise nicht beim ClamAV.

    Bei Wordpress sollte man dringend darauf achten welche Plugins man einsetzt und alle überflüssigen entfernen. Auch sollte man Updates sofort einspielen, wenn sie veröffentlicht werden. Gerade bei Wordpress reagieren Botnetze sehr schnell auf veröffentlichte Exploits.

    Bitmuncher's TechBlog - My Homepage
    Denken ist manchmal so, als würde man wissen auskotzen.

    Neue Beiträge im Habo via Twitter - Das HaBo auf FB

Ähnliche Themen

  1. Mandelbrot-Menge zeichnen Prog
    Von <b00n> im Forum Code Kitchen
    Antworten: 6
    Letzter Beitrag: 14.02.10, 10:27
  2. Mandelbrot-Menge
    Von <b00n> im Forum Code Kitchen
    Antworten: 0
    Letzter Beitrag: 07.02.10, 15:22
  3. Jede menge Classic Games
    Von dawad im Forum Games
    Antworten: 0
    Letzter Beitrag: 02.05.05, 00:41
  4. Antworten: 1
    Letzter Beitrag: 05.08.03, 19:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •