Un script pour ajouter un domaine dont on veux signer les mails via DKIMproxy. Celui-ci est forcément lié à mon article sur le sujet : "Installer la signature DKIM sur Postfix avec DKIMproxy". Vous pouvez très facilement l'adapter à votre usage.
Que fait ce script :
- crée la clé publique et la clé privée dans le répertoire keys de DKIMproxy
- change les droits sur la clé privée
- sur demande, ajoute l'enregistrement dans le fichier de zone du domaine
- ajoute les informations qui vont bien dans le fichier sender_map de DKIMproxy
On le lance de la façon suivante
./generate_keys domain.tld
Il faut ensuite incrémenter le numéro de série de la zone, relancer BIND et DKIMproxy.
Le script
#!/bin/bash
# Yves Tannier [grafactory.net] 2008 GPL...
# private/public keys path
PATH_KEYS='/usr/local/dkimproxy/keys'
# sender_map file path
PATH_SENDER_MAP='/usr/local/dkimproxy/sender_map'
# dkimuser
USER_GROUP='dkim:dkim'
# domain on parametre
DOMAIN=$1
# bind file path (optional)
ZONE_PATH="/var/cache/bind/$DOMAIN.hosts"
openssl genrsa -out $PATH_KEYS/$DOMAIN.key 1024
openssl rsa -in $PATH_KEYS/$DOMAIN.key -pubout -out $PATH_KEYS/${DOMAIN}_pub.key
# chg right
chown $USER_GROUP $PATH_KEYS/$DOMAIN.key
chmod 640 $PATH_KEYS/$DOMAIN.key
# Adding DKIM key on BIND Zone ?
echo
echo -n "Add DKIM key on BIND zone file ? ([Y]/n) "
read ans
if [ ! _$ans = _y -o _$ans = _Y ]; then
# bind file
echo -n "BIND Zone filename ($ZONE_PATH) : "
read ${ZONE_PATH_READ}
if [ ! -z "$ZONE_PATH_READ" ]; then
ZONE_PATH=${ZONE_PATH_READ}
fi
# public key one line
PUBLIC_KEY=$(cat $PATH_KEYS/${DOMAIN}_pub.key | sed -n '/BEGIN PUBLIC KEY/,/END PUBLIC KEY/p' | sed '/PUBLIC KEY/d' | tr -d '\n')
# write
echo
echo "_domainkey.$DOMAIN. IN TXT \"t=y; o=-;\"" >> $ZONE_PATH
echo "$DOMAIN._domainkey.$DOMAIN. IN TXT \"k=rsa; t=s; p=$PUBLIC_KEY\"" >> $ZONE_PATH
fi
SM="$DOMAIN dkim(c=simple,s=$DOMAIN,a=rsa-sha1,key=$PATH_KEYS/$DOMAIN.key), domainkeys(c=nofws,s=$DOMAIN,key=$PATH_KEYS/$DOMAIN.key)"
echo $SM >> $PATH_SENDER_MAP
echo
echo "Please, restart DKIMproxy !"
echo
echo "... And maybe BIND with new serial on $ZONE_PATH !"
Au format compressé : generate_keys.tar.gz
N'hésitez pas à me proposer vos améliorations.
Autre exemple, j'exécute ce script via un cron pour nettoyer tous ce qui traine dans des boites genre postmaster, abuse (encore que cette dernière n'est pas trop pourrie par le SPAM), et autres bal « no-reply » qu'il reste quand même, pour certaines, nécessaires de consulter
Histoire de changer un peu, je vous propose un formidable "howto" pour la construction d'un déguisement pour le carnaval de votre enfant (papa geek inside). C'est le déguisement de robot digne d'un film de Ed Wood ("



Etant un utilisateur de la première heure de Dotclear, je me devais de passer sur