Serveur Samba (Linux)


SERVEUR Samba ( Sous Linux )


Prérequis

Installation de la distribution Mandrake 10.0 (Serveur) 
Avoir un domaine. 

Introduction

Le serveur Samba est l'outil privilégié pour installer un réseau LAN (Local Area Network) fonctionnant avec le protocole SMB (Server Message Block). Il est donc possible de mixer efficacement dans un même réseau stations Linux et PC Windows grâce à la connaissance de ce logiciel serveur. 
Son utilité : SAMBA est un système de partage de fichiers et d'imprimantes entre des stations Unix et Windows de façon transparente et stable. 

1.Architecture de Samba

Samba est constitué d'un serveur et d'un client, ainsi que de quelques outils permettant de réaliser des services pratiques ou bien de tester la configuration. 
Le serveur est constitué de deux applications (appelées démons): 
smbd, noyau du serveur, fournissant les services d'authentification et d'accès aux ressources 
nmbd, permettant de montrer les services offerts par Samba (affichage des serveurs Samba dans le voisinage réseau, ...) 
le client: smbclient est un client pour linux fournissant une interface permettant de transférer des fichiers, accèder à des imprimantes 
smbtar: permettant d'effectuer un transfert de ou vers un fichier TAR sous linux 
testparm vérifiant la syntaxe du fichier smb.conf, le fichier de configuration de Samba 
Le protocole de communication permettant cette communication entre Windows et Linux s'appelle SMB (Server Message Block). Mis au point par Microsoft en 1987, en reprenant un concept mis au point par IBM en 1985 (NetBIOS), ce protocole s'appuie sur NetBEUI (ainsi que TCP/IP). L'intérêt de TCP/IP provient du fait qu'il a été très largement adopté. Ainsi TCP/IP est déjà implémenté sur la plupart des systèmes d'exploitation (Unix, Linux, AmigaOS, MacOS, OS/2, ...). selon le schéma suivant : 
Application
SMB
NetBios
TCP/IP
NetBeui
IPX/SPX
Pilotes Réseaux

2.Installation des paquetages nécessaires au serveur samba

Avant toute chose s'assurer que les paquetages nécessaires sont installer sinon les installer en tapant mcc (Centre de Contrôle Mandrake) en ligne de commande dans le terminal en se loggant en tant que root (taper su puis le mot de passe du root), aller dans Gestionnaire de Logiciels puis dans Installer, sélectionner les trois paquetages suivants (dans tous les paquetages, classement alphabétiques) : 
samba-client-3.0.2a-3mdk
samba-common-3.0.2a-3mdk
samba-server-3.0.2a-3mdk

Puis cliquer sur Installer. 

Premier démarrage de Samba

Après installation, le serveur de Samba devrait normalement être apte à démarrer (sans aucun partage de fichiers ou d'imprimante) en lançant la commande suivante: 
/etc/rc.d/init.d/smb start 
Starting SMB services: [OK] 
Starting NMB services: [OK] 

La commande suivante permet de contrôler que les deux démons sont correctement lancés 
/etc/rc.d/init.d/smb status (ou service smb status) 
smbd (pid 1054) is running...
nmbd (pid 1056) is running...

Les commandes utiles

(à partir du terminal en root)
  • testparm /etc/samba/smb.conf
    • Test de syntaxe d'écriture du fichier smb.conf
  • /etc/rc.d/init.d/smb stop
    • Stop les services Samba
  • /etc/rc.d/init.d/smb start
    • Démarre le serveur Samba
  • /etc/rc.d/init.d/smb restart
    • Redémarrage de Samba
  • /smbstatus
    • Affiche les connexions actives via Samba

3.Configuration du fichier smb.conf

La configuration de Samba est effectuée par l'intermédiaire d'un fichier de configuration unique: smb.conf. Ce fichier est située dans le répertoire /etc/samba/ 
Remarque : à chaque modification du fichier smb.conf à l'aide d'un éditeur de texte, l'enregistrer puis taper en ligne de commande : /etc/rc.d/init.d/smb restart (afin de redémarrer le serveur samba et par la même occasion prendre en compte les modifications du fichier smb.conf) 
Ce fichier décrit les ressources que l'on désire partager, ainsi que les permissions/restrictions qui leur sont associées. Le fichier smb.conf se découpe selon des rubriques (chacune référencé par une ligne contenant le nom de la section entre crochets) comprenant chacune un ensemble de lignes de paramètres du type attribut = valeur. Une ligne commençant par un # est une ligne de commentaires et une ligne commençant par ; est inactive. 
Il existe 3 sections principales :
  • La section [global]
    • définit des paramètre généraux sur le serveur
  • La section [homes]
    • définit le partage d'un répertoire personnel
  • La section [printers]
    • définit les imprimantes partagées par le serveur

Section "global"

Voici un exemple (l'exemple est celui du réseau R2D4) de section [global] : 
[global] 

# même nom de groupe que celui sous Windows (Voisinage réseau) 
workgroup = MSHOME 

# nom sous lequel apparaîtra le serveur dans le voisinage réseau 
netbios = samba server 

# ce qui apparaîtra dans la rubrique détail du voisinage réseau, %v fait 
# apparaître le n° de version de samba 
server string = Samba Server %v 

# les mots de passe transitent cryptés 
encrypt passwords = Yes 
smb passwd file = /etc/samba/smbpasswd 

# lieux de stockage du journal des événements 
log file = /var/log/samba/log.%m 

# taille maximum du journal 
max log size = 50 

# aucun compte invité (facultatif) 
guest account = nobody 

# accès multi-utilisateur (facultatif) 
Share modes = yes 

# emplacement du fichier printcap (imprimantes sur le serveur Linux) 
printcap = /etc/printcap 

# partage de toutes les imprimantes définies dans printcap 
printcap name = cups 
load printers = yes 
printing = cups 
printer adm = @ adm 

# fichier journal de Samba 
log level = 1 
log file = /var/log/samba/log.%m 

# mode de sécurité : (user / share / server) 
security = user 

# Autoriser l'accès a certains réseaux (le point final est important) 
hosts allow = 192.168.1. 

# Vous pouvez autoriser toutes les machines de ce réseau sauf 192.168.1.10 
hosts allow = 192.168.1. EXCEPT 192.168.1.10 

# Mettre les adresses IP des machines auxquelles vous souhaitez interdire l'accès 
# au serveur samba par exemple : ALL, pour interdire tout le monde sauf les 
# machines autorisées par <hosts allow>. 
Hosts deny = ALL 

# pas de proxy dns 
dns proxy = No 

# Laisser ce champs par défaut 
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 

# active le fonction de serveur de temps 
time server = yes 

# le script de connexion porte le nom du groupe, %g est la variable samba pour le 
# groupe primaire 
logon script = %g.bat 

# autorise la connexion des utilisateurs sur le domaine 
domain logons = yes 

# Si on veut que le serveur soit le maître du domaine 
domain master = yes 

# dans le cas de la présence de plusieurs contrôleurs de domaine, c'est le 
# serveur qui est le favori 
preferred master = yes 

# En cas de serveur maître permet de gagner l'élection contre les autres machines 
# windows 
os level = 255 
# on donne l'accès au répertoire netlogon qui contient les scripts de démarrage 
[netlogon] 

#chemin d'accès du répertoire 
path = /home/netlogon 

# seuls les utilisateurs spécifiés peuvent utiliser ce répertoire 
public = no 

# on ne peut pas écrire dans ce répertoire 
writable = no 

# le répertoire n'apparaît pas dans l'arborescence 
browseable = no 

#liste des utilisateurs ayant les droits root sur ce répertoire, ici le formateur 
admin users = guillaume 

Section "homes"

Partage du répertoire personnel 
La section [homes] permet de définir l'accès au répertoire personnel de chaque utilisateur. Voici un exemple de section: 

[HOMES] 
# commentaire visible depuis le voisinage reseau 
comment = Home Directories 

# affichage de la ressource pour tous 
browseable = no 

# possibilité d'écrire sur la ressource 
writable = yes 

Section "documents"

Partager un répertoire quelconque 
Il est possible de définir une accès personnalisé à n'importe quel répertoire de la machine en créant une section portant le nom que le veut donner à la ressource. Celui-ci contiendra entre autres un paramètre path donnant le chemin d'accès à la ressource. 
Ce répertoire sera consultable en lecture et en écriture sur la station Windows suivant l'utilisateur loggé. 
Voici un exemple de section personnalisée: 

[DOCUMENTS] 
# commentaire visible depuis le voisinage réseau 
comment = /home/Répertoire_quelconque 

# chemin d'accès a la ressource 
# Attention à la casse !! 
path = /home/Répertoire_quelconque 

# affichage de la ressource pour tous 
browseable = no 
guest ok = yes 

# mettre les noms d'utilisateurs qui seront validés, la procédure pour les 
# insérer sera expliquée ultérieurement 
valid users = noms_utilisateurs 

# chemin d'acces a la ressource 
#etant donné que des utilisateurs insérés pourront y accéder il faut mettre no 
public = no 

# utilisateurs ayant les droits root sur ce répertoire 
admin users = noms_utilisateurs 

# possibilité d'écrire sur la ressource 
writable = yes 

Section "cdrom"

Partage d'un lecteur de CD-ROM 
Il est ainsi possible de partager un lecteur de CD-ROM (celui-ci devant être préalablement monté) , en créant par exemple une section [cd-rom] comme suit: 

[CD-ROM] 
# commentaire visible depuis le voisinage reseau 
comment = lecteur de CD-ROM 

# chemin d'accès au lecteur 
path = /mnt/cdrom 

# accessible à tous 
public = yes 

# impossibilité d'écrire sur la ressource 
writable = no 

create mask = 0750 

4. Accèder à une ressource Samba sous linux

Le client Samba (smbclient) permet de fournir une interface en ligne de commande pour accéder aux ressources Samba à partir d'une machine de type Unix. 
smbclient permet en premier lieu de vérifier l'existence d'une serveur Samba sur le réseau et de lister les ressources qu'il partage grâce à la commande: 
smbclient nom_serveur_smb 
Une fois les ressources identifiées, il est possible d'accèder à chacune d'entre elles par la commande: 
smbclient \\\nom_serveur_smb\\ressource -U nom_utilisateur 
Un mot de passe devrait être demandé à l'utilisateur. Il suffit ensuite d'envoyer des commandes FTP afin d'envoyer/recevoir des fichiers ou bien de parcourir les répertoires de la ressource. 
L'accès à une imprimante se fait par la commande 
smbclient \\\nom_serveur_smb\\ressource -P 
l'impression du fichier /usr/local/samba/lib/etc.conf se fait par la commande: 
print /usr/local/samba/lib/etc.conf 
la visualisation de la queue d'impression: 
queue 
l'arrêt de smbclient: 
exit 
Remarque : Pour accèder au voisinage réseau sous Linux, ouvrir Konqueror et taper dans la barre d'URL : smb:/ 

5.Création des utilisateurs Samba et accès aux comptes de ces utilisateurs

Créer un utilisateur sur la machine serveur Samba sous Linux Mandrake version 10 (serveur) : 

Graphiquement

En ligne de commande taper mcc en se loggant en tant que root (ou passer par le menu « configure your computer »),nous voilà dans le Centre de Contrôle Mandrake , ensuite aller dans « système » puis « Utilisateurs et groupes » enfin « ajouter utilisateur ». 

En ligne de commande taper

adduser Nom_Utilisateur 

Ensuite entrer le mot de passe de l'utilisateur dans le fichier smbpasswd dans le répertoire /etc/samba de la manière suivante (en ligne de commande): 
smbpasswd -a Nom-Utilisateur 
En réponse : 
New SMB password : Donner le même mot de passe que lors de l'ajout de l'utilisateur 
Retype new SMB password :idem 

Créer le même utilisateur avec le même passe sur la machine Windows (Client) : 

Aller dans « panneau de configuration » puis dans compte utilisateur pour créer un utilisateur avec les droits « administrateur » 

Renouveler autant de fois l'opération précédente qu'il y a d'utilisateur à créer. 

Remarque : En cas d'utilisateurs déjà existant sur la machine Windows, le recréer uniquement sur le serveur Linux et surtout ne pas renommer un utilisateur, soit il est déjà existant soit il faut le créer. A chaque création d'utilisateur sous windows, redémarrage de la station. 

6.Le partage de répertoires

Il y a le partage du répertoire personnel, qui affiche les répertoire selon l'utilisateur logué et il y a le partage d'un répertoire commun. 
Attention, si on partage un répertoire ne se trouvant pas dans l'arborescence « Home », tout accès sera refusé, donc le répertoire « Home » ou un de ses sous-répertoires doit contenir ce répertoire commun pour un usage optimal de celui-ci. 

7.Les messages d'erreurs

Des messages d'erreurs du type suivant peuvent provenir : 

Problèmes : Réseau introuvable (sous Windows) 
ou encore : 
Internal Error 
Please send a full bug at http://kde.org 
Unknown error condition in stat : Network is unreahable (sous Linux) 
Ce type d'erreur signifie que vous n'êtes pas connecté à un réseau, branchement, câbles réseau à vérifier, configuration réseau et fichier /etc/samba/smb.conf à vérifier également. 

Si un message d'erreur tel que : 
Impossible de se connecter au serveur samba 
est affiché, dans ce cas vérifier la configuration du fichier /etc/samba/smb.conf. 
Le serveur Samba s'affiche au sein du domaine mais affiche le message d'erreur suscité lorsque l'on clique dessus, dans ce cas vérifier le chemin du répertoire de partage quelconque ou personnel dans le fichier smb.conf.

Serveur Web Sous Linux


Serveur Web Sous Linux


Résumé

Installation d'un serveur WEB - TP(s)
La séquence est bâtie pour des travaux réalisés avec plusieurs machines. Certaines parties pourront être réalisées sur votre propre machine, celle-ci servant de client et de serveur.
Vous devez avoir un navigateur d'installé, par exemple mozilla, firefox, konqueror, galeon...
La résolution de noms doit fonctionner.
Attention : Les paramètres peuvent différer d'une version à l'autre de Linux ou d'une distribution à l'autre. J'utilise dans ce document des variables, vous devrez y substituer les valeurs réelles de votre environnement.
  • $APACHE_HOME, répertoire dans lequel sont stockées les pages du serveur.
  • $APACHE_CONF, répertoire dans lequel sont stockés les fichiers de configuration.
  • $APACHE_USER, compte utilisateur sous lequel fonctionne Apache.
  • $APACHE_GROUP, groupe auquel est rattaché le compte $APACHE_USER.
  • D'autres variables peuvent être définies au besoin dans l'ensemble des TP.


    Installation d'un serveur Web

    Introduction

    Vous allez réaliser les opérations suivantes:

    • configurer le serveur HTTP pour qu'il soit activé en mode standalone
    • activer le serveur HTTP,
    • tester le fonctionnement du serveur

    A la fin vous devriez pouvoir accéder sur toutes les machines (serveurs HTTP) du réseau à partir du navigateur client.
    Attention Vous utiliserez les éléments donnés dans la fiche de cours.

    Configuration du serveur

    Vous allez réaliser une configuration de base du serveur. Vous allez donc modifier les fichiers de configuration qui vous ont été présentés dans la fiche de cours. Avant toute modification, faites une copie de sauvegarde des fichiers.
    Ouvrez le fichier à l'aide d'un éditeur, relevez et vérifiez les paramètres suivants. Pour chacun de ces paramètres vous noterez leurs rôles à partir de la fiche de cours et des commentaires (pensez à enregistrer vos modifications) :

    • ServerName, nom pleinement qualifié de votre serveur (FQDN)
    • Listen 80
    • User $APACHE_USER
    • Group $APACHE_GROUP
    • ServerAdmin webmaster@localhost
    • ServerRoot /etc/apache2
    • DocumentRoot $APACHE_HOME
    • UserDir public_html
    • DirectoryIndex index.html index.shtml index.cgi
    • AccessFileName .htaccess
    • Alias /icons/ $APACHE_ICONS/icons/
    • ScriptAlias /cgi-bin/ $APACHE_CGI/cgi-bin/

    Activation du serveur

    Regardez dans la fiche de cours les commandes de lancement du service serveur et la procédure de test. Regardez dans les fichiers de log et dans la table de processus si le service est bien démarré. Vérifier avec la commande netstat que le port 80 est bien ouvert.
    Notez toutes les commandes que vous utilisez.

    Test de la configuration

    A ce stade le serveur est configuré et fonctionne. Il ne reste plus qu'à réaliser les tests. Vous devez pour cela activer le navigateur.
    Faites les tests à partir de la machine locale et d'une machine distante. Utilisez les adresses localhost, 127.0.0.1, les adresses IP et les noms d'hôtes.
    Si tout fonctionne, vous êtes en mesure de déployer votre site. Il suffira pour cela de l'installer dans l'arborescence $APACHE_HOME.
    Dépannage: si cela ne fonctionne pas, procédez par élimination.
    • 1 - Essayez avec les adresses IP des machines. Si ça fonctionne c'est que la résolution de noms n'est pas en place.
    • 2 - Vérifiez que votre serveur est bien actif.
    • 3 - Vérifiez que la configuration du serveur est correcte. Si vous apportez des modifications vous devez réinitialiser le serveur HTTP.

    Auto-évaluation sur le premier TP


    • Quels sont les fichiers de base pour la configuration du serveur apache2 et dans quels répertoires sont-ils situés ?
    • Comment active-t-on un site ?
    • Comment se nomme le compte d'utilisateur qui utilise le serveur http ?
    • Quels sont les permissions d'accès par défaut sur le site principal du serveur ?
    • Dans quel répertoire sont installés par défaut les pages HTML du site ?
    • Dans quel répertoire par défaut sont stockés les scripts CGI et quel en est l'alias ?
    • Quel est le principal rôle des alias ?
    • Quelle(s) procédure(s) peut-on utiliser pour déterminer l'état du serveur et son bon fonctionnement ?
    • Vous installez un serveur Apache sur une machine d'adresse 192.168.90.1 et de nom foo.foo.org. Lors des tests sur la machine locale, les commandes http://localhost, http://127.0.0.1, http://192.168.90.1 fonctionnent et http://foo.foo.org ne fonctionne pas. Lors des tests à partir d'une machine distante les commandes http://192.168.90.1 et http://foo.foo.org fonctionnent.
      Que peut-on en déduire et comment résoudre le problème ?



VTP ( Darija )

VTP ( Darija )

VLSM ( Darija )

VLSM ( Darija )

Configuration des Vlan !!


Configuration des Vlan !!