Affichage des articles dont le libellé est reseau. Afficher tous les articles
Affichage des articles dont le libellé est reseau. Afficher tous les articles

dimanche 9 août 2009

[OVH] Le DynHost de OVH et updatedd

Je me suis heurté aujourd'hui à un bien grave problème. La synchronisation de mon IP dynamique (de chez SFR - anciennement neuf-cegetel) et d'un domaine OVH. Alors voilà la solution !

Tout d'abord il convient de se créer un compte DynHost. Pour cela je vous renvoi à la documentation d'OVH : http://guides.ovh.com/DynDns. Une foie notre compte créé et un domaine paramétré nous utiliserons comme le propose OVH l'utilitaire updatedd dont les sources sont téléchargeables à cette adresse : http://nongnu.askapache.com/updatedd/

Décompressons l'archive
~$ tar xvf updatedd_2.6.tar.gz


Avant d'installer l'utilitaire il convient de le modifier car il y a une petite erreur sur l'adresse de OVH. Pour cela modifier le fichier src/plugins/libovh.h.
~$ nano updatedd-2.6/src/plugins/libovh.h

A la ligne 24, il faudra modifier le ovh.com par www.ovh.com. Ainsi la ligne ressemblera à celle ci.

#define DYNDNSHOST "www.ovh.com"


Il ne nous reste qu'à installer updatedd maintenant.
~$ ./configure
~$ make
~$ su
Mot de passe :
# make install


L'utilisation pour OVH de updatedd ce passe comme suit :
updatedd ovh -- --ipv4 ip username:password host

J'ai donc rédigé un script bash pour vérifier l'IP actuelle, la comparer à l'ancienne et faire les mises à jour si c'est nécessaire. Le voici :

#!/bin/bash

## CONFIGURATION ##

# Connection to OVH DynHost
username=user
password=pass
host=my-host.tld

# How to log
# 1 = true, 0 = false
log_change=1
log_no_change=0
log_file=/var/log/dynhost.log

# File with old IP
old_ip_file=/var/cache/ip_old

# To avoid error "file not found"
touch ${old_ip_file}
touch ${log_file}


# Get Public IP
ip=`w3m -dump http://www.monip.org/ | awk -F': ' '/IP/ { print $2 }'`

# Get Old Public IP
ip_old=`cat ${old_ip_file}`


# Test if IPs are equal
if [ "${ip}" = "${ip_old}" ]
then
if [ "${log_no_change}" = "1" ]
then
echo `date`: No IP change was found >> ${log_file}
fi
else
echo ${ip} > ${old_ip_file}
if [ "${log_change}" = "1" ]
then
echo "`date`:IP has change. (Old : ${ip_old}, New : ${ip})" >> ${log_file}
updatedd ovh -- --ipv4 ${ip} ${username}:${password} ${host} >> ${log_file}
else
updatedd ovh -- --ipv4 ${ip} ${username}:${password} ${host}
fi
fi

Ensuite il suffit de placer ce script quelque part ;) (pour ma part dans /usr/local/bin) et de configurer un cron pour l'exécution périodique du script ;) !

Voilà bon courage !

PS : Je ne sais pas si j'ai fait une bonne utilisation des dossiers linux. Donc si quelqu'un d'avertis sur le sujet venait à passer par là je serai preneur d'informations !
PS2 : Le script n'est pas parfait, si j'ai du temps un jour j'en ferai un meilleur !

lundi 20 octobre 2008

[NFS] Installer un serveur de partage sous debian

Il est souvent utile de partager des données dans un réseau. Il existe de nombreuses méthodes pour ceci, je vais ici présenter l'installation d'un serveur de partage basé sur NFS (Network File System) et son utilisation pour les clients.
L'installation du serveur est assez simple car il suffit de faire un
aptitude install nfs-kernel-server

et le tour est joué.

La configuration des partages se fait dans /etc/exports. Pour plus d'informations sur la rédaction de ce fichier de configuration vous pouvez consulter le man
man exports


Pour faire simple voici la syntaxe de ce fichier :
partage utilisateur(options)


Chaque ligne représente un partage et nous pouvons spécifier un groupe d'utilisateur (@groupe) ou des adresses IP (avec ou sans masque de sous-réseau) à la place d'un simple utilisateur.
Il y a beaucoup d'options disponibles. Les plus féquentes sont :
rw : pour partager les fichiers en lecture/ecriture (par défaut ils sont en lecture seul)
sync et async qui permet de spécifier si le serveur doit répondre avant (async) ou après(sync) avoir écrit les données sur le disque. async est plus performant mais peut corrompre des fichiers en cas de plantage du serveur.
Par exemple pour partager tout les dossiers home des utilisateurs sur notre réseau local, nous pourrions rajouter dans le fichier /etc/exports
/home/ 192.168.1.0/255.255.255.0(rw, sync)


Le client pour monter son partage NFS doit tout d'abord installer nfs-common
aptitude install nfs-common

Ensuite il peut effectuer la commande
mount -t nfs serveur_nfs:partage destination

Exemple :
mount -t nfs 192.168.1.25:/home/ /mnt/home/

ainsi le dossier partagé /home sera monté dans /mnt/home

vendredi 26 septembre 2008

[Ubuntu] Connection au réseau au démarage

Si comme moi vous avez un serveur qui tourne sous ubuntu server (7.10) vous avez surement remarqué qu'il faut se connecter au réseau à chaque démarrage. Bien sur faire un dhclient c'est rapide mais ce n’est pas pratique quand on est à l'autre bout du globe et qu'on a accès à cette machine seulement via ssh ou tout simplement si on est faignant.
Pour ma part c'est la deuxième proposition qui m'a motivé à trouver une solution à ce problème.

Rien de bien compliqué, le but est d’effectuer une connexion au réseau au démarrage.

Pendant le démarrage, il est exécuté plusieurs scripts et l'un d’eux est /etc/init.d/rc.local. C'est le dernier script exécuté par l'init.

Nous allons donc éditer ce script avec la commande :
sudo nano /etc/init.d/rc.local

Il faut maintenant rajouter la ligne de connexion. Un "dhclient" fera l'affaire.
dhclient
Voila mais cette configuration n'est pas très propre à mon gout même si elle à le mérite de fonctionner. Nous allons donc aussi étudier l'édition du fichier /etc/network/interfaces et utiliser une configuration IP static (ce qui est préférable pour un serveur tout de même !!)

Donc éditons le fichier /etc/network/interfaces
sudo nano /etc/network/interfaces
Ici vous devez déjà avoir quelque ligne du style :
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
La première interface correspond à l'interface de loopback utilisé en local pour le System d'exploitation. La deuxième est notre interface à configurer.

Nous allons donc changer notre iface eth0 inet dhcp par
auto eth1
iface eth1 inet static
address 192.168.1.24
netmask 255.255.255.0
Il faut bien entendu que vous renseigner votre interface, votre adresse IP et votre masque à vous car ma config n'est surement pas la votre !
iface représente notre interface et sa méthode de connexion, address l’adresse IP et netmask le masque de sous réseau.

Et voila nous sauvegardons le tout et redémarrons et là, miracle ... notre ifconfig nous informe que nous somme correctement connecté !