Archive

Archives pour 03/2002

Mise en place d’un serveur DHCP

I) Introduction :

DHCP signifie Dynamic Host Control Protol soit protocole de contrôle des hôtes dynamique. L’interet de DHCP repose en fait sur 2 principes. Pour le premier, imaginez une situation ou vous possédez une adresse réseau publique de classe A, ce qui permet donc d’avoir jusqu’à 254 hôtes sur le résau et que 300 machines y sont connectées de façon intermittente. Comment permettre leur cohabitation? Et bien il suffit de leur allouer une adresse IP de façon dynamique qu’elle conserveront durant un certain laps de temps définit qui s’appelle le bail. Pas encore convaincu? C’est normal c’est un cas d’utilisation un peu limite

Le deuxième principe, comprenez qu’il est plus commode d’avoir à modifier la configuration réseau au niveau d’un serveur unique plutôt que sur l’ensemble des machines du réseau. Un exemple : l’adresse de votre passerelle a changée, ce n’est plus 192.168.1.10 mais 192.168.1.25. Dans le cas où vous configurez indépendament vos machines, il vous faudra intervenir sur chacune d’entre elles. Si vous possédiez un serveur DHCP, il aurait suffit de modifier les paramètres de sa configuration.

II) Installation et configuration du serveur :

Au niveau du serveur :

 # apt-get install dhcp

Au niveau du client Linux :

# apt-get install pump

Avant de mettre les mains dans le camboui, il nous faut planifier ce que nous allons mettre dans notre DHCP. A savoir, la plage de notre réseau, les adresses allouables par le DHCP, l’adresse de la passerelle, etc… En fait, tout ce que nous allons dire au serveur DHCP d’attribuer.

Dans l’exemple que je vais prendre pour illustrer la configuration du serveur DHCP, celui de mon propre réseau local, nous avons les paramètres suivants :

Réseau : 192.168.0.0
Masque : 255.255.255.0
Passerelle : 192.168.0.1
Serveur DNS primaire : 192.168.0.1
Serveur DNS secondaire : 192.168.0.2
domaine : momonux.org
Interval d’addresses allouables : .10 à .254

Passons à la configuration du serveur maintenant. Il vous faut éditer le fichier /etc/dhcpd.conf

   # nom du domaine du réseau
   option domain-name "momonux.org";
  # adresse IP du serveur DNS
   option domain-name-servers 192.168.0.1;

  #options du bail, bail de 24H
   default-lease-time 86400;
   max-lease-time 86400;
  # Paramètres pour le réseau 192.168.0.0/24
subnet 192.168.0.0 netmask 255.255.255.0 {
  #Interval d'adresses allouables :
   range 192.168.0.10 192.168.0.254;

  # adresse de broadcast
   option broadcast-address 192.168.0.255;
  # Adresse de la passerelle :
   option routers 192.168.0.1;
   # Adresses des serveurs DNS :
   option domain-name-servers 192.168.0.1;
   option domain-name-servers 193.168.0.2;
 }

Et si on veut attribuer via DHCP, toujours la même adresse IP à une machine? Et bien c’estsimple, on utilise l’adresse MAC de la carte Ethernet de la machine. L’adresse IP affectée ne doit pas faire partie de l’interval définit avec range. Exemple :

host foo {
hardware ethernet 00:48:54:66:FB:5F;
fixed-address 192.168.0.3;
}

III) Configuration des clients et test :

Configuration des clients Linux :
Si il s’agit de faire démarrer une machine en terminal X, il vous faut le support du dhcp dans les options réseau du kernel, sinon c’est pleinement inutile

# pump -i ethx # Remplacer x par l’id de la carte réseau bien entendu.
Faîtes un /sbin/ifconfig pour tester la validité la configuration.

Categories: GNU/Linux Tags:

Samba en contrôleur de domaine

I) Introduction :

Nous allons voir au travers de cette courte documentation comment faire pour que Samba agisse comme un PDC (Primary Domain Controleur) ou bien CPD si vous préférez le français. En plus de permettre de partager des fichiers et des imprimantes, Samba est capable d’agir comme un émulateur de Serveur Windows NT avec l’avantage tous les avantages des logiciels libre. À titre d’information, la seule chose qu’un serveur NT sait faire et que Samba ne sait pas faire, c’est la mise en place de serveur Wins de secours.
Pour les personnes cherchantde plus amples informations sur le paramétrage de samba, je vous suggère de lire les pages de man (en particulier le man smb.conf) et surtout de lire la documentation complète disponible sur le site de samba, bien que celle-ci soit en anglais.

II) Configuration globale :

Commençons à paramétrer le comportement du serveur. Éditez le fichier /etc/samba/smb.conf :

 [global]
# Nommage de la machine sur le réseau NetBios :
    workgroup = momolan
    netbios name = serveur
    server string = serveur samba %v 

# Niveau de sécurité. A mettre en user pour un PDC
    security = user
# Nom et emplacement du fichier de mots de passe de samba.
    smb passwd file = /etc/samba/smbpasswd 

# Notre machine sera élue maître explorateur local du réseau NetBios :
    domain master = yes
    local master = yes
    prefered master = yes
    os level = 69 

# Cette option sert à dire que le poste Samba sert de de PDC
    domain logons = yes 

# Script lancé sur les machines clientes à l'authentification.
    logon path = \\serveur\netlogon
    logon script = logon.bat 

# Options sur la casse (différence majuscules/minuscules).
    case sensitive = no
    default case = lower
    preserve case = yes
    short preserve case = no 

# Necessaire depuis win 98 :
    encrypt passwords = yes
# Nous ne voulons pas faire serveur WINS.
    wins support = no
# Nom du compte invité.
    guest account = nobody
# Gestion de la commande Linpopup, correspondant au winpopup sous Windows :
    message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
 # Nous faisons serveur de temps :
    time server = yes
 # Et l'utilisateur « jaune » possède les droits administrateur sur le serveur :
    admin users = jaune 

# Pour le programme de mots de passe :
    passwd program = /usr/bin/passwd %u
    passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n .

III) Mise en place des partages :

Dans un premier temps, partageons les répertoires personnels des utilisateurs qui seront situés sur le serveur :

[homes]
   comment = Répertoires personnels :
   path = %H
   valid users = %S
   create mode = 0700
   directory mode = 0700
   browseable = no
   read only = no

Éventuellement un répertoire public sera mis à disposition :

[public]
   comment = Répertoire public
   path = /etc/samba/public
   read only = No
   create mask = 0777
   directory mask = 0777
   guest ok = Yes

Comme il faut souvent insérer le CDROM de Windows 98 lorsque l’on fait une modification, sur le système, j’aime l’avoir à disposition au travers du réseau, quand celui-ci est disponible bien entendu!

[win98]
   comment = Fichiers Windows 98
   path = /etc/samba/win98
   public = Yes
   read only = Yes
   valid users = jaune

Enfin, un partage spécial, le netlogon, contient les scripts exécutés lors de l’ouverture d’une session sur le serveur :

[netlogon]
   comment = Services d'identification
   path = /etc/samba/netlogon
   write list = jaune
   read only = yes

IV) Création du script de session :

Nous allons créer le fichier correspondant à la ligne suivante du fichier smb.conf :
logon script = logon.bat

À cause des différences de caractère de fin de ligne entre Unix et DOS/Windows, soit vous créez ce fichier sous Windows et vous le placez dans le netlogon, soit vous le faîtes sous Linux et vous placez un filtre convertissant ce fichier :

Exemple de contenu de fichier :

net time \\serveur /set /yes
net use h: \\serveur\homes /yes
net use p: \\serveur\public /yes

Ce script sert à synchroniser l’heure de la machine cliente avec celle du serveur. Puis il attribue une lettre de lecteur réseau au répertoire personnel et au répertoire public.

Filtre pour le traduire au format dos :
# cat logon.bat | sed "s/$/^M/" | sed "$ s/$/^Z/" > /etc/samba/netlogon/logon.bat

V) Ajout des utilisateurs :

Les utilisateurs Samba doivent être des utilisateurs existants dans la base Unix. Donc tout d’abord ajoutons cet utilisateur à la base Unix :
# adduser --shell /dev/null eleve
Faites ainsi pour tous vos utilisateurs destinés à être des utilisateurs Samba. Puis ajoutons ces utilisateurs à la base d’utilisateurs Samba :
# smbpasswd -a eleve

VI) Test du fonctionnement :

Pour commencer, vérifions la syntaxe du fichier /etc/smb.conf :

#testparm
Si votre configuration est correcte, vous aurez une suite de ligne de ce type :
Load smb config files from /etc/samba/smb.conf
Processing section « [homes] »

Démarrons Samba :
Sous Debian :# /etc/init.d/samba start
Sous RedHat et compatibles :# /etc/rc.d/init.d/smb start

Passons à la configuration des clients windows, indiquez simplement ce qui suit :

clt_ouv_session

Redémarrez les clients windows, une boite de dialogue vous invite désormais à vous identifier auprès du serveur ;

saisie_mdp

Indiquez votre mot de passe samba. Si vous cliquez sur « Annuler » vous aurez accès à la machine mais pas aux ressources partagées sur le réseau.

partages

VII) Sécurisons l’accès aux machines :

Il est bien joli notre serveur comme ça, cependant le fait de ne pas s’authentifier ne pénalise pas beaucoup un utilisateur vicieux comme il a quand même accès à la machine. De plus, il peut toujours hôter sa machine du domaine NT et certains partages lui seront tout de même accessibles. Et comme Windows 98 n’est pas du tout multi-utilisateur, chaque utilisateur dispose de tous les droits sur son système avec les risques que celà peut entrainer.

Sur le CDROM de Windows 98, vous trouverez un outil, nommé « Poledit ». Cet outil permet d’appliquer un certain nombre de restrictions à l’utilisateur en modifiant certaines valeurs de la base de registre suivant l’utilisateur qui s’identifie.
Lancez donc cet outil et choisissez un modèle de stratégie à mettre en place. Le plus adapté pour ce que l’on souhaite faire et le fichier « admin.adm ». Créez vos utilisateurs et vos groupes suivant ce que vous souhaitez faire et attribuez-leurs des droits. Pensez à créer un utilisateur privilégié pour administrer les machines pour lequel toutes les cases seront décochées.

droits

Enfin, dans les propriétés de la machine par défaut, spécifiez le mode de mise à jour en manuel, et indiquez une chemin comme suit :

maj_a_distance

Mise à jour : Pour finir, il convient de valider l’application des restrictions apposées aux utilisateurs. Identifiez-vous sous le nom d’un utilisateur ayant des droits restreints. Testez par exemple en lançant l’éditeur de registre par exemple, qu’il convient de désactiver. Pour toute action qui est interdite, vous devriez voir s’afficher l’une des boites de dialogue suivante :

interdit

desactive

Categories: GNU/Linux Tags: