Вы находитесь на странице: 1из 7

DRCT ISTA NTIC Bni Mellal Atelier ssh-telnet Fedora

M18-Administration des rseaux informatiques.

I. Avant de commener :
Raliser la topologie suivante sous Virtualbox :

II. Les services la demande :


Le service inetd gre certains services rseaux dits la demande autrement dit ne seront active que sil y a des clients. Toute information concernant les ports surveiller et lapplication rseau activer en consquence est communiqu vie le fichier /etc/inetd.conf. Chaque ligne du fichier de configuration dcrit une application et se compose des champs suivants : Nom du port. inetd lit /etc/services pour dduire le numro de port quivalent couter. Type de protocole : stream tcp si tcp ou dgram udp si udp. wait ou nowait indique respectivement si il y a un seul serveur pour lensemble des clients ou un serveur par client. LUID Le chemin de lexcutable. Les arguments de lapplication. Exemple de ligne dapplication :
ftp stream tcp nowait root /usr/sbin/wu.ftpd wu.ftpd a

Le wrapper tcpd contrle laccs des services en utilisant des ACLS via les services /etc/hosts.allow et /etc/hosts.deny. La ligne de ftp devient :
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd a

un extrait de /etc/hosts.allow sera:


wu.ftpd : LOCAL, .SOCIETE.COM.

xinetd est le super-service qui a rempla inetd en apportant de nouvelles possibilits de configuration. Ce programme est configur via /etc/xinetd.conf, dont voici un exemple :
#xinetd.conf defaults {

Page 1 sur 7

} includedir /etc/xinetd.d

instances log_type log_on_success log_on_failure cps

= = = = =

60 SYSLOG authpriv HOST PID HOST 25 30

instances Dtermine le nombre maximal de requtes qu'un service xinetd peut grer un moment donn. log_type Configure xinetd de sorte qu'il utilise la facility de journalisation authpriv qui enregistre des entres de journalisation dans le fichier /var/log/secure. L'ajout d'un directive telle que FILE /var/log/xinetdlog entranerait la cration d'un fichier de journalisation personnalis portant le nom xinetdlog dans le rpertoire /var/log/. log_on_success Configure xinetd de faon ce qu'il effectue la journalisation si la connexion est tablie avec succs. Par dfaut sont enregistrs aussi bien l'adresse IP de l'hte distant que l'ID de processus serveur traitant la requte. log_on_failure Configure xinetd de faon ce qu'il effectue la journalisation si la connexion choue ou si elle n'est pas autorise. cps Configure xinetd de manire n'autoriser que 25 connexions par seconde un service donn. Si cette limite est atteinte, le service est retir pendant 30 secondes. includedir /etc/xinetd.d/ Inclut des options stipules dans les fichiers de configuration spcifiques aux services qui se trouvent dans le rpertoire /etc/xinetd.d

Le fichier /etc/xinetd.d ne contient pas directement la description des services, mais prcise le rpertoire qui les contient. Un exemple de fichier de configuration de service est donn ci-dessous :
#telnet service telnet { flags socket_type wait user server log_on_failure disable }

= REUSE = stream = no = root = /usr/sbin/in.telnetd += USERID = yes

service Dfinit le nom du service, gnralement pour correspondre un service mentionn dans le fichier /etc/services. flags Dfinit une varit d'attributs pour la connexion. L'option REUSE donne l'instruction xinetd de rutiliser le socket pour une connexion Telnet. socket_type Spcifie le socket comme tant de type stream. wait Dtermine si le service est mono-fil (single-threaded, yes) ou multi-fils (multithreaded, no). user Dtermine l'ID d'utilisateur sous lequel le processus est excut. server Dfinit le fichier binaire excutable devant tre lanc. log_on_failure Dtermine les paramtres de journalisation de log_on_failure en plus de ceux dj dfinis dans xinetd.conf.

disable Dtermine si le service est actif.

III.

Le service TELNET:

Le service telnet fournit une connexion distance un serveur. On obtient un shell distant qui permet lexcution des commandes sur le serveur. Il utilise le port 23. Sous Linux, le serveur Telnet nest actif par dfaut. Page 2 sur 7

Le service telnet (in.telnetd) est normalement activ par inetd ou xinetd. Avant dactiver le login, il affiche le fichier /etc/issue.net. Le package dinstallation de fedora 8 est : telnet-server-0.17-41.fc8.i386.rpm il est disponible sur le dvd de fedora. Application Pratique : Sur le serveur serv01fed : 1. Vrifier est ce que le package telnet est install. rpm -qa|grep -i telnet ou rpm -q telnet-server On peut aussi effectuer une recherche du package associ telnet yum search telnet Le package est telnet-server 2. Installer telnet yum -y install telnet-server ou rpm -ivh telnet-server.........;; Si on utilise l'installation via rpm, il faut s'assurer que le "super-serveur" xinted est install car telnet est un service la demande. 3. Afficher les informations de telnet rpm -qi telnet-server 4. Vrifier les fichiers de telnet rpm -ql bind les fichiers cls : /etc/xinetd.d/telnet /usr/sbin/in.telnetd 5. Activer telnet dans le fichier /etc/xinetd.d/telnet vi /etc/xinetd.d/telnet puis disabled=no 6. Dmarrer le service xinetd service xinetd status netstat ntl|grep 23 si le service xinetd est en marche: service xinetd restart sinon : service xinetd start ps -ef |grep -i xinetd netstat ntl|grep 23 7. Installer le client telnet si le client telnet n'est pas install, on peut l'installer via: rpm -ivh telnet-0.......rpm 8. Tester telnet localement crer un utilisateur, lui donner le login "tux1" et un mot de passe de votre choix. telnet localhost login : tux1 netstat -ant|grep 23 9. Ajouter un message de dmarrage echo "bonjour test telnet" >> /etc/motd partir de "serv02fed" puis pc1: Page 3 sur 7

telnet 192.168.4.10 10. vrifier telnet cd /var/log cat messages sur pc1: installer le client putty utiliser pour accder via telnet serv01fed.

IV.

Le service SSH:

OpenSSH est un ensemble d'outils dvelopps sous licence OpenBSD. Son nom est la contraction d'OpenBSD Secure SHell. OpenSSH permet d'effectuer des communications scurises travers un rseau, reposant sur le protocole SSH. OpenSSH offre une solution de remplacement scuris pour rlogin, telnet, rcp et ftp. OpenSSH est disponible sur un grand nombre de systmes d'exploitation dont BSD, Linux, AIX, HP-UX, Solaris, Mac OS X. SSH est un protocole de communication scurise reposant sur le mode client-serveur. SSH signifie Secure SHell. SSH offre la confidentialit des changes et l'authentification des correspondants. Il existe 2 versions du protocole, la version 2 tant largement utilise maintenant. Le protocole SSH utilise par dfaut le port 22. Il utilise des cls de chiffrement entre le serveur et le client donc tous le trafic entre le client et le serveur est crypt. L'installation du serveur OpenSSH cre un dossier /etc/ssh et gnre un couple de cls RSA : ssh_host_rsa_key contenant la cl prive du serveur ssh_host_rsa_key.pub contenant la cl publique du serveur Lorsqu'un client demande une connexion au serveur, ce dernier envoie au client sa cl publique. Le client utilise alors la cl publique reue pour envoyer au serveur une cl secrte. Le serveur reoit alors la cl publique et la dcrypte avec sa cl prive, prouvant ainsi qu'il est bien le serveur. Pour le prouver au client, le serveur crypte un message type avec la cl publique du client et lui envoie. Si le client arrive lire le message en le dcryptant avec sa cl priv, il a la certitude de communiquer avec le vritable serveur. Le canal de communication scurise est alors cr. La configuration du serveur ssh se rsume en un fichier : /etc/ssh/sshd_config. La configuration par dfaut du serveur est suffisante pour son fonctionnement. Diffrentes possibilits existent concernant l'authentification pour la connexion au serveur SSH: lauthentification par mot de passe et l'authentification par change de cls. Voici comment mettre en place ces deux techniques.

Par login/mot de passe :


Cette mthode d'authentification est trs simple, il suffit d'excuter la commande de connexion SSH : Lors de la premire connexion SSH au serveur avec ce login, il vous est demand si le fingerprint de la cl publique du serveur est bon. Si le fingerprint de la cl publique du serveur est bien le mme que celui affich votre cran, vous pouvez accepter de continuer en tapant yes. La cl publique du serveur SSH est alors copie dans le fichier ~/.ssh/know_hosts, ceci permettant garder en mmoire l'authenticit de la cl publique du serveur pour les prochaines connexions. Ensuite, le mot de passe de l'utilisateur utilis pour se connecter est demand.

Par change de cls :


Cette mthode d'authentification repose sur la cryptographie asymtrique, par l'utilisation du couple cl prive/cl publique cr par l'utilisateur client, de la mme faon que le fait le serveur. SSH propose de gnrer le couple de cls publique/prive en utilisant au choix 2 algorithmes : DSA et RSA. Loutil ssh-keygen permet de gnrer les cls de la manire suivante : ssh-keygen -t rsa A l'excution de cette commande, le couple de cls est gnr. Il est alors demand le chemin o on veut stocker ces cls et leur nom. La touche "entre" permet de valider le chemin propos par dfaut. La cl prive prend les droits 600 et la cl publique 644. Suite cela, il est demand d'entrer une passphrase qui permettra de protger la cl prive. Cette passphrase peut contenir tout caractre et "mta-caractre", mme des espaces. Elle sera demande chaque connexion par change de cls. Page 4 sur 7

Pour permettre l'authentification par change de cls, il est ncessaire de donner la cl publique au serveur, selon ee principe de la cryptographie asymtrique. OpenSSH permet de copier la cl publique au serveur en toute scurit : ssh-copy-id de la manire suivante : ssh-copy-id -i chemin/cl/publique/id_rsa.pub login@serveur_ssh Le fichier known_hosts est alors lu pour voir si la machine est connue. Puis, le mot de passe session de l'utilisateur "login" est demand et ce sera la dernire fois. Les prochaines connexions avec cet utilisateur se feront donc par change de cl prive/cl publique et l'aide de la passphrase entre lors de la gnration des cls de l'utilisateur. Il est possible d'effectuer cette tche d'une autre faon, avec scp : scp /home/login/.ssh/id_rsa.pub login@serveur_SSH:/home/login/cl_publique ssh login@serveur_SSH cat cl_publique >> /home/login/.ssh/authorized_keys rm cl_publique On peut sauthentifier sans mot de passe en saisissant un passphrase null lors de la gnration des cls. Application Pratique : Sur la machine serv01fed : 1. Vrifier lexistence du paquetage openssh-server. rpm qa | grep openssh ou rpm -q openssh-server 2. Vrifier que le service sshd est dmarr service sshd status chkconfig --list sshd 3. Crer un compte utilisateur nomm user1 useradd user1 passwd user1 4. Editez le fichier /etc/ssh/sshd_config pour configurer votre serveur sur le mode d'authentification par mot de passe : ajuster votre fichier de configuration de faon 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. 5. Lancer votre serveur ssh /etc/init.d/sshd restart ou service sshd restart Sur la machine serv02fed : 6. se connecter en tant que tux1 si le compte n'existe pas le crer Lancer une session ssh sur la machine serv01fed en tant que user1 (il faut s'authetifier avec un compte utilisateur cre sur la machine serv01fed) ssh user1@nommachine ou ssh user1@192.168.4.10 Page 5 sur 7 7.

donner le mot de passe lancer ls on est sur le /home/user1 on peut excuter des commendes d'une manire scuris quiter la session ssh En tant que "tux1" sur la machine serv02fed lancer une commande qui affiche les information sur la machine serv01fed ssh user1@192.168.4.10 uname -a Copier d'une faon scuris le fichier file1 du /home/user1 de la machine serv01fed vers /home/tux1 de la machine serv02fed l'aide de la commande scp. (crer le fichier s'il n'existe pas). scp usre1@192.168.4.10:/home/user1/file1 /home/tux1 10. Faire de mme pour un fichier copier de serv02fed vers serv01fed. On peut accder au service ftp de faon scuris l'aide de la commande sftp. 9. 8.

NB: chaque opration ssh ou scp ou sftp ncessite l'entre du mot de passe car le mode utilis est l'authentification par mot de passe. On va maintenant s'intresser l'authentification par cl publique : Sur la machine serv02fed : 1. Se connecter en tant que tux1. 2. Gnrer les cls de tux1.

ssh-keygen t rsa
Accepter le chemin par dfaut des cls prive et publique ~/.ssh/id_rsa. Vous pouvez utiliser un mot de passe pour

protger la cl prive.
la cl publique sera stocke dans ~/.ssh/id_rsa.pub. Ne jamais donner la cl publique aux autre personnes.

3. Changer les droits du dossier .ssh

chmod 755 ~/.ssh 4. Accder au dossier /home/tux1/.ssh cd /home/tux1/.ssh 5. Autoriser la cl publique de tux1 sur le serveur ssh serv01fed en le copiant sur le fichier authorized_keys sur le reprtoire /home/user1/.ssh ssh-copy-id -i ~/.ssh/id_rsa.pub user1@192.168.4.10 la cl peut aussi tre transfr par ftp ou par tout autre moyen.
Sur la machine serv01fed : 6. Ajuster votre fichier /etc/ssh/sshd_config de faon contenir les lignes suivantes:

Port 22 Protocol 2 ListenAddress votre_ip


Page 6 sur 7

ServerKeyBits 1024 PermitRootLogin no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys IgnoreRhosts yes


7. redmarrer le service sshd

service sshd restart


Sur la machine serv02fed : 8. en tant que tux1, connectez vous sur le srveur SSH "serv01fed", aucun mot de passe ne vous sera demand. Sur la machine pc (xp): 9. utiliser putty pour se connecter sur le serveur ssh en mode authentification par cl publique. Vous devez utiliser l'utilitaire "puttygen" pour la gnration des cls. Vous pouvez utliser l'utilitaire "pscp" pour copier la cl pubique vers le serveur.

Page 7 sur 7