Backup automatique de serveur avec envoi par mail

a marqué ce sujet comme résolu.

Hello les copains ! :D

Heureux locataire d'un serveur dédié (KimSufi à base de Debian Wheezy) depuis quelques semaines, je suis entrain de mettre en place un système de backup basique.

Pour l'instant j'ai réussi à mettre en place un cron (pas encore testé, je verrai à minuit si ça fonctionne) qui lance un script (où toto est le nom du user — modifié pour l'occasion) :

1
2
3
#!/bin/bash
zip -r /home/toto/Backup-toto.zip /home/toto/www -x \*.DS_Store
echo "Backup du jour" | mutt -F /home/toto/.muttrc -a /home/toto/Backup-toto.zip -s "Backup toto" contact@ndd.com

L'idée étant d'avoir un zip généré et envoyé automatiquement par email (et conservé sur le serveur au cas où il y aurait un problème de mail).

J'ai donc bien installé mutt et configuré basiquement (je pense avoir une config correcte), mais j'ai cette erreur à chaque fois :

Impossible d'obtenir le statut de contact@ndd.com : Aucun fichier ou dossier de ce type

Et quand je teste sans le paramètre -a j'ai ça :

gnutls_handshake: An unexpected TLS packet was received.
Impossible d'envoyer le message.

Sachant que l'adresse email en question est sur un de mes NDD (géré chez OVH) mais qu'il s'agit d'une simple redirection vers mon GMail perso. Il y a donc peut-être des DNS qui ont sauté avec le passage du mutualisé au KS.

Dans l'idée j'aimerais bien pouvoir simplifier un peu le truc pour copier le script dans différents dossiers (j'ai plusieurs users — un pour chaque projet — donc plusieurs dossiers à sauvegarder) sans avoir grand chose à adapter. Je tiens par contre à avoir un zip par user (mais éventuellement un seul mail global, ça c'est pas l'important).

Vous avez des idées de ce qui cloche ou de ce qui peut être amélioré ? :)

Oui, j'ai plusieurs adresses sur ce NDD (donc celle utilisée par le script) qui reçoivent des mails tous les jours (c'est le NDD de mon site pro, donc j'ai plutôt intérêt à ce que ça fonctionne ! :p ).

Deuxième question ? :)

[EDIT] Je bosse en même temps sur un site en développement qui vient d'être migré sur le serveur et je m'aperçois que les mails envoyés (par un CMS en PHP — donc fonction mail() pour le coup) n'ont pas l'air de passer. Donc il doit manquer quelque chose dans la configuration du serveur… mais quoi ? :euh:

Oui, j'ai plusieurs adresses sur ce NDD (donc celle utilisée par le script) qui reçoivent des mails tous les jours (c'est le NDD de mon site pro, donc j'ai plutôt intérêt à ce que ça fonctionne ! :p ).

Certes, mais il faut bien commencer quelque part :p

Deuxième question ? :)

Ton dédié arrive-t-il à résoudre ndd.com et à en trouver les champs MX ?

Si oui : on peut considérer que les DNS ne sont pas le souci (sauf oubli/erreur de ma part). Si non, c'est la configuration DNS de ton dédié qui est à revoir.

J'arrive à faire un whois et un nslookup depuis le dédié (via SSH) et j'ai des infos correctes, donc a priori oui…

Mais les mails sortants ne partent pas, y compris en PHP. Donc il y a une c***lle dans le potage ! :D

[EDIT] Les serveurs MX liés sont chez OVH par contre, donc je sais pas si c'est les bons :

mail exchanger = 5 mx2.ovh.net.
mail exchanger = 100 mxb.ovh.net.
mail exchanger = 1 mx1.ovh.net.

nslookup -query=mx ndd.com

Tu as donc un serveur de mail sur ton dédié ? Si c'est le cas, j'ai une autre question : un mail local arrive-t-il à un autre utilisateur ? Autrement dit, si l'utilisateur toto du dédié envoie un mail à tata qui est aussi sur le dédié, ça passe ?

Édit : ça me semble OK pour ta résolution DNS, au moins pour trouver les MX.

+0 -0

J'ai comme un doute sur le serveur de mail d'un coup…

J'ai installé mutt tout à l'heure, mais je me rappelle pas avoir installé autre chose ou alors c'était dans la commande d'install globale que j'ai lancée au début du serveur (en même temps qu'Apache, PHP et tout le tintouin)… :euh:

[EDIT] Je suis entrain d'installer Sendmail du coup, qui est géré par Webmin (qui est plutôt pratique pour pas faire de conneries quand on y connaît rien en sysadmin — comme moi)

Mutt c'est un MUA, ça sert à consulter/rédiger ses mails, mais ce n'est pas le logiciel qui envoie les mails. Au mieux, il sert d'interface (avec une commande pour dire "envoyer le mail").

C'était quoi la commande d'install que tu as lancée ?

Édit : si tu veux envoyer des mails sans avoir un serveur de mail installé sur ton dédié, il faut configurer ta machine pour qu'elle s'adresse à un autre serveur pour envoyer le mail. Si tu peux nous donner ta configuration de Mutt.

+0 -0

C'est tout ce qu'il y a à configurer dans sendmail ?

Probablement pas. Je répondais juste à ta question

Je vais voir comment gérer la config globale de mutt aussi, pour l'instant j'indique un fichier local…

D'après ça c'est une simple ligne dans ~/.muttrc des utilisateurs concernés.

Et au niveau des DNS, faut pas redirige les MX vers le dédié ?

Sauf erreur de ma part, c'est sendmail qui fera la résolution DNS et qui jouera le rôle de relais. Tu dois donc être capable de joindre les MX de l'adresse cible (contact@ndd.com), et ça, ça marche. Si tu souhaites recevoir du mail, par contre en effet, il faut que tu indiques dans ton DNS qui gère le courrier pour le domaine ndd.com.

En résumé, tu as ça : mutt => sendmail => sendmail joint le DNS de ndd.com et trouve le MX correspondant => sendmail fait suivre le courrier au serveur de mail indiqué par le champ MX (ici OVH).

Bon, j'ai tenté de configurer un peu tout ça et j'arrive à envoyer des mails via mail mais pas sendmail (et toujours pas mutt, en tout cas pas avec pièce jointe).

Si je lance la commande suivante, ça mouline puis j'obtiens une erreur :

1
echo "Coucou" | sendmail -s "This is a test" mon.mail@gmail.com

sendmail: RCPT TO:<This is a test@ndd.com> (555 syntax error (#5.5.4))

Sachant que l'adresse configurée pour l'envoi de sendmail est contact@ndd.com.

Par contre la commande suivante a fonctionné à un moment (avec une adresse d'envoi un peu foireuse et des mails qui passaient en spam, mais ça envoyait) mais ça n'a plus l'air de passer :

1
echo "Coucou" | mail -s "This is a test" mon.mail@gmail.com

Ah, c'est bien possible que je mélange les docs à la longue, entre mail, mutt et sendmail… :euh:

Alors on reprend : mail et mutt sont des MUA (Mail User Agent) qui servent à rédiger un mail et juste à le rédiger (comme Outlook par exemple). Quand on valide l'envoi, ils se contentent de le passer à un MTA (Mail Transfer Agent) comme sendmail, postfix et d'autres, dont le rôle est de transférer le courrier vers le MTA du destinataire.

Autrement dit : mutt => sendmail <=> sendmail (destinataire) => mutt (destinataire)

C'est un peu plus compliqué en vrai, mais l'idée est là.

Ton cas est un peu plus complexe. Ce que tu veux c'est envoyer des mails, sachant que les mails pour ton domaine sont gérés par OVH. Du coup, ton MTA (sendmail) de ton dédié, doit "juste" relayer les mails au MTA d'OVH. C'est-à-dire que tu es dans le cas suivant :

mutt => sendmail (le tien) => MTA OVH <=> MTA Gmail => mutt (destinataire)

Or :

send-mail: RCPT TO:mon.mail@gmail.com (553 sorry, that domain isn't allowed to be relayed thru this MTA (#5.7.1) (mail491.ha.ovh.net))

Littéralement : "553, désolé, ce domaine n'est pas autorisé à être relayé au travers ce de MTA".

Deux solutions :

  • Sendmail est mal configuré : il faut qu'il soit configuré en tant que relais SMTP. Pour cela, il faut que tu lui indiques qu'il doit relayer les mails de ton domaine vers OVH. Je ne connais pas sendmail, je ne peux pas te dire où ça se configure.

  • Si sendmail est bien configuré en tant que relais, alors c'est le serveur d'OVH qui refuse car le mail que tu lui demandes de traiter ne vient pas de son domaine et ne lui est pas destiné. Dans ce cas, il faudra lui faire croire via une réécriture de l'adresse destination que c'est bien pour adresse_destination@ndd.com.

Pourquoi OVH refuse-t-il de traiter un mail qui ne vient pas de chez lui et ne lui est pas destiné ? Tout simplement parce que c'est par le biais de serveurs qui l'acceptent que les spammeurs font leur travail.

Donc j'ai plus qu'à trouver si c'est sendmail ou OVH qui fait les choses de travers et à chercher pour résoudre tout ça…

OVH ne fait a priori rien de travers, c'est juste une protection. Un bon moyen d'avoir une piste, c'est de connaître ton adresse source. Je suis prêt à parier que ton dédié n'étant pas chez OVH, tu te retrouves avec une adresse source en @kimsufi.fr. Elle n'appartient pas à OVH, et tu ne lui destines pas non plus tes mails. À vérifier, mais ça me semble une bonne piste pour commencer.

Bon, après pas mal de péripéties j'y arrive enfin !

Au final j'ai du installer postfix, virer sendmail, ré-installer sendmail pour le stopper et le supprimer proprement, ré-installer postfix parce que sendmail avait écrasé sa config et voilà ! :D

J'ai donc un envoi de mail qui fonctionne, du moins pour PHP. Maintenant, à l'attaque du script de backup ! :pirate:

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte