Superthx Posté(e) le 18 juillet 2019 Posté(e) le 18 juillet 2019 (modifié) Je n'ai pas trouver d'option pour être averti automatiquement de changement de mon IP sur les produits synology. Donc je propose un script fonctionnel pour DSM et SRM. DSM Actuellement je suis sous DSM 6.2.2-24922 Update 2 Il va falloir crée un script dans le planificateur de tâches en tant que root dans configuration: Dans exécuter la commande mettez le script suivant. Je laisse la fréquence sur toutes les minutes. Dans cette exemple il creera 2 fichiers : ip.txt + message.txt(ce dernier s'efface automatiquement) Dans cette exemple il creera le fichier dans /volume1/administration/check_ip_wan/ Modifier le script selon l'endroit où vous voulez placer ces fichiers. #!/bin/bash file=/volume1/administration/check_ip_wan/ip.txt #indique ou se trouve ip.txt old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel ##Verifie que ip.txt existe, sinon creation du fichier## if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volume1/administration/check_ip_wan/ip.txtip.txt` `echo $insert_ip > /volume1/administration/check_ip_wan/ip.txt/ip.txt` fi ##Fin de verification que ip.txt existe## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt ##################### ### CONFIGURATION ### ##################### to="monmail@ndd.com" #changez par votre mail de destination from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination subject="Votre adresse IP publique (IPv4) a changé !\r\n" # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" ############## ### SCRIPT ### ############## if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volume1/administration/check_ip_wan/ip.txt` `echo $current_ip > /volume1/administration/check_ip_wan/ip.txt` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi SRM Actuellement je suis sou SRM 1.2.2-7915 avec un RT2600ac Actuellement SRM ne propose pas de fonction comme DSM pour une tâche planifiée. Donc va falloir utiliser crontab et créer ses fichiers. Activez l’accès ssh sur votre SRM (Panneau de configuration / Services). J'utilise actuellement une carte sd sur mon RT2600ac. Dans cette carte via File Station j'ai crée un répertoire scripts et un sous répertoire tmp dans script. Vous pouvez bien sur crée un répertoire directement dans la mémoire du routeur si vous utilisez pas de carte sd. Il vous suffit juste d'adapter le code à votre besoin. Rentrer en ssh en tant que avec putty sur votre routeur. faites ceci pour creer le fichier script : vi /volumeUSB1/usbshare1-1/scripts/ip_notify.sh chmod 755 ip_notify.sh appuyez sur i pour inserer le code suivant : #!/bin/sh file=/volumeUSB1/usbshare1-1/scripts/tmp/ip.txt #indique ou se trouve ip.txt old_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel ##Verifie que ip.txt existe, sinon creation du fichier## if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` `echo $insert_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` fi ##Fin de verification que ip.txt existe## current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verification de l'ip actuel old_ip=`cat /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` # destination du fichier ip.txt ##################### ### CONFIGURATION ### ##################### to="monmail@ndd.com" #changez par votre mail de destination from="Serveur xxxx <monmail@ndd.com>"#Nom de l'expediteur et changez par votre mail de destination subject="Votre adresse IP publique (IPv4) a changé !\r\n" # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` # destination du message temporaire messageFile="/volumeUSB1/usbshare1-1/scripts/tmp/message.txt" ############## ### SCRIPT ### ############## if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` `echo $current_ip > /volumeUSB1/usbshare1-1/scripts/tmp/ip.txt` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volumeUSB1/usbshare1-1/scripts/tmp/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi Maintenant il va falloir créer une tâche planifiée. Pour cela il va falloir ajouter une ligne dans crontab. faites : vi /etc/crontab insérer une nouvelle ligne comme ceci : * * * * * root /bin/sh /volumeUSB1/usbshare1-1/scripts/ip_notify.sh avec ceci le script vérifie automatiquement toutes les minutes si l'ip change. Remerciement : @Zeus Modifié le 22 juillet 2019 par Superthx Modification du script par celui de @Zeus 0 Citer
unPixel Posté(e) le 20 juillet 2019 Posté(e) le 20 juillet 2019 (modifié) Citation Je n'ai pas trouver d'option pour être averti automatiquement de changement de mon IP sur les produits synology. Bonjour, Je n'ai pas très bien compris le concept. Tu parles d'un changement d'adresse IP de quoi exactement ? Parce que tu as déjà sur nos syno une notification d'intégrée en cas de changement d'adresse ip. Panneau de configuration > Sécurité Modifié le 20 juillet 2019 par Zeus 0 Citer
Superthx Posté(e) le 21 juillet 2019 Auteur Posté(e) le 21 juillet 2019 (modifié) Il y a 21 heures, Zeus a dit : Parce que tu as déjà sur nos syno une notification d'intégrée en cas de changement d'adresse ip. Oui. Mais celui t'envoi un mail directement. Car je passe pas mon temps sur le bureau du DSM 😝. Car si tu as à comme un serveur DNS et l'ip change, tu peux modifier l'ip dynamique grâce à l'envoi du mail par exemple. Sinon decommenter la ligne comme ceci et laisser l'option cocher comme tu dis..... Il y a 21 heures, Zeus a dit : Panneau de configuration > Sécurité Modifié le 21 juillet 2019 par Superthx 0 Citer
unPixel Posté(e) le 21 juillet 2019 Posté(e) le 21 juillet 2019 Mais tu parles de quelle adresse IP stp ? Si tu parles de ton NAS ou même ton ordinateur, tu les mets en IP fixe dans ton serveur DHCP et tu n'auras pas de changement d'IP. 0 Citer
unPixel Posté(e) le 21 juillet 2019 Posté(e) le 21 juillet 2019 Il y a bien ce petit script en ssh mais je crois que la fonction mail ne fonctionne pas. #! /bin/bash #recuperation de l'ancienne ip adrip=$(grep [1-9] < /volume1/administration/check_ip_wan/ip.txt) #recuperation de la nouvelle ip adrip2=$(wget http://checkip.dyndns.org/ -O - | cut -d: -f 2 | cut -d\< -f 1) #test de l'ip if [ $adrip != $adrip2 ] then echo $adrip2 | xxxxx@ndd.tld else echo $adrip2 fi #mise a jour adresse dans le fichier echo $adrip2 > /volume1/administration/check_ip_wan/ip.txt 0 Citer
Superthx Posté(e) le 21 juillet 2019 Auteur Posté(e) le 21 juillet 2019 il y a 3 minutes, Zeus a dit : #! /bin/bash #recuperation de l'ancienne ip adrip=$(grep [1-9] < /volume1/administration/check_ip_wan/ip.txt) #recuperation de la nouvelle ip adrip2=$(wget http://checkip.dyndns.org/ -O - | cut -d: -f 2 | cut -d\< -f 1) #test de l'ip if [ $adrip != $adrip2 ] then echo $adrip2 | xxxxx@ndd.tld else echo $adrip2 fi #mise a jour adresse dans le fichier echo $adrip2 > /volume1/administration/check_ip_wan/ip.txt Je vais le tester plus tard. Peut être était il valid sous DSM 5. Je sais pas. Mais sous DSM 6 et SRM la fonction d'envoi de mail est différente....... 0 Citer
unPixel Posté(e) le 21 juillet 2019 Posté(e) le 21 juillet 2019 Ok, tiens moi au courant stp car cette fonction m'intéresse mais je n'ai pas les connaissances pour faire fonctionner cette partie d'envoi 😉 0 Citer
unPixel Posté(e) le 21 juillet 2019 Posté(e) le 21 juillet 2019 (modifié) Je reviens avec de bonnes nouvelles 🙂 Je suis en train de finir le script. N'ayant pas de grandes connaissances, j'ai prit des petits bouts par ci par là et je le façonne à ma façon. Encore une petite erreur à régler dans la génération du mail et c'est tout bon. J'ai une partie du corps du message qui se met dans le sujet grrrr Modifié le 21 juillet 2019 par Zeus 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Je viens de relire la conversation et je suis complètement à la ramasse. Je pensais au départ que tu posais des questions et je n'avais pas du tout remarqué que tu avais posté un tuto 😂 Et depuis hier, je bosse sur un script similaire au tien en plus (on a les même sources ?)... Par contre, dans ton script, tu supprimes le fichier txt. Comment fait-il pour comparer avec un possible changement ? De mon côté, le fichier qui contient l'adresse IP reste présent et la comparaison se fait directement avec ce qui est contenu dans le fichier. C'est d'ailleurs en modifiant cette IP que le script est fonctionnel en demo de mon côté car j'ai une IP fixe (non garantie par SFR). Autre chose, tu ne précises pas la configuration de "ssmtp" dans ton tuto, tu devrais ajouter cette étape avec la configuration des deux fichiers. De mon côté, ils étaient vide donc je suppose que ça l'est pour tout le monde de base. Mon script mais qui n'est pas à 100% fonctionnel sur l'affichage dans le mail (from, to et subject se retrouve dans le corps du message : #!/bin/sh current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # configuration to="destinataire@ndd.tld" from="Serveur xxxx <expediteur@ndd.tld>\r\n" subject="Changement d'adresse IP publique (IPv4)" if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volume1/administration/check_ip_wan/ip.txt` `echo $current_ip > /volume1/administration/check_ip_wan/ip.txt` body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\n Votre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` `echo -e "From:$from\nTo:$to\nSubject:$subject\n\n$body" | /usr/bin/ssmtp destinataire@ndd.tld` #adresse mail du destinataire fi EDIT : d'ailleurs, j'ai testé ton script et il est pas fonctionnel de mon côté. Si tu as prit celui qui est sur Github, il ne fonctionnait déjà pas avec mes essais Modifié le 22 juillet 2019 par Zeus 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 il y a 8 minutes, Zeus a dit : Et depuis hier, je bosse sur un script similaire au tien en plus (on a les même sources ?)... J'avais repris un ancien script de mon ASUS RT. il y a une heure, Zeus a dit : Par contre, dans ton script, tu supprimes le fichier txt. Comment fait-il pour comparer avec un possible changement ? Je suis con. Tu as raison. Au debut le script devais se lancer au demarrage du routeur. Mais je ne trouve pas d'info pour lancer un script au demarrage du routeur. On aurait sleep pour eviter crontab. il y a une heure, Zeus a dit : Autre chose, tu ne précises pas la configuration de "ssmtp" dans ton tuto, tu devrais ajouter cette étape avec la configuration des deux fichiers. De mon côté, ils étaient vide donc je suppose que ça l'est pour tout le monde de base. Pas besoin de fichiers pour ssmtp, car il le cree le fichier ip_current.txt et l'efface derriere avec rm. messageFile="/volumeUSB1/usbshare1-1/scripts/tmp/ip_current.txt" echo -e "To:${emailtoaddr}">${messageFile}; echo -e "From:${emailfromname}">>${messageFile}; echo -e "Subject:${emailsubject}">>${messageFile}; echo -e "The New IP is ${ip}" >> ${messageFile}; ssmtp -v ${emailtoaddr} < /volumeUSB1/usbshare1-1/scripts/tmp/ip_current.txt; rm ${messageFile} Je modifie le script et je reviens. 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Voilà le script que j'ai modifié à ma sauce et qui fonctionne maintenant parfaitement 🙂 Peut-être moche aux yeux des pros de bash, je ne sais pas... Fonctionnement du script : Consulte le service Amazon pour obtenir l'adresse IP WAN Compare l'adresse IP inscrite dans le fichier ip.txt (si pas de fichier alors il le crée) Si l'adresse IP est nouvelle (premier lancement du script) ou la même, il ne fait rien. Si l'adresse IP change, il l'inscrit dans le fichier ip.txt à la place de l'ancienne et il envoi un mail pour prévenir de la nouvelle adresse IP. #!/bin/sh current_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt ##################### ### CONFIGURATION ### ##################### to="destinataire@ndd.tld" from="Serveur xxx <expediteur@ndd.tld>" subject="Votre adresse IP publique (IPv4) a changé !\r\n" # contenu du message body=`printf "Bonjour,\r\n\rVotre adresse IP publique a changé !\r\n\r\nVotre ancienne adresse IP était : $old_ip\r\nVotre nouvelle adresse IP est : $current_ip\r\n\r\nCordialement..."` # destination du message temporaire messageFile="/volume1/administration/check_ip_wan/message.txt" ############## ### SCRIPT ### ############## if [ "$old_ip" != "$current_ip" ]; then # création du fichier ip.txt et envoi d'un mail avec les informations `touch /volume1/administration/check_ip_wan/ip.txt` `echo $current_ip > /volume1/administration/check_ip_wan/ip.txt` echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi Modifié le 22 juillet 2019 par Zeus 0 Citer
PPJP Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Bonjour; Juste une remarque. Ne trouvez vous pas qu'il y ai un risque a transmettre son adresse IP en clair par mail? Pour ma part j'ai un script ( pour Zeus: en python bien sur!) qui envoie également cette info de changement d'IP. Mais dans celui-ci cette IP est codée (à ma sauce!!!). Je sais, je suis très parano!!! 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Tu as un script pour moi, c'est gentil dis donc 😍 C'est quand même pas le script pour le certificat wildcard ? Si ? Quant au risque, je ne crains pas trop non. Ce n'est qu'une adresse IP. Les admins et possiblement les modérateurs sur ce forum ont notre IP WAN par exemple ainsi que tous les sites visités sans compter les différents services appelés dans leurs scripts. Mon mail part normalement en SSL. Après vérification, je confirme qu'il part bien chiffré. Modifié le 22 juillet 2019 par Zeus 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 (modifié) Modification, verifie si tu veux: Mais dans ton code il recree à chaque fois le fichier ip.txt. Non ? ############## ### SCRIPT ### ############## file=/volume1/administration/check_ip_wan/ip.txt insert_ip=`curl -silent -L http://checkip.amazonaws.com|tail -n 1` #verifie l'ip actuel if test -f "$file"; then echo "$file exist" else echo "create $file" `touch /volume1/administration/check_ip_wan/ip.txt` `echo $insert_ip > /volumeUSB1/usbshare1-1/scripts/tmp/current_ip.txt` fi old_ip = `/volume1/administration/check_ip_wan/ip.txt` if [ "$old_ip" != "$current_ip" ]; then echo -e "to:${to}">${messageFile}; echo -e "from:${from}">>${messageFile}; echo -e "subject:${subject}">>${messageFile}; echo -e "${body}" >> ${messageFile}; ssmtp -v ${to} < /volume1/administration/check_ip_wan/message.txt; rm ${messageFile} else echo "Adresse IP non changé !" fi Modifié le 22 juillet 2019 par Superthx 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Non je crois pas. Je dirais qu'il ne crée qu'une seule fois le fichier et le met à jour au fur et à mesure. Mais encore une fois, je suis pas expert en bash. 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 il y a 12 minutes, PPJP a dit : Pour ma part j'ai un script ( pour Zeus: en python bien sur!) qui envoie également cette info de changement d'IP Partage SVP il y a 5 minutes, Zeus a dit : Tu as un script pour moi, c'est gentil dis donc 😍 Je veux bien aussi 0 Citer
PPJP Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Non, Ce n'est pas le script pour le wildcard. D'ailleurs ou en est-il? Il y a longtemps que je n'ai pas de retour de votre part. L'envoi de mail est chez moi programmé dans un modulePython3 qui est appelé par plusieurs scripts. En particulier un qui tiens à jour mon IP dans les DNS de mes domaines. En effet GANDI ne propose pas de DDNS. 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) C'est normal si tu n'as pas eu de nouvelles depuis, il ne veut pas faire de renouvellement. Il m'indique à chaque fois dans le log que le certificat est trop récent. Donc j'attends maintenant 😁 Mais ne t'inquiète pas, je te laisse pas sans réponse... Pour ton script IP en python, je crois que tu m'en avais peut-être déjà parlé mais je l'avais jamais vu. En même temps, j'en avais pas l'utilité à la base car à l'époque j'étais encore en full ip fixe chez Free. Modifié le 22 juillet 2019 par Zeus 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 il y a 3 minutes, PPJP a dit : L'envoi de mail est chez moi programmé dans un modulePython3 qui est appelé par plusieurs scripts. A part telecharger un package pour SRM de python............. Je suis preneur. 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Je viens de vérifier et mon script crée qu'une seule fois le fichier puis le modifie à la volée si changement d'IP 😉 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 @Zeuspeux tu m'envoyer ton script ? Car j'ai une erreur EOF et je vois pas ou est l'erreur SVP. Merci 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 (modifié) Regarde là, je l'ai posté au dessus dans le fil de la conversation : Modifié le 22 juillet 2019 par Zeus 0 Citer
Superthx Posté(e) le 22 juillet 2019 Auteur Posté(e) le 22 juillet 2019 Je confirme ce que je disait avant. Il cree le fichier mais apres car j'ai cat: can't open '/volumeUSB1/usbshare1-1/scripts/tmp/ip.txt': No such file or directory car tu as : old_ip=`cat /volume1/administration/check_ip_wan/ip.txt` # destination du fichier ip.txt hors ce fichier n'existe pas. Mais c'est pas grave car après tu as touch qui le crée. Je modifie le tuto dans la soirée. C'est ok ? 0 Citer
unPixel Posté(e) le 22 juillet 2019 Posté(e) le 22 juillet 2019 Oui c'est ça. La tout première fois d'ailleurs, il crée le fichier mais ensuite il ne fait que modifier l'IP a l'intérieur si besoin. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.