Andreas Schott wrote:
Hallo zusammen
Ich habe hier zu reinen Übungszwecken einen Webserver (SuSE 9.3 + XAMPP 1.53a) stehen, der per DynDNS am Internet in einer DMZ des Routers hängt. Darauf liegen einige Internetseiten. Nun habe ich eine Kontaktseite erstellt, die per PHP eine Mail an meine web.de Adresse versendet. Das PHP-Script funktioniert auch perfekt.
Unter "perfekt funktionieren" verstehe ich, dass das Script nicht nur seinen eigentlichen Zweck erfüllt, sondern auch gegen Mißbrauch abgesichert ist. Hast du das Script auch darauf hin abgeklopft? Die Wahrscheinlichkeit, dass Postfix ausgenutzt wird als Relay, ist bei normaler Konfiguration fast Null. Die Wahrscheinlichkeit, dass ein Webserver mit dynamischen Seiten, CMS auf PHP-Basis und Mail-Formular ausgenutzt wird, liegt um viele Potenzen höher. (^-^) Wenn dein Mailscript die Empfängeradresse vom Benutzer entgegennimmt, dann gehe ich davon aus, dass der Inhalt der Mail von dir festgelegt wird, und auch keine Möglichkeit der Injektion von Scripten oder Headerzeilen möglich ist?
Nun möchte ich natürlich kein offens Relay haben bzw. soll definitiv nur von diesem Rechner Mails weiterverschickt werden (uns auch nur per PHP). Kann da mal jemand bitte nachsehen, ob die Postfixconfig soweit in Ordnung ist?
Wenn von diesem Rechner nur Mails verschickt werden sollen, dann sieh dir die Postfix-Seite mit der Konfiguration als sogenannter "Null-Client" an. http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client
Andy
webserver:/etc/postfix # postconf -n alias_maps = hash:/etc/aliases biff = no canonical_maps = hash:/etc/postfix/canonical command_directory = /usr/sbin config_directory = /etc/postfix content_filter = daemon_directory = /usr/lib/postfix debug_peer_level = 2 defer_transports = disable_dns_lookups = yes html_directory = /usr/share/doc/packages/postfix/html inet_interfaces = 127.0.0.1 192.168.2.222
Postfix muss nicht auf dem externen Netzwerk lauschen, localhost reicht.
inet_protocols = all mail_owner = postfix mail_spool_directory = /var/mail mailbox_command = mailbox_size_limit = 0
Unnötig, es sollte keine lokale Mailbox geben.
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, localhost.$mydomain
mydestination kann ruhig leer sein: mydestination = local_transport = error:local delivery is disabled
myhostname = webserver.familieschott.prv mynetworks = 127.0.0.0/8
OK.
newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/packages/postfix/README_FILES relayhost = smtp.web.de
# in Klammern zur Unterdrückung des mx lookups. relayhost = [smtp.web.de]
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 = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_use_tls = no smtpd_client_restrictions = smtpd_helo_required = no smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = no smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_use_tls = no strict_rfc821_envelopes = no transport_maps = hash:/etc/postfix/transport unknown_local_recipient_reject_code = 550
Ansonsten ist die Konfiguration in Ordnung. Ich würde aber auf jeden Fall eine Funktion scripten, welche das Log überprüft und Alarm schlägt, wenn plötzlich auffällig viele Mails verschickt werden. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com