Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
gnu_linux:raspberry:ip_dynamique_et_dns [2021/11/18 11:13] – créée fate | gnu_linux:raspberry:ip_dynamique_et_dns [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== IP dynamique et DNS ====== | ====== IP dynamique et DNS ====== | ||
- | J’ai depuis | + | J’ai depuis |
Il existe des sites comme DynDNS ou No-IP qui propose de lier l’IP de votre box à un sous-domaine chez eux afin de connaitre facilement votre IP. Mais je préfère utiliser un système que j’héberge moi-même plutôt que d’utiliser un service tiers. | Il existe des sites comme DynDNS ou No-IP qui propose de lier l’IP de votre box à un sous-domaine chez eux afin de connaitre facilement votre IP. Mais je préfère utiliser un système que j’héberge moi-même plutôt que d’utiliser un service tiers. | ||
Ligne 23: | Ligne 23: | ||
<code bash> | <code bash> | ||
- | * -a HMAC-SHA512 : indique l’algorithme utilisé pour le hachage, SHA-512 qui fait parti de la famille SHA2 | + | * -a HMAC-SHA512 : indique l’algorithme utilisé pour le hachage, SHA-512 qui fait partie |
* -b 512 : indique le nombre de bit de la clé, 512 ici. | * -b 512 : indique le nombre de bit de la clé, 512 ici. | ||
- | * -n HOST : j’ai pas vraiment compris la différence entre tous les choix possible | + | * -n HOST : j’ai pas vraiment compris la différence entre tous les choix possibles |
A la fin de la commande, on indique le nom de clé. | A la fin de la commande, on indique le nom de clé. | ||
Ligne 55: | Ligne 55: | ||
</ | </ | ||
- | Ces lignes servent à indiquer à Bind, le serveur DNS, la clé à utiliser pour sécuriser les échanges. Après “key” il faut bien évidemment indiquer le nom que vous avez utiliser | + | Ces lignes servent à indiquer à Bind, le serveur DNS, la clé à utiliser pour sécuriser les échanges. Après “key” il faut bien évidemment indiquer le nom que vous avez utilisé |
- | De même, si vous avez utiliser | + | De même, si vous avez utilisé |
Ouvrez le fichier / | Ouvrez le fichier / | ||
Ligne 104: | Ligne 104: | ||
Pour mettre à jour le DNS, on va utiliser l’utilitaire nsupdate. | Pour mettre à jour le DNS, on va utiliser l’utilitaire nsupdate. | ||
- | Sur le Raspberry, tapez la commande suivante en indiquant votre clé privé | + | Sur le Raspberry, tapez la commande suivante en indiquant votre clé privée |
<code bash> | <code bash> | ||
La clé publique (le fichier en .key) doit être situé dans le même dossier. | La clé publique (le fichier en .key) doit être situé dans le même dossier. | ||
- | Ensuite, tapez les commandes suivantes | + | Ensuite, tapez les commandes suivantes |
<code bash> | <code bash> | ||
<code bash> | <code bash> | ||
Ligne 114: | Ligne 114: | ||
La première ligne sert à indiquer quelle zone DNS on va modifier et la seconde indique qu’on va modifier le sous-domaine monip.memodugeek.info afin de le faire pointer vers l’adresse 0.0.0.0. Évidemment ces lignes sont à modifier en fonction de votre nom de domaine. | La première ligne sert à indiquer quelle zone DNS on va modifier et la seconde indique qu’on va modifier le sous-domaine monip.memodugeek.info afin de le faire pointer vers l’adresse 0.0.0.0. Évidemment ces lignes sont à modifier en fonction de votre nom de domaine. | ||
- | Maintenant tapez la commande suivante | + | Maintenant tapez la commande suivante |
<code bash> | <code bash> | ||
Ligne 132: | Ligne 132: | ||
</ | </ | ||
- | Pour mettre à jour le DNS, tapez la commande suivante | + | Pour mettre à jour le DNS, tapez la commande suivante |
< | < | ||
Ligne 156: | Ligne 156: | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
- | # Teste si l'ip publique a été modifiée et met à jour l' | + | # Teste si l'IP publique a été modifiée et met à jour l' |
# Utilise la clé TSIG | # Utilise la clé TSIG | ||
# François Grange 2012 | # François Grange 2012 | ||
Ligne 174: | Ligne 174: | ||
# Fonction de gestion des message d' | # Fonction de gestion des message d' | ||
sortie() { | sortie() { | ||
- | # Si erreur de mise à jour, on envoi un mail indiquant qu'il y a eu une erreur avec le fichier d' | + | # Si erreur de mise à jour, on envoie |
if [ $1 -eq 1 ]; then | if [ $1 -eq 1 ]; then | ||
echo "Une erreur est survenue lors de la mise à jour du DNS. Le message d' | echo "Une erreur est survenue lors de la mise à jour du DNS. Le message d' | ||
- | # Si changement d'IP, on envoi un mail avec la nouvelle IP | + | # Si changement d'IP, on envoie |
else | else | ||
cat $TMP_FILE | mail -s " | cat $TMP_FILE | mail -s " | ||
Ligne 218: | Ligne 218: | ||
</ | </ | ||
- | Ce script provient de [[http:// | + | Ce script provient de [[http:// |
- | Tout ce que vous avez besoin de modifier, ce sont les lignes ADMIN, ZONE, RR, LAST_IP_FILE, | + | Tout ce que vous avez besoin de modifier, ce sont les lignes ADMIN, ZONE, RR, LAST_IP_FILE, |
* ADMIN : adresse mail de l’administrateur | * ADMIN : adresse mail de l’administrateur | ||
* ZONE : nom de domaine principal. Ne pas indiquer le sous-domaine ici. | * ZONE : nom de domaine principal. Ne pas indiquer le sous-domaine ici. | ||
* RR : le sous-domaine. On récupère le nom de domaine principal via la variable “$ZONE”, | * RR : le sous-domaine. On récupère le nom de domaine principal via la variable “$ZONE”, | ||
- | * LAST_IP_FILE, | + | * LAST_IP_FILE, |
Pour résumer, ce script va récupérer l’adresse IP publique, vérifier si elle est différente de la dernière envoyée au serveur DNS et, si c’est le cas, envoyer la nouvelle IP publique au serveur DNS afin qu’il mette à jour le sous-domaine. Une fois la mise à jour faite avec succès, un mail contenant l’ancienne et la nouvelle IP publique sera envoyé à l’admin. | Pour résumer, ce script va récupérer l’adresse IP publique, vérifier si elle est différente de la dernière envoyée au serveur DNS et, si c’est le cas, envoyer la nouvelle IP publique au serveur DNS afin qu’il mette à jour le sous-domaine. Une fois la mise à jour faite avec succès, un mail contenant l’ancienne et la nouvelle IP publique sera envoyé à l’admin. | ||
Ligne 230: | Ligne 230: | ||
Si une erreur est détectée lors de la mise à jour, un mail sera envoyé à l’admin avec le fichier d’erreur en pièce jointe. | Si une erreur est détectée lors de la mise à jour, un mail sera envoyé à l’admin avec le fichier d’erreur en pièce jointe. | ||
- | Pour récupérer l’adresse IP, je passe par un service maison. Je la récupère grâce à une page php que j’ai uploadée sur le site et qui contient le code suivant : | + | Pour récupérer l’adresse IP, je passe par un service maison. Je la récupère grâce à une page PHP que j’ai uploadée sur le site et qui contient le code suivant : |
<code php><? | <code php><? | ||
Ligne 236: | Ligne 236: | ||
<code bash> | <code bash> | ||
Vous pouvez soit utiliser la page hébergée sur mon serveur, soit en créer une et l’héberger sur votre serveur. | Vous pouvez soit utiliser la page hébergée sur mon serveur, soit en créer une et l’héberger sur votre serveur. | ||
- | Si vous avez besoin de récupérer l'IP publique IPV6, vous pouvez | + | Si vous avez besoin de récupérer l'IP publique IPV6, vous pouvez |
<code bash> | <code bash> | ||
Ligne 249: | Ligne 249: | ||
Le script va s’exécuter toutes les 10 minutes. | Le script va s’exécuter toutes les 10 minutes. | ||
- | Comme je le disais plus tôt, ce script envoi des mails, il faut donc que votre Raspberry puisse envoyer des mails. Si ce n’est pas le cas, je vous conseille msmtp qui permet d’envoyer des mails en passant par le serveur | + | Comme je le disais plus tôt, ce script envoi des mails, il faut donc que votre Raspberry puisse envoyer des mails. Si ce n’est pas le cas, je vous conseille msmtp qui permet d’envoyer des mails en passant par le serveur |
Pour l’installer, | Pour l’installer, | ||
Ligne 280: | Ligne 280: | ||
[[http:// | [[http:// | ||
+ | |||
[[https:// | [[https:// | ||
+ | |||
[[https:// | [[https:// | ||