Annonce

#1 2016-03-16 13:46:21

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Wanewsletter et DKIM

Bonjour.
je m'intéresse à l'implémentation de DKIM et je trouve notamment ce script (pas encore testé, je viens de le trouver) qui semble très simple : https://github.com/louisameline/php-mail-signature

Est-ce qu'un telle implémentation (ou une autre!) est prévue (ou pourrait-elle l'être) dans Wanewsletter ?
Si oui, encore dans la v.2? ou seul. dans la v3? (j'ai pas encore eu le temps (courage?) de migrer vers la v.3)

J'ai notamment lu la discussion épinglée sur PGP, mais certains liens ne fonctionnent pas, dont le lien vers la "Page OpenPGP" (http://dev.webnaute.net/wamailer/trac/wiki/OpenPgp)

@ la suite... merci et bravo!
Cdt.

Hors ligne

#2 2016-03-16 17:15:35

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

bonjour,

AlainR a écrit :

Bonjour.
je m'intéresse à l'implémentation de DKIM et je trouve notamment ce script (pas encore testé, je viens de le trouver) qui semble très simple : https://github.com/louisameline/php-mail-signature

Est-ce qu'un telle implémentation (ou une autre!) est prévue (ou pourrait-elle l'être) dans Wanewsletter ?
Si oui, encore dans la v.2? ou seul. dans la v3? (j'ai pas encore eu le temps (courage?) de migrer vers la v.3)

C'est sur ma liste de choses à faire dans wamailer (le module qui formate et envoie les emails), mais c'est pas pour tout de suite.

J'ai notamment lu la discussion épinglée sur PGP, mais certains liens ne fonctionnent pas, dont le lien vers la "Page OpenPGP" (http://dev.webnaute.net/wamailer/trac/wiki/OpenPgp)

Merci, j'ai corrigé le problème et le lien fonctionne à nouveau.

C'est autre chose. Là, il s'agit de signer/chiffrer le contenu de l'email.
Soit en utilisant PGP/MIME : utilisation de clefs PGP (cercles de confiance)
Soit en utilisant S/MIME : utilisation de certificats électroniques (chaîne de confiance verticale)

J'avais fait une implémentation rapide pour PGP/MIME, mais en faisant des appels système au programme /usr/bin/gpg pour signer/chiffrer l'email. Ça marche si on peut utiliser la fonction exec(), et qu'on est sur un système de type UNIX, sinon, ben on est coincé.
Il existe une extension pour php, gnupg. Il faudrait que je fasse une classe s'appuyant dessus. (c sur ma todolist aussi).

Pour ce qui est de S/MIME, des fonctions existent dans l'extension openssl de PHP. Y a plus qu'à, comme on dit big_smile (sur ma todolist aussi).

Pour en revenir à DKIM, faudrait que je m'y mette, que je bouffe la documentation et que je créé l'implémentation. Mais est-ce que ça vaut vraiment le coup ? De mon point de vue, il est plus logique que ce soit le serveur de mail (postfix ou autre...) du domaine qui réalise la signature DKIM.


PHP et MySQL, un duo gagnant !

Hors ligne

#3 2016-03-17 15:08:05

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Bonjour et merci pour la réponse!

Bobe a écrit :

C'est sur ma liste de choses à faire dans wamailer (le module qui formate et envoie les emails),

Magnifique!!

Bobe a écrit :

mais c'est pas pour tout de suite.

sad comment aider ?


Bobe a écrit :

C'est autre chose. Là, il s'agit de signer/chiffrer le contenu de l'email.
Soit en utilisant PGP/MIME : utilisation de clefs PGP (cercles de confiance)
Soit en utilisant S/MIME : utilisation de certificats électroniques (chaîne de confiance verticale)

Oui, je suis au clair avec ces différences, merci pour les précisions!


Bobe a écrit :

Pour en revenir à DKIM, faudrait que je m'y mette, que je bouffe la documentation et que je créé l'implémentation. Mais est-ce que ça vaut vraiment le coup ? De mon point de vue, il est plus logique que ce soit le serveur de mail (postfix ou autre...) du domaine qui réalise la signature DKIM.

Je ne suis pas sûr de vous suivre/de comprendre la différence ?
Je n'ai pas de serveur personnel, mais un serveur mutualisé chez un hébergeur.
Dans un Joomla! couplé à AcyMailing, j'ai pu paramétrer DKIM notamment en ajoutant un DNS et mes courriels sont alors identifiés ou plutôt confirmé via ce DNS de la part du serveur d'envoi aux serveurs de mails de mes destinataires.

@ la suite et merci encore!

Hors ligne

#4 2016-03-18 04:20:33

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

AlainR a écrit :
Bobe a écrit :

mais c'est pas pour tout de suite.

sad comment aider ?

Si vous savez comment augmenter le nombre d'heures dans une journée, je prends... big_smile

AlainR a écrit :
Bobe a écrit :

Pour en revenir à DKIM, faudrait que je m'y mette, que je bouffe la documentation et que je créé l'implémentation. Mais est-ce que ça vaut vraiment le coup ? De mon point de vue, il est plus logique que ce soit le serveur de mail (postfix ou autre...) du domaine qui réalise la signature DKIM.

Je ne suis pas sûr de vous suivre/de comprendre la différence ?
Je n'ai pas de serveur personnel, mais un serveur mutualisé chez un hébergeur.
Dans un Joomla! couplé à AcyMailing, j'ai pu paramétrer DKIM notamment en ajoutant un DNS et mes courriels sont alors identifiés ou plutôt confirmé via ce DNS de la part du serveur d'envoi aux serveurs de mails de mes destinataires.

@ la suite et merci encore!

Dans l'hypothèse où vous avez plusieurs scripts qui envoient des mails, vous allez devoir configurer chacun d'eux en donnant le sélecteur dkim, le chemin vers la clé privée, le passphrase éventuel. Tous ces scripts vont donc connaitre votre passphrase, ou à tout le moins, avoir accès à la clé privée. Ça multiplie les risques de voir un attaquant profiter d'une éventuelle faille pour s'emparer de ces données.

La solution la plus simple est de réaliser cette opération au sein du serveur de mail (postfix + opendkim par exemple). Les scripts envoient leurs mails normalement avec la fonction mail(), le serveur de mail les reçoit, ajoute la signature et les transmet.
Évidemment, ce n'est pas une solution viable si vous n'êtes pas administrateur de votre serveur et que l'administrateur n'a pas mis en place une telle solution.


PHP et MySQL, un duo gagnant !

Hors ligne

#5 2016-03-22 19:38:40

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

http://dkim.org/specs/rfc4871-dkimbase.html

Bon, ça a l'air assez simple en fait. Je pourrais mitonner quelque chose dès la version 3.0. Le plus chiant, c'est toujours de décider comment on va implémenter une fonctionnalité, pas de réaliser l'implémentation elle-même.


PHP et MySQL, un duo gagnant !

Hors ligne

#6 2016-03-28 01:53:46

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

Voilà un premier jet :
https://github.com/wascripts/wamailer/c … f6097bfc46

Pas encore directement utilisable au sein de wamailer, et donc de wanewsletter, mais produit une signature valide.

edit: Et le README avec quelques notes et un exemple d'utilisation en standalone :
https://github.com/wascripts/wamailer/b … ME.dkim.md


PHP et MySQL, un duo gagnant !

Hors ligne

#7 2016-03-30 09:49:34

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Bobe a écrit :

Voilà un premier jet :
https://github.com/wascripts/wamailer/c … f6097bfc46

Pas encore directement utilisable au sein de wamailer, et donc de wanewsletter, mais produit une signature valide.

edit: Et le README avec quelques notes et un exemple d'utilisation en standalone :
https://github.com/wascripts/wamailer/b … ME.dkim.md

Que dire...?.... bravo! et merci! me réjouis de tester! wink

Hors ligne

#8 2016-04-03 18:18:29

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

J'ai fait une intégration basique du module dkim dans wamailer et wanewsletter et c'est donc utilisable. smile

Le fichier data/config.sample.inc.php donne un exemple des différentes options de configuration qu'on peut ajouter à son fichier de configuration et j'ai ajouté une partie en exemple pour l'activation de la signature des emails émis par wanewsletter.


PHP et MySQL, un duo gagnant !

Hors ligne

#9 2016-04-06 09:38:47

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Je souhaite tester, est-ce que je m'y prends correctement :
1. mise à jour du script de la v. 2.3.4 vers la v.3.0-beta3 (ça n'a pas été sans mal, mais c'est fait ; est-ce bien correct : le dossier upload est devenu uploads dans date ?)
2. mise à jour des fichiers par la version -develop récupérée sur Git ?
3. mise à jour de wamailer dans le dossier /var/www/html/wanewsletter-3.0-beta3/vendor/wascripts/wamailer par la version récupérée sur Git ?
4. paramétrer les 3 variables DKIM ?

Question(s) à propos de la variable "$nl_config['dkim']['privkey']" :
- peut-on mettre directement le contenu de la clé privée ?
- le chemin peut-il être hors serveur public, p.ex. au-dessus du dossier /web/ ou /public_html/ ou /httpdocs/ selon l'hébergeur ?

Un grand merci en tous cas pour cette implémentation, je suis en train de finaliser le paramétrage pour tester.
Cdt.

Hors ligne

#10 2016-04-06 10:12:09

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Rien pour le moment :
le fichier private.key est dans le dossier data, les 3 paramètres sont configurés, les fichiers de la dernière version develop récupérée sur le Git est venu "patcher" la v.3.0-beta3 mais je n'ai aucun DKIM dans le dernier message test envoyé....

et je remarque à l'instant que le dossier Tools n'est pas présent (tout comme le dossier vendor). Donc, apparemment, je ne récupère pas la bonne version.

Le présent test me renvoie le débug suivant :

Warning: Cannot read private key. (OpenSSL said: error:02001002:system library:fopen:No such file or directory) in ~/vendor/wascripts/wamailer/lib/Tools/Dkim.php on line 396
Backtrace:
#0 trigger_error() called at [~/vendor/wascripts/wamailer/lib/Tools/Dkim.php:396]
#1 Wamailer\Tools\Dkim->getPrivKey() called at [~/vendor/wascripts/wamailer/lib/Tools/Dkim.php:100]
#2 Wamailer\Tools\Dkim->options() called at [~/vendor/wascripts/wamailer/lib/Tools/Dkim.php:59]
#3 Wamailer\Tools\Dkim->__construct() called at [~/vendor/wascripts/wamailer/lib/Transport/Transport.php:102]
#4 Wamailer\Transport\Transport->prepareMessage() called at [~/vendor/wascripts/wamailer/lib/Transport/Mail.php:70]
#5 Wamailer\Transport\Mail->send() called at [~/includes/Sender.php:504]
#6 Wanewsletter\Sender->send() called at [~/includes/Sender.php:378]
#7 Wanewsletter\Sender->process() called at [~/admin/envoi.php:871]
PHP Notice: Undefined offset: 1 in ~/vendor/wascripts/wamailer/lib/Transport/Transport.php on line 108
Backtrace:
#0 Wamailer\Transport\Transport->prepareMessage() called at [~/vendor/wascripts/wamailer/lib/Transport/Mail.php:70]
#1 Wamailer\Transport\Mail->send() called at [~/includes/Sender.php:504]
#2 Wanewsletter\Sender->send() called at [~/includes/Sender.php:378]
#3 Wanewsletter\Sender->process() called at [~/admin/envoi.php:871]

Configuration :
Version de la base de données : 5.5.41-cll-lve
Interclassement de la base de données : utf8_general_ci
Version de PHP : 5.4.45
Serveur web : Apache

Merci d'avance pour les tuyaux wink

Hors ligne

#11 2016-04-06 10:18:04

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Yesssss! Bravo!
Alors, je viens de lire le bien caché /vendor/wascripts/wamailer/lib/Tools/README.dkim.md et j'ai mis la clé privée directement dans le fichier data/config.inc.php et c'est tout bon!

Bravo et merci!
reste la question de la version develop qui ne contient pas tous les fichiers.
Cdt.

Hors ligne

#12 2016-04-06 15:47:33

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

Merci pour ce retour de tests !
Vous avez soulevé plusieurs problèmes que je vais pouvoir corriger :
- Il y a une notice PHP si la signature n'a pas pu être générée. J'ai oublié de vérifier le contenu de la variable $dkim_header avant de continuer le processus dans Transport.php.
- Si le contenu de la variable $nl_config['dkim']['privkey'] est un chemin de fichier relatif (par exemple: data/private.key), la résolution en chemin de fichier absolu va dépendre du répertoire d'exécution du script php, ce qui n'est pas bon. En reprenant mon exemple, le script va chercher la clé dans admin/data/private.key si on fait un envoi avec envoi.php.
Et je confirme qu'on peut mettre un chemin de fichier hors du document root du site pour la clé privée, en utilisant donc un chemin de fichier absolu, c'est même recommandé en effet smile Même si en principe, le répertoire data/ doit être interdit d'accès par votre serveur web, donc viable aussi.

Pour installer/mettre à jour vers la version de développement :

Le dossier vendor contient les librairies tierces utilisées par wanewsletter pour son fonctionnement. wamailer en fait parti car il est indépendant de wanewsletter.
Comme ce n'est pas moi qui ai créé ces librairies (sauf pour wamailer, mais qui a son propre dépôt), je ne peux pas les stocker directement dans le dépôt de wanewsletter, ce ne serait pas pratique, d'où l'absence de dossier vendor dans le dépôt.
En revanche, les archives wanewsletter distribuées sur phpcodeur.net contiennent le dossier vendor complet.
Donc pour installer ces librairies dans les bonnes versions sur une version de développement, il faut que PHP soit installé sur votre machine, puis que vous installiez le gestionnaire de dépendances PHP "composer".
Après cela, il n'y a qu'à lancer la commande "composer install" ou "php composer.phar install" dans le répertoire de wanewsletter. Si vous êtes sur windows, je crois que composer ajoute une entrée dans le menu contextuel qui apparait sur un clic droit sur le dossier de wanewsletter.

Concernant le dossier upload :
Dans la version 3.0, j'ai rassemblé les dossiers contenant des données écrites par wanewsletter dans le nouveau dossier data/.
L'idée est que pour faire un backup des données, il suffit alors de faire un backup de la base de données et du dossier data/ pour tout avoir sous la main, alors que dans la version 2.*, il fallait chercher un peu partout dans le répertoire de wanewsletter quoi mettre de coté.
Donc le passage à la version 3.0 a ajouté un dossier data/uploads, mais c'est votre dossier upload/ qui reste actif, jusqu'à ce que vous déplaciez son contenu dans data/uploads/ et que vous mettiez à jour la section "fichiers joints" dans la page configuration dans l'administration.

edit: avec le dernier commit effectué, on peut, comme pour logs_dir, stats_dir et tmp_dir, utiliser le tilde dans le chemin de fichier de privkey.
$nl_config['dkim']['privkey'] = '~/data/dkim.key'; // le ~ est remplacé par le répertoire d'installation de wanewsletter.
Et comme on est dans un fichier php, on peut aussi utiliser la constante php __DIR__ :
$nl_config['dkim']['privkey'] = __DIR__.'/dkim.key';
En tout cas, les chemins de dossiers/fichiers dans $nl_config ne doivent pas être relatifs.


PHP et MySQL, un duo gagnant !

Hors ligne

#13 2016-04-07 12:21:38

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Merci bien pour toutes ces précisions.
Finalement, je suis parti de la beta3 puis j'ai mis à jour seulement vos scripts (wanewsletter-develop et wamailer) à partir des Git.
Mais maintenant je comprends pourquoi mon serveur m'affichait de lancer composer!! wink

Bonne idée d’avoir tout regroupé dans data.
Effectivement, après mise à jour de la configuration vers le bon dossier d'upload, j'ai retrouvé tous l'historique des fichiers joints.

je viens de tester avec le chemin absolu vers la clé privée, hors site public et ça fonctionne parfaitement, extra!
C'est vraiment top. Je vais aller mettre à jour mon autre instance de Wanewsletter (qui n'avait pas bien fonctionné avec le fichier upgrade.php, j'ai finalement dû tout enlever, mettre les nouveaux fichiers, ajouter la ligne define WA_VERSION 2.3.4 dans le fichier config pour que la mise à jour se fasse correctement et que je retrouve un Wanesletter à jour (beta) fonctionnel, avec un ctrl+F5 pour recharger le nouveau CSS wink ).

Bref : bravo et merci!

Dernière modification par AlainR (2016-06-01 09:56:53)

Hors ligne

#14 2016-04-07 15:14:51

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Prochaine évolution : paramétrer via la page de configuration ?? wink
Activer DKIM : Oui/Non
puis ensuite les 3 paramètres actuellement dans config.inc.php à savoir le domaine, le sélecteur et la clé privée (ou le chemin vers la clé privée)

Hors ligne

#15 2016-04-07 15:24:33

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

J'ai des réticences.
Wanewsletter est orienté vers la facilité d'usage et la simplicité de son interface. Je ne voudrais pas noyer l'utilisateur sous une foultitude de paramètres de configuration disponibles dans l'interface d'administration. hmm
(C'est pour ça aussi que j'ai viré le stockage possible des fichiers joints sur un ftp distant, qui tenait plus du gadget qu'autre chose dans wanewsletter).


PHP et MySQL, un duo gagnant !

Hors ligne

#16 2016-04-12 10:47:01

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

re-bonjour.
Je rencontre une difficulté pour utiliser DKIM sur un autre hébergement. J'ai configuré le Niveau de débogage sur développement : où/comment devrais-je voir les infos de débogage ?

Wanewsletter affiche-t-il un message d'erreur en cas de problème de config. de DKIM ?
Merci encore.

Bobe a écrit :

J'ai des réticences.
Wanewsletter est orienté vers la facilité d'usage et la simplicité de son interface. Je ne voudrais pas noyer l'utilisateur sous une foultitude de paramètres de configuration disponibles dans l'interface d'administration. hmm
(C'est pour ça aussi que j'ai viré le stockage possible des fichiers joints sur un ftp distant, qui tenait plus du gadget qu'autre chose dans wanewsletter).

Je comprends, ça se défend... Est-ce que ça pourrait être en option cachée ou plutôt avancée ?
Cdt.

Hors ligne

#17 2016-04-12 11:42:10

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

AlainR a écrit :

re-bonjour.
Je rencontre une difficulté pour utiliser DKIM sur un autre hébergement. J'ai configuré le Niveau de débogage sur développement : où/comment devrais-je voir les infos de débogage ?

Les informations de débogage sont affichées en bas de page dans un cadre aux tons rouge.

AlainR a écrit :

Wanewsletter affiche-t-il un message d'erreur en cas de problème de config. de DKIM ?

En l'état actuel, la politique de wamailer est qu'il est plus important que l'email soit envoyé, quitte à ce qu'il ne comporte pas de signature DKIM.
Donc l'email est quand même envoyé, même si wamailer peut émettre un ou plusieurs messages d'alerte pour signifier un quelconque problème. Ces messages sont visibles dans le cadre de débogage (donc si le débogage est activé).

Quel problème rencontrez-vous ?

AlainR a écrit :

Je comprends, ça se défend... Est-ce que ça pourrait être en option cachée ou plutôt avancée ?

C'est caché en étant présent seulement dans le fichier de config big_smile
Mais j'ajouterai surement une entrée dans la FAQ sur cette fonctionnalité.


PHP et MySQL, un duo gagnant !

Hors ligne

#18 2016-04-12 15:57:33

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

Merci pour les réponses.
DKIM, c'est tout bon : j'ai remplacé les fichiers du nouvel emplacement par ceux que l'autre site pour lequel ça fonctionnait : apparemment tout n'était pas à jour. Donc, c'est tout bon, ça fonctionne cool

Concernant le débogage (il faut que je discute de ça ailleurs non? big_smile), je en vois rien sur les pages et j'ai testé avec les 3 niveaux.
Serait-ce encore + caché que les paramètres DKIM ? tongue

Hors ligne

#19 2016-04-12 19:46:10

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

C'est le même emplacement où vous avez récupéré la sortie de débogage plus haut (quand le chemin vers la clé privée était pas bon) hmm


PHP et MySQL, un duo gagnant !

Hors ligne

#20 2016-04-13 08:49:00

AlainR
Membre
Inscription : 2009-03-02
Messages : 21

Re : Wanewsletter et DKIM

OK, donc, si je comprends bien, le message de débogage n'apparaît qu'en cas d'erreur ?
Je pensais qu'en mettant débogage sur développement, j'allais voir de toute façon un message, sur toutes les pages, à chaque clic.
Merci encore, c'est top tout ça!

Hors ligne

#21 2016-04-13 21:08:42

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

AlainR a écrit :

OK, donc, si je comprends bien, le message de débogage n'apparaît qu'en cas d'erreur ?


Yep, c'est bien ça.


PHP et MySQL, un duo gagnant !

Hors ligne

#22 2016-04-19 17:06:03

Bobe
Administrateur
Lieu : La Rochelle
Inscription : 2002-05-27
Messages : 5 299

Re : Wanewsletter et DKIM

Attention, j'ai commité un changement important :
https://github.com/wascripts/wanewslett … 9f31b37666

La configuration de dkim doit se faire dans le sous-tableau $nl_config['mailer'].
Ça permet de passer toutes les options acceptables par wamailer et pas seulement celles concernant dkim (voir les exemples dans config.sample.inc.php).


PHP et MySQL, un duo gagnant !

Hors ligne

Pied de page des forums