Académique Documents
Professionnel Documents
Culture Documents
I - Introduction..............................................................................................................................................................3
II - Installation et fonctionnement du serveur OpenSSH.............................................................................................4
II-1 - Sur un systme Linux................................................................................................................................... 4
II-2 - Sous Windows, avec Cygwin........................................................................................................................ 4
II-3 - Cygwin pour Windows Vista et Seven.......................................................................................................... 6
III - Configuration du serveur d'OpenSSH...................................................................................................................7
IV - Authentification....................................................................................................................................................12
IV-1 - Par login/mot de passe..............................................................................................................................12
IV-2 - Par change de cls..................................................................................................................................12
IV-2-a - Gnration des cls.......................................................................................................................... 12
IV-2-b - Diffusion de la cl publique............................................................................................................... 13
IV-2-c - Connexion ssh................................................................................................................................... 13
IV-3 - Au revoir mots de passe, passphrase....................................................................................................... 13
IV-3-a - L'authentification sans mot de passe................................................................................................ 14
IV-3-b - Utilisation de ssh-agent..................................................................................................................... 14
IV-3-c - Automatiser l'utilisation de ssh-agent................................................................................................ 15
V - Un peu de scurit.............................................................................................................................................. 16
V-1 - Changer le port d'coute ct serveur....................................................................................................... 16
V-2 - Bloquer l'accs Root par SSH.................................................................................................................16
V-3 - Restreindre l'accs des utilisateurs et/ou groupes spcifiques............................................................... 16
VI - Transfert de fichiers scuris : SCP...................................................................................................................18
VI-1 - Fonctionnement de la commande scp.......................................................................................................18
VI-2 - Scp par un port diffrent du port 22.......................................................................................................... 18
VII - Utiliser une application graphique distance : X11 Forwarding....................................................................... 19
VIII - Utiliser SSH en tant que tunnel scuris : TCP Forwarding............................................................................ 20
IX - Conclusion.......................................................................................................................................................... 22
X - Liens utiles...........................................................................................................................................................23
Remerciements.......................................................................................................................................................... 24
-2-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
I - Introduction
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, Windows via Cygwin...
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.
-3-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Remarque : La mthode d'installation propose dans cet article repose sur le fonctionnement
de la distribution Debian et ses drivs. Pour les autres distributions, veuillez vous reporter aux
commandes de gestions des paquets implantes pour la distribution choisie.
Installation d'OpenSSH
> apt-get install openssh-server
L'installation du serveur OpenSSH cre un dossier /etc/ssh et gnre un couple de cls RSA :
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 l'assure de communiquer avec le vritable serveur.
Le canal de commmunication scurise est alors cr.
Si pour une quelconque raison, vous tiez amen devoir gnrer nouveau le couple de cls
du serveur, reportez-vous la partie IV-2-a et nommez les cls ssh_host_rsa_key.
Cette partie ne traite pas de ce qu'est Cygwin et comment l'installer mais de comment installer
un serveur SSH sous Cygwin.
Cygwin est une sorte d'mulateur de systme Unix sous Windows. Il est constitu d'un grand nombre
de paquets, logiciels libres existants sous Linux dont OpenSSH. Ainsi, il est possible d'avoir un serveur SSH sous
Windows !
Pour faire fonctionner un serveur SSH sous Cygwin, il est ncessaire de crer les groupes et utilisateurs de Windows
dans Cygwin en copiant ceux-ci de Windows Cygwin :
Il est ncessaire de donner un mot de passe votre utilisateur Windows afin de permettre une
connexion par SSH !
-4-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Comme sous Unix/Linux, Windows dispose de variables d'environnement, notamment le PATH. Il est ncessaire
d'diter le PATH et de rajouter le rpertoire des commandes pour Cygwin.
Pour cela, allez dans :
Poste de travail --> Proprits --> Avanc --> Variables d'environnement
Variable CYGWIN
Ensuite, slectionnez PATH dans la liste, cliquez sur "diter" et ajoutez la fin du PATH : C:\Cygwin\bin.
-5-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Variable PATH
Voila, il ne vous reste plus qu' autoriser le dmarrage du serveur SSH au dmarrage de Windows. Pour cela, utilisez
les commandes :
Les grands changements entre les systmes Windows XP et Vista (puis Seven) ont entrain des problmes dans
l'installation traditionnelle de Cygwin.
Vous trouverez dans cette section les manipulations recommandes par Projet Cygwin afin de faire fonctionner au
mieux Cygwin sur un OS Windows Vista ou Seven.
Pour lancer l'installeur Cygwin sous Windows Vista et Seven, vous devez faire un clic droit sur l'icne d'installation
et choisir l'option : "excuter en tant qu'administrateur".
Egalement, une fois installe, ouvrez une console et excutez ces 6 commandes afin de fixer des problmes de
droits :
Enfin, suite l'excution de la commande ssh-host-config -y, si le script vous renvoie le commentaire suivant : "This
script plans to use cyg_server, Do you want to use a different name?", Rpondez "no" puis entre.
Lorsque le script s'arrte et vous demande de dfinir les variables d'environnement pour CYGWIN ("environment
variable CYGWIN="), entrez ceci : ntsec tty
- ntsec est une variable d'environnement utilise par Cygwin afin d'utiliser les rgles de scurit de Windows pour le
contrle des accs utilisateurs aux fichiers et autres programmes.
- tty est une variable d'environnement utilise par Cygwin pour fonctionner correctement avec des diteurs de texte
comme nano ou vi. Sans cela, vous ne pouvez pas insrer de caratres.
-6-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Paramtres Description
Port Dsigne le port qu'coute le serveur. Par
dfaut, c'est le port 22.
Protocol Dsigne la version du protocole ssh utilis
par le serveur. Par dfaut, c'est la version 2.
ListenAddress 0.0.0.0 Correspond l'adresse locale d'coute su
serveur sshd en ipv4.
ListenAddress :: Correspond l'adresse locale d'coute su
serveur sshd en ipv6.
AllowUsers Ce mot-clef peut tre suivi d'une liste de
motifs de noms d'utilisateurs, spars par
des espaces. S'il est spcifi, seuls les
noms d'utilisateurs correspondant un
des motifs sont autoriss se connecter.
On peut utiliser les caractres * ou
? comme des jokers. Seuls les noms
d'utilisateurs sont valides ; les identifiants
d'utilisateurs (UID) ne sont pas reconnus.
Par dfaut, la connexion est autorise pour
tous les utilisateurs. Si le motif est de la
forme UTILISATEUR@MACHINE, alors
UTILISATEUR et MACHINE sont vrifis
sparment, en restreignant les connexions
des utilisateurs en particulier provenant de
machines en particulier.
AllowGroups Ce mot-clef peut tre suivi d'une liste de
motifs de noms de groupes, spars par
des espaces. S'il est spcifi, seuls les
utilisateurs dont le groupe principal ou les
groupes supplmentaires correspondent
un des motifs sont autoriss se connecter.
On peut utiliser les caractres * ou ?
comme jokers. Seuls les noms de groupes
sont valides ; les identifiants de groupes
(GID) numriques ne sont pas reconnus. Par
dfaut, la connexion est autorise pour tous
les groupes.
DenyUsers Ce mot-clef est suivi d'une liste de motifs
de noms d'utilisateurs, spars par des
espaces. Les utilisateurs dont le nom
correspond un des motifs ne sont pas
autoriss se connecter. Dans les motifs,
on peut utiliser les caractres * et ?
comme des jokers. On ne spcifie que
des noms d'utilisateurs ; les identifiants
numriques d'utilisateurs ne sont pas
autoriss. Par dfaut, tous les utilisateurs
-7-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
-8-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
-9-
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
et RhostsRSAAuthentication ou
HostbasedAuthentication.
Les fichiers /etc/hosts.equiv et /etc/ssh/
shosts.equiv sont nanmoins utiliss. Par
dfaut, yes.
HostbasedAuthentication Spcifie si on autorise une authentification
par rhosts ou /etc/hosts.equiv conjointement
avec une authentification de machine cliente
russie par clef publique (authentification
par machines). Cette option est similaire
l'option RhostsRSAAuthentication et ne
s'applique qu' la version 2 du protocole. Par
dfaut, no.
IgnoreUserKnownHosts Spcifie si sshd doit ignorer le
fichier $HOME/.ssh/known_hosts de
l'utilisateur lors des authentifications des
options RhostsRSAAuthentication ou
HostbasedAuthentication. Par dfaut, no.
PermitEmptyPasswords Dfinit si le serveur accepte la connexion
un compte utilisateur ne possdant pas de
mot de passe. Par dfaut, no.
ChallengeResponseAuthentication Spcifie si on autorise l'authentification par
stimulation-rponse (challenge response).
Toutes les formes d'authentification de
login.conf5 sont gres. Par dfaut, yes.
PasswordAuthentication Permet d'autoriser l'authentification par mot
de passe. Par dfaut, yes.
X11Forwarding Permet de rediriger les sorties X11. Cela
permet donc d'ouvrir des applications
graphiques distance par exemple.
La redirection X11 est automatiquement
dsactive si l'option UseLogin est active.
Par dfaut, no.
X11DisplayOffset Spcifie le premier numro d'affichage
disponible pour les redirections X11 de sshd.
Ceci vite sshd d'interfrer avec les vrais
serveurs X11. Par dfaut, 10.
PrintMotd Permet d'afficher le contenu du fichier /etc/
motd (message du jour) la connexion. Par
dfaut, yes
PrintLastLog Permet d'afficher la date et l'heure de la
dernire connexion. Par dfaut, yes.
TCPKeepAlive Permet de garder ouverte une connexion ssh
existante grce l'envoi d'un paquet chiffr
par ssh. Par dfaut, yes.
UseLogin Spcifie si on utilise login pour les
connexions des sessions interactives. Par
dfaut, no.
Note 1 : On n'utilise jamais login pour
l'excution de commandes distance.
Note 2 : Si cette option est active, on
dsactive X11Forwarding parce que login
ne sait pas traiter les cookies xauth. Si on
spcifie l'option UsePrivilegeSeparation, elle
sera dsactive aprs l'authentification.
MaxStartups Spcifie un nombre maximal de
connexions concurrentes au dmon
- 10 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
D'autres options existent. Vous pouvez les retrouver sur la manpage officielle de sshd_config d'OpenSSH.
Comme souvent, le dmarrage, l'arrt et le redmarrage du serveur se font comme ceci, respectivement :
/etc/init.d/ssh start
/etc/init.d/ssh stop
/etc/init.d/ssh restart
- 11 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
IV - Authentification
Diffrentes possibilits existent concernant l'authentification pour la connexion au serveur SSH : l'authentification par
mot de passe et l'authentification par change de cls. Voici comment mettre en place ces deux techniques.
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 vous est demand.
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.
Utiliser au choix RSA ou DSA.
Pour ce faire, OpenSSH propose un outil de gnration trs simple utiliser : ssh-keygen.
A l'excution de cette commande, le couple de cls est gnr. Il vous est alors demand le chemin o vous voulez
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 vous est demand d'entrer une passphrase qui vous permettra de protger votre cl prive. Cette
passphrase peut contenir tout caractre et "mta-caractre", mme des espaces. Elle est retenir car elle vous est
demande chaque connexion par change de cls.
- 12 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Pour permettre l'authentification par change de cls, il est ncessaire de donner votre cl publique au serveur, selon
de principe de la cryptographie asymtrique.
Encore une fois, OpenSSH penser tout et vous offre un outil pour copier votre cl publique au serveur en toute
scurit : ssh-copy-id
A cet instant, 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.
Bien que ssh-copy-id soit conue spcialement pour copier votre cl publique sur le serveur SSH, il est possible
d'effectuer cette tche d'une autre faon, avec scp :
ssh login@serveur_SSH
cat cl_publique >> /home/login/.ssh/authorized_keys
rm cl_publique
De cette manire donc, la connexion ssh ne se fait plus par login/mot de passe mais grce l'change de cls
prives/cls publiques et l'utilisation de la passphrase.
La commande de connexion reste cependant la mme :
Si vous utilisez ssh rgulirement, vous avez du vous rendre compte que cela devient trs vite fatigant de devoir
retaper chaque connexion ssh son mot de passe ou sa passphrase.
Il existe 2 alternatives ce dsagrment : l'authentification sans mot de passe et ssh-agent.
- 13 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
L'authentification sans mot de passe est trs pratique et pratiquement incontournable pour excuter des scripts
distants, par exemple un script shell d'arrt global se connectant tour de rle sur vso diffrents serveurs pour
excuter la commande spcifique d'arrt.
L'authentification sans mot de passe est donc trs efficace mais pose cependant un problme de scurit non
ngligeable.
Son principe est tout simple :
Cela consiste en la gnration d'un couple de cl prive/cl publique, de la mme manire que pour l'authentification
par change de cls et en la diffusion de votre cl publique. Cependant, au moment de rentrer une passphrase comme
il l'est demand au cours de la gnration du couple de cls, vous n'entrez rien et vous faites "Entre". Rptez cette
touche la demande de re-saisie de la passphrase.
Cela a pour effet de renseigner la chane vide comme passphrase, ce qui revient dire qu'il n'y a pas de passphrase.
Ainsi, lors de la connexion par ssh, l'tape de demande de passphrase est "omise" et la connexion s'effectue sans
demande "de vrification au clavier".
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ssh-agent est un autre outil dvelopp par OpenSSH permettant d'utiliser l'authentification par change de cls avec
une passphrase sans avoir toujours taper cette dernire.
Une fois ssh-agent dmarr, toutes les commandes ou programmes excuts par ssh sont des sous-processus de
ssh-agent, ne ncessitant plus d'authentification ultrieure.
Ainsi, il ne reste donc plus qu' rcuprer les variables d'environnement, de les mettre en place pour ssh-agent et
demander ssh-agent de s'occuper de notre cl publique et le tour est jou...
Les variables d'environnement s'affiche l'cran. Pour les mettre en place pour ssh-agent, il suffit de copier les 3
lignes de l'cran et de les recoller dans la console.
ssh-add
ssh-add ~/.ssh/id_dsa.pub
# ou
ssh-add id_rsa.pub
C'est fini... Enfin presque. En effet, ssh-agent n'est "valable" que dans la console dans laquelle il a t lanc. Ce qui
signifie que si vous fermez votre console et en ouvrez une autre, il faut tout recommencer.
- 14 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Comme il a t dit la fin de la partie IV-3-b, ssh-agent n'est valable que pour la console dans laquelle il est lanc.
Ainsi, pour optimiser l'utilisation de ssh-agent et viter de devoir recommencer le lancement de ssh-agent et la copie
des variables d'environnement chaque fois, des personnes se sont penchs sur le problme (notamment Joseph
M. Reagle) et on crit un bout de code pour pallier ce problme.
Ce code est coller dans le fichier .x_profile de votre HOME. Par exemple, avec un shell en Bash, le fichier en
question est : /home/votre_user/.bash_profile
Code permettant de ne plus avoir lancer ssh-agent chaque nouvelle console. Ce code est placer dans
le .x_profile de votre home
SSH_ENV="$HOME/.ssh/environment"
function start_agent {
echo "Initialising new SSH agent..."
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add;
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
Ainsi, avec ce code, il n'est plus ncessaire de lancer ssh-agent. Vous n'avez qu' copier votre cl sur le serveur si
ce n'est pas dj fait et vous connecter en ssh sans besoin de mot de passe.
- 15 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
V - Un peu de scurit
Comme dit plus haut, le port d'coute par dfaut d'un serveur SSH est le port 22. Or, vous remarquerez que trs
souvent, des machines inconnues tentent de se connecter par SSH sur vos serveurs grce des scripts automatiss
testant sur le port 22 un grand nombre d'utilisateurs et mot de passe couramment utiliss tels que root, mysqladmin,
oracle...
Une premire barrire pour viter toute intrusion par SSH est de changer le port d'coute su serveur SSH.
Les ports jusqu' 1024 sont "rservs" pour diverses protocoles et applications. Ainsi, choisissez un port de nombre
suprieur 1024.
Pour changer le port d'coute, il suffit d'diter le fichier de configuration ct serveur : /etc/ssh/sshd_config :
Lorsque le port de connexion au serveur SSH est chang, diffrent du port par dfaut 22, il est ncessaire de le
renseigner dans la ligne de commande de connexion en utilisant l'option -p.
Par exemple, si vous avez modifier le port par dfaut et choisi d'utiliser le port 2222, la ligne de commande de
connexion devient :
Les scripts automatiss (notamment) qui tentent que se connecter par SSH sur vos serveurs utilisent principalement
les logins couramment utiliss dont Root fait bien sr partie.
Le fait de laisser l'accs Root par SSH fait gagner une tape un pirate qui souhaite s'introduire dans votre systme.
En effet, le fait de bloquer l'accs Root entrane la ncessit un pirate de trouver un nom d'utilisateur autre,
existant sur votre systme. Sans cela, le pirate dispose donc du nom d'utilisateur, il ne lui reste plus qu' trouver le
mot de passe de Root pour s'introduire.
Cette fois encore, tout se passe dans le fichier de configuration du serveur SSH /etc/ssh/sshd_config. Une option
permet de bloquer l'accs Root, qu'il faut placer "no" :
La section prcdente montre comment bloquer l'accs SSH au super-utilisateur Root. Cependant, par dfaut, SSH
autorise l'accs tous les utilisateurs de tous les groupes.
De nombreux logiciels crent automatiquement un utilisateur et/ou un groupe spcifique pour les administrer. Ces
utilisateurs possdent un mot de passe par dfaut qui, s'il n'est pas modifi, peut permettre un pirate d'accder
facilement votre machine en utilisant ce couple de login/mot de passe, tel que oracle/oracle.
- 16 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Il est donc possible et fortement conseill de restreindre l'accs au serveur SSH quelque(s) utilisateur(s) privilgi(s)
de confiance. Plusieurs options sont disponibles pour effectuer cette restriction, au niveau du fichier de configuration
du serveur SSH /etc/ssh/sshd_config :
Cet exemple utilise les options "Allow...". Ces deux options permettent de dfinir les utilisateurs et groupes autoriss
se connecter par SSH. Seuls les utilisateurs Foo et Bar, ainsi que les utilisateurs appartenant au groupe SSH_serv
peuvent donc se connecter. Tous les autres voient leur accs par SSH bloqu.
Il existe une autre faon de restreindre l'accs :
Dans ce nouvel exemple, la restriction ne se fait plus par la dfinition d'une liste d'utilisateurs et groupes autoriss
se connecter mais par la dfinition des utilisateurs et groupes n'ayant pas le droit de se connecter.
Ici, tous les utilisateurs peuvent se connecter par SSH l'exception des utilisateurs Foo et Bar, ainsi que les membres
du groupe SSH_serv.
- 17 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Il existe de nombreuses faons de transfrer des fichiers d'une machine une autre, ftp, rcp... mais celles-ci ne sont
pas scurises. OpenSSH propose donc une commande permettant ce transfert travers un canal chiffr, reposant
sur le protocole SSH : scp.
Dans ce second exemple, le fichier /var/log/data.txt est transfr du serveur SSH vers le HOME de l'utilisateur local
"moi" :
Dans le paragraphe V qui traite de la scurit, il est conseill d'utiliser un port diffrent du port 22 par dfaut d'coute
du serveur SSH. Or, comme il a t vu plus haut, cette action entraine le fait de devoir spcifier le numro du port
utilis lors de la connexion par SSH.
Scp utilisant SSH, il en est donc de mme pour lui, il est ncessaire de renseigner le port utiliser pour contacter le
serveur SSH dans la commande. Cela se fait avec l'option -P.
la commande ssh utilise l'option -p ("p" minuscule) pour spcifier le numro de port utiliser,
alors que scp utilise l'option -P (P majuscule)
- 18 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
OpenSSH permet de se connecter de manire scurise sur un ordinateur distant. Une des diverses options que
propose OpenSSH est le X11 forwarding. Cela consiste faire du dport d'affichage sur une machine cliente et ce,
travers un canal chiffr.
Par exemple, si vous souhaitez travailler chez vous sur une application graphique couteuse, installe uniquement
sur le serveur de votre entreprise, cela est possible de le faire en toute scurit.
Pour le X11 Forwarding, il n'est pas ncessaire d'avoir d'install un serveur graphique sur le
serveur, mais juste sur la machine devant afficher la fentre graphique de l'application.
Comme souvent, pour activer l'option X11 Forwarding sur le serveur SSH, il suffit de mettre "yes" l'option
X11Forwarding dans le fichier de configuration su serveur SSH : /etc/ssh/sshd_config :
Option X11Forwarding
X11Forwarding yes
Pour ouvrir une session SSH sur le serveur en autorisant le dport d'affichage, il faut rajouter l'option -X la commande
de connexion :
ssh -X login@serveur_SSH
De plus amples informations sur le X11 Forwarding sont disponibles dans l'article de Davidbrcz
et ovh : Excution d'applications X distance
- 19 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Le TCP Forwarding, ou tunnel SSH, permet d'accder distance des services thoriquement inacessibles depuis
l'extrieur du rseau de faon scurise. Par exemple, vous pouvez grce ce procd accder l'intranet de votre
entreprise depuis l'extrieur, vous connecter votre serveur mail ou bien encore traverser un pare-feu.
Pour tre plus clair, voici un schma thorique de ce qui se passe lors d'une communication par un tunnel SSH :
Ce schma montre la communication pour accder l'intranet de votre entreprise depuis l'extrieur.
Voil, le tunnel est cr. Maitenant pour accder l'intranet, il suffit de changer les paramtres de votre navigateur
web prfr et de renseigner l'utilisation du proxy : localhost par le port : 1234.
- 20 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
- 21 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
IX - Conclusion
Avec cet article, j'ai essay de vous prsenter les nombreuses possibilits d'utilisation de SSH dont l'utilit n'est plus
prouver.
- 22 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
X - Liens utiles
- 23 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/
OpenSSH : Mise en place et description dtaille d'un serveur SSH par Mathieu Androz
Remerciements
Merci Davidbrcz et ovh pour leur article sur l'excution d'applications X distance.
Merci _Mac_ pour la qualit de sa relecture.
- 24 -
Ce document est issu de http://www.developpez.com et reste la proprit exclusive de son auteur. La copie, modification
et/ou distribution par quelque moyen que ce soit est soumise l'obtention pralable de l'authorisation de l'auteur.
http://mathieu-androz.developpez.com/articles/linux/ssh/