# Habe einen Fehler in meiner main.cf von Postfix und brauch mal Hilfe



## M. Zink (8. Aug. 2009)

Hallo,

ich habe nach einigem Lesen und hin und her jetzt meine main.cf von Postfix mal angepasst damit Spam so gut wie möglich vom Server fern gehalten wird. Nur leider habe ich da wohl irgendwas falsch verstanden oder zusammen gesetzt jedenfalls wenn ich die veränderte main.cf einsetze bekomme ich nur noch folgende Meldung im mail.log und niemand kann mehr Mails versenden.


> Aug 8 09:40:42 server1 postfix/smtpd[14752]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
> Aug  8 09:40:43 server1 postfix/master[14714]: warning: process /usr/lib/postfix/smtpd pid 14752 exit status 1
> Aug  8 09:40:43 server1 postfix/master[14714]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling


Die main.cf von mir sieht folgendermaßen aus.


> # See /usr/share/postfix/main.cf.dist for a commented, more complete version
> 
> 
> # Debian specific:  Specifying a file name will cause the first
> ...


Und daraufhin bekomme ich wie oben geschrieben den Fehler.

Ich hab jetzt noch nicht weiter getestet ob ich ansonsten noch Fehler habe alleine das ich keine Mail versenden kann und genau in dem Moment wo ich senden möchte die Fehlermeldung kommt sagt mir schon das da was nicht stimmt.

Kann mir da einer helfen und sagen was die Fehlermeldung überhaupt bedeuten soll?


----------



## Till (8. Aug. 2009)

Du hast ein Leerzeichen in reject  _unauth_destination, es muss lauten: reject_unauth_destination


----------



## M. Zink (8. Aug. 2009)

Mist das Leerzeichen muss irgendwie beim Kopieren entstanden sein. Hätte mich auch gewundert da dieser Teil schon vor meinem Eingriff vorhanden war. Ich glaub ich nehm mal ne original main.cf von Postfix und pack da Zeile für Zeile wieder rein bis der Fehler kommt. Vielleicht finde ich ja wenigstens die genaue Stelle die das verursacht dann hab ich was um in Google zu suchen


----------



## M. Zink (10. Aug. 2009)

Nach ewigem Lesen und Testen bin ich jetzt soweit, dass mein Postfix läuft und auch einiges blockt. Die Frage ist nun jedoch wie man den Spamfluß noch weiter einengt ohne ggf. dann wichtige Mails zu verlieren. Laut Auswertung werden 94% aller Mails ausgefiltert. Aber von 20 Mails die ich heute Morgen im Postkasten hatte waren 14 immer noch Spam. Macht es sinn noch mehr Blacklists aufzunehmen um noch mehr zu filtern oder ist dann irgendwann der Punkt erreicht wo auch richtige Mails gefiltert werden?

Welche Blacklists sollte man wirklich verwenden? In dem HowTo zu Spam und Postfix sind Blacklists die es scheinbar nicht mehr gibt. Und die Liste die ich gefunden hab scheint zwar wahnsinnig viele zu enthalten aber 98% dieser sind auch "Eintagsfliegen" die paar Wochen funktionieren und dann weg sind oder die erst gar nichts taugen.

Welche verwenden denn andere und haben Erfolge damit?

Ach ja, was besagen folgende Meldungen im Mail Log?


> Aug 10 00:02:30 server1 postfix/smtpd[4997]: warning: support for restriction "check_relay_domains" will be removed from Postfix; use "reject_unauth_destination" instead


und


> Aug 10 00:39:02 server1 postfix/smtpd[7911]: warning: support for restriction "reject_maps_rbl" will be removed from Postfix; use "reject_rbl_client domain-name" instead


Die Stellen in der main.cf von PF sieht folgendermaßen aus.


> smtpd_recipient_restrictions =
> permit_sasl_authenticated,
> permit_mynetworks,
> reject_invalid_hostname,
> ...


Heißt das diese Stellen sollte ich umändern wie in der Meldung beschrieben und in dieser Form wie jetzt wirken sie gar nicht mehr?


----------



## dexcom (10. Aug. 2009)

Hallo M.Zink,

Versuch mal Deine main.cf wie unten anzupassen. (Anti-Spam Sektion) Mit der bin ich mehr als zufrieden... Vielleicht sind dann auch Deine Fehler weg. Auf meinem  Server kommen in der Woche grad mal 5 Spam-Mails durch. Kommt natürlich auch darauf an wie bekannt Deine E-Mail Adressen bei den Spammern sind 


```
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = mail.domain.de
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
#mydestination = server1.domain.de, localhost.domain.de, , localhost
relayhost = 
mynetworks = 127.0.0.0/8
mailbox_command = 
mailbox_size_limit = 0
message_size_limit = 30720000
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
#####--- In Anti-Spam enthalten. Kann nach entfernen der ---#####
#####--- Anti-Spam Sektion wieder aktiviert werden...... ---#####
#smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
#####-------------------------------------------------------#####
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
home_mailbox = Maildir/

#####--- Anti-Spam start ---#####
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554

smtpd_sender_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    permit 

smtpd_recipient_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_invalid_hostname,
    reject_non_fqdn_hostname,
    reject_non_fqdn_sender,
    reject_non_fqdn_recipient,
    reject_unknown_sender_domain,
    reject_unknown_recipient_domain,
    reject_unauth_pipelining,
    reject_unauth_destination,
    reject_unlisted_recipient,
      reject_rbl_client ix.dnsbl.manitu.net,
      reject_rbl_client dnsbl.sorbs.net,
      reject_rbl_client bl.spamcop.net,
      reject_rbl_client zen.spamhaus.org,
      reject_rbl_client cbl.abuseat.org,
   permit

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_sasl_authenticated,
    permit_mynetworks,
    reject_non_fqdn_hostname,
    reject_invalid_hostname,
    permit

#####--- Anti-Spam end ---#####


virtual_maps = hash:/etc/postfix/virtusertable

mydestination = /etc/postfix/local-host-names
```
Und entferne mal bitte folgende Anweisungen aus Deiner main.cf. Die haben bei mir auch mal Stress gemacht.


```
smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20
```
cu

dexcom


----------



## M. Zink (10. Aug. 2009)

Hab grade mal deine main.cf durch geschaut und mit meiner verglichen. Folgendes hat bei mir dazu geführt, dass ich keine einzige Mail versenden konnte.


> smtpd_sender_restrictions =
> permit_sasl_authenticated,
> permit_mynetworks,
> reject_non_fqdn_sender,
> ...


Warum weiß ich allerdings nicht. Jedenfalls hab ich danach in Outlook immer eine Fehlermeldung bekommen von wegen need fully qualified Domainname oder sowas. Deshalb hatte ich den Teil erst mal wieder raus genommen.

Was bewirkt denn das "permit" am Ende der Regel immer? Ist das wichtig?

Ich denke auf 5 Mails pro Woche werd ich nicht kommen. Meine Mailadresse ist bekannt ohne Ende da die Domain halt geschäftlich genutzt ist und das sieht man auch in dem Log. Alleine die Latte an Mails die an einen fiktiven alias gehen ist unglaublich. Pro Tag etwa 500 bis 800 stück.


----------



## dexcom (11. Aug. 2009)

Zitat von M. Zink:


> Was bewirkt denn das "permit" am Ende der Regel immer? Ist das wichtig?


Was das permit bewirkt hätte mich auch interessiert... Google konnte mir da auch nicht so richtig weiterhelfen 

Vielleicht weiss es ja jemand anderes.

Warum Outlook bei Dir einen Meckermeldung bringt kann ich Dir leider auch nicht sagen.

Ein "/etc/init.d/postfix restart" hast Du sicherlich gemacht oder? Danach ein "tail -f -n 100 /var/log/mail.log" um zu sehen was abgeht?

Ich habe meine main.cf nach dem Howto von Howtoforge und aus dem Hetzner Wiki angepasst. Danach habe ich noch andere RBL Listen genommen, die zum einen erreichbar sind und zum anderen eine große Wirkung zeigen.

Es macht übrigends nach meiner Erfahrung keinen Sinn eine unmenge an RBL Listen einzubauen. Lieber eine kleine feine Auswahl. Denn meistens stoppt schon die erste RBL Liste den Spam 

cu

dexcom


----------



## Till (11. Aug. 2009)

Outlook wird rummmeckern weil irgendwo im outlook setup eine nicht vollständige Domain steht. Outlook ist halt eher eine Intranet Software die mit exchange zusammen arbeitet und da werden öfters unvollständige Domains verwendet... Schau mal nach dass Du überall sog. FQDN, also Fully Qualified Domain Names drin stehen hast, sowas wie meinedomain.de und nicht nur meinedomain.


----------



## M. Zink (11. Aug. 2009)

Nun ja, das stimmt tatsächlich. Der verwendet als Domain den Name meines PC. Was soll der Schwachsinn denn? Der müsste doch als Absendedomäne die Domäne der Mailadresse verwenden oder sehe ich das falsch? Der Empfänger braucht doch nicht zu wissen wie mein PC heißt und ohne Server mit Domäne wird mein PC auch nie ne vollwertige Domäne haben.

Liegt das Problem denn rein an Outlook oder an meiner Rechnerkonfiguration?


----------



## Till (11. Aug. 2009)

Ich vermute, dass es an outlook liegt. Hast Du denn für das Senden die SMTP Authentifizierung eingeschaltet, dann sollte postfix das ignorieren.


----------



## M. Zink (11. Aug. 2009)

Jep die ist an. Ich werd heut Abend mal schauen wenn ich zuhause bin. Hier im Büro hab ich ja nen Exchange laufen und der macht absolut keine Zicken. Mal sehen was da los ist vielleicht find ich das Problem ja ganz in Ruhe.


----------



## Lonesome Walker (1. Sep. 2009)

Zitat von M. Zink:


> Was bewirkt denn das "permit" am Ende der Regel immer? Ist das wichtig?


Ich weiß, daß es eine alte Frage ist, aber für alle, die hier mal drüberstolpern:

JA, das is enorm wichtig, denn wenn man eine restriction macht, dann gewinnt immer die regel zuerst, die greift.
Wenn die Kette abgearbeitet ist, und kein permit (erlaubt) da steht, bedeutet das:

smtpd_sender_restrictions =
permit_sasl_authenticated -> wenn er sasl-authentifiziert ist, dann okay
permit_mynetworks -> wenn er aus dem mynetworks kommt, auch okay
reject_non_fqdn_sender -> wenn kein fqdn vorliegt, tschüss
reject_unknown_sender_domain -> wenn sender-domain unbekannt ist -> tschüss
permit -> ansonsten ausliefern


----------

