Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
ANNEE 2014
Table des matières
Le service de résolution de noms d'hôtes DNS (Domain Name Services), permet d'adresser un hôte
par un nom, plutôt que de l'adresser par une adresse IP. Quelle est la structure d'un nom d'hôte?
Nom_d_hôte ou bien Nom_d_hôte.NomDomaine
Exemple : ns1 ou bien ns1.foo.org
Le nom de domaine identifie une organisation dans l'internet, comme, par exemple, yahoo.com,
wanadoo.fr, eu.org. Dans les exemples, nous utiliserons un domaine que l'on considère fictif :
« foo.org ». Chaque organisation dispose d'un ou plusieurs réseaux. Ces réseaux sont composés de
noeuds, ces noeuds (postes, serveurs, routeurs, imprimantes) pouvant être adressés.
Tout d’abord il faut installer bind sur la machine car c’est le logiciel utilisé pour le serveur DNS.
On rentre ensuite dans la racine du fichier ainsi crée : cd /temp/bind-9.2.2 afin de pouvoir
compiler en utilisant la commande ./configure suivi de make pour la compilation en elle-même et
pour finir make install afin d’installer les différents fichiers compilés.
3. Configuration de BIND
Fichier de configuration principal
- Le bloc "options" contient les options qui affectent le fonctionnement général du logiciel.
- L'option "directory" indique à named où il doit trouver tous ses fichiers de configurations (ici dans
le dossier /var/named). Tous les autres fichiers auront donc un chemin relatif à celui-ci.
- La directive " type master" signifie que le serveur est maître pour cette zone et qu’il contient tous
les renseignements utiles.
- Le bloc zone"." permet à BIND d'interroger les domaines racines (com, fr, org, etc.) sur les
serveurs racines Internet. Le fichier named.ca contient les adresses de ces serveurs racines.
- La zone "1.168.192.IN-ADDR.ARPA" est la zone de recherche inverse pour notre réseau interne.
A partir de l'adresse IP, une résolution inverse est effectuée afin de trouver le nom de machine.
- La zone "0.0.127.IN-ADDR.ARPA" est une zone de recherche inverse pour les adresses de type
127.0.0. Ces adresses sont utilisées en interne et correspondent à l'hôte "localhost". Elle est donc
utile pour la résolution locale de la machine en elle-même.
- La directive SOA signifie "Start of Authority" et sert à donner des informations sur la gestion de la
zone. C’est le premier enregistrement du fichier de configuration
- Le champ NS fait référence à la machine servant de serveur de noms, il faut lui attribuer une
adresse IP grâce au champ A, il faut aussi attribuer les adresses IP aux autres machines.
a- Le fichier named.ca est présent par défaut et contient les adresses des serveurs racine
Internet.
b- Fichier clad.org
c- Le fichier 1.168.192.in-addr.arpa :
Le champ PTR sert pour l’enregistrement de résolution inverse. On déclare les machines utilisant le
serveur DNS.
La ligne search précise dans quel domaine effectuer les requêtes DNS.
- Le fichier host.conf qu’il faut éditer pour qu’il soit comme suit. Cela précise au résolveur de
regarder d’abord les entrées du fichier /etc/hosts et ensuite d’utiliser le serveur précisé
dans resolv.conf.
Pour tester que tout est bien configuré. Dans l’invite de commande cmd je tape nslookup.
Les lignes retournées sont le nom du serveur DNS ainsi que son adresse IP. Le serveur est
opérationnel et prêt à répondre aux requêtes DNS.
commande description
Ifconfig -a Affiche la liste des interfaces réseau qui ont été détectées
rechercher les messages contenant "eth0" pour avoir plus
dmesg | grep eth0
d'informations sur la première carte réseau détectée
lspci | grep Ethernet permet d'afficher les cartes réseaux reliées au bus PCI
ifconfig <interface> <adresse ip> attribuer une adresse IP à une interface réseau
hostname <nom d'hôte> On peut changer le nom d'hôte avec la commande suivante,
mais il ne sera pas conservé au prochain démarrage
auto eth0
l'interface eth0 doit être configurée automatiquement par
iface eth0 inet dhcp un serveur DHCP
nameserver 208.164.186.1
nameserver 208.164.186.2 Le fichier /etc/resolv.conf contient les adresses IP des
search foo serveurs DNS.
LDAP supporte le chiffrement SSL et cohabite parfaitement avec les applications Samba, DNS,
NFS...
LDAP fournit un ensemble d'outils.
un protocole permettant d'accéder à l'information contenue dans l'annuaire,
un modèle d'information définissant l'organisation et le type des données contenues dans
l'annuaire,
un modèle de nommage définissant comment l'information est organisée et référencée
un modèle fonctionnel qui définit comment accéder à l'information,
un modèle de sécurité qui définit comment accéder aux données et comment celles-ci sont
protégées. OpenLDAP est souvent configuré avec SASL (Simple Authentication and Security
Layer), qui permet les transactions cryptées avec les protocoles fonctionnant en mode
connecté.
un modèle de duplication qui définit comment la base est répartie entre serveurs,
Un protocole d'accès aux données, qui décrit comment ajouter, modifier, supprimer des données dans
la base de donnée, quels protocoles de chiffrement (kerberos, ssl...), et quels mécanismes
d'authentification sont utilisés. Ce protocole est utilisé dans la relation client/serveur, mais également
entre serveurs (serveur/serveur) car une base de données LDAP peut être répartie.
LDAP fournit un modèle d'organisation des données. Ces données sont organisées sous forme
hiérarchique.
L'arbre est nommé Directory Information Tree (DIT). Le sommet (racine), contient le "suffixe".
Chaque noeud représente une "entrée" ou "Directory Entry Service" (DSE).
Les données sont stockées sur un format de base de données hiérarchique de type "dbm".
Ce format est différent des bases de données relationnelles.
DBM est conçu pour supporter peu de mises à jour, mais de nombreuses consultations.
Le scope définit la profondeur de la recherche dans l'arbre des données. La figure montre la portée
d'une recherche ou d'une comparaison en fonction du paramètre scope.
1. Le langage de commande
- slapadd, slapcat, slapindex, slappasswd, fournis avec les serveurs LDAP (utilisables sous le compte
root).
- ldapadd, ldapdelete, ldapmodify, ldapmodrdn, ldappasswd, ldapsearch, fournis avec les utilitaires
ldap (utilisable par les utilisateurs et les applications). Ils sont fournis par le paquet (ldap-utils)
Exemple :
Recherche de tous les objets sur l'annuaire de la machine locale, à partir de la racine. (-b indique à
partir de quel niveau la recherche doit être exécutée). L'option « -x » indique de ne pas utiliser la
méthode d'authentification SASL si elle n'est pas activée.
ldapadd -f /tmp/unFichierAuFormatLDIF
Ajout dans l'annuaire à partir d'un fichier contenant des données au format LDIF.
Il est possible d'importer les informations à partir d'un fichier texte dans la base de données grâce à
un format d'échange de données, le format LDIF (Lightweight Data Interchange Format).
Il faut identifier les objets à référencer et les objectifs de l'annuaire. Les fichiers sont dans
"/etc/openldap".
Le premier fichier est "sldapd.conf" qui décrit les principaux paramètres de votre annuaire :
#######################################################################
# ldbm database definitions
#######################################################################
# Choix du format de base de données pour le stockage des informations.
database ldbm
# L'administrateur de l'annuaire
rootdn "cn=Manager,dc=my-domain,dc=com"
# rootpw secret
# rootpw {crypt}ijFYNcSNctBYg
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname eq,subinitial
# Directives de replication
# sinon les mettre dans un fichier à part et utiliser
# replogfile /chemincomplet/du/fichier
#replica host:ldap-1.example.com:389
# bindmethod=simple
# binddn="cn=replicat_slave1, dc=mydomain, dc=fr"
# credential=UnMotDePasse
Ici l'accès par défaut est "read", mais il est possible d'affiner. Par exemple avec des règles d'écriture
comme:
dpkg-reconfigure libnss-ldap
dpkg-reconfigure libpam-ldap
Prenez les options par défaut en prenant soin de tenir compte de la structure de votre annuaire. Pour
nous :
dc=point-libre,dc=org
Vous devez également modifier le fichier /etc/nssiwtch.conf afin que les applications utilisent aussi
bien les fichiers standards (passwd, shadow) que l'annuaire ldap. :
La commande getent passwd doit vous permettre de récupérer à la fois les comptes du fichier
/etc/passwd, mais également les compte de l'annuaire ldap qui n'existent pas dans la base passwd.
# getent passwd
[...]
mlx:2/yajBmqc3tYw:1005:1005:BOURG Jean:/home/mlx:/bin/bash
mly:2/yajBmqc3tYw:1006:1006:BOURG Marine:/home/mly:/bin/bash
L'utilisateur mly n'a pas de compte système. Il n'existe que dans l'annuaire ldap. Créez un répertoire
et affectez-le au compte.
# mkdir /home/mly
# chown 1006:100 /home/mly
# ls -al /home/mly
drwxr-sr-x 2 mly users 4096 2003-06-09 13:50 .
# Ici le serveur fonctionne car il substitue bien l'UID à l'uidNumber
# ls -al /home/mly
Mmodifier les fichiers de configuration afin d’assurer l'authentification. Mettez en début de fichier :
#/etc/pam.d/login
auth sufficient pam_ldap.so
account sufficient pam_ldap.so
password required pam_ldap.so
#/etc/pam.d/passwd
auth sufficient pam_ldap.so
account sufficient pam_ldap.so
password sufficient pam_ldap.so
Vérification de l'authentification :
mlx@uranus:~$ su mly
Password: #ici taper toto
mly@uranus:~$ cd
mly@uranus:~$ pwd
/home/mly
Au cours de ce TP on va installer et configurer un serveur DHCP sur une machine Linux fedora et
en réalisant la configuration suivante :
• L'adresse IP du serveur DHCP : 192.168.12.1
• Plage d'adresses à offrir : 192.168.12.10 – 192.168.12.150
• Passerelle par défaut: 192.168.12.2
• Nom de domaine DNS: ofppt.ma
• Adresse du serveur de noms DNS: 192.168.12.5
Préparation du serveur:
Le serveur DHCP ne peut démarrer que s'il est configurer pour être lancer sur une ou plusieurs
interfaces, le fichier /etc/default/dhcp sert pour indiquer la ou les interfaces d'écoute.
INTERFACES="eth0 eth1"
Remarque : Tous les paramètres du fichier dhcpd.conf sont expliqués dans la page : man dhcpd.conf
Enregistrer /etc/dhcpd.conf
Remarque :
Les options entre { } sont spécifiques à l'étendue, pour être globale, elles doivent être définies en dehors. A
chaque modification du fichier de configuration, on doit relancer le serveur DHCP :
/etc/rc.d/init.d/dhcpd restart
Vérifier la présence du fichier /var/lib/dhcp/dhcpd.leases, sinon, avec vi, créer ce fichier vide.
Les clients qui obtiennent des adresses IP automatiquement via le serveur dhcp vont être enregistrés
dans le fichier /var/lib/dhcp/dhcpd.leases
Durée du bail
Modifier le fichier /etc/dhcpd.conf pour que la durée du bail passe à 24h : max-lease-time 86400
Relancer le serveur DHCP avec la commande suivante : /etc/rc.d/init.d/dhcpd restart
Tester le résultat sur le client avec la commande Ipconfig /renew
1. ping
Cette commande existe dans tous les systèmes. Elle permet de vérifier si une machine distante
répond.
La syntaxe ping -c 5 192.168.0.1 permet d’envoyer 5 pings à la machine dont l'adresse IP est
192.168.0.1.
On peut aussi utiliser le nom de la machine, si celle-ci est renseignée dans votre fichier Hosts ou dans
un serveur DNS.
On peut par exemple utiliser ping pour vérifier si la connexion est toujours active ou pour la monter.
Si vous ne placez pas l'option -c 5 pour n'envoyer que 5 pings, la commande ne s'arrête pas.
Utilisez alors Ctrl C.
3. arp
La commande arp permet de mettre en correspondance des adresses IP et les adresses MAC. Les
options possibles importantes sont
arp -a pour avoir toutes les entrées ARP de la table
arp -d nom_de_la_machine pour supprimer une entrée de la table
arp -s nom_de_la_machine adresses_mac pour ajouter une nouvelle entrée dans la table.
4. route
Cette commande permet de voir, d'ajouter ou d'enlever les routes se trouvant déclarées sur votre
machine. Ainsi pour indiquer à votre machine où aller trouver les adresses qui ne sont pas les
adresses de votre réseau local, vous devez lui indiquer la passerelle (ou gateway) vers laquelle elle
doit envoyer tous les paquets.
Pour voir les routes indiquer route -n (on peut aussi utiliser netstat -nr) L'option -n permet de ne pas
avoir la résolution des noms.
Pour ajouter une route par défaut : route add default gateway 192.168.0.1 (La passerelle vers qui
j'envoie tous les paquets qui ne sont pas pour le réseau local).
route add -host 195.98.246.28 gateway 192.168.0.1 (Indiquer le netmask si celui-ci n'est pas un
mask correspondant à la classe de votre adresse).
Enfin pour supprimer une de ces routes remplacer add par del.
Pour avoir la route que vous venez d'ajouter à chaque démarrage placer la commande dans le fichier
/etc/rc.d/rc.local par exemple.
5. netstat
Cette commande permet en effet de connaître les ports en écoute sur votre machine, sur quelles
interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître
les routes.
Pour voir les connexions actives netstat -nt, pour les ports ouverts netstat -ntl.
On peut aussi vérifier s'il existe une route par défaut, par exemple existe-t-il une route par défaut vers
la machine 195.98.246.28 utilisez alors netstat -nr | grep 195.98.246.28.
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur.
6. traceroute
Traceroute permet de déterminer la route prise par un paquet pour atteindre la cible sur internet.
On peut utiliser soit l'adresse IP, soit le nom d'hôte. Attention certains FireWall ou routeurs ne se
laissent pas voir avec la commande traceroute.
La commande traceroute est très utile pour savoir ou peut se trouver un blocage (plutôt
ralentissement). Il existe un grand nombre d'options, entre autre il est possible de choisir les
gateway (jusqu'à 8) pour atteindre une machine. Je vous conseille donc encore une fois de lire le
man traceroute.
7. telnet
Telnet est l'outil indispensable à connaître. Il existe en tant que client sur tous les systèmes. Par
contre Linux dispose en plus d'un serveur telnet permettant d'administrer à distance une machine
(quoiqu'il existe maintenant un serveur telnet sur windows 2000). On peut ainsi administrer une
machine linux depuis un Microsoft quelconque et, mais cela va de soi, depuis une autre machine
linux.
En tant que client, Telnet vous permet d'envoyer et de lire vos messages.
Pour pouvoir administrer à distance, il faut que le serveur telnet soit installé sur la machine que vous
souhaitez administrer. Pensez aussi à vérifier que cela est autorisé dans le fichier
Si vous devez vous en servir sur un réseau local ou sur internet, préférez lui SSH (ou la version
autorisée en France SSF), car alors les mots de passe ne se promènent pas en clair sur le réseau.
Par défaut il n'est pas possible de se connecter en root avec une connexion telnet. Vous devez utiliser
un autre compte et utiliser la commande su.
8. ftp
ftp est un outil qui permet de télécharger des fichiers entre machines. Vous connaissez les clients
Sous Linux il existe un serveur ftp, que vous activez dans /etc/inetd.conf. Il est installé par défaut
dans toutes les distributions. Ce serveur ftp n'est pas lié à l'installation d'apache, comme pour les
systèmes Microsoft où vous devez installer IIS pour bénéficier de ce service. Attention toutefois le
serveur ftp pose un problème de sécurité important, utilisez plutôt SFTP, qui est disponible avec
SSH.
Vous disposez aussi d'un client ftp en ligne de commande sous Linux comme sous Microsoft. La
syntaxe étant pratiquement la même.
Connected to localhost.
220 lycee1.ac-creteil.fr FTP server (Version wu-2.6.0(1) Mon Feb 28 10:30:36 EST
2000) ready.
Password:
ftp> binary
ftp> mget *
9. nslookup
L'utilitaire nslookup permet d'interroger un serveur de nom (serveur dns) afin d'avoir des
informations sur un domaine ou sur une machine. Par défaut nslookup utilise le serveur de nom
configuré sur votre machine, vous pouvez toutefois interroger un autre serveur de nom.
[root@aleu /]#nslookup
Address: 127.0.0.1
>set type = MX Pour lister les entrées de type MX (à savoir les serveurs SMTP du domaine).
Remplacer MX par le type d'enregistrement que vous souhaitez avoir. Par exemple NS pour les
serveurs de nom d'un domaine, SOA pour start of authority, PTR pour le reverse, A pour une
machine.
Pour avoir toutes les informations : set type=ANY puis le nom du domaine.
On peut aussi utiliser la commande ls -t CNAME nom_du_domaine pour avoir tous les
enregistrements de type cname (les alias).
Pour interroger un autre serveur DNS que votre serveur par défaut server NAME 195.98.246.50.
who
Cette commande permet de connaître les personnes qui sont loguées sur votre machine.
1. Utilisation de Telnet
Vérifier la présence du paquetage « telnet-server » sur votre machine :
# rpm –qa | grep telnet
Tester votre serveur Telnet en essayant de réaliser une connexion sur la boucle locale de la machine :
# telnet localhost
Depuis une autre machine sur le réseau effectuez une connexion Telnet sur votre poste « Poste1 » et
connectez-vous en tant qu’un utilisateur de la machine « Poste1 »
# telnet Poste1
- Depuis une autre machine « Poste2 » connectez vous en rlogin à votre serveur « Poste1 » en
étant l’utilisateur « Stagiaire1 »
$ rlogin –l Stagiaire1 Poste1
- Après saisie du mot de passe de « Stagiaire1 » sur Poste1 vous pouvez maintenant travailler à
distance sur la machine Poste1.
- Devenez « root » sur Poste1 à distance :
Stagiaire1@Poste1> su –
3. Configuration de ssh
- Une fois votre paquetage installé, éditez le fichier /etc/ssh/sshd_config pour configurer votre
serveur sur l’un des deux modes disponibles :
a) Authentification par mot de passe
b) Authentification par clé publique
Pour le cas a) :
Ajuster votre fichier de configuration de façon à contenir les lignes suivantes :
Port 22
Protocol 2
ListenAddress votre_ip
ServerKeyBits 1024
PermitRootLogin no
PubkeyAuthentication no
IgnoreRhosts yes
PasswordAuthentication yes
UsePAM yes
Compression yes
Pour le cas b) ajuster votre fichier de façon à contenir les lignes suivantes :
Port 22
Protocol 2
ListenAddress votre_ip
ServerKeyBits 1024
PermitRootLogin no
Configuration du client
Remarque:
C'est seulement lors de la première connexion que l'on nous demande de répondre par yes ou par no de façon à
ajouter la clé publique du serveur dans notre fichier ~/.ssh/known_hosts.
Vous remarquez que le système ne vous demande pas votre mot de passe.
- Munissez-vous de 2 machines Linux qui vont jouer le rôle de passerelle IPSec entre 2 LAN
1. Rôle et fonctionnement
Samba est un ensemble de programmes qui permettent de connecter à un serveur LINUX, des
stations fonctionnant sous des systèmes divers : Windows, Mac....
Le serveur Linux est en mesure de se conduire comme un serveur de fichiers capables d'offrir les
services habituels sur un réseau :
l partage de fichiers et de répertoires,
l partage d'imprimantes,
l respect des comptes utilisateurs
l gestion des permissions d'accès
l exécution de scripts de connexion personnalisés
Le protocole de communication sous-jacent qui permet cette communication Linux-Dos/Win s'appuie
sur NetBios et s'appelle smb (Server Message Block).
Samba peut implémenter la sécurité au niveau de l'utilisateur, (ce qui est recommandé) et non au
niveau des ressources comme c'est le cas dans les réseaux de type WorkGroup.
2. Configuration de SAMBA
Sur les stations Windows
Il faut affecter une adresse IP à chaque station dans le même sous-réseau que le serveur Samba-
Linux.
Après redémarrage et si l'utilisateur stagiaire s'est connecté sur le réseau Windows sous un compte
(login: stagiaire/ password: stg) créé sur le serveur Linux, alors il pourra immédiatement avoir accès
à son répertoire personnel /home/stagiaire, qui apparait sous l'aspect d'un dossier qui porte son nom
de connexion.
Si le mot de passe du compte Linux n'a pas été donné à la connexion proposée par le client réseau
Microsoft, il sera alors exigé, comme le montre l'écran ci-dessous :
Paramétrage de smb.conf
Faire une sauvegarde de ce fichier par prudence (cp smb.conf smb.old) puis l'éditer
Les 2 principales sections, prédéfinies sont [global] et [homes].
L'administrateur root peut éditer, modifier et ajouter des sections, pour définir de nouvelles
ressources à partager (imprimante, etc)
De façon générale les permissions de partage définies dans ces sections ne peuvent pas outrepasser
les permissions des fichiers du serveur hôte.
Ne pas oublier à chaque changement effectué dans smb.conf à relancer les processus ! Si les
processus "démons" sont actifs, il faut les arrêter puis les relancer par :
Vous pouvez écrire un petit script shell et le placer dans un répertoire inclus dans le PATH.
Par exemple :
Le répertoire personnel
[homes]
# accès au rép. personnel de chaque utilisateur.
# la valeur du champ comment apparaitra dans le voisinage réseau
# inutile pour cette section de préciser le path, c'est celui de l'utilisateur, en fait /home/%u
comment =Répertoire personnel
browsable = no
writable = yes
create mode = 0700
[public]
# Ce répertoire aura donc pour nom de partage " public "([public]),
# la valeur du champ comment apparaitra dans le voisinage réseau
# Le répertoire à partager est /home/samba
comment =Répertoire public
path = /home/tmp
# il pourra être accessible par tous les utilisateurs
public = yes
# il est accessible en écriture
writeable = yes
# les fichiers créés sont en lecture seule, sauf pour le propriétaire
create mode = 0755
1. Problèmes rencontrés
Le serveur Samba doit pouvoir "résoudre", c'est-à-dire trouver l’@ IP correspondant à un nom
NetBios envoyé par une station, en quête d'un serveur ...
---> Il est préférable d'indiquer au serveur, dans /etc/smb.conf, une méthode explicite de résolution.
- La méthode "host"
Le serveur utilise le nom NetBios comme nom Linux, et fait appel à un serveur DNS. Par défaut, il
s'agit du fichier /etc/hosts.
En cas de problème de connexion d'une station, aller voir et si nécessaire compléter ce fichier.
- La méthode "wins"
C'est celle qui semble recommandée ...
Le serveur Samba est configuré pour être aussi serveur wins. Il enregistre alors les correspondances
: nom netbios <--> adresse IP
Sur chaque station de travail, dans voisinage réseau renseigner l'onglet Configuration Wins en
indiquant
Dans smb.conf, section [global], décommenter la ligne wins support = yes sans modifier la ligne
wins server = w.x.y.z
Il est assuré par le "démon" lpd (=line printer deamon), lancé au démarrage.
Comme beaucoup de démons, il est géré par un script situé dans /etc/rc.d/init.d/lpd
Le script lpd attend un des arguments start, stop ou status, selon que l'on veut commander le
démarrage du démon, son arrêt ou de l'info par le script
Lorsqu'il est rendu actif, ce démon lpd lit le fichier de configuration /etc/printcap, imprime les
fichiers d'impression éventuellement en attente et se met à l'écoute de nouvelles tâches d'impression.
lpd active 2 autres démons listen et accept, qui sous-traitent les tâches d'impression.
Manipulations
- arrêter le démon lpd
- demander le status
- redémarrer ce démon
Exemples
# nom court de l'imprimante locale
lp:\
# nom du répertoire de la file d'attente (sd=spool directory)
:sd=/var/spool/lpd/lp:\
# la taille maximum du fichier est illimitée (car 0)
:mx#0:\
# pas de page de séparation
:sh:\
# nom du fichier spécial pour printer locale
:lp=/dev/lp0:\
# nom du fichier de traitement du fichier
lp:\
# nom du répertoire de la file d'attente
:sd=/var/spool/lpd/lp:\
............................
# nom du serveur d'impression distant (rm=remote machine)
:rm=pc1.cfipen.fr:\
# nom de l'imprimante distante (rp=remote printer)
&nbModifications, ajout d'une imprimantesp; :rp=lp:\
Remarques complémentaires