Archives de la catégorie ‘Haute disponibilite’

BASH to SYSLOG

Publié: 29 juin 2015 dans Haute disponibilite

D’un point de vue sécurité, on peut être amené à scruter les commandes exécutées par les techniciens informatiques. On ne voit pas ici une sorte de BIG BROTHER, mais il peut arriver qu’un changement entraine des dysfonctionnements.

Dans ce cas, savoir qui a envoyé quelle commande et quand s’avère une source cruciale d’information.

La mise en œuvre est très simple.

1. Modification de /etc/bashrc

echo « export HISTTIMEFORMAT=’%F %T  »>>/etc/bashrc
echo « export PROMPT_COMMAND=’RETRN_VAL=\$?;logger -p local6.info \ »<LE TAG> : \$(whoami) [\$\
$]: \$(history 1 | sed \ »s/^[ ]*[0-9]\+[ ]*//\ » ) [\$RETRN_VAL]\ »‘ « >>/etc/bashrc

On ajoute un TAG <LE TAG> qui nous permettra de rediriger ces évènements vers un fichier SYSLOG particulier.

2. Modification dy fichier /etc/syslog-ng.conf

Notre serveur SYSLOG : monsyslog

sed -i ‘/# Redirection vers server de log/ d’ /etc/syslog.conf
sed -i ‘/\*.\*/ d’ /etc/syslog.conf
echo « #Log des commandes shell »>>/etc/syslog.conf
echo « local6.* @monsyslog »>>/etc/syslog.conf
echo «  »>>/etc/syslog.conf
echo « # Redirection vers server de log »>>/etc/syslog.conf
echo « *.* @monsyslog »>>/etc/syslog.conf

Et on redémarre le service SYSLOG

/etc/init.d/syslog restart

Commandes Linux

Publié: 12 décembre 2013 dans Haute disponibilite

Espace disque :

Afficher l’occupation disque des 30 premiers dossiers les plus volumineux, triée par ordre croissant et afficher la somme :

du -sm  * | sort -nr | head -30 && du -sm  * | sort -nr | head -30 | awk '{somme+=$1} END {print somme}'

1. Pourquoi mettre en place un cluster failover DHCP ?

Nous avons vu dans l’article consacré à l’implémentation d’un serveur DHCP que cet élément d’infrastructure fournit la configuration réseau des postes de travail (et serveurs si vous le souhaitez). AInsi, lorsqu’une station de travail démarre ou renouvelle son bail, elle s’adresse au serveur DHCP qui se charge de lui fournir sa configuration et son bail.

Que se passe-t-il si le serveur est down ? les stations de travail déjà configurée ne modifieront pas leur configuration. Par contre, les nouvelles machines se retrouveront avec une adresse IP en 169.1.1.1 et ne pourront pas se connecter au réseau.

2. Préparation des serveurs DHCP

Nous installerons 2 serveurs DHCP identiques (cf DHCP – Dynamic Host Configuration Protocol).

Les deux serveurs DHCP1 et DHCP2 doivent être synchronisées (cf NTP : Serveur de temps)

Rappel :

Pour ce faire, vous devez tout d’abord installer le service NTPD sur chacun des  serveurs à synchroniser, puis les configurer comme suit :

Dans le fichier /etc/ntp.conf, ajoutez :
server adresse IP de votre serveur de temps
puis redémarrez votre service NTPD.

A ce stade, vous disposez de deux serveurs DHCP, synchronisés sur la même horloge et qui fournissent tous deux la même plage d’IP.

Si une station de travail se connecte à cet instant, elle prendra sa configuration auprès du serveur DHCP qui répondra le plus rapidement. Nous verrons ensuite le mode de fonctionnement en cas de fourniture d’une adresse IP déjà occupée.

3. Configuration du cluster failover

DHCP1 et DHCP ont le fichier de configuration /etc/dhcp3/dhcpd.conf suivant :

On suppose que DHCP1 a l’adresse IP 192.168.1.21 et DHCP2 à l’adresse IP 192.168.1.22

Fichier de configuration de base :

option domain-name "mondomaine.priv";
option domain-name-servers 192.168.0.10, 194.168.0.11;
option routers 192.168.0.1;
default-lease-time 3600;
max-lease-time 3600;

authoritative; 

subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.200 192.168.0.254;
}

Configuration de DHCP1 :

option domain-name "mondomaine.priv";
 option domain-name-servers 192.168.0.10, 194.168.0.11;
 option routers 192.168.0.1;
 default-lease-time 3600;
 max-lease-time 3600;
 authoritative;
 
failover peer "dhcp-failover" {
 primary;
 address 192.168.0.21;
 port 647;
 peer address 192.168.0.22;
 peer port 847;
 max-response-delay 60;
 max-unacked-updates 10;
 load balance max seconds 3;
 mclt 3600;
 split 128;
 }
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.200 192.168.0.254;
 }

Configuration de DHCP2 :

option domain-name "mondomaine.priv";
option domain-name-servers 192.168.0.10, 194.168.0.11;
option routers 192.168.0.1;
default-lease-time 3600;
max-lease-time 3600;
authoritative;
 
failover peer "dhcp-failover" {
 secondary;
 address 192.168.0.22;
 port 847;
 peer address 192.168.0.21;
 peer port 647;
 max-response-delay 60;
 max-unacked-updates 10;
 load balance max seconds 3;
 }
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.200 192.168.0.254;
 }

puis :

DHCP1 # /etc/init.d/dhcp3server restart   
DHCP2 # /etc/init.d/dhcp3server restart 

Différence entre DHCP1 et DHCP2 : pour DHCP1, on indique en premier l’adresse IP du primaire et ensuite l’adresse IP du pair (secondaire).
On ajoute (uniquement pour le primaire) les paramètres mclt et split.
Pour DHCP2, on indique l’adresse IP du secondaire puis l’adresse IP du pair (primaire).

3. Mode de fonctionnement

En temps normal, le serveur DHCP1 est le seul serveur DHCP à répondre. Il détient l’autorité pour fournir les configurations réseaux et la « base de données » des adresses IP attribuées.

Le serveur DHCP1 s’arrête alors le serveur DHCP2 devient autoritée. Il détient l’autorité pour fournir les configurations réseaux et la « base de données » des adresses IP attribuées. Attention : cette « base de données » est alors VIDE.

Lorsqu’une station de travail se présente et demande sa configuration IP, le serveur lui attribue une adresse IP « disponible ». SI cette dernière est en cours d’utilisation, la station de travail renvoi un message DHCPDECLINE. Le serveur secondaire enregistre que l’adresse IP est utilisée et attribue une autre adresse IP « disponible ».

1. Pourquoi mettre en oeuvre un serveur DHCP ?

DHCP signifie Dynamic Host Configuration Protocol.

Il s’agit d’un protocole qui permet à un ordinateur qui se connecte sur un réseau IP d’obtenir dynamiquement et automatiquement sa configuration IP. Le but principal étant la simplification de l’administration d’un réseau.

Le serveur DHCP fournit des adresses IP au format IPv4 (ex : 192.168.0.1/24) mais peut tout à fait fournir au format IPv6. Tout est question de configuration et de taille de parc informatique.

Comme tout protocole, DHCP est régit par des RFCs qui sont :

– RFC951 : Bootp
– RFC1497 : Options vendor extensions
– RFC1541 : Définition du protocole Dhcp
– RFC1542 : Interaction entre Bootp et Dhcp
– RFC2131 : Complément à la Rfc 1541
– RFC2132 : Complément aux options vendor extensions

2. Elément de l’infrastructure de votre système d’information

Vous l’aurez compris, le serveur DHCP est un élément fondamental de votre infrastructure. Néanmoins, j’émets une réserve sur la suite du document.

En effet, ce tutoriel vous guidera sur l’installation, la configuration et le maintien en conditions opérationnelles d’un serveur DHCP sous Linux.

Or, si dans votre infrastructure vous disposez également de services à publier, comme Exchange par exemple, je vous conseille d’utiliser le serveur DHCP intégré à l’Active Directory. Ce dernier offre plusieurs interfaces entre votre AD, votre serveur de messagerie et vos stations de travail.

3. Mode de fonctionnement

Le protocole DHCP repose sur 8 types de requêtes :

DHCPDISCOVER : permet aux clients de localiser les serveurs DHCP (ils obtiennent l’adresse IP du serveur DHCP qui réponds le plus rapidement)
DHCPOFFER : réponse du serveur qui fournit les premiers paramètres
DHCPREQUEST : requête du client pour prolonger son bail
DHCPDECLINE : le client annonce au serveur que l’adresse IP fournie par le serveur est déjà utilisée
DHCPACK : réponse du serveur au client avec les paramètres IP
DHCPNACK : réponse du serveur pour annoncer au client que le bail est échu ou que le serveur acquite le message DHCPDECLINE : message envoyé par le client au serveur et l’informant que l’adresse IP fournie est déjà utilisée
DHCPRELEASE : le client relache son adresse IP
DHCPINFORM : message du client qui demande les paramètres locaux. Le client a déjà son adresse IP

La première requête émise par le client est un message DHCPDISCOVER. Le serveur répond par un DHCPOFFER, en particulier pour soumettre une adresse IP au client. Le client établit sa configuration, demande éventuellement d’autres paramètres, puis fait un DHCPREQUEST pour valider son adresse IP. Le serveur répond simplement par un DHCPACK avec l’adresse IP pour confirmation de l’attribution. Normalement, c’est suffisant pour qu’un client obtienne une configuration réseau efficace, mais cela peut être plus ou moins long selon que le client accepte ou non l’adresse IP ou demande des infos complémentaires…

4. Installation du serveur DHCP

Très simple à installer, ouvrez un shell en tant que ROOT, puis :

# apt-get install dhcp3-server

Par défaut, votre nouveau serveur DHCP écoutera sur la première interface réseau (c à d eth0). Pour corriger cette configuration :

# dpkg-reconfigure dhcp3-server

ou

Modifiez le fichier de configuration /etc/default/dhcp3-server

5. Configuration du serveur

Le fichier de configuration du serveur dhcp est « /etc/dhcp3/dhcpd.conf »

Je conseille pour commencer de faire une copie de sauvegarde de ce fichier. Ensuite, vous pouvez effacer ou commenter les lignes existantes et ajouter les lignes suivantes :

option domain-name "mondomaine.priv";
option domain-name-servers 192.168.0.10, 194.168.0.11;
option routers 192.168.0.1;
default-lease-time 3600;
max-lease-time 3600;
authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
     range 192.168.0.200 192.168.0.254;
 }

La première ligne permet de fournir aux clients le nom du domaine.

La ligne suivante donne aux clients le ou les serveurs DNS.

La ligne suivante donne l’adresse de la passerelle par défaut

La ligne suivante donne le délai du bail en secondes. Il est préférable d’augmenter la valeur par défaut pour limiter le trafic sur le réseau.

Le max-lease-time est le temps maximum de votre bail. Si vous configurez un default-lease-time à 10000 secondes et un max-lease-time à 4000 secondes, vos clients auront un bail maximum de 4000 secondes.Les 4 dernières lignes permettent d’indiquer la plage d’adresses gérée par le serveur dhcp :

La ligne «  authoritative  » permet d’indiquer que le serveur DHCP sera responsable de la zone concernée

Une fois la configuration terminée, il faut démarrer ou redémarrer le démon pour prendre en compte les modifications :

# /etc/init.d/dhcp3-server restart

Si le démarrage retourne une erreur, il faut penser à consulter les logs :

# tail -f /var/log/syslog

Le fichier suivant donne la liste des adresses IP délivrées par le serveur.

Pour chaque adresse IP l’on retrouve : son adresse mac, le nom de l’ordinateur, la date de début et de fin du bail :

/var/lib/dhcp3/dhclient.leases 

6. Configuration avancée

  • Configuration des logs : ajouter dans /etc/dhcp3/dhcpd.conf l’instruction : log-facility local7

L’instruction log-facility local7 indique un fichier de log de niveau debug mais toujours dans le fichier /var/log/syslog.

On sépare ensuite les logs DHCP dans un fichier nommé dhcpd.log.

Dans le fichier /etc/syslog.conf :

local7.*     /var/log/dhcpd.log

Onrelance le daemon syslog :

# /etc/init.d/sysklogd restart
  • DNS dynamique
### DNS Dynamique
 ddns-updates on;
 ddns-update-style interim;
 ### Pour autoriser les adresses fixes à s'inscrire dans le DNS
 update-static-leases on;
 ddns-domainname "mondomaine.priv";
  • Plusieurs zones DNS

Vous pouvez ajouter les différentes zones DNS (ex : chezmoi.mondomaine.priv, monvoisin.mondomaine.priv, toto.mondomaine.priv). L’intérêt est de permettre une résolution plus rapide.

Ajouter dans le fichier /etc/dhcp3/dhcpd.conf :

# zone chezmoi.mondomaine.priv pour résolution rapide
 zone monvoisin.mondomaine.priv. {
 primary 100.11.0.10;                                                #serveur DNS primaire de la zone chezmoi.mondomaine.priv
 }
# zone monvoisin.mondomaine.priv pour résolution rapide
 zone monvoisin.mondomaine.priv. {
 primary 101.11.0.10;                                               #serveur DNS primaire de la zone monvoisin.mondomaine.priv
 }
# zone toto.mondomaine.priv pour résolution rapide
 zone monvoisin.mondomaine.priv. {
 primary 102.11.0.10;                                               #serveur DNS primaire de la zone toto.mondomaine.priv
 }
  • Auto-configuration du proxy
### Autodetection du proxy
 option wpad-url code 252 = text;
 option wpad-url "http://monserveurapache/proxy.pac";

### Autodetection du proxy
option local-pac-server code 252 = text;
option local-pac-server "http://proxy/wpad.dat";

7. Comment avoir des IP fixes avec un serveur DHCP

Le protocole DHCP offre la possibilité d’attribuer un adresse IP fixe à un ordinateur configuré en DHCP.

Cas d’utilisation : une station de travail avec un accès particulier, un serveur

Pour cela, il faut ajouter dans le fichier /etc/dhcp3/dhcpd.conf, de nouvelles lignes.

L’exemple suivant permet de fixer une adresse IP en fonction de son adresse MAC :

host MASTATION  {
 hardware ethernet 00:11:22:33:aa:bb;
 fixed-address 192.168.0.110;
 }

Redémarrer le démon pour prendre en compte les modifications :

/etc/init.d/dhcp3-server restart

8. Configuration des postes clients

  • OS Linux :
  • Fichier de configuration : /etc/network/interfaces
  • Contenu :

auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp

  • Post-installation :
# /etc/init.d/networking restart
  • OS Windows :

Menu Démarrer >> Panneau de configuration >> Réseau

Cliquez sur « Obtenir une adresse IP dynamiquement

9. Comment vérifier que le client est correctement configuré

Sur un poste client linux, la commande suivante, permet de connaître la configuration IP et également de retrouver l’adresse MAC :

ifconfig

Sur un poste client Windows, la commande est la suivante :

ipconfig /all

La consultation des logs sur le serveur en temps réel (avec le paramètre -f), permet également de vérifier que tout fonctionne correctement :

tail -f /var/log/message

La virtualisation d’un système d’exploitation permet aujourd’hui d’exploiter au mieux les configurations matérielles disponibles de nos jours. Je pense principalement à la multiplication des coeurs au sein d’un même serveur et de la RAM qui les accompagne.

La virtualisation peut alors s’appuyer sur VMware, Microsoft ????, ou encore sur LXC.

D’ailleurs, on ne parle plus de VM ou de machine virtuelle mais plutôt de container 😉

1. Installation

# apt-get install lxc bridge-utils libvirt-bin debootstrap

2. Configuration

2.1 Cgroups

cgroups (control groups) est une fonctionnalité du noyau Linux pour limiter, compter et isoler l’utilisation des ressources (processeur, mémoire, utilisation disque, etc.). Pour plus de détails : wikipédia

Dans le fichier /etc/fstab : ajoutez la ligne suivante

## LXC
cgroup    /sys/fs/cgroup    cgroup    defaults    0    0

puis

# mount -a

2.2 Réseau

Commentez la configuration de votre carte réseau eth0

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#allow-hotplug eth0
#iface eth0 inet static
#address x.x.x.x
#netmask y.y.y.y
#gateway    x.x.x.x
#network x.x.x.x

Ajoutez la configuration de votre nouvelle interface bridge ci-dessous :

auto br0
iface br0 inet static
       bridge_ports eth0
       bridge_fd 0
       address x.x.x.x
       netmask y.y.y.y
       network x.x.x.x
       broadcast x.x.x.x
       gateway x.x.x.x
       # dns-* options are implemented by the resolvconf package, if installed
       dns-nameservers x.x.x.x
       dns-search votre.domaine.dns

2.3 Réseau virtuel

# virsh -c lxc:/// net-define /etc/libvirt/qemu/networks/default.xml
# virsh -c lxc:/// net-start default
# virsh -c lxc:/// net-autostart default
# virsh -c lxc:/// net-edit default

exemple : ici un range d

<network>
  <name>default</name>
  <uuid>961c5bb4-6023-2485-dc64-140ee33d59f0</uuid>
  <forward mode='nat'/>
  <bridge name='virbr0' stp='on' delay='0' />
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

2.4 Vérification

# lxc-checkconfig

qui donne :

Kernel config /proc/config.gz not found, looking in other places…
Found kernel config file /boot/config-3.2.0-4-686-pae
— Namespaces —
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled

— Control groups —
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled

— Misc —
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled

Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig

Tout est au vert ?

Vous voici désormais avec une plate-forme de virtualisation opérationnelle.

Voyons comment l’administrer :

3. Création d’un container

# lxc-create -n <moncontainer> -t debian

Un container est créé et enregistré sous /var/lib/lxc/moncontainer.

Exemple :

# lxc-create -n proxy -t debian

puis :

Sélection_001

Sélection_002

Sélection_003

Sélection_004

Sélection_005

Sélection_006

Sélection_007

Sélection_008

Sélection_009

Mais attention, ce container n’est pas immédiatement opérationnel.

En effet, les accès consoles, réseaux, … ne sont pas configurés.

4. Correction/activation du container

4.1 Console

La gestion de la console LXC pose un problème.

Lors de son lancement #lxc-console -n <moncontainer>, le message suivant apparaît :

Type <Ctrl+a q> to exit the console, <Ctrl+a Ctrl+a> to enter Ctrl+a itself

et vous ne pouvez plus vous loguer !!!

En effet, de prime à bord vous ne pouvez pas vous connecter à la console sans avoir au préalable effectué une petite opération.

# chroot /var/lib/lxc/moncontainer/rootfs
# mknod -m 666 /dev/tty1 c 4 1
# mknod -m 666 /dev/tty2 c 4 2
# mknod -m 666 /dev/tty3 c 4 3
# mknod -m 666 /dev/tty4 c 4 4
# mknod -m 666 /dev/tty5 c 4 5
# mknod -m 666 /dev/tty6 c 4 6

4.2 Languages – Locales

Par défaut, le container est créé sans configuration des locales, donc : Démarrez le container en console :

# lxc-start -n moncontainer -d
# lxc-console -n moncontainer

Loguez-vous sous ROOT, puis :

# locale-gen en_US en_US.UTF-8 fr_FR.UTF-8
# dpkg-reconfigure locales

4.3 Quelques outils manquants

# apt-get install dnsutils man locate rsyslog gcc

5. Démarrage automatique

ln -s /var/lib/lxc/<monnouveaucontainer>/config /etc/lxc/auto/<monnouveaucontainer>

et voilà …

6. Administration

6.1 Fichiers et dossiers

  • Dossier de stockage de vos containers : /var/lib/lxc/
  • Configuration de votre container : /var/lib/lxc/<votre container>/config
# /var/lib/lxc/moncontainer/config

## Container
lxc.utsname                             = moncontainer

lxc.rootfs                              = /var/lib/lxc/moncontainer/rootfs
#lxc.console                            = /var/log/lxc/moncontainer.console
lxc.tty                                 = 6
lxc.pts                                 = 1024

## Capabilities
lxc.cap.drop                            = mac_admin
lxc.cap.drop                            = mac_override
lxc.cap.drop                            = sys_admin
lxc.cap.drop                            = sys_module
## Devices
# Allow all devices
#lxc.cgroup.devices.allow               = a
# Deny all devices
lxc.cgroup.devices.deny                 = a
# Allow to mknod all devices (but not using them)
lxc.cgroup.devices.allow                = c *:* m
lxc.cgroup.devices.allow                = b *:* m

# RESEAU
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.ipv4 = x.x.x.x/24
lxc.network.veth.pair = vethvm2
lxc.network.hwaddr = 00:FF:AA:00:00:02

# /dev/console
lxc.cgroup.devices.allow                = c 5:1 rwm
# /dev/fuse
lxc.cgroup.devices.allow                = c 10:229 rwm
# /dev/null
lxc.cgroup.devices.allow                = c 1:3 rwm
# /dev/ptmx
lxc.cgroup.devices.allow                = c 5:2 rwm
# /dev/pts/*
lxc.cgroup.devices.allow                = c 136:* rwm
# /dev/random
lxc.cgroup.devices.allow                = c 1:8 rwm
# /dev/rtc
lxc.cgroup.devices.allow                = c 254:0 rwm
# /dev/tty
lxc.cgroup.devices.allow                = c 5:0 rwm
# /dev/urandom
lxc.cgroup.devices.allow                = c 1:9 rwm
# /dev/zero
lxc.cgroup.devices.allow                = c 1:5 rwm

## Limits
#lxc.cgroup.cpu.shares                  = 1024
#lxc.cgroup.cpuset.cpus                 = 0
#lxc.cgroup.memory.limit_in_bytes       = 256M
#lxc.cgroup.memory.memsw.limit_in_bytes = 1G

## Filesystem
lxc.mount.entry                         = proc /var/lib/lxc/moncontainer/rootfs/proc proc nodev,noexec,nosuid 0 0
lxc.mount.entry                         = sysfs /var/lib/lxc/moncontainer/rootfs/sys sysfs defaults,ro 0 0
#lxc.mount.entry                        = /srv/moncontainer /var/lib/lxc/moncontainer/rootfs/srv/moncontainer none defaults,bind 0 0

5.2 Commandes

  • lxc-list : liste l’ensemble des containers et donne leur état (Running, Frozen, Stopped)
  • lxc-ls -Al : liste l’ensemble des fichiers et répertoires des containers. Mêmes options que la commande ls
  • lxc-start : démarre un container (ex: # lxc-start -d -n moncontainer). L’option -d permet l’exécution du container en démon
  • lxc-halt : arrête proprement un container (ex: # lxc-halt -n moncontainer)
  • lxc-stop : stoppe le container (ex: # lxc-stop -n moncontainer)
  • lxc-console : ouvre une console de connexion locale à un container (ex : # lxc-console -n moncontainer)Attention : si le prompt ne s’affiche pas, alors le paragraphe n° 4
  • lxc-info : affiche l’état d’un container et son PID (ex: # lxc-info -n moncontainer)
  • lxc-ps : affiche les processus de chaque container
  • lxc-create : crée un container (ex: # lxc-create -n monnouveaucontainer -t debian)
  • lxc-destroy : supprime un container

7. Problèmes rencontrés et solutions

71 SSH

Le serveur SSH est installé mais sa configuration est incomplète. En effet il manque les fichiers ssh_host_dsa_key et ssh_host_rsa_key.

# lxc-console -n serveur
# cd /etc/ssh
# ssh-keygen -t dsa -f ssh_host_dsa_key
# ssh-keygen -t rsa1 -f ssh_host_rsa_key
# /etc/init.d/ssh restart

7.2 Interface réseau

L’interface réseau et la route ne sont pas configurées.

Ajouter dans /etc/network/interface

iface eth0 inet static
address 192.168.1.201
mask 255.255.255.0
gatewau 192.168.1.1

et pour la route :

route add -net 0.0.0.0 gw 192.168.1.1 dev eth0

… et on redémarre : ctrl+a q      lxc-stop -n <moncontainer>

7.3 Paquets manquants

Bon nombre de paquets manquent à l’appel. On notera particulièrement : vi, nano

1. Où en suis-je avec la pagination ?

En cas de gros traitement en mémoire RAM, linux (comme tout autre OS) écrit dans une partition appelée SWAP. Cette SWAP étant hébergée sur le disque dur, vous comprendrez facilement que les temps d’accès sont plus élevés qu’en mémoire centrale. De ce fait, si votre serveur possède beaucoup de RAM, il écrit moins sur la SWAP. Pour connaitre le nombre de fois qu’il écrit sur la SWAP

#cat /proc/sys/vm/swappiness

La valeur doit être entre 50 et 60.

Le cas échéant, paginez moins :

Editez le fichier /etc/sysctl.conf, cherchez la ligne swappiness et réduisez sa valeur. En cas d’absence, ajoutez la ligne

vm.swappiness=1

2. Afficher le top 10 des processus consommateurs de mémoire

# ps -auxf | sort -nr -k 4 | head -10

3. Afficher le top 10 des processus consommateurs de CPU

# ps -auxf | sort -nr -k 3 | head -10

4. SAR

SAR est utilisé dans 2 cas :

  • Monitorer les performances systèmes en temps réel (CPU, mémoire, I/O, …)
  • Collecter les données de performance en tâche de fond

SAR fait partie du package SYSSTAT.

Vous pouvez monitorer :

  • Usage CPU,
  • Statistiques/CPU,
  • Mémoire libre et utilisée,
  • Espace de SWAP utilisé et libre,
  • I/O,
  • Activité sur un périphérique particulier (I/O),
  • Statistiques réseau,
  • Récupérer les données SAR sur une période données,
  • ..

Quelques exemples :

$ sar -b 1 3

Statistiques I/O par interval d’1 seconde et 3 fois

5. Tcpdump

tcpdump est un analyseur de paquets réseaux.

exemple de commande permettant l’affichage des paquets en ASCII

$ tcpdump -A -i eth0

De nombreux filtres existent pour permettre l’analyse des paquets réseaux.

$ man tcpdump

6. Iostat

5. Mpstat

6. Vmstat

7. PS Command

8. Free

 

9. TOP

 

10. Pmap

11. Netstat

12. IPTraf

IPTraf permet le monitoring des flux réseau. Ses principales caractéristiques sont :

  • console texte,
  • affiche les flux réseaux qui passent sur votre réseau. Il affiche en outre, les flags TCP, paquets, compteur de bytes, ICMP, OSPF, …
  • interface de statistiques étendue
  • découverte LAN et affichage de leur activité
  • affichage des protocols
  • journalisation

13. Strace

14. Lsof

16. GkrellM

17. w and uptime

18. /proc

19. KDE System Guard

20. GNOME System Monitor

21. Conky

22. Cacti

23. Vnstat

24. Htop

25. Socket Statistics – SS

L’installation de serveurs et/ou postes de travail tous identiques nécessitent, soit une procédure longue et précise, soit un serveur central d’image Linux.

Nous opterons ensemble pour la seconde proposition.

A partir d’une installation Debian Standard :

1. Serveur CloneZilla

Un serveur CloneZilla permet de démarrer un ou plusieurs serveurs/postes de travail à distance (Wake OnLine WOL), choisir depuis quelle partition démarrer, créer une image système en ligne et restaurer une image en boot PXE.

2. Installation de CloneZilla

2.1 Mise à jour du sources.list

# vi /etc/apt

Ajouter

deb http://drbl.sourceforge.net/drbl-core drbl stable

Acquérir la clé GPG

# wget http://drbl.nchc.org.tw/GPG-KEY-DRBL
# apt (apt-key add GPG-KEY-DRBL

Mettre à jour la base de données des dépôts

# apt-get update

2.2 Interface réseau virtuelle

CloneZilla est configuré pour utiliser 2 interfaces ethernet. Si vous n’en disposez que d’une alors :

# ifconfig eth0:0 <ma nouvelle adresse IP> netmask <mon masque>

2.3 Pré-installation

CloneZilla n’existe pas encore dans les dépôt Debian. Nous allons donc télécharger les paquets et les installer.  Pour ce faire, on utilise le binaire LINKS

# apt-get install links2

Téléchargement :

# links http://sourceforge.net/projects/drbl/files/drbl_stable/

Télécharger le paquet drbl_1.12.15-1drbl_all.deb

2.4 Installation

# dpkg –i drbl_1.9.5-42_i386.deb
# /opt/drbl/sbin/drblsrv –i

– Installer une distribution ? N
– Console série ? N
– Architecture : i386                                                     ( uname -i)
– Mettre à jour le système d’exploitation : Y

Le script se poursuit et met à jour le système d’exploitation de votre serveur depuis le dépôt installé précédemment.

2.5 Configuration de drbl/clonezilla

# /opt/drbl/sbin/drblpush –i

– dns, NIS, prefixe client : <saisir les informations selon votre infrastructure>
– interface ethernet public : eth0:0
– No
– No
– Plage d’adresses IP : <info selon infrastruture réseau>
– ltsp : utile uniquement pour les clients légers

– Fournir clonezilla BOX (1), c’est ce que nous avons besoin pour le déploiement.

– nous allons utiliser /images comme dossier de destinations de celles-ci.

– Aucun mot de passe de démarrage

– On définit un prompt de démarrage ! tempo à choisir (délai avant l’action par défaut), arrière-plan graphique (y)

– On désactive NAT, l’utilisation de PXE ne se fera qu’en LAN…

Et l’on poursuit..

La configuration se fait maintenant.

Afin de faciliter la gestion du parc par filtrage MAC, il est préférable d’ajouter dans /etc/dhcp3/dhcpd.conf les postes clients un par un afin de les nommer et donc de réserver les IPs, voici la syntaxe :

Host nom hôte {

Hardware ethernet @MAC ; #de l’hôte

Fixed-address @IP ; #de l’hôte

}

Et redémarrer le service dhcpd : /etc/init.d/dhcp3-server restart

3. Création d’images de grub pour la selection de la partition à booter à distance

3.1 Création d’un disque de boot grub

Pour commencer, il faut créer une image disque du grub à envoyer en PXE. Pour ce faire, on utilisera VMware.

A partir d’une machine virtuelle, ouvrez le menu Paramètres

* Onglet périphériques : sélectionner floppy disk
* cliquer sur create disk
* saisir un nom

3.2 Installation de grub

# mke2fs /dev/fd0
# mount -t ext2 /dev/fd0 /mnt
# mkdir –p /mnt/boot/grub
# cp /boot/grub/stage1 /mnt/boot/grub
# cp /boot/grub/stage2 /mnt/boot/grub
# umount /dev/fd0
# grub

Configuration de grub

Grub est maintenant installé.

Cryptage du mot de passe

Afin de ne pas mettre le mot de passe de verrouillage grub en clair, nous allons le crypter en md5 via grub : (azerty pour les tests, ATTENTION : clavier grub est en qwerty)

Configuration menu.lst

<

Il va maintenant falloir configurer le menu pour les partitions (dans ce cas, par défaut : Ubuntu) qui se trouve dans le répertoire monté /mnt/boot/grub/menu.lst:

timeout 1 # attente d'1 seconde avant exécution
default 0 # par défaut on boot sur la première partition
password --md5 ???????????????????????????? # on prendra un mot de passe simple comme "azerty"
title Ubuntu
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-17-genric root=/dev/sda1 ro quiet splash
initrd /boot/initrd.inmg-2.6.24-17-generic
title Windows XP
root (hd0,2)
makeactive
chainloader +1

Grub est maintenant configuré.

Création de l’image PXE

Nous pouvons maintenant procéder à la création de l’image de boot grub à partir de l’image disquette (ne pas oublier de démonter la disquette).

Pour cela, l’on va d’abord se rendre dans le répertoire root du serveur TFTP de clonezilla :

cd /tftpboot/nbi_img/

et enfin, créer l’image dans ce dernier :

# dd if=/dev/fd0 of=boot_ubuntu.img bs=1024 count=1440

L’image de boot PXE pour démarrer sur Ubuntu est maintenant prête. Pour Windows XP, il suffit de refaire la manipulation en modifiant simplement le default à 1 dans le menu.lst.

Configuration du menu de boot

Maintenant que les images de boot pour grub sont préparées, nous allons pouvoir les ajouter dans le menu de boot PXE. Pour se faire, il faut éditer le script situé dans /opt/drbl/sbin/generate-pxe-menu et se diriger vers la fin où l’on trouve les labels puis ajouter les 2 entrées pour ces menus. Il est conseillé de les entrer après le label local.

On a aussi la possibilité de désactiver l’édition des menus en mettant l’option « ALLOWOPTIONS » à 0.

Définition des lignes :

Label : nom du label (vu sur clonezilla)

MENU DEFAULT : IMPORTANT : utilisé pour la configuration du boot via clonezilla

MENU HIDE : pareil

Menu label : nom du label vu sur le menu de boot pxe

Memdisk : utilisation de la mémoire du client pour charger l’image

Boot_xp.img : image à chargée

TEXT HELP/ENDTEXT : compléments d’aide lors de la sélection du label dans le menu pxe.

Pour changer le timeout du menu, il faut modifier timeout (40 = 4 secondes). On peut aussi modifier l’image de boot soit en changeant la valeur dans MENU BACKGROUND, soit en remplaçant drblwp.png situé dans /tftpboot/nbi_img/.

Le menu est maintenant configuré, il suffit de lancer ce script après l’avoir enregistré pour prendre en compte les résultats : /opt/drbl/sbin/generate-pxe-menu

Nous pouvons maintenant démarrer une machine en PXE

Utilisation de clonezilla

Voici divers exemples pour utiliser clonezilla (depuis la commande /opt/drbl/sbin/dcs) :

Premier menu :

2 choix sont proposés :

le premier permet de paramétrer une action pour TOUS les clients (c’est-à-dire sur tout le pool dhcp en récupérant les correspondances dans dhcpd.conf)

le second permet de paramétrer une action pour UN ou PLUSIEURS clients

Création de groupe

Il est possible de créer des groupes de MAC/IP pour éviter de sélectionner un à un les postes cibles.

Pour se faire il suffit de créer dans /etc/drbl/ un fichier contenant les adresses MAC ou IPs cibles.

Groupes par adresses MAC

/etc/drbl/MAC-grp-« nom du groupe »

Contenu (une IP par ligne) :

00:25:XX:XX:XX:XX

00:1c:XX:XX:XX:XX

Groupes par adresses IP

/etc/drbl/IP-grp-« nom du groupe »

Contenu (une IP par ligne) :

192.168.1.1

192.168.1.2

Exemple 1 : sélectionner le démarrage par défaut

Maintenant, si l’on veut que TOUS les postes démarrent automatiquement sur XP, il suffit de sélectionner le mode « All », de se rendre dans l’option « more » => « switch-pxe-menu » => « setdefault »=> cocher « xp ».

Exemple 2 : utilisation du wol (wake-on-lan)

Maintenant soit on démarrer les postes un à un… soit on relance dcs en sélectionnant une fois de plus le mode « All » et en sélectionnant par la suite « Wake-on-Lan ».

Attention lorsque l’on choisit ce paramètre, il reste par défaut même après le redémarrage de la machine. Donc il faut penser à changer la valeur de setdefault après reboot.

Exemple 3 : Backup d’un poste via PXE

Nous allons cette fois ci utiliser le mode « part » avec par la suite, le mode par adresse MAC.

On choisit le poste client à sauvegarder via la touche espace et l’on accepte.

Ensuite, il faut choisir « clonezilla start », suivis de « save-parts » (dans mon cas « save-disk ») et entrer le nom de l’image.

Exemple 4 : Restauration de plusieurs postes en Multicast

Encore une fois, nous allons choisir le mode « Part » .

On choisit les postes à restaurer en cochant avec la touche espace. (les hôtes affichés sont récupérés à partir des réservations IPs faites dans le dhcpd.conf)

Une fois les clients sélectionnés, il faut choisir le mode « clonezilla-start », ensuite au choix entre débutant et expert. Expert permettant de configurer plus d’options tel que la méthode de compression, la priorité des utilitaires à utiliser pour la restauration, etc…

Une fois choisi, il faut sélectionner « restore parts », choisir l’action à faire à la fin du clonage.

A noter : on ne peut faire de restauration sur un disque dur cible qui est plus petit que le disque dur dont provient l’image. Par ailleurs, il est possible de faire une restauration sur un disque dur plus grand que le disque dur source (clonezilla va s’occuper de redimensionner le MBR source afin que la taille de la table des partition soit proportionnelle à la taille du disque dur cible).

ensuite choisir le déploiement en multicast et le mieux est de choisir l’option ci-dessous :

clients-time-to-wait

Elle permet de spécifier un nombre de client cibles ainsi qu’un délai max avant le début du déploiement.

Imaginons que l’on veuille déployer une image sur 20 postes et que l’on mette un délai d’attente de 30 secondes : Si au bout de 30 secondes à partir du moment où le premier poste se connecte, les 20 postes connectés ne sont pas atteint, la restauration commence.

Lorsque la restauration est terminée, une notification est envoyée sur le Shell afin de prévenir l’état de la restauration.

Future mises à jour Clonezilla/Debian

Attention, pour les futures mises à jour clonezilla ou lorsque l’on veut mettre en place un nouveau kernel (via /opt/drbl/sbin/drblsrv –i), il faut faire une sauvegarde du script de génération de menu, de l’image splashboot ainsi que des images grub.

 

1. Pré-requis

ssh étant un protocole sécurisé, il faut impérativement que la clé publique du certificat d’identification du serveur maître soit recopié sur chaque serveur fils, pour que la connexion puisse s’effectuer sans saisie de mot de passe.
A noter qu’on peut rapidement déployer la clé publique sur les serveurs fils en utilisant ce script :
scp id_svocs.pub $1:/root/
ssh $1 "cat /root/id_svocs.pub >>/root/.ssh/authorized_keys"
qui va s’utiliser ainsi :
/root/majiddsapub nom_du_serveur
Il faudra simplement taper deux fois le mot de passe de root pour réaliser l’opération.
Bon, okay, vous avez accès à la commande : ssh-copy-id
ssh-copy-id -i ~/.ssh/id_dsa.pub user@machine

2. Création d’un script

2.1 Stockage des scripts

Il est toujours intéressant de pouvoir s’y retrouver, surtout au bout de quelques mois d’intervention. Voici un exemple d’arborescence mise en œuvre :
 /root/scripts : racine des scripts. On stocke ici les fichiers contenant les listes de serveurs à traiter (on peut avoir plusieurs listes selon les opérations à effectuer).
 /root/scripts/20090304/ dossier contenant les scripts créés le 4 mars 2009. On y retrouvera au minimum le script maître, par exemple : script. On pourra également trouver le script qui doit s’exécuter sur les serveurs distants : scriptdistant.

2.2 Liste des serveurs

Dans un fichier texte, insérer la liste des serveurs, avec une ligne par serveur. Ne pas laisser de ligne vide. Utiliser de préférence les noms dns, qui garantissent un accès dans tous les cas de figure aux serveurs distants.

2.3 Script serveur

Voici un exemple de script, qui peut être adapté en fonction des besoins :
 
# Mise a jour de la liste des rpm
for serveur in $(cat ../listeserveurs)
do
echo "serveur en cours de traitement : "$serveur
scp /root/majlisterpm $serveur:/root/
scp scriptdistant $serveur:/root/
ssh $serveur /root/scriptdistant
done
Ce programme va recopier le fichier /root/majlisterpm sur chaque serveur, le fichier scriptdistant, puis va exécuter le fichier scriptdistant préalablement recopié.
Ne pas oublier de rendre exécutable le script :
chmod +x script

3. Utilisation de dsh

dsh est un utilitaire qui permet de réaliser ce que fait le script précédent, à savoir générer les commandes pour un ensemble de serveurs.
La syntaxe est simple :
dsh  [-m machinename | -a | -g groupname] [-r remoteshellname] [-c | -w | -i | -F forklimit ] -- commandline
 m : permet d’indiquer sur quelle(s) machine(s) doit être exécuté le script (nom des machines séparées par une virgule)
 a : exécute le script sur toutes les machines déclarées dans le fichier /etc/dsh/machines.list
 g : exécute le script pour le groupe de machines décrit dans /etc/dsh/group/nomgroupe (équivalent au fichier listeserveurs ci-dessus)
 f listeserveurs : exécute le script pour le groupe de machines décrit dans le fichier indiqué (pas forcément dans /etc/dsh/group/)
 r : par défaut, dsh va exécuter les scripts en utilisant rsh. Il est possible de forcer l’exécution avec ssh, par exemple, en utilisant cette option. Ce paramètre peut également être modifié par défaut dans le fichier /etc/dsh/dsh.conf
 c : exécute les commandes en parallèle sur l’ensemble des machines
 w : attend que le traitement sur une machine soit terminé avant d’entamer le travail sur la machine suivante
 i : quand l’exécution est demandée sur plusieurs machines en parallèle (option -c), crée autant de processus que de machines traitées
 F : idem que -c, mais en limitant le nombre de traitements parallèles
 v : mode verbeux
 q : mode silencieux
Ainsi, le script précédent va pouvoir prendre la forme suivante :
dsh -f ./listeserveurs -r ssh /root/scriptdistant

3.2 Script distant

On écrit le script qui va s’exécuter sur le serveur distant. Dans notre exemple, on va programmer l’exécution de majlisterpm une fois par semaine :
cat scriptdistant
if test ! -e /etc/cron.weekly/majlisterpm
then
ln -s /root/majlisterpm /etc/cron.weekly/majlisterpm
fi
Ne pas oublier de rendre le script exécutable :
chmod +x scriptdistant
Autre exemple, pour modifier le compte d’envoi des messages systèmes dans le fichier /etc/postfix/aliases :
cat scriptdistantpostfix
cp /etc/postfix/aliases /etc/postfix/aliases.old
sed s/^root:.*$/"root: manouvelleadressemel@mondomaine.com"/ /etc/postfix/aliases.old > /etc/postfix/aliases

3.3 Exécution du script

Il suffit de lancer l’exécution du script :
./script
Mise en place de l’enregistrement du résultat de l’exécution
Par défaut, tous les messages d’exécution s’afficheront sur la console. Si on veut enregistrer le résultat des commandes, il suffit de modifier le script en redirigeant toutes les commandes vers un fichier log, qu’on pourra alors consulter tranquillement…
Par exemple :
$log = /var/log/script.log
`date` > $log
# Mise a jour de la liste des rpm
for serveur in $(cat ../listeserveurs)
do
echo "serveur en cours de traitement : "$serveur >> $log
scp /root/majlisterpm $serveur:/root/ 1>>$log 2>>$log
scp scriptdistant $serveur:/root/ 1>>$log 2>>$log
ssh $serveur /root/scriptdistant 1>>$log 2>>$log
done
echo "fin de traitement a " `date` >>$log

A Venir

Publié: 13 février 2013 dans Haute disponibilite
Tags:, , , , , , ,

A Venir.

  1. NTP : C’est quoi ?

Le Network Time Protocol (NTP) est un protocole utilisé pour synchroniser précisément l’horloge locale avec un serveur de temps en réseau. Le réseau NTP est est un réseau hiérarchique ouvert.

La hiérarchie est divisée en niveaux, appelés stratum. Le plus précis est le stratum 0 et est réservé aux horloges atomiques. Le niveau suivant, Stratum 1, est quant à lui réservé aux serveurs NTP locaux : les serveurs horloges atomiques. Les Stratum 2 à 15 sont les serveurs NTP connectés.

Ce manuel montre comment installer et maintenir un service NTP précis.

  1. Pourquoi un serveur de temps ?

Un serveur NTP n’est pas obligatoire. Néanmoins, je vous le recommande fortement. Dans les architectures suivantes :

    • Microsoft Active Directory
    • Messageries réseaux (Micosoft Echange, Postfix, Lotus Notes…)
    • Supervision des serveurs
    • Centralisation des logs (ex : syslog)
  1. Allons-y !!

 

    • Installation du service NTP

#apt-get install ntpd

Le service ntpd est à la fois client ET serveur. Il synchronise votre horloge système et fournit un service de temps.

    • Un peu de réseau avant tout

Le service NTP est un service réseau UDP et utilise le port 123.

Il ne vous reste plus qu’à configurer votre pare-feu pour autoriser le flux UDP entrant et sortant entre Internet et le port 123 de votre tout nouveau serveur NTP.

    • Configuration du service NTP

Le fichier de configuration du service ntpd est /etc/ntp.conf. Mais la configuration par défaut doit être modifiée afin d’optimiser le service.

La première section à modifier est la liste des serveurs de stratum faible sur lesquels vous allez vous synchroniser.

Le site https://www.cru.fr/services/ntp/serveurs_francais vous fournira une liste non exhaustive des serveurs de temps disponibles.

Votre choix doit être pertinent et prendre en compte la distance réseau entre votre serveur NTP et le serveur cible. Pour ce faire, vous utiliserez la commande traceroute et choisirez le serveur accessible avec le moins de rebonds.

#traceroute mon.serveur.ntp.que.je.veux.me.synchroniser

Ok, vous avez choisi votre serveur ?

Alors nous allons l’utiliser pour notre synchronisation primaire, puis passer la main à un pool de serveurs qui ne feront que corriger notre écart de temps.

Ainsi, vous vous synchroniserez non pas sur un seul serveur mais sur un pool de serveurs. En effet, vous devez prendre en considération une éventuelle panne serveur ou encore une éventuelle saturation. Le pool proposé ci-dessous, vous permettra de vous synchroniser avec de multiples serveurs disponibles.

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

La configuration ne s’arrête pas ici. En effet, que faire si votre connexion Internet est coupée …

C’est pourquoi vous indiquez à votre serveur NTP qu’en dernier recours il se synchronise avec son horloge locale et le service NTP ne s’arrêtera pas et attendra le retour à la connexion des serveurs dans l’ordre indiqué.

Votre configuration doit être comme suit :

server mon.serveur.ntp.que.je.veux.me.synchroniser iburst

server 0.fr.pool.ntp.org

server 1.fr.pool.ntp.org

server 2.fr.pool.ntp.org

server 3.fr.pool.ntp.org

server 127.127.1.0

fudge 127.127.1.0 stratum 10

    • Mon service de temps fonctionne ?

Maintenant que vous avez paramétré votre service de temps, voyons s’il fonctionne correctement et si sa synchronisation est optimale.

Pour cela, on redémarre le service :

#/etc/init.d/ntpd restart

On monitore les messages :

#tail –f /var/log/syslog

Après 10 à 20 secondes (voir minutes si vous avez oublier d’ajouter iburst sur votre serveur préféré), vous devez voir apparaître les messages suivants :

Mar 7 16:50:22 hostname ntpd[22402]: synchronized to xxx.xxx.xxx.xxx, stratum 2

Si ce message n’apparaît pas, alors vous ne vous synchroniser pas avec un quelconque serveur.

Analysons le service NTPD :

#ntpd –c lpeer

Si les colonnes delay, offset ou jitter ne sont pas à 0 et qu’aucun serveur n’est précédé d’une *, alors vous n’êtes pas synchronisé.

Vérifiez que l’iburst est ajouté à votre premier serveur.

Exemple de serveur synchronisé :

remote           refid      st t when poll reach   delay   offset  jitter

==============================================================================

*milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207

-europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875

-dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804

+smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916

+kechara.flame.o 216.218.254.202  2 u    –   64   77   89.183   68.717   1.713

-host2.kingrst.c 99.150.184.201   2 u    –   64   77   24.306   62.121   2.608

LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002

  • Mes serveurs se synchronisent-il avec mon nouveau serveur de temps ?

 #tcpdump dst <serveur à vérifier s’il se connecte> and port ntp

    • Ouvrons le service NTP sur notre réseau

Une fois que votre serveur est synchronisé, vous pouvez le configurer en tant que fournisseur de temps.

Ajoutez dans /etc/ntp.conf :

restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap

Vous pouvez ajouter autant d’adresses CIDR que nécessaire.

    • A vos marques, prêt, synchronisez …

Pour ce faire, vous devez tout d’abord installer le service NTPD sur chacun des  serveurs à synchroniser, puis les configurer comme suit :

Sous linux/unix :

Dans le fichier /etc/ntp.conf, ajoutez :

server adresse IP de votre serveur de temps

puis redémarrez votre service NTPD.

Sous Windows :

Les ordinateurs Windows utilisent le protocole SNTP (Simple NTP).

Configuration : double-cliquez sur l’horloge windows et naviguez vers l’onglet « Internet Time »

Ajoutez l’adresse IP de votre serveur de temps.

Sachez que si vous disposez d’un serveur Active Directory, vous n’avez qu’à réaliser cette configuration sur votre serveur racine. En effet, chaque client Active Directory prend par défaut le temps fournit par le serveur maître.

 

  1. Et les sauts dans le temps ?

Il peut arriver que certains systèmes soient très désynchronisés. Que se passe-t-il si un serveur en avance doit reculer son horloge pour se synchroniser ? Vais-je perdre de l’information ? Quid de l’horodatage des informations ?

Le mode de gestion appartenant à chaque OS, les clients NTP se synchronisent progressivement par 1000eme de secondes pour enfin arriver à synchroniser.

  1. Serveur NTP sous Windows ou sous Unix/Linux ?

Cette question peut se poser. Par expérience, je vous conseille un serveur sous Unix/Linux. En effet, la majorité des serveurs de temps sous Windows, bien que gratuits sont de véritables boites noires. A contrario, celui sous Unix/Linux fournit les outils et les informations d’analyse de problèmes.