# Postfix, reverse DNS, reject\_unknown\_client

**URL:** <https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013>\
**Category:** Support Debian\
**Created:** [Février 21, 2016, 4:11 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013 "2016-02-21T04:11:43Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 4:11 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/1 "2016-02-21T04:11:43Z")

</div>

Salut,

J’ai activé dans Postfix l’option smtpd\_client\_restrictions = reject\_unknown\_client. Le but est de refuser les mails provenant d’adresses IP qui n’ont pas de reverse DNS afin d’éliminer une partie du spam.

Y’a un truc que j’ai dû faire de travers, car…

```auto

```

Or bien entendu, aucun problème du côté de la résolution inverse…

[code]# dig -x 209.85.214.49

; \<\<\>\> DiG 9.7.3 \<\<\>\> -x 209.85.214.49  
;; global options: +cmd  
;; Got answer:  
;; -\>\>HEADER\<\<- opcode: QUERY, status: NOERROR, id: 3134  
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:  
;49.214.85.209.in-addr.arpa. IN PTR

;; ANSWER SECTION:  
49.214.85.209.in-addr.arpa. 33485 IN PTR [mail-bk0-f49.google.com](http://mail-bk0-f49.google.com).

;; Query time: 0 msec  
;; SERVER: 127.0.0.1#53(127.0.0.1)  
;; WHEN: Thu Feb 16 13:04:35 2012  
;; MSG SIZE rcvd: 81[/code]  
NB: ça me fait ça avec n’importe quel émetteur.

Dès que je désactive l’option reject\_unknown\_client y’a plus aucun souci.  
Mon serveur DNS local est dnsmasq (le domaine lui-même est “hébergé” sur les DNS du registrar), mais je ne pense pas que ça joue (le dig -x prouve que ça fonctionne).

Une piste ? Je sèche…

Edit : Rien de bien extraordinaire mais voici tout de même mon /etc/postfix/main.cf

[code]# 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 = 1h

readme\_directory = no

# TLS parameters

smtpd\_tls\_cert\_file=/etc/ssl/certs/ssl-cert-snakeoil.pem  
smtpd\_tls\_key\_file=/etc/ssl/private/ssl-cert-snakeoil.key  
smtpd\_use\_tls=yes  
smtpd\_tls\_session\_cache\_database = btree:${data\_directory}/smtpd\_scache  
smtp\_tls\_session\_cache\_database = btree:${data\_directory}/smtp\_scache

# See /usr/share/doc/postfix/TLS\_README.gz in the postfix-doc package for

# information on enabling SSL in the smtp client.

myhostname = [XXX.XXX.com](http://XXX.XXX.com)  
alias\_maps = hash:/etc/aliases  
alias\_database = hash:/etc/aliases  
myorigin = /etc/mailname  
mydestination = [XXX.XXX.com](http://XXX.XXX.com), [localhost.XXX.com](http://localhost.XXX.com), , localhost  
relayhost =  
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128  
mailbox\_size\_limit = 0  
recipient\_delimiter = +  
inet\_interfaces = all  
inet\_protocols = ipv4

virtual\_uid\_maps = static:3000  
virtual\_gid\_maps = static:3000  
virtual\_mailbox\_base = /home/mail-delivery

virtual\_transport = dovecot

virtual\_mailbox\_domains = mysql:/etc/postfix/mysql\_virtual\_mailbox\_domains.cf  
virtual\_mailbox\_maps = mysql:/etc/postfix/mysql\_virtual\_mailbox\_maps.cf  
virtual\_alias\_maps = mysql:/etc/postfix/mysql\_virtual\_alias\_maps.cf  
relay\_domains = mysql:/etc/postfix/mysql\_relay\_domains.cf

smtpd\_recipient\_restrictions =  
permit\_mynetworks,  
permit\_sasl\_authenticated,  
reject\_non\_fqdn\_hostname,  
reject\_non\_fqdn\_sender,  
reject\_non\_fqdn\_recipient,  
reject\_unauth\_destination,  
reject\_unauth\_pipelining,  
check\_policy\_service inet:127.0.0.1:10023,  
reject\_invalid\_hostname

# 

# Le coupable est ici…

# 

#smtpd\_client\_restrictions = reject\_unknown\_client

smtpd\_sasl\_auth\_enable = yes  
smtpd\_sasl\_security\_options = noanonymous

dovecot\_destination\_recipient\_limit = 1[/code]

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Février 21, 2016, 4:11 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/2 "2016-02-21T04:11:44Z")

</div>

D’après la doc, reject\_unknown\_client est pour les versions de postfix \< 0.23. Pour les versions suivantes c’est reject\_unknown\_client\_hostname. A vérifier.  
Note que pour juste vérifier l’existence du reverse DNS, reject\_unknown\_reverse\_client\_hostname serait plus approprié.

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 4:11 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/3 "2016-02-21T04:11:44Z")

</div>

> [@PascalHambourg](#):
>
> D’après la doc, reject\_unknown\_client est pour les versions de postfix \< 0.23. Pour les versions suivantes c’est reject\_unknown\_client\_hostname. A vérifier.

Tu as raison, bien qu’il semble toujours accepter l’ancien nom. (Postfix 2.7.1, j’avais bien vu cette info mais je m’étais embrouillé les pédales, je me croyais en 1.2 – la version de dovecot 😊)  
En tous cas ça ne change rien (NB: je suis passé en warn\_if\_reject entre temps histoire d’être moins méchant avec les serveurs que j’utilise pour tester) :

```auto
postfix/smtpd[3260]: NOQUEUE: reject_warning: RCPT from unknown[209.85.215.49]: 450 4.7.1 Client host rejected: cannot find your hostname, [209.85.215.49]; from=<XXX@gmail.com> to=<XXX@XXX.com> proto=ESMTP helo=<mail-lpp01m010-f49.google.com>
```

> [@PascalHambourg](#):
>
> Note que pour juste vérifier l’existence du reverse DNS, reject\_unknown\_reverse\_client\_hostname serait plus approprié.

Même résultat :

```auto
postfix/smtpd[3385]: NOQUEUE: reject_warning: RCPT from unknown[209.85.215.49]: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [209.85.215.49]; from=<XXX@gmail.com> to=<XXX@XXX.com> proto=ESMTP helo=<mail-lpp01m010-f49.google.com>
```

Pourtant en l’occurrence même reject\_unknown\_client\_hostname (le plus strict des deux) devrait passer sans souci, ça boucle bien :

[code]# host 209.85.215.49  
49.215.85.209.in-addr.arpa domain name pointer [mail-lpp01m010-f49.google.com](http://mail-lpp01m010-f49.google.com).

# host [mail-lpp01m010-f49.google.com](http://mail-lpp01m010-f49.google.com)

[mail-lpp01m010-f49.google.com](http://mail-lpp01m010-f49.google.com) has address 209.85.215.49[/code]  
On dirait que Postfix n’arrive pas du tout à faire de requêtes DNS… ![:017](https://www.debian-fr.org/uploads/default/original/1X/7bbea83f89515ab7c7a738dddb86c4d4f140bd13.gif "reflechit")

Edit : en fait Postfix arrive très bien à faire des requêtes DNS, je viens de mettre en place le [DNSBL de spamhaus.org](http://www.spamhaus.org/zen/), [je l’ai testé](http://www.crynwr.com/spam/), tout fonctionne correctement.  
Le mystère reste entier.

---

<div class="post-metadata">

**Author:** ![loreleil](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/l/77aa72/32.png) [@loreleil](https://www.debian-fr.org/u/loreleil)\
**Post date:** [Février 21, 2016, 11:07 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/4 "2016-02-21T11:07:54Z")

</div>

Salut,

je ne sais si tu connais cette doc … [Format du fichier main.cf de Postfix](http://postfix.traduc.org/index.php/postconf.5.html) je présume que, certainement … ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel") mais …

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 11:07 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/5 "2016-02-21T11:07:54Z")

</div>

Oui. Enfin, [celle en anglais](http://www.postfix.org/postconf.5.html) (qui est équivalente, sans les éventuelles erreurs de traduction de la version française ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")).  
Malheureusement ça n’aide pas, y’a un truc qui coince quelque part.

---

<div class="post-metadata">

**Author:** ![syam](https://www.debian-fr.org/user_avatar/www.debian-fr.org/syam/32/2951_2.png) [@syam](https://www.debian-fr.org/u/syam)\
**Post date:** [Février 21, 2016, 11:08 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/6 "2016-02-21T11:08:25Z")

</div>

Je remonte ce fil une dernière fois avant de le laisser sombrer dans l’oubli. ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")

---

<div class="post-metadata">

**Author:** ![dgeo](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/d/b2d939/32.png) [@dgeo](https://www.debian-fr.org/u/dgeo)\
**Post date:** [Novembre 25, 2016, 12:01 UTC](https://www.debian-fr.org/t/postfix-reverse-dns-reject-unknown-client/36013/7 "2016-11-25T12:01:05Z")

</div>

Déterrage 🙂  
Comme indiqué dans la doc que tu cites, reject\_unknown\_client pour les vieilles versions, alias reject\_unknown\_client\_hostname fait plus d’une requete DNS: il vérifie IP -\> nom, puis if vérifie que le nom renvoie bien vers l’IP originale…

comme l’indiquait PascalHambourg, tu devrais utiliser reject\_unknown\_reverse\_client\_hostname dans ce cas

Et j’ajoute que la réponse figure donc dans ce thread depuis le jour ou tu l’as posté, faut lire les réponses…
