Articles plus anciens

Lorsque l’on programme des taches d’administation (via CRON par exemple),  il peut être intéressant de recevoir un mail récapitulant le résultat du Job.


Pour pouvoir envoyer un mail, il faut un MTA.

Les MTA les plus connus et utilisés sous Linux sont PostFix, Exim et Sendmail, mais ces derniers sont très largement surdimensionnés par rapport à notre besoin qui est simplement de pouvoir envoyer un mail en utilisant le serveur SMTP de notre FAI par exemple ou celui de GMail.


Après quelques recherches, un peu de temps passé à me casser les dents sur Postfix et Exim4, j’ai choisi SSMTP (Simple SMTP)


Installation

SSMTP est présent dans les dépôts, l’installation se fait donc par un simple :

sudo aptitude install ssmtp mailx

On installe aussi mailx, un package qui installe les utilitaires mail et mailx, permttant d’envoyer un mail en ligne de commande a des fins de tests.


Configuration

La configuration est comme le nom de ce programme l’indique « Simple ».

Il n’y a pas 50 fichiers de configuration contenant moult paramètres.


/etc/ssmtp/ssmtp.conf


root=mon_login@domaine
mailhub=serveur_SMTP:port
UseSTARTTLS=YES ou NO
UseTLS=YES ou NO
AuthUser=mon_login
AuthPass=mon_mot_de_passe
hostname=sweetBox
FromLineOverride=YES
rewriteDomain=domaine


On peut différencier 2 groupes de paramètres :


Paramètres de connexion :

Ces paramètres sont spécifiques au serveur SMTP utilisé, il conviendra donc de les adapter en fonction de ce dernier.

  • mailhub : adresse du serveur SMTP à utiliser
  • UseSTARTTLS et UseTLS : méthode d’authentification à utiliser par le serveur SMTP à adapter en fonction du serveur SMTP utilisé
  • AuthUser et AuthPass : login, mot de passe de votre compte mail sur le SMTP utilisé


Autres paramètres :

Ces paramètres sont utilisé de la même façon quelque soit le serveur SMTP utilisé. 

  • root : indique l’adresse mail vers laquelle les messages envoyé à root (et plus généralement les utilisateur ayant un UID < 1000) sont redirigés
  • FromLineOverride : valeur possible YES / NO, indique si on autorise la redéfinition de l’expéditeur (from)
  • rewriteDomain : permet de redéfinir le domaine de l’utilisateur envoyant le mail
  • hostname : permet de redéfinir le nom de la machine en cours, doit correpondre à un domaine valide (toto est invalide, toto.fr est valide)

  

Remarque : toto.fr est rééllement valide, il s’agit de magasin de vente de tissus.


Quelques précisions concernant les paramètres FromLineOverride, rewriteDomain et hostname :


Lorsque l’on envoi un email on doit envoyer un nom et une adresse d’expéditeur, un expediteur est décrit avec le format suivant :

nom_affiché <adresse_de_réponse>

  • nom_affiché : nom affiché dans votre client mail
  • adresse_de_réponse : adresse mail utilisé pour la réponse lorsque l’on fait « Répondre… » dans votre client mail


sSMTP essai de déduire cet expéditeur en fonction de différent paramètres dans l’ordre de préférence : 

  1. From défini dans le header avec l’option -a de la commande mail (possible que si FromLineOverride=YES)
  2. Utilisateur_connecté <adresse défini dans revaliases>
  3. Utilisateur_connecté <utilisateur_connecté@rewriteDomain>
  4. Utilisateur_connecté <utilisateur_connecté@hostname>


On entend par Utilisateur_connecté l’utilisateur qui lance la commande mail.


 

/etc/ssmtp/revaliases


Ce fichier permet de mapper le nom des utilisateurs locaux avec une adresse mail et un serveur SMTP .

utilisateur_linux:adresse_de_reponse:serveur_smtp_utilise


  • adresse_de_reponse : adresse utilisée comme adresse de réponse lorsque utilisateur_linux est l’expéditeur d’un mail
  • serveur_smtp_utilise : serveur SMTP utilisé pour cet utilisateur, prend le pas sur mailhub défini dans ssmtp.conf. Ce serveur SMTP doit être ne raccord avec les paramètres UseSTARTTLS, UseTLS, AuthUser et AuthPass définis dans ssmtp.conf



Test

Un fois paramétré ces 2 fichiers vous pourrer tester votre configuration avec :

date | mail -s Test adresse_mail


cf. http://voidandany.free.fr/index.php/envoyer-un-mail-en-ligne-de-commande


 

Conclusion

sSMTP est léger (< 100Ko), non résident en mémoire (il n’ya pas de démons comme les MTA plus complets), simple à paramétrer (bientôt ici même les configuration pour les serveur SMTP de Gmail, Yahoo et Free)

Par contre il n’est plus maintenu et il ne gère pas de file d’attente (si un mail echou il ne sera pas ré-émis)



 

Sources

Articles sur sSMTP

http://www.davidgrant.ca/ssmtp_vs_postfix_no_contest

http://tombuntu.com/index.php/2008/10/21/sending-email-from-your-system-with-ssmtp/

http://artisan.karma-lab.net/node/1171

Article sur NullMailer un autre MTA léger (à tester)

http://pro.anapivirtua.com/index.php/2008/08/08/nullmailer-ou-comment-jai-evite-les-usines-a-gaz/

http://debaday.debian.net/2009/06/28/nullmailer-simple-send-only-mail-transport-agent/

Autres MTA léger (pour la gloire)

http://www.cleancode.org/projects/email/about

http://msmtp.sourceforge.net/

http://esmtp.sourceforge.net/

http://linuxmafia.com/faq/Mail/nullmailers.html

Article sur Exim (datant de la période où j’ai essayé de l’utiliser)

http://wiki.debian.org/GmailAndExim4

http://www.casafire.com/fr/content/relayer-les-e-mails-de-exim4-vers-gmail-ou-votre-isp

http://dev.petitchevalroux.net/linux/configuration-exim4-avec-gmail-linux.19.html

http://www.cooldown.com.ar/2007/09/22/howto-using-exim4-to-send-messages-through-gmail/

http://ohioloco.ubuntuforums.org/showthread.php?t=1078530

http://www.manu-j.com/blog/wordpress-exim4-ubuntu-gmail-smtp/75/

http://www.falconnet.fr/Exim-Message-is-frozen-et.html



Premier post d’une série sur les mails.


Le but de cet article est de décrire la commande à exécuter pour envoyer un mail, on n’aborde pas ici l’installation d’un MTA qui permet de d’acheminer, traiter le mail à envoyer.


Donc pour envoyer un email, on utilisera la commande mail (quel originalité).

Cette commande fait partie du package mailx, pensez donc à l’installer si ce n’est pas fait.


L’envoi du mail peut ensuite se faire selon pluseurs méthodes :



Méthode interactive :


mail adresse_du_destinataire


L’invite de commande change et demande le sujet du mail, le saisir puis taper Entré pour le valider

Le curseur passe à la ligne et on peut alors saisir le corps du mail y compris des sauts de ligne.

Lorsqu’on à fini 2 solutions :

  • Saisir . puis Entrée (le point ne sera pas envoyé dans le corps du mail)
  • Faire CTRL+D


On est alors invité à saisir une adresse mail de destinataire en copie, la saisir le cas échéant et faire Entrée.

Le mail part.



Methode en une seul ligne :


echo "le corps du mail" | mail -s "Sujet du mail" adresse_du_destinataire


Le mail part directement.


On peut bien sûre mixer les 2 méthodes précédentes :

mail -s "Sujet du mail" adresse_du_destinataire


On aura à saisir le corps du mail et le destinataire en copie mais pas le sujet.



Options utiles :

Voici 2 options que j’utilise couramment :

  • -v : verbose, la commande mail liste alors toutes les opérations effectuées, très très utile pour « débugguer » la configuration de son MTA lorsque l’on cherche le paramètrage adéquat.
  • -a   »From: Nom affiché <adresse_mail_de_réponse> » : l’option -a permet de modifier le header du mail, dans le cas indiqué ici et que j’utilise cela permet de changer l’expéditeur du mail (à condition que votre MTA l’autorise et soit correctement paramétré)



Suite à l’installation du dual-boot Jaunty – Gutsy sur sweetBox lorsque je me connectais alternativement sous Jaunty ou sous Gutsy j’avais ce message d’erreur :


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
6a:32:8f:d2:96:d3:4f:29:ee:8e:b9:23:a0:14:c0:ef.
Please contact your system administrator.
Add correct host key in /home/mon_user/.ssh/known_hosts to get rid of this message.
Offending key in /home/mon_user/.ssh/known_hosts:1
RSA host key for 192.168.1.xxx has changed and you have requested strict checking.
Host key verification failed.


Cela indique que l’empreinte de sweetBox à changé depuis la dernière connexion, ce qui est logique puisque lors de la connexion précédente j’étais sous une autre version d’Ubuntu.


La solution de facilité que j’avais trouvé consistait à supprimer le fichier known_host sur ma machine cliente, dès lors SSH ne connaissait plus la machine et me proposais de l’ajouter à la liste des machines connus.

Au bout de quelques fois à faire cette manipulation non pérenne, je me suis décidé à chercher sur Internet comment mettre en œuvre une solution pérenne.


ssh-keyscan 192.168.1.xxx >> ~/.ssh/known_hosts


A noter le double signe supérieur pour ajouter au fichier et ne pas l’écraser, en effet dans mon cas il faut ajouter dans le fichier know_hosts les empreintes de sweetBox Jaunty et sweetBox Gutsy.


Source :

http://www.billyboylindien.com/securite/warning-remote-host-identification-has-changed.html



Dans mon dernier article je donne les scripts qui me servent à démarrer Freevo automatiquement au boot de mon mediacenter.


Le script d’init utilise su pour lancer Freevo est ses composants sous le login de l’utilisateur que l’on souhaite.


Voici ci-dessous les pré-requis au niveau de la configuration de l’utilisateur choisi mais aussi des droits sur certains répertoires pour que cela fonctionne.


Groupes de l’utilisateur

Si vous démarrez Freevo avec l’utilisateur créé lors de l’installation d’Ubuntu, il ne devrait pas y avoir de problème, par contre si vous créez un utilisateur spécifique à Freevo nommé au hasard freevo, il faudra lui ajouter des groupes.

Pour afficher les groupes de votre utilisateur la commande est :

sudo groups nom_user

Pour ajouter un groupe à un utilisateur :

sudo adduser nom_user nom_groupe


Les groupes nécessaire au bon fonctionnement de Freevo :

  • audio : pour pouvoir utiliser le son
  • cdrom : pour pouvoir utiliser le lecteur de CD/DVD


Droits sur les répertoires

Pour que Freevo puisse fonctionner correctement il faut l’utilisateur laçant Freevo ait des droits sur certains réperoires.

On changera donc les droits existant sur ces répertoires et fichiers afin qu’ils appartiennent à notre utilisateur, cela se fait avec la commande :

sudo chown mon_user:mon_user /mon_repertoire -R


Les répertoires concernés sont :


/var/cache/freevo :

Ce répertoire contient tout le cache de Freevo permettant l’accélération de l’affichage des vignette de photo, des images associé au fichier mp3, etc.

Ce répertoire est créé et alimenté avec la commande :

freevo cache

A noter que la première utilisation de cette commande avec un utilisateur stadard échouera puisqu’il n’aura pas les droits de créer le répertoire freevo dans /var/cache, 2 solutions :

  • faire un sudo freevo cache, puis après faire le chown comme indiqué sur le sous-répertoire freevo et tous les fichiers générés
  • créer manuellement le répertoire /var:cahce/freevo, le chowner avec l’utilisateur dédié à Freevo et exécuter freevo cache avec ce même utilisateur.


/var/log/freevo :

Contient l’ensemble des fichiers de log généré par Freevo.

Comme pour le répertoire précendent la première exécution de Freevo avec un utilisateur non-root échouera pour des raisons de droits de création du sous-répertoire freevo dans /var/log/


Répertoires multimédia :

J’entend par là les répertoires où sont stockés vos fichiers multimédia auxquel Freevo doit accéder.

Pour rappel ces dossiers sont paramétrés via les variables suivantes du fichier /etc/freevo/local_conf.py :

VIDEO_ITEMS, AUDIO_ITEMS, IMAGE_ITEMS, TV_RECORD_DIR, XMLTV_FILE  

cf . http://voidandany.free.fr/index.php/parametrage-de-freevo/



Droit pour démarrer le serveur X

Editer /etc/X11/Xwrapper.conf et modifier la ligne comme suit :

allowed_users=anybody

Plus de détail ici : Démarrer le serveur X avec un utilisateur non connecté



Je viens de décider d’abandonner l’utilisation des balises <more> dans mes articles.

Initialiement je les utilisais pour avoir une page d’accueil plus compact, libre à chacun de cliquer sur le lien « lire la suite » pour avoir les articles complet.

Mais avec le recul je trouve ça super pénible chez les autres lorsque par exemple on affiche les articles correspondant à un tag qui nous intéresse de na pas avoir l’ensemble des articles complet.

Je n’utiliserai donc plus ce mécanisme (et je supprimerai cette balise sur les anciens article quand l’occasion se présentera)