J’ai deux problèmes (en fait j’en ai plus, mais ce blog n’est pas une thérapie, c’est pour partager)

Premier problème, sur mon serveur vps chez OVH (Debian 8), j’ai la désagréable sensation, pour ne pas dire certitude que la fonction mail de php ne fonctionne pas.

Que faire ?

Installer un serveur mail simple et efficace. Exim4 est notre homme. Mais il n’est pas configurer. Voir pas installé.

On se dirige vers la première ligne : Distribution directe par SMTP (site Internet)

Et dans Nom de courrier du système il faudra lui mettre votre nom de domaine, par ex : monsite.com
Ainsi que dans Autres destinations dont le courrier doit être accepté
J’ai laisser les autres options par défaut.

C’est le moment de vérifier si ça marche

Vous pouvez faire un test avec un fichier php sur votre serveur :

Le mail est envoyé, victoire !
Il est dans le spam… tout n’est pas perdu.

 

Second problème, gmail classe inévitablement le courrier dans les spams. Même si l’adresse mail du serveur est dans mes contacts.

En regardant le détail des mails, j’ai vu que l’IP v6 était utilisée. Ce n’est pas un problème en soit.
Si ce n’est que le SPF en qui Gmail fait confiance est paramétré sur l’IP v4 sur mon serveur OVH et que je ne peux pas le faire pointer vers l’IP v6.

Solution, demander à Exim4 d’envoyer en IP v4 en ajoutant à la fin de /etc/exim4/exim4.conf.template ceci :

et relancer le service :

 

Troisième problème, gmail ne classe plus le courrier dans les spams. Victoire ! Mais affiche un point d’interrogation à côté de mon nom de domaine quand j’affiche le message avec ce texte quand je le survol :

« Gmail n’a pas pu confirmer que ce message a bien été envoyé par monsite.com (et non par un spammeur). »

Ce tuto s’arrête ici. L’objectif premier est rempli, le smtp fonctionne et les mails ne partent pas dans les spam.

Pour résoudre ce dernier problème il faut générer deux clés RSA, une publique et une privée, mettre la clé publique dans les DNS… l’autre dans le mail. Beaucoup de manipulations, n’en n’ayant pas le besoin dans l’immédiat je vais m’en passer.

Le titre de l’article est mensonger. Je ne vais pas détailler, la procédure pour installer Let’s Encrypt, car c’est très bien fait sur cette page :

https://www.human-geek.com/installer-lets-encrypt-sur-un-vps-ovh/

Rapide résumé (pour comprendre allez voir le tuto sur human-geek.com)

Et arrivé à ce point vous devriez avoir le choix du ou des domaines pour activer le https… oui mais pas chez moi, rien du tout, il me propose de les ajouter à la main et après ça plante !

PAS DE PANIQUE

Voici les 4 erreurs que j’ai rencontré en installant Let’s Encrypt:

 

1 . Le port 443 doit être libre

Si vous avez configuré votre accès SSH sur le port 443… et bien retour sur le port 22 obligatoire.

Le 443 doit être disponible sous peine de ne pas comprendre pourquoi le script bug.

 

2 . Let’s Encrypt ne trouve pas les noms de domaine

Le virtual host d’Apache est en cause, même ma super config plante à ce stade.

Les régles à respecter pour que ça marche :

  1. Un seul nom de domaine par fichier de configuration /etc/apache2/sites-available/
  2. Pour voir votre nom de domaine proposé avec et sans le www il faut commencé la config ainsi :

    Dans mon tuto sur la configuration d’un virtual host avec gestion automatique des sous domaines, j’ai besoin de cette ligne :

    Aucun soucis, les ServerAlias sont cumulables, donc :

Vous pouvez maintenant relancer le script :

Et reprendre le tuto sur human-geek.com

En cas de pépins, revenez ici.

 

3 . Firefox m’affiche un avertissement concernant du contenu mixte et bloque certains éléments

Comme détaillé sur la page officielle : Le blocage du contenu mixte avec Firefox

Simple, il y a dans votre code source au moins un lien en http:// au lieu de https://

Une bibliothèque javascript importé depuis un serveur ou comme moi cette balise :

Balise qui réglé le problème d’arborescence factise de l’url rewriting.

Il faut tout simplement ajouter un s à la fin du http :

Et Firefox affichera votre page https sans soucis !

 

4 . C’est bien joli mon gars, mais ta super config de la mort ne fonctionne plus

Crotte, vous vous souvenez du tuto : VirtualHost et nom de domaines sur un VPS OVH, ben ça déconne à plein gaz maintenant !

La raison, Let’s Encrypt ajoute quelques lignes dans vos virtual host dans /etc/apache2/sites-available/

A la toute fin, juste avant </VirtualHost> , vous pourrez voir ceci :

Sauf que pour la peine nos règles de ré-écriture avant sont ignorées, il faut donc déplacer les lignes ci-dessus juste en dessous de RewriteEngine on, exemple :

 

Cet article va vous permettre d’envoyer des mails depuis le terminal ou avec la fonction mail de php en utilisant le smtp de gmail.

C’est à dire que les mails seront envoyés par le biais de votre adresse perso gmail. Que ce soit pour être alerté d’une présence (avec une photo en pièce jointe), des mises à jours de sécurité à appliquer ou que sais-je encore…

 

Créer un mot de passe spécifique

Rendez-vous sur la page Mots de passe d’application de google et renseigner comme ceci :
Sélectionner une application -> Messagerie
Sélectionner un appareil -> Autre (nom personnalisé) -> Raspberry Pi

Vous obtiendrez un mot de passe spécifique qui a l’avantage de pouvoir être révoqué en cas de doute sur la sécurité de votre Raspberry Pi et de pouvoir envoyer des mails sans avoir à effectuer l’authentification en deux étapes.

Installer les packages

puis

Choisir la première ligne « Distribution directe par SMTP (site Internet) »
Distribution directe par SMTP (site Internet) : RaspberryPi
Liste d’adresses IP : 127.0.0.1 ; ::1_
Autres destinations : RaspberryPi
RaspberryPi : (laisser vide)
Machines à relayer : (laisser vide)
Faut-il minimiser les requêtes DNS : Non
Format « mbox » dans /var/mail
Faut-il séparer la configuration dans plusieurs fichiers ? Non
Destinataire des courriers de « root » et « postmaster » : (laisser vide)

 

ajouter les lignes à la fin du fichier en modifiant votre adresse et votre mot de passe (celui générer au début du tuto)

Il faut relancer Exim4 :

 

Courage on touche au bout :

ssmtp pour permettre l’utilisation du smtp de gmail
mailutils & mpak pour envoyer des mails en shell

Supprimer les deux ligne :

Et ajouter à la fin (en remplaçant le nom et le mot de passe une fois de plus)

 

Cron et d’autres services vont certainement vouloir envoyer des mails, pour qu’ils soient bien routés, il faut ajouter ces deux lignes à la fin du fichier /etc/aliases :

 

Tester

Avec php mail()

 

 

Avec mailutils dans le terminal :

Taper le texte, et pour envoyer il faut taper un point + [entrée] sur une nouvelle ligne.

 

Vous avez des tâches cron ?

Désormais, votre cron daemon va vous envoyer des alertes à chaque exécution d’une tâche. Voici comment paramétrer les alertes cron :

Sérieusement, je n’ai jamais accroché à vim, et je ne suis pas parvenu à me faire à emacs. Si j’ai un environnement graphique sous la main, gedit me va bien. Pour des petites modifications ou en ssh, j’aime nano.

Seulement voilà, nano peut demander quelques modifications pour être plus convivial.

La souris

Avec le raccourci clavier Alt + m , la souris sera activée et permettra de pointer précisément dans le fichier. Pratique pour un copier / coller. Le double clic permet de faire une sélection.

Pour une raison obscure, l’activation de la souris, désactive le défilement molette. Il faut alors la désactiver avec de nouveau un Alt + m

Pour que la souris soit activée par défaut, modifier le fichier /etc/nanorc , dé-commenter la ligne :

 

L’indentation

Encore une fois dans le fichier /etc/nanorc :

 

La coloration syntaxique

Le tuto de Korben qu’il est très bien fait.

A l’heure actuelle, une bonne clé USB, 16 Go en usb 3 d’une marque reconnue coûte moins de 10 €. Et si comme moi, vous voulez :

  • un espace de stockage d’au moins 8 Go
  • une distribution linux transportable et personnalisable
  • tout ça sur la même clé
  • et de pouvoir lire l’espace de stockage aussi bien sur windows que sur linux

Il vous faudra alors :

  • une clé USB à minima de 16 Go (ou plus)
  • un ordinateur sous linux, windows ou mac
  • une iso d’une distribution linux basée sur Ubuntu

Je vais détailler la procédure pour linux et donner le nom des outils pour les autres OS, la démarche restant la même.

1 . Partitionner la clé

Sous linux, insérez votre clé usb dans l’ordinateur puis dans GParted sélectionnez la depuis le menu déroulant en haut à droite (une clé de 16Go, dans GParted affichera quelque chose comme 14.65 Gio)

Puis en partant du principe que votre clé usb est neuve et qu’elle ne possède aucune donnée, vous allez supprimer la partition qu’elle contient en faisant un premier clic droit dessus et ‘Démonter‘ puis un second clic droit ‘Supprimer‘. Vous devriez voir ceci :

Capture du 2015-03-24 14:13:19

Puis un 3eme clic droit sur la zone vide (non alloué) et choisir ‘Nouvelle‘ et remplir ainsi :

Capture du 2015-03-24 14:34:03Nouvelle taille (Mio) : 10 000 (10  000 pour une clé de 16 Go, 26 000 pour une de 32 Go … il faut laisser 6 Go minimum pour la partition qui contiendra linux)
Système de fichiers : fat32
Étiquette : usb (facultatif)

 

Et enfin un 4eme clic droit sur l’espace vide restant après la nouvelle partition et choisir encore ‘Nouvelle‘ dans le menu :

Capture du 2015-03-24 16:00:04Système de fichiers : fat32
Pour la taille, rien à faire, GParted proposera automatiquement d’occuper la place restante. J’ai aussi essayé ext2 et ext4 pour le système de fichiers, pour une live cd il est préférable de rester sur du fat32.

 

Votre écran doit ressembler à celui-ci :

Capture du 2015-03-24 16:01:53Reste à appliquer les changement avec cette icône :

Capture du 2015-03-24 16:03:24

2 . Installer Linux sur la clé

Pour que linux soit persistant, la meilleure solution reste de l’installer de façon classique sur la clé, ça fonctionne, mais c’est moins réactif.

Une deuxième solution consiste à créer une clé bootable (façon live cd) avec UNetbootin et une iso basée sur Ubuntu. Ça peut être Ubuntu, Xubuntu, Lubuntu… ou Linux Mint (que j’ai choisi)

Attention, le mode persistant a des limites, vous allez pouvoir créer des comptes, changer la langue, le clavier, le fond d’écran … mais il faut garder en tête que c’est un live cd amélioré. L’installation de paquet ne fonctionne pas bien et globalement tout n’est pas persistant.

Dans UNetbootin :

Capture du 2015-03-24 16:24:16Sélectionnez ‘Diskimage
Un petit clic sur ‘‘ pour trouver l’iso sur votre disque dur.
Renseigner la ligne du dessous avec 1024 MB – très important, c’est l’aspect persistant qui est déterminer ici.
Type : ‘USB Drive
Drive : la deuxième partition de votre clé, chez moi c’est /dev/sdc2 mais chez vous c’est peut être /dev/sdb2

Reste à monter la partition et à lancer l’opération.

3 . Démarrer sur la clé :

Il faudra jouer avec le bios ou être très rapide au démarrage en tapant sur la touche ‘échap’ par exemple sur un portable ASUS pour accéder au menu du BOOT et sélectionner votre clé.

Une fois votre linux démarré, il faut créer un nouvel utilisateur ayant les droits d’admin et activer l’auto-login pour celui-ci. Après redémarrage, vous devez être logué sur la session de votre nouveau utilisateur.

 

4 . Facultatif :

Les distributions live cd sont souvent en anglais, il faut penser à modifier le clavier, et la langue du système.

Même après passage en français, il reste des applications en anglais, pour y remédier, vous pouvez faire ceci :

Certains menus de l’explorateur de fichiers doivent être encore en anglais. Et dans le terminal, des commandes comme nano aussi. Pour y remédier, vous pouvez décompresser cette archive dans /usr/share/locale/fr/LC_MESSAGES

Télécharger “LC_MESSAGES.zip” LC_MESSAGES.zip – Téléchargé 91 fois – 3 MB

A décompresser en mode root, sinon :