>Do zero width tests work?
what?
>How do you force a string to test a pcre from command line?
>(I'm forgetful and don't have my pdf man pages around)
just like for hash:
postmap -q "string" pcre:/path/to/file.regexp
man postmap
>I would think something like this might work.
>
>/(?!(smtp.*)|(biz))(?=<subscribers>)\.rr\.com/ 554 ACL
if mta_clients_susbscriber.regexp contains:
/(smtp.*|biz)\.rr.com/ DUNNO
then
# postmap -q "aljfafjljaljbiz.rr.com"
pcre:/etc/postfix/mta_clients_subscriber.regexp
DUNNO
# postmap -q "aljfalfdjsmtpaldfjaflk.rr.com"
pcre:/etc/postfix/mta_clients_subscriber.regexp
DUNNO
Then I made file of rr.com ptr hostnames:
egrep -i " connect from.*rr\.com" /var/log/maillog | awk '{print $8}' |
sort -f | uniq -i > /var/tmp/rrptr.txt
then I fed that file into postmap :
cat /var/tmp/rrptr.txt | postmap -q -
pcre:/etc/postfix/mta_clients_subscriber.regexp | egrep -i "dunno"
and got:
ms-smtp-01.rdc-kc.rr.com[24.94.166.115] DUNNO
ms-smtp-01.southeast.rr.com[24.93.67.82] DUNNO
ms-smtp-01.tampabay.rr.com[65.32.1.43] DUNNO
ms-smtp-02.nyroc.rr.com[24.92.226.49] DUNNO
ms-smtp-02.southeast.rr.com[24.93.67.83] DUNNO
ms-smtp-02.tampabay.rr.com[65.32.1.39] DUNNO
ms-smtp-02.texas.rr.com[24.93.36.230] DUNNO
ms-smtp-03.nyroc.rr.com[24.92.226.153] DUNNO
ms-smtp-03.rdc-kc.rr.com[24.94.166.129] DUNNO
ms-smtp-03.southeast.rr.com[24.93.67.84] DUNNO
ms-smtp-03.tampabay.rr.com[65.32.1.41] DUNNO
ms-smtp-03.texas.rr.com[24.93.36.231] DUNNO
ms-smtp-04.tampabay.rr.com[65.32.1.35] DUNNO
ohsmtp03.ogw.rr.com[65.24.7.38] DUNNO
rrcs-central-204-210-160-194.biz.rr.com[204.210.160.194] DUNNO
rrcs-central-24-123-236-152.biz.rr.com[24.123.236.152] DUNNO
rrcs-central-24-123-42-250.biz.rr.com[24.123.42.250] DUNNO
rrcs-central-24-92-135-229.biz.rr.com[24.92.135.229] DUNNO
rrcs-central-65-31-76-22.biz.rr.com[65.31.76.22] DUNNO
rrcs-midsouth-24-172-77-116.biz.rr.com[24.172.77.116] DUNNO
rrcs-nyc-24-105-131-167.biz.rr.com[24.105.131.167] DUNNO
rrcs-nyc-24-105-142-196.biz.rr.com[24.105.142.196] DUNNO
rrcs-nyc-24-136-108-70.biz.rr.com[24.136.108.70] DUNNO
rrcs-nyc-24-136-117-173.biz.rr.com[24.136.117.173] DUNNO
rrcs-nys-24-97-113-196.biz.rr.com[24.97.113.196] DUNNO
rrcs-nys-24-97-79-189.biz.rr.com[24.97.79.189] DUNNO
rrcs-nys-24-97-80-213.biz.rr.com[24.97.80.213] DUNNO
rrcs-se-24-129-153-67.biz.rr.com[24.129.153.67] DUNNO
rrcs-se-24-129-156-218.biz.rr.com[24.129.156.218] DUNNO
rrcs-se-24-129-165-211.biz.rr.com[24.129.165.211] DUNNO
rrcs-se-24-173-171-176.biz.rr.com[24.173.171.176] DUNNO
rrcs-se-24-73-123-195.biz.rr.com[24.73.123.195] DUNNO
rrcs-se-24-73-232-2.biz.rr.com[24.73.232.2] DUNNO
rrcs-se-24-73-87-97.biz.rr.com[24.73.87.97] DUNNO
rrcs-sw-24-153-172-206.biz.rr.com[24.153.172.206] DUNNO
rrcs-sw-24-153-209-67.biz.rr.com[24.153.209.67] DUNNO
rrcs-sw-24-153-211-175.biz.rr.com[24.153.211.175] DUNNO
rrcs-sw-24-173-41-200.biz.rr.com[24.173.41.200] DUNNO
rrcs-sw-24-173-75-5.biz.rr.com[24.173.75.5] DUNNO
rrcs-sw-24-242-131-90.biz.rr.com[24.242.131.90] DUNNO
rrcs-sw-24-242-137-27.biz.rr.com[24.242.137.27] DUNNO
rrcs-sw-24-73-253-186.biz.rr.com[24.73.253.186] DUNNO
rrcs-west-24-106-61-82.biz.rr.com[24.106.61.82] DUNNO
rrcs-west-65-29-239-16.biz.rr.com[65.29.239.16] DUNNO
rrcs-west-66-27-51-226.biz.rr.com[66.27.51.226] DUNNO
rrcs-west-66-91-130-18.biz.rr.com[66.91.130.18] DUNNO
:))
so the regex works, but what how really does smptd restrictions act when it
sees DUNNO as action?
In the site I'm testing on, I had to move mta_clients_subscriber.regexp
before check_client_access temporarily in order to get DUNNO match in a
reasonable time, and the DUNNO works!!
Sep 13 19:12:47 mx3 postfix/smtpd[1668]: connect from
ms-smtp-02.nyroc.rr.com[24.92.226.49]
Sep 13 19:12:47 mx3 postfix/smtpd[1668]: B538E5F10A:
client=ms-smtp-02.nyroc.rr.com[24.92.226.49]
... mta_clients_subscriber.regexp will have matched the preceding lines and
returned DUNNO to smtpd_client_restricions. It does, because smtpd
restrictions carry on to the next restriction which is check_recipient_maps:
Sep 13 19:12:47 mx3 postfix/smtpd[1668]: B538E5F10A: reject: RCPT from
ms-smtp-02.nyroc.rr.com[24.92.226.49]: 550 <[EMAIL PROTECTED]>: User unknown in
relay recipient table; from=<[EMAIL PROTECTED]> to=<[EMAIL PROTECTED]>
proto=ESMTP helo=<ms-smtp-02.nyroc.rr.com>
Sep 13 19:12:50 mx3 postfix/smtpd[1668]: too many errors after DATA from
ms-smtp-02.nyroc.rr.com[24.92.226.49]
Sep 13 19:12:50 mx3 postfix/smtpd[1668]: disconnect from
ms-smtp-02.nyroc.rr.com[24.92.226.49]
bingo! .regexp sees ms-smtp-02.nyroc.rr.com, returns DUNNO, and the
ensuing check_recipient_maps catches it as "unknown user"
:)) I think
Len