Table des matières

pyspfexport

Script python pour exporter les enregistrements SPF d'un ou plusieurs domaines.

L’intérêt est de pouvoir mettre a jour des “whitelist” pour des domaines connus…
La méthode est imparfaite mais c'est un bon point de départ avant d'installer PostScreen (peut être bientôt:stay tune!)

PS: Je suis un total débutant en python… donc le code n'est pas Pythonic ! :-)

~~READMORE~~

Dépendances

# aptitude install python-dnspython python-ipcalc

pyspfexport

Voici le script “pyspfexport” :

Tests

1 domaine…

$ pyspfexport gmail.com
# ---------------------
#      cidr            
# ---------------------
# --- gmail.com ---
216.239.32.0/19     permit     # TXT/gmail.com/_spf.google.com/_netblocks.google.com (ip4)
64.233.160.0/19     permit     # ...
66.249.80.0/20      permit     # ...
72.14.192.0/18      permit     # ...
209.85.128.0/17     permit     # ...
66.102.0.0/20       permit     # ...
74.125.0.0/16       permit     # ...
64.18.0.0/20        permit     # ...
207.126.144.0/20    permit     # ...
173.194.0.0/16      permit     # ...
# ---------------------
# EOF

Plusieurs domaines, dont l'export ira dans un fichier:

$ pyspfexport ovh.com hotmail.com microsoft.com > ma_white_list.cidr

A partir du fichier “whitelist_clients” de PostGrey .

$ pyspfexport a-file:/etc/postgrey/whitelist_clients > my_white_list.cidr
:!:a-file:” ⇒ charger le fichier retrouvant l'IP, et non pas les enregistrements SPF

Pour exporter les IPs “SPF”, utiliser “file:” ou “spf-file:

Quelques infos

Postfix et Postscreen

Aprés avoir créer ma liste:

$ pyspfexport a-file:/etc/postgrey/whitelist_clients gmail.com example.com whateveryouwant.fr >pyspfexport-whitelist.cidr

Dans le fichier /etc/postfix/main.cf de Postfix pour PostScreen (mais ça peut être utilisé dans d'autres contextes!) :

postscreen_access_list = permit_mynetworks,cidr:/etc/postfix/pyspfexport-whitelist.cidr

Sources