Linux Administration
● Université de La Rochelle
Philippe Harrand 2008
Lundi
● Matin
– Accueil
– Les utilisateurs
● Création / suppression
● Gestion des Quotas
● Après midi
– Mise en réseau
– Serveur DHCP
Université de La Rochelle 2/70
Mardi
● Matin
– Mise en oeuvre de serveurs DNS
maître et esclave
● Après midi
– Découverte LDAP
– Authentification centralisée
– Répertoires personnels distants
– Mise place serveur LDAP
Université de La Rochelle 3/70
Mercredi
● Matin
– SAMBA LDAP
● Construction d'un PDC avec SAMBA
● Après midi
● Questions diverses
● Évaluation
Université de La Rochelle 4/70
Les utilisateurs
● Création / suppression
● Les quotas
Université de La Rochelle 5/70
gestion des utilisateurs
● les utilisateurs sont gérés par :
– /usr/sbin/useradd | groupadd
– /usr/sbin/userdel | groupdel
– /usr/sbin/usermod | goupmod
– /usr/bin/passwd
● Les fichiers concernés sont
– /etc/passwd
– /etc/group
Université de La Rochelle 6/70
– /etc/shadow
TP1
En vous aidant du fameux manuel
● Créez un utilisateur
– Robert Bidochon
– Login : rbidochon
– Password : bidoche
– Répertoire : /home/bd/rbidochon
– Groupe principal users
– Groupe secondaire tpuser
Université de La Rochelle 7/70
TP1
● Modifiez votre utilisateur
– Maintenant on l'appelle Raymonde
– Login : rbidochon
– Password : RayCharles2;
– Répertoire : /home/bd/rbidochon
– Groupe principal utilisatrices
– Groupes secondaires users et tpuser
Université de La Rochelle 8/70
TP 2
● Écrivez un script bash qui crée les
utilisateurs dont la liste est contenue dans
un fichier texte à définir
● Vous trouverez sur
[Link]
outil pour générer des mots de passe et qui
va nous servir à chiffrer.
● Syntaxe :
makepasswd p <mot de passe> e shmd5
Université de La Rochelle 9/70
TP 2
if [ <condition> ]
then
for [ <condition> ]
do
user=
pass=
login=
nom=
/usr/sbin/useradd -c "$nom" -p $pass $login
let i=$i+1
done
else
echo "vous n'êtes pas root"
fi
Université de La Rochelle 10/70
Les quotas
● Concernent un système de fichiers (une
partition) dans sa totalité
● Concernent des utilisateurs et/ou des
groupes
● Définissent des limites en blocs et/ou
inodes
● Définissent des limites «soft» et/ou «hard»
Université de La Rochelle 11/70
TP Quotas
● [Link]/Administration/TP_quotas.html
Université de La Rochelle 12/70
Mise en Réseau
● Pérenne
● Volatile
Université de La Rochelle 13/70
Mise en réseau pérenne
● Configuration des interfaces
– Red Hat : /etc/sysconfig/networkscripts/ifcfg_ethX
– Debian : /etc/network/interfaces
● DNS : /etc/[Link]
● Passerelle par défaut
– Paramètre «GATEWAY» dans le fichier de
configuration d'interface
– Définir plusieurs passerelles sur plusieurs
interfaces => ???
Université de La Rochelle 14/70
Routage
● Routes statiques
– ajouter des lignes «route add» dans
/etc/rc.d/[Link] (/etc/init.d/[Link] pour
debian)
● Forwarding : /etc/[Link]
– net.ipv4.ip_forward=1
Université de La Rochelle 15/70
Routage statique
● Red Hat ● Debian
/etc/sysconfig/static-routes ●/etc/network/interface
GATEWAY0=[Link] auto eth0
NETMASK0=[Link] iface eth0 inet static
ADDRESS0=[Link] address [Link]
netmask [Link]
GATEWAY1=[Link] gateway [Link]
NETMASK1=[Link] up route add -net [Link]
ADDRESS1=[Link] netmask [Link] gw
[Link]
down route del -net [Link]
netmask [Link] gw
[Link]
Université de La Rochelle 16/70
Mise en réseau volatile
● /sbin/ifconfig
● /sbin/dhclient
● /sbin/route
● /sbin/sysctl
Université de La Rochelle 17/70
Interfaces virtuelles
● Ajouter une adresse à une interface
physique
● /sbin/ifconfig eth0:1 ...
● Red Hat :
/etc/sysconfig/networkscripts/ifcfg_eth0:1
● Debian :
/etc/network/interfaces
Université de La Rochelle 18/70
TP Routage
Mise en réseau
Université de La Rochelle 19/70
DHCP
Dynamic Host Configuration Protocol
Université de La Rochelle 20/70
DHCP
● Couche 7 !
● Permet l'auto configuration de la pile IP
● Fonctionnement client/serveur
● Extension de BOOTP
● DHCP fonctionne sur UDP
Université de La Rochelle 21/70
Coté client
● Recherche de serveurs DHCP
● Demande de bail
● Renouvellement du bail
Université de La Rochelle 22/70
Dialogue initial
DHCP DI
MAC em S
« client » COVERY
IP em 0.0 MAC des
.0.0 IP de t broadca
Client st broad st Serveur (s)
cast
DHCP OFFER
u r » M A C d e s t broacast
MAC em « serv e adcast
t u n ic as t o u b r o
IP des
IP em « serveur »
MAC em DH C P R E
« client » QUEST
IP em 0.0 MAC des
.0.0 IP de t broadc
st broadc ast
ast
DHCP ACK t b r o acast
d e s
e r v e u r » MAC
MAC em « s
I P d e s t u n icast ou
e m « s e r v eur »
IP
broadcast
Université de La Rochelle 23/70
Options client
● Le client peut suggérer une adresse
● Le client peut choisir entre plusieurs
serveurs
● Le client peut demander des paramètres
spécifiques
● Le client peut suggérer un bail
Université de La Rochelle 24/70
Bail
● La configuration obtenue a une durée
limitée
● A la moitié de cette durée, le client cherche
à renouveler le bail auprès du serveur
(unicast)
● Avant la fin du bail, le client cherche à
renouveler le bail en broadcast
● A l'expiration du bail, le client relance la
procédure initiale
Université de La Rochelle 25/70
Renouvellement de bail
Client Serveur (s)
MAC em DHCP RE
« client » QUEST
IP em « c MAC des
lient » IP t « serve
dest « se ur »
rveur »
K
DHCP AC dest « client »
e u r » M AC nt »
« s e r v s t « c li e
MAC em serveur » IP de
IP em «
Université de La Rochelle 26/70
Coté serveur
● Affectation statique des adresses basée sur
l'adresse MAC
● Affectation dynamique dans une plage
● Combinaison des deux
Université de La Rochelle 27/70
Coté serveur
● Les serveurs peuvent transmettre en plus
de l'adresse IP
– La passerelle par défaut
– Les serveurs DNS
– Le nom d'hôte
– Le nom de domaine
– Les prévisions météo
– Prochain serveur / nom de fichier
Université de La Rochelle 28/70
Mise en oeuvre
● TP dhcp
Université de La Rochelle 29/70
DNS
● Domain Name System
Université de La Rochelle 30/70
DNS
● Le système DNS est un arbre mondial
● Chaque serveur implémente une ou
plusieurs feuilles
● Les serveurs publics mettent en cache les
informations venant d'autres serveurs
(souvent)
● Les serveurs privés doivent être conçus
comme les publics
Université de La Rochelle 31/70
Hiérarchie DNS
. (13 serveurs)
COM NET ...... EDU FR ORG
[Link] [Link] [Link]
[Link] [Link] [Link]
[Link] [Link] [Link]
Université de La Rochelle 32/70
Interrogation DNS
Université de La Rochelle 33/70
4 configurations
● Maître
● Esclave
– Maître et esclaves doivent être sur des réseaux
distants !
● Cacheseulement
● retransmission
Université de La Rochelle 34/70
Fichiers
● /etc
– [Link] : configuration du serveur
● /var
– named
● [Link]
● [Link]
● localhost_inverse.zone
● mon_domaine.zone
● mon_domaine_inverse.zone
Université de La Rochelle 35/70
[Link]
options {
zone "[Link]" IN {
directory "/var/named";
type master;
}
file "mon_domaine_inverse.zone";
zone "." IN {
allow-update { none; };
type hint;
};
file "[Link]";
zone "localhost" IN {
};
type master;
zone "mon_domaine" IN {
file "[Link]";
type master;
allow-update { none; };
file "mon_domaine.zone";
};
allow-update { none; };
zone "[Link]" IN {
};
type master;
file "localhost_inverse.zone";
allow-update { none; };
};
Université de La Rochelle 36/70
fichiers de zone
$TTL <timetolive>
@ IN SOA <primarynameserver> <hostmasteremail> (
}
<serialnumber>
<timetorefresh>
<timetoretry> esclaves
<timetoexpire>
<minimumTTL> )
Université de La Rochelle 37/70
Fichiers de zone (suite)
IN NS [Link].
IN NS [Link].
IN MX 10 [Link].
IN MX 20 [Link].
IN A [Link]
server1 IN A [Link]
server2 IN A [Link]
dns1 IN A [Link]
dns2 IN A [Link]
ftp IN CNAME server1
Université de La Rochelle 38/70
Fichier de zone
$TTL 86400
@ IN SOA ns.mon_domaine toto.mon_domaine.com. (
2006061042 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.mon_domaine.com.
ns IN A [Link]
www IN A [Link]
Université de La Rochelle 39/70
Chroot
● Service très attaqué => souvent «chrooté»
● Une arborescence minimale est constituée
● On change la racine de l'arborescence (pour
notre démon uniquement)
Université de La Rochelle 40/70
Chroot
Université de La Rochelle 41/70
Exercice
● TP DNS
Université de La Rochelle 42/70
Authentification
● Locale
● Centralisée
Université de La Rochelle 43/70
Authentification
● Fichiers :
– /etc/passwd
– /etc/group
– /etc/shadow
● NIS
– obsolète
● SMB
– Si PDC sur le réseau
● LDAP
● ... Université de La Rochelle 44/70
PAM
● Plugable authentication module
● Implémente une couche d'abstraction entre les
applications et les systèmes d'authentification
● La configuration est dans /etc/pam.d/
– le login utilise login et systemauth
● Utiliser les outils de votre distribution
– authconfig (fedora)
– drakauth (mandriva)
– main gauche ET main droite (debian)
Université de La Rochelle 45/70
Fichiers
● /etc/nsswitch
● /etc/pam_ldap.conf
● /etc/[Link]
● /etc/openldap/[Link]
● /etc/pam.d/systemauth
● /etc/libnss[Link]
● Ces fichiers varient suivant la
distribution... Université de La Rochelle 46/70
LDAP
●
Light-weight Directory Access Protocol
●
Implémente un annuaire (mondial)
compatible X400
●
Compact et protocole réseau léger
●
Authentification des utilisateurs
●
Gestions des droits pour la consultation ou la
modification
●
Base de données spécialisée
Université de La Rochelle 47/70
LDAP
●
Annuaire :
– Est plus souvent lu qu’écrit
– Les données sont présentées de manière
hiérarchique
– Les mécanismes de recherche sont performants
– Les résultats sont organisés
●
Annuaire réparti
Université de La Rochelle 48/70
Structure Objet
●
Généricité de la structure
●
Classes structurantes
– définissent la structure
●
Classes auxiliaires
– définissent les données
●
Les objets sont accédés par :
– Object identifier OID => pour les machines
– Nom unique DN=> pour les cyborgs
Université de La Rochelle 49/70
Attributs
● OID
● Nom
● Syntaxe et règles de comparaison
● Mono ou multivalués
● Indicateur d’usage
● Format
Université de La Rochelle 50/70
Attributs courants
● uid : identifiant présumé unique
● o : organization
● ou : organization unit
● cn : common name
● givenname
● sn : surname
● mail
● photo ... Université de La Rochelle 51/70
Schémas LDAP
● Les classes et les attributs sont définis
dans des schémas normalisés.
● En théorie il est possible de les étendre
● Respecter la hiérarchie
● Respecter la syntaxe
● En pratique on trouve tout ce qu'on veut
dans les schémas existants
Université de La Rochelle 52/70
Schémas
attributetype ( [Link].113730.3.1.241
NAME 'displayName'
DESC 'RFC2798: preferred name to be used when
displaying entries'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX [Link].4.1.1466.[Link]
SINGLE-VALUE )
Université de La Rochelle 53/70
Schéma (exemples)
attributetype ( [Link] NAME ( 'sn' 'surname' )
DESC 'RFC2256: last (family) name(s) for which the
entity is known by'
SUP name )
attributetype ( [Link] NAME 'userPassword'
DESC 'RFC2256/2307: password of user'
EQUALITY octetStringMatch
SYNTAX [Link].4.1.1466.[Link]{128} )
Université de La Rochelle 54/70
Schéma (exemples)
objectclass ( [Link].4.1.1466.344 NAME 'dcObject'
DESC 'RFC2247: domain component object'
SUP top AUXILIARY MUST dc )
objectclass ( [Link] NAME 'person'
DESC 'RFC2256: a person'
SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $
description ) )
Université de La Rochelle 55/70
Organisation LDAP
●
Chaque annuaire est supposé être une partie de
l'Annuaire mondial
●
Chaque feuille est identifiée par un « dn »
distinguished name UNIQUE
●
Pour éviter une recherche mondiale, on identifie
l'annuaire par un « BaseDN »
●
Le Base DN est souvent composé avec le nom de
domaine (DNS) de l'organisation, lequel est unique
● Énoncé par « dc=domaine,dc=tld »
Université de La Rochelle 56/70
Exemple
Université de La Rochelle 57/70
Exemple
dc=univ-lr,dc=fr
ou=people ou=groups
Robert Lettres
Raymonde Droit
Paul Sciences
Université de La Rochelle 58/70
Population de l'annuaire
● Graphique
– gq
– phpldapadmin
– Divers clients java
● Texte
– ldaptools
– Avec utilisation de fichiers au format LDIF
Université de La Rochelle 59/70
LDIF (init)
dn: dc=univlr,dc=fr
dc: univlr
dc: fr dn: ou=groups,dc=univlr,dc=fr
o: univ[Link] dc: univlr
objectClass: top ou: groups
objectClass: dcObject objectClass: top
objectClass: organization objectClass: dcObject
objectClass: organizationalUnit
dn: ou=people,dc=univlr,dc=fr
dc: univlr
ou: people
objectClass: top
objectClass: dcObject
objectClass: organizationalUnit
Université de La Rochelle 60/70
LDIF (groupe)
dn: cn=sciences,ou=groups,dc=univlr,dc=fr
objectClass: top
objectClass: dcObject
objectClass: posixGroup
dc: univlr
cn: sciences
gidNumber:1001
Université de La Rochelle 61/70
LDIF (user)
● dn: uid=toto,ou=people,dc=univlr,dc=fr
● loginShell: /bin/bash
● objectClass: top
● objectClass: dcObject
● objectClass: person
● objectClass: posixAccount
● objectClass: shadowAccount
● dc: univlr
● cn: Bidochon
● uid: rbidochon
● uidNumber: 1001
● homeDirectory: /home/rbidochon
● sn: Robert Bidochon
● gidNumber: 1001
Université de La Rochelle 62/70
Commandes
● ldapadd : ajoute une entrée dans l'annuaire
● ldapdelete : ?? une entrée dans l'annuaire
● ldapmodrdn : renomme une entrée de l'annuaire
● ldapsearch : cherche et affiche une entrée de l'annuaire
● ldapmodify : modifie une entrée de l'annuaire
● ldappasswd : change le mot de passe d'une entrée de l'annuaire
● ldapadd x v D cn=Manager,dc=mydomain,dc=com W < [Link]
– x authentification simple
– v verbeux
– D bind dn
– W demande le mot de passe
Université de La Rochelle 63/70
Exercice
● TP LDAP 1
Université de La Rochelle 64/70
Serveur openLDAP
● Porte le joli nom de slapd
● Configuration dans /etc/openldap/[Link]
● Les schémas sont dans /etc/openldap/schema/
ou dans /usr/share/openldap/schema ou
ailleurs
Université de La Rochelle 65/70
Configuration
● 1ère partie : général
– inclure les schémas qui vont bien
– emplacement des certificats
– Contrôle d'accès général
– ...
Université de La Rochelle 66/70
Configuration
● 2ème partie : l'annuaire
– type de base de données
– basedn appelé aussi suffixe
– dn et mot de passe de l'administrateur
– contrôle d'accès
– index
– réplicats
Université de La Rochelle 67/70
Exercice
● TP LDAP 2
Université de La Rochelle 68/70
Samba-Ldap
● Samba contrôleur de domaine
● Mots de passe (passdb backend)
– smbpasswd
– tdbsam
– ldapsam
Université de La Rochelle 69/70
Configuration
● LDAP => Schéma samba
● SAMBA
– passdb backend = ldapsam:ldap://<adresse>
– suffixes général, users, machines et groups
– commandes d'ajout suppression
● TP smbLdap
Université de La Rochelle 70/70