HSC
Cabinet de consultants en sécurité informatique depuis 1989 - Spécialisé sur Unix, Windows, TCP/IP et Internet
Mode texte : accès au contenu de la page
Hervé Schauer Consultants
Vous êtes ici : Accueil > Ressources > Brèves > Installation d'OpenSSH sous Solaris
Accéder au : Site HSC des formations
Télécharger le catalogue des formations
Recherche :  
English version
   Services   
o Domaines de compétences
o Conseil & Expertise
o Prestations ISO 27001
o Audit & Évaluation
o Tests d'intrusion
o Tests de vulnérabilités (TSAR)
o Analyse Forensique
o Certification ARJEL
o Formations
o E-learning
   Conférences   
o Agenda
o Interventions passées
o Tutoriels
   Ressources   
o Index thématique
o Brèves
o Présentations
o Cours
o Articles
o Outils (téléchargement)
o Veille en vulnérabilité
   Société   
o Hervé Schauer
o Equipe
o Offres d'emploi
o Références
o Historique
o Partenariats
o Associations
   Presse et
 communication
 
 
o Newsletter HSC
o Bulletin juridique HSC
o Revue de presse
o Communiqués de presse
o Publications
   Contacts   
o Coordonnées
o Requêtes particulières
o Accès à nos locaux
o Hôtels proches de nos locaux
|>|Installation d'OpenSSH sous Solaris  

par Thomas Seyrat (29/10/2001)






-------------------[ Installation d'OpenSSH sous Solaris ]----------------------


Ce document décrit les différentes étapes de l'installation du logiciel OpenSSH
et de ceux dont il dépend, implémentation libre et gratuite des protocoles SSH 1
et 2, sur le système d'exploitation Sun Solaris.




--[ Introduction ]--------------------------------------------------------------

SSH est un protocole de communication permettant notamment l'établissement de
connexions interactives en ligne de commande, similaire en ce sens à « telnet »,
mais dont le flux est entièrement chiffré, pendant toute la durée de la session.
Il est désormais totalement indispensable de bannir d'un réseau sécurisé la
circulation de mots de passe ou d'autres informations confidentielles en clair.
Vous trouverez une présentation un peu plus complète du protocole SSH à
l'adresse : http://www.hsc.fr/ressources/presentations/ssh/

La plus éprouvée des implémentations libres du protocole SSH est actuellement
OpenSSH, mise au point par une équipe de développeurs du système d'exploitation
OpenBSD. OpenSSH est libre par son mode de développement, et par l'absence
quasi-totale d'algorithmes de cryptographie sous licence dans son code. Autres
avantages, OpenSSH permet l'encapsulation sécurisée de sessions X distantes, les
connexions SFTP (serveur FTP sécurisé), et émule même le fonctionnement des
antiques commandes « en r- », telles rsh ou rcp, afin de sécuriser des lancements
automatiques de commandes distantes (dans le cadre de scripts de sauvegarde, par
exemple).

Nous détaillerons ici les étapes de l'installation et de la configuration de ce
logiciel très riche sur le système d'exploitation Solaris 2.x. Sun a également
écrit une documentation sur la mise en place d'OpenSSH sous Solaris, que vous
trouverez à l'adresse http://sun.com/blueprints/0701/openSSH.pdf , orientée
implantation à grande échelle. Vous êtes vivement invités à vous y reporter pour
obtenir des informations complémentaires, notamment concernant la création de
paquets binaires.

Pour une installation rapide, vous pouvez également privilégier l'installation
de paquets précompilés, téléchargeables sur le site Sunfreeware[1].




--[ Prérequis logiciels ]------------------------------------------------------

Ce document traite d'une installation des différents logiciels depuis leurs
sources. Il est donc indispensable de disposer d'un compilateur C, avec une
nette préférence pour gcc[1], ainsi que de Perl[2], exigé par les scripts de
configuration. Il est également possible de compiler tous les logiciels ici
abordés avec le compilateur Sun Forte (ex-Workshop C Compiler), qui produira des
exécutables optimisés, si le besoin s'en fait sentir, mais certaines
modifications dans les Makefile pourront se révéler nécessaires. De plus, si
vous souhaitez utiliser Forte, vous devrez lui appliquer plusieurs correctifs
(voir sur http://access1.sun.com/ ) pour compiler OpenSSL.

Pour que la compilation de ces différents logiciels réussisse, il faut également
que le « Developer Cluster » de Solaris soit installé. Il est composé notamment
des fichiers d'entêtes, de bibliothèques, et des exécutables nécessaires à la
compilation. Il est possible de l'installer à partir des CD du système
d'exploitation.

OpenSSH permet de compresser dynamiquement le flux de données chiffré, et
utilise pour se faire la bibliothèque Zlib[5], à installer.

Les logiciels de cryptographie forte tels OpenSSH nécessitent la plupart du
temps la présence sur le système d'exploitation d'un générateur de nombres
pseudo-aléatoires fiable afin de garantir une entropie suffisante pour assurer
la sécurité du chiffrement. Solaris ne dispose pas, à la différence de certains
autres systèmes UNIX, d'une telle routine. Il est donc souhaitable d'installer
un logiciel spécifique, qui fonctionnera en tâche de fond, et qui fournira à
OpenSSH l'aléa nécessaire au besoin. L'équipe de développement d'OpenSSH et Sun
recommandent l'utilisation de PRGND[3] pour cet usage.

OpenSSH utilise la bibliothèque de fonctions cryptographiques OpenSSL[4], qu'il
va falloir également compiler. Il faut préciser que bien que le code d'OpenSSH
soit libre d'algorithmes cryptographiques sous licence, celui d'OpenSSL peut
être sujet à certaines restrictions, selon la législation en vigueur dans votre
pays. À l'heure de l'écriture de ces lignes, le brevet sur l'algorithme RSA est
tombé, mais ce n'est pas le cas d'IDEA.

Enfin, les sources des différentes versions d'OpenSSH pour des systèmes UNIX
autres qu'OpenBSD sont disponibles sur http://www.openssh.com/portable.html

Pour résumer, les logiciels suivants sont nécessaires :

  · Solaris Developer Cluster
  · Compilateur C (gcc ou Forte C Compiler)
  · PRNGD
  · Zlib
  · OpenSSL
  · OpenSSH




--[ Installation du générateur de nombres pseudo-aléatoires ]------------------

La distribution de PRNGD ne comporte pas de script de configuration. Il est donc
nécessaire d'éditer manuellement le Makefile et de décommenter les lignes
adaptées au système d'exploitation et au compilateur utilisé. Dans le cas de
Solaris 7 ou 8 et gcc, les trois lignes suivantes apparaîtront :

	CC=gcc
	CFLAGS=-O -DSOLARIS
	SYSLIBS=-lsocket -lnsl

Lancer la compilation par la commande « make ». L'exécutable « prngd » est alors
généré. Vous pouvez alors le déplacer, par exemple dans /usr/local/sbin/.

$ su -
Password:
# cp prngd /usr/local/sbin
# chown root:bin /usr/local/sbin/prngd
# chmod 755 /usr/local/sbin/prngd

Recopier également le fichier de configuration adapté à votre version de
Solaris, présent dans le répertoire contrib/, par exemple :

# cp contrib/Solaris-7/prngd.conf.solaris-7 /etc/prngd.conf

Pour Solaris 8, vous pouvez utiliser le fichier de configuration de Solaris 7.
Vous devez ensuite fournir d'une manière ou d'une autre une « graine » pour
initier l'entropie du générateur. Un bon point de départ serait de concaténer
quelques fichiers de journaux (mettez-en plus que dans l'exemple) :

# cat /var/adm/messages* lastlog wtmp* | compress -c > /etc/prngd-seed

À ce point, il est possible de démarrer le générateur par la commande :

# /usr/local/sbin/prngd /var/run/egd-pool

où /var/run/egd-pool sera le socket servant de réserve d'entropie. L'utilisateur
utilisé pour lancer prngd doit avoir permission d'écriture dans /var/run/. Si
vous souhaitez installer certains composants de PRNGD dans d'autres répertoires,
spécifiez le chemin absolu dans les arguments passés à prngd.




--[ Installation de Zlib ]------------------------------------------------------

Note : il est possible que Zlib soit déjà installé sur votre système.
Vérifiez ceci dans la liste des paquets installés à l'aide de la commande
pkginfo.

La compilation se fait tout simplement (vérifiez que /usr/ccs/bin/ se trouve
dans votre PATH) :

$ ./configure
$ make
[...]
$ su
Password:
# make install

Vous devriez alors retrouver un fichier libz.a dans le répertoire
/usr/local/lib/.




--[ Installation d'OpenSSL ]----------------------------------------------------

Le script de configuration d'OpenSSL permet de spécifier la plate-forme cible de
la compilation, selon la portabilité binaire souhaitée. Ainsi, selon
l'architecture cible, l'argument à passer au script est :

 · sun4* :	solaris-sparcv7-gcc (cc pour Forte)
 · sun4{m,d} :	solaris-sparcv8-gcc
 · sun4u :	solaris-sparcv9-gcc

Vous devez utiliser l'argument correspondant à la plate-forme cible la moins 
évoluée sur laquelle vous souhaitez faire ensuite fonctionner OpenSSL.

Typiquement, pour une utilisation sur une Ultra, on utilise solaris-sparcv9-gcc.

$ ./Configure "argument adapté"
$ make
[...]
$ su
Password:
# make install

Vous devriez retrouver les fichiers libcrypto.a et libssl.a dans
/usr/local/ssl/lib/.




--[ OpenSSH - Installation ]----------------------------------------------------

Le script de configuration d'OpenSSH comporte de nombreux paramètres. Nous vous
recommandons d'utiliser au moins ceux-ci :

 · --disable-suid-ssh : installe la commande « ssh » sans le bit set-UID.
 	Protège d'une éventuelle vulnérabilité locale dans SSH, mais interdit
	l'authentification par fichier .rhosts (ce qui n'est pas une si mauvaise
	chose)
 · --sysconfdir=RÉPERTOIRE : précise l'emplacement des fichiers de configuration
 	et des clés globales
 · --with-prngd-socket=FICHIER : précise l'emplacement du socket tenu par PRNGD
 · --without-rsh : désactive le comportement du protocole SSH, qui passe en mode
 	d'authentification RSH quand une connexion sécurisée échoue
 · --prefix=RÉPERTOIRE : racine de l'installation (/usr/local/ par défaut)

Si vous avez _absolument_ besoin d'interfacer OpenSSH avec PAM (disponible
depuis Solaris 6), vous pouvez spécifier l'option --with-pam à la configuration.
Toutefois, il semblerait que ceci pose certains problèmes aux utilisateurs de
gcc, ainsi que, par la suite, à l'utilisation du serveur sftp.

L'installation se déroule comme suit, par exemple (n'oubliez pas /usr/ccs/bin/
dans le PATH) :

$ ./configure --disable-suid-ssh --sysconfdir=/etc \
	--with-prngd-socket=/var/run/prngd-pool \
	--without-rsh
$ make
[...]
$ su
Password:
# make install

Vous devriez maintenant disposer au moins des commandes ssh, sshd et scp. Les
fichiers de configuration d'OpenSSH sont (normalement dans /usr/local/etc/) :
 
 · ssh_config : comportement par défaut du client « ssh »
 · sshd_config : configuration du serveur « sshd »

Vous pouvez éditer le fichier sshd_config afin de paramétrer le comportement du
serveur (par exemple pour utiliser SSH avec les extensions S/Key, Kerberos,
changer le port d'écoute standard, augmenter la longueur de la clé publique).

Pour démarrer automatiquement le PRNGD et OpenSSH au lancement du système, il
est recommandé d'utiliser le script « openssh.server » développé par Sun[6].




--[ OpenSSH - Utilisation ]-----------------------------------------------------

Le logiciel OpenSSH est tout particulièrement riche en fonctionnalités. Nous
invitons ainsi les nouveaux utilisateurs à se référer aux pages de manuel
ssh(1), scp(1) et sshd(8). Voici un aperçu rapide des richesses qui vous sont
désormais acquises :

$ ssh login@serveur : permet de se connecter en tant que "login" sur la machine
	"serveur"

$ scp fichier-ici login@serveur:~/fichier-la-bas : recopie le fichier local
	"fichier-ici" sur la machine "serveur", en tant que "~/fichier-la-bas"
	pour l'utilisateur "login". scp permet d'utiliser des méta-caractères
	(comme * ou ?) pour désigner des fichiers.

$ ssh login@serveur 'uname -a' : lance la commande "uname -a" en tant que
	"login" sur "serveur"

Vous voyez, c'est tout simple, et plus besoin de se tracasser avec plusieurs
démons (telnetd, rshd, ftpd, etc.) D'ailleurs, une fois que vous aurez bien
compris le fonctionnement de SSH, vous _devez_ les désactiver, au moins pour les
tâches d'administration, de crainte de ne faire circuler le mot de passe "root"
en clair sur le réseau. Il vous est également possible de configurer le serveur
sftp désormais intégré à OpenSSH, qui vous permettra d'émuler totalement le
comportement du protocole FTP, en encapsulant la session dans SSH.

La page de manuel vous expliquera comment configurer OpenSSH pour que n'ayez
plus même besoin de saisir votre mot de passe en vous connectant à distance,
comme avec rlogin, mais en toute sécurité, en utilisant tous les apports de la
cryptographie asymétrique.






--[ Notes ]---------------------------------------------------------------------

[1] Des paquets précompilés pour Solaris sont disponibles sur Sunfreeware
    http://www.sunfreeware.com/

[2] Perl5 fait partie de la distribution standard de Solaris 8. Pour les
    versions précédentes, il est possible de télécharger le paquet d'une version
    très récente de Perl sur Sunfreeware.

[3] PRNGD - Lutz Jänicke
    http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html

[4] OpenSSL
    http://www.openssl.org/

[5] Zlib
    http://www.gzip.org/zlib/

[6] Outils Sun, dont le script de démarrage OpenSSH/PRNGD
    http://www.sun.com/blueprints/tools/

--------------------------------------------------------------------------------
$Id: ssh-solaris.tip,v 1.4 2001/11/04 10:19:53 seyrat Exp $



Dernière modification le 12 novembre 2003 à 13:55:01 CET - webmaster@hsc.fr
Mentions légales - Informations sur ce serveur - © 1989-2013 Hervé Schauer Consultants