TP : installation de services Ce TP a été rédigé rapidement. Il ne donne certainement pas toutes les explications nécessaires à la compréhension des manipulations. Assurez vous de bien comprendre ce que vous faites ou poser les questions nécessaire à l'encadrant. Ce TP fait suite au TP d'installation d'un mini LAN. Dont l'architecture est la suivante : 55.55.55.54 192.168.1.1 transit calcul 192.168.1.2 192.168.1.3 Figure 1: Montage LAN utilisateur 192.168.1.10 L'objectif pratique est maintenant d'installer quelques services usuels sur un LAN : serveur SSH : pour permettre à des utilisateurs de se connecter au réseau depuis l'extérieur, serveur SFTP : pour permettre l'échange de fichiers (par FTP ou SCP), serveur WEB : qui permettra de proposer aux internautes le site web de votre organisation, serveur de données SAMBA : permettant la gestion des fichiers des utilisateurs sur un LAN sous Linux et Windows. L'objectif pédagogique est de vous faire mieux comprendre le fonctionnement d'un serveur et d'un réseau local au travers de leur mise en œuvre pratique. Structurellement, je vous propose d'organiser votre sous réseaux avec trois machines (les adresses IP proposées sont indicatives) : le routeur servira de Firewall. Il gérera tout le trafic entrant (redirection de port) et servira de NAT (utilisation des services extérieurs au LAN par les machines internes). la machine Transit sera la seule machine accessible depuis l'extérieur (choix pour améliorer la sécurité du réseau), on installera dessus, le serveur SSH, le serveur WEB et le serveur SAMBA. 1
La machine Calcul représente une machine, supposée performante pour des calculs, sur laquelle on pourrait installer des logiciels spécifiques (R, scilab, ). Pour utiliser cette machine, il faudra également installer un serveur SSH pour pouvoir s'y connecter. La dernière machine, machine Utilisateur, représente les terminaux accessibles par les utilisateurs du LAN, cette machine peut être sous Linux ou sous Windows. Finalement, en plus du compte administrateur sur lequel vous travaillez, vous considérez qu'il y a deux utilisateurs (je vous laisse le choix des mots de passe) : tase gape Commencer par créer des comptes pour ces deux utilisateurs pour les trois machines. Pour des raisons de simplicité, utiliser le même mot de passe pour chaque machine sous Linux. Pour les machines Windows vous devez utiliser le même login/mot de passe que la machine transit (utilisé pour SAMBA). En effet, les réseaux Windows gère les accès aux ressources partagées à l'aide du login/mot de passe. Sous linux, utiliser la commande adduser (avec sudo), et pour Window, aller le panneau de configuration>comptes et utilisateurs. 1 Installation des serveurs SSH/SFTP L'objectif est double : de permettre un accès au réseau LAN depuis un ordinateur extérieur, de permettre un accès à la machine Calcul depuis l'intérieur du LAN. A Configuration des serveurs SSH Pour les machines Transit et Calcul : Si ce n'est pas déjà fait, installer les serveurs SSH en installant le package «ssh» sudo apt-get install ssh Lorsque vous installez ssh, vous installez également la possibilité de faire des transferts de fichiers avec SFTP (en utilisant des logiciels comme FileZilla ou WinSCP). Il n'y a donc rien de spécifique à faire pour l'installation de SFTP. Nous allons maintenant modifier la configuration du serveur SSH de Transit pour lui assurer une meilleur protection. Comme c'est le point d'entrée du LAN, il faut qu'il soit sûr! Nous allons donc préférer une authentification par «clés publique/privée» à une authentification par mot de passe. Pour cela, éditer le fichier de configuration du serveur (fichier /etc/ssh/ssh_config) avec la commande : sudo gedit /etc/ssh/ssh_config 2
1. Modifier le fichier pour faire apparaître la ligne suivante : PasswordAuthentication no Si un # est affiché en début de ligne, supprimez le : il sert à passer la ligne. Si la configuration est yes, passez la à no. Finalement, sauvegardez le fichier et fermez gedit. 2. Redémarrer ensuite le serveur ssh pour qu'il prenne en compte cette modification avec : sudo service sshd restart B Configuration du routeur Comme l'un des objectifs est de permettre l'accès depuis l'extérieur, il faut que les connexions qui arrivent sur le routeur soient redirigées vers la machine en charge des connexions extérieurs, c'est à dire Transit. 3. Modifier la configuration du routeur de sorte à rediriger les connexions du port 22 vers le port 22 de la machine Transit (cf. TP précédent) 4. Faire de même pour le port 115 (port SFTP) Voilà les configurations de SSH et SFTP sont finies. C Test du fonctionnement des connexions SSH Q.1) Depuis la machine Utilisateur, puis d'une machine extérieur du LAN, essayez d'établir une connexion sur l'une ou l'autre des machines. Expliquer? Nous allons donc configurer la machine Transit pour que la machine Utilisateur puisse y accéder en SSH en utilisant une clé privée/clé publique. Une clé est en une ligne de caractères en code ASCII. 1. Votre machine est une machine UNIX Sur la machine Utilisateur : 5. logger vous comme l'un des utilisateurs, par exemple «tase» pour travailler en tant que cet utilisateur : sudo login tase 6. utiliser la commande ssh-keygen pour gérer un couple de clé publique/privée ssh-keygen -t dsa Il vous sera alors demandé où sauver la clé privée (acceptez juste l'endroit par défaut : ~/.ssh, et ne changez pas le nom) puis de choisir une passphrase (phrase de reconnaissance). Ce mot de passe protège localement votre clé. Votre clef publique a été créée avec la nouvelle clé privée. Elles sont habituellement localisées dans le dossier caché ~/.ssh/id_dsa.pub pour la clé publique et ~/.ssh/id_dsa pour la clé privée. 3
La clé publique est faite pour être donnée à vos interlocuteurs pour qu'ils vous identifient La clé privée doit restée sur votre ordinateur L'utilisateur distant doit avoir cette clé dans son fichier de clés d'autorisation situé à ~/.ssh/authorized_keys sur le système distant. Comme nous avons désactivé la connexion par mot de passe, il est nécessaire de copier la clé publique sur une clé USB et de la transmettre «physiquement» jusqu'à la machine transit, où vous ferez installerez la clé. 7. Installer la clé publique sur Transit accéder au répertoire de l'utilisateur tase avec la commande «cd ~tase». créer le répertoire.ssh 1 avec la commande «mkdir.ssh» Entrez dans le répertoire avec «cd.ssh» créer le fichier «authorized_keys» ainsi «touch authorized_keys» ouvrez le fichier avec gedit et copier la clé sur la première ligne du fichier. 8. Retournez sur la machine Utilisateur et tentez de vous connectez de nouveau. Finalement, vous pouvez sortir de la connexion ssh avec la commande «exit», et faites de nouveau «exit» pour sortir de la connexion en tant que «tase». 2. Votre machine est une machine Windows Les mêmes opérations peuvent être réalisées grâce à Putty référez vous au TP sur Putty! 2 Installation d'un serveur SAMBA On travaille ici sur Transit. A Installation de SAMBA Si ce n'est déjà fait, commencez par installer le package «samba» : sudo apt-get install samba Lors de l'installation, deux serveurs sont lancés : smbd : le démon de samba (un démon est un logiciel qui «tourne» en permanence!) nmbd : le démon netbios permettant l'interconnexion avec des ordinateurs Windows B Création des comptes Si vous souhaitez avoir accès au partage depuis votre propre ordinateur Windows, vous devez créer un compte sur la machine Transit avec votre login et mot de passe Windows (exactement les mêmes!). 1 Les répertoires ou fichiers commençant par un point sont des répertoires ou fichiers cachés. 4
C Configuration du serveur SAMBA Tout d'abord, le fichier de configuration doit se trouver ici : /etc/samba/ et se nomme smb.conf. Pour comprendre les détails de cette configuration, il vous faudrait lire les 6000 lignes de documentation Alors je vous propose donc la configuration simple «from scratch», mais pas bien sécurisée! 9. Remplacez la configuration du fichier smb.conf par la configuration suivante : [global] workgroup = WORKGROUP server string = Server Samba public = yes encrypt passwords = true [public] path = /home/partage_public read only = no writable = yes valid users = tase gape comment = Partage des informations Quelques détails : Le fichier contient des configurations globales, et la configuration d'un partage de fichier nommé «public». Dans la configuration globale ([global]) «workgroup» correspond au nom du réseau windows, on reprend ici le nom par défaut. «Server string» permet de décrire le serveur «public» et «encrypt...» définissent le mode d'accès, non publique et par mot de passe. Dans la configuration du partage «public» «path» localise le répertoire des fichiers à partager «read only», «writable» décrit les droits sur le partage «valid users» liste les utilisateurs autorisés pour ce partage (ajouter votre compte si nécessaire) 10. Créez le répertoire «/home/partage_public», puis faire «chmod a+rwx /home/partage_public» pour en autoriser tous les accès à tous. Bien, avant de tester, il faut encore faire un peu de configuration réseau qui consiste à ouvrir les ports nécessaires à la communication. Dans le cas d'un SAMBA avec Windows, nous avons besoin des ports suivants TCP139 / TCP445 / UDP137 / UDP138 /UDP445. 11. Les commandes à exécuter sont les suivantes : sudo iptables -A INPUT -p udp -m udp --dport 137 -j ACCEPT sudo iptables -A INPUT -p udp -m udp --dport 138 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 139 -j ACCEPT 5
sudo iptables -A INPUT -p udp -m udp --dport 445 -j ACCEPT sudo iptables -A INPUT -p tcp -m tcp --dport 445 -j ACCEPT Pour vérifier la bonne configuration, lister les ports ouvert avec : sudo iptables -L 12. Redémarrer le serveur avec la commande : sudo service smbd restart Q.2) À partir d'un poste Windows, aller dans le répertoire «réseau» et constater. D Création des espaces personnels 1. Configuration du serveur Nous allons maintenant modifier la configuration du serveur SAMBA pour offrir à nos utilisateurs la possibilité d'utiliser un espace personnel. 13. Pour cela, on va commencer par créer des comptes Samba pour chacun des utilisateurs : sudo smbpasswd -a tase sudo smbpasswd -a gape Entrez toujours le même mot de passe pour ces utilisateurs 2. 14. Dans le fichier de configuration SAMBA, ajouter la section [homes] cidessous : [homes] browseable = yes read only = no guest ok = no 15. Finalement, redémarrer le serveur SAMBA Par ces manipulations, les espaces personnels des utilisateurs (c'est à dire «/home/tase» pour «tase») sont partagés : toutes les machines du sous réseaux peuvent y accéder, même les machines Windows. 2. Installation du lecteur sous Windows Depuis Windows, les répertoires personnels sont maintenant visibles avec l'explorateur Windows dans les Favoris Réseaux, WORKGROUP. Pour rendre son utilisation plus aisée, il est possible de «monter» automatiquement un volume réseau au démarrage. Pour cela, réaliser les opérations suivantes : Dans le menu Outils de l'explorateur Windows, faites «connecter un lecteur réseaux» 2 En pratique, les administrateurs utilisent des procédures automatiques pour mettre à jour les configurations, sinon, les erreurs seraient trop nombreuses. 6
Configurer le lecteur : Lecteur : «Z:» Dossier : «\\192.168.0.2\tase» (reprendre la dénomination utilisée dans les Favoris réseaux) Laisser la case «reconnecter à l'ouverture» pour automatiser le montage du volume Pour Linux, une opération similaire est possible, mais est un peu plus complexe. Pour ceux que ça intéresse, voyez comment configurer le fichier fstab. Pour les utilisateurs d'ubuntu, l'outil de navigation Nautilus offre une possibilité de connexion d'un lecteur réseau similaire à Windows (dans le menu principal, faire Raccourcis>se connecter à un serveur». 3 Installation d'un serveur Web Après les deux installations précédentes, nous avons rencontré la plupart des problèmes des configurations de serveur. Pour vous améliorer, une seule solution essayez tout seul! L'objectif de cette partie est d'installer un serveur Apache2 (en configuration la plus possible) sur Transit de sorte que des pages web (service www, sur le port 80) puisse être servies à des utilisateurs extérieurs. Pour l'installation du serveur Web, faites comme moi, vous tapez dans votre moteur de recherche favoris : installation ubuntu apache Et essayez de vous débrouillez avec cela... 7