serveur ssh sécurisé avec authentification par certificat (tuto de a à z)

Upload: michel-de-crevoisier

Post on 15-Jul-2015

4.856 views

Category:

Documents


1 download

DESCRIPTION

Installation d'un serveur SSH avec authentificaton par certificat.

TRANSCRIPT

Serveur SSH scuris avec authentification par certificat (v4.34) Tutorial conu et rdig par Michel de CREVOISIER 2 INDEX INDEX ................................................................................................................................................................... 2 1.Installation .................................................................................................................................................. 3 2.Configuration .............................................................................................................................................. 3 2.1Fichier de configuration ....................................................................................................................... 3 2.2Gnration des clefs sous Linux .......................................................................................................... 3 2.3Gnration des clefs sous Windows .................................................................................................... 5 3.Connexion par certificat ............................................................................................................................. 6 4.Scurisation du serveur SSH ....................................................................................................................... 7 4.1Dsactivation de la connexion par mot de passe ................................................................................ 7 4.2Restrictions des IP selon lutilisateur ................................................................................................... 7 5.X-Server ....................................................................................................................................................... 9 5.1Configuration de Putty ........................................................................................................................ 9 5.2Lancement dune application ............................................................................................................ 10 6.Tunnel SSH ................................................................................................................................................ 11 6.1Cration dun tunnel .......................................................................................................................... 11 6.2Configuration du socket dans Firefox ................................................................................................ 12 6.3Requte DNS ...................................................................................................................................... 12 7.Outils et logiciels ....................................................................................................................................... 13 7.1Putty .................................................................................................................................................. 13 7.2Kitty.................................................................................................................................................... 13 7.3Putty Connection Manager ............................................................................................................... 13 7.4mRemoteNG ...................................................................................................................................... 14 7.5Gate One : client SSH en HTML5 ....................................................................................................... 14 7.6FireSSH ............................................................................................................................................... 15 8.Divers ......................................................................................................................................................... 16 8.1Journaux dvnements .................................................................................................................... 16 8.2Activation du routage ........................................................................................................................ 16 3 1. Installation Installation des paquets client, serveur et outils : aptitude install openssh-client openssh-server putty-tools 2. Configuration 2.1 Fichier de configuration Ouverture et dition du fichier : nano /etc/ssh/sshd_config Redmarrage du daemon SSH : /etc/init.d/sshd restart 2.2 Gnration des clefs sous Linux 2.2.1Gnration du jeu de clefs Gnration du jeu de clefs : ssh-keygen t rsa b 1024 C user@machine Dtail des options : -t : type de cryptage -b : taille de la clef -C : commentaire Il vous sera alors demand : Lemplacement de la clef (par dfaut dans /user/.ssh/) Un mot de passe (optionnel) pour crypter la clef prive Aprs quoi, vous obtenez deux fichiers : id_rsa : clef prive laquelle on peut associer un mot de passe id_rsa.pub :clefpublique.Cefichierdoittreajoutdanslefichier~/.ssh/authoriz_keys (point 2.2.2) de toutes les machines o lutilisateur souhaite se connecter 4 2.2.2Autorisation de la clef publique Pourquunutilisateurpuisseseconnecterunemachine,ilestncessairedajoutersaclef publiquedanslefichier~/.ssh/authoriz_keys.Pourcela,excutezlacommandesuivantedepuis votre serveur : cat id_rsa.pub >> ~/.ssh/authorized_keys 2.2.3Exportation sous Windows Il faut maintenant exporter et convertir le fichier de clef prive id_rsa en id_rsa.ppk. Pour cela : Connectez-vous laide de WinSCP votre serveur SSH Rcuprez le fichier id_rsa se trouvant dans /user/.ssh/ et copiez le sur votre ordinateur Excutez Putty Key Generator (contenu dans WinSCP) :oConversions > Import key > fichier id_rsa oLe mot de passe utilis lors de la gnration de la clef vous sera alors demand Cliquez ensuite sur Save private key pour sauvegarder la clef prive sur votre ordinateur 5 2.3 Gnration des clefs sous Windows 2.3.1Gnration du jeu de clefs Excutez Putty Key Generator (contenu dans WinSCP)Key > Generate key pair Dplacez ensuite votre souris afin de gnrer alatoirement la clef Une fois termin, indiquez un commentaire et le mot de passe associ la clef prive CliquezsurSavepublickeypoursauvegarderlaclefpublique.Ilfaudraparlasuitecopier cette clef dans le fichier ~/.ssh/authoriz_keys (point 2.3.2) Cliquez sur Save private key pour sauvegarder la clef prive sur votre ordinateur 2.3.2Exporter sous Linux Il est maintenant ncessaire dexporter la clef publique sur le serveur SSH. Pour cela : 6 Connectez-vous votre serveur via WinSCP Crez le dossier ~/.ssh/ mkdir ~/.ssh/ Copiez la clef publique dans ce dossier 2.3.3Autorisation de la clef publique Ajoutezensuitelaclefpubliquedanslefichierauthoriz_keys.Pourcela,excutezlacommande suivante : cat id_rsa.ppk >> ~/.ssh/authorized_keys 3. Connexion par certificat Pour vous connecter avec le certificat cr, suivez comme suit : Ouvrez Putty > Connection > SSH > Auth Cliquez sur Browse et indiquez lemplacement du fichier de clef prive Cliquez ensuite sur Open pour lancer la connexion Attention, vous devez vous connecter avec lutilisateur pour lequel le jeu de clefs a t cr 7 4. Scurisation du serveur SSH VotreserveurSSHestdornavantoprationnel.Ilesttoutefoisncessairedemodifiercertains paramtres pour le scuriser. 4.1 Dsactivation de la connexion par mot de passe Vousavezactuellementlechoixentreuneconnexionparloginetmotdepasseoubienpar certificat et son mot de passe associ. Pour des raisons de scurit, il est judicieux de dsactiver la connexion avec login pour ne permettre que la connexion par certificat. Pour cela ; Editez le fichier de configuration SSH : nano /etc/ssh/sshd_config Modifiez les paramtres suivants : PasswordAuthentication no UsePAM no ChallengeResponseAuthentication no PasswordAuthentication no Redmarrez le daemon SSH : /etc/init.d/sshd restart Uneautrealternativeestdditerlefichierpasswdans/etc/.Pourcelailsuffitderemplacerla valeur x par * pour lutilisateur souhait. 4.2 Restrictions des IP selon lutilisateur Il est possible de restreindre les connexions SSH selon lIP source de lutilisateur ainsi que son login. OnpeutparexempleautoriserlesconnexionsrootseulementdepuisuneIPouuneplagedIP particulire. Pour cela il faut activer un module PAM : Editez le module PAM pour SSH : nano /etc/pam.d/sshd Ajoutez le paramtre suivant afin dactiver le contrle daccs : account required pam_access.so Le module PAM pour SSH est maintenant activ. Ensuite : Editez le fichier contenant les couples IP/utilisateur : nano /etc/security/access.conf Modifiezlefichiervotreguise.Lexempleci-dessousautoriselesconnexionsrootque depuislesIP192.168.2.10/11.Enrevanche,ilautoriselaconnexionviatotodepuistoutes les IP : 8 Pourterminer,ilfautmodifiervotrefichierdeconfigurationSSHpourquilprenneencompteles modules PAM et quil accepte les connexions en root : Editez le fichier de configuration SSH : nano /etc/ssh/sshd_config Modifiez les paramtres suivants : UsePAM yes PermitRootLogin yes Redmarrage du daemon SSH : /etc/init.d/sshd restart 9 5. X-Server Il est possible de dporter linterface graphique dune application installe sur votre serveur SSH afindenavoirlerendudirectementsurvotreposteclient.Pourcommencer,tlchargezet installez le logiciel Xming sur votre ordinateur. 5.1 Configuration de Putty Activez ensuite le X11 forwarding sur votre client SSH. Pour cela : Ouvrez Putty > Connection > SSH > X11 Cochez la case Enable X11 forwarding Allez dans Terminal > Keyboard Choisissez loption Linux Allez ensuite dans Windows > Translation 10 Choisissez UTF-8 Cliquez ensuite sur Open pour lancer la connexion 5.2 Lancement dune application Pour lancer une application en Xserver : Vrifiez que Xming sexcute bien en arrire-plan Connectez-vous en SSH votre serveur Dans votre console SSH, tapez le nom de lapplication suivi du signe esperluette & oExemple : iceweasel& PS : sous Debian, Firefox a t renomm en Iceweasel 11 6. Tunnel SSH Il est possible de crer un tunnel SSH poury fairetransiter tout le trafic dune application (un peu commeunVPN).Cetteactionestraliselaidedunsocketsurladresselocalhost(127.0.0.1). Nous allons donc crer un socket pour y faire transiter tout le trafic de Firefox. 6.1 Cration dun tunnel Pour configurer un tunnel, suivez comme suit : Ouvrez Putty > Connection > SSH > Tunnel Dans Source port, ajoutez un numro de port alatoire (>1024) Slectionnez loption Dynamic et cliquez sur Add oSijamaisvoussouhaitezvousconnecterunemachine(enbureaudistancepar exemple), choisissez loptionLocal et indiquez enDestination lIP et le port de la machine(ex :192.168.22:3389).NoubliezpasderenseignerunSourceport alatoire oSienrevanchevoussouhaitezcreruntunnelSSHpoursortirinternet,choisisez loption Dynamic, ne renseignez pas de Destination et rendez vous au point6.2 pourconfigurervotrenavigateur.NoubliezpasderenseignerunSourceport alatoire 12 6.2 Configuration du socket dans Firefox Dans Firefox, allez dans Outils > Options > Avanc > Rseau > Paramtres Dans Hte SOCKS, indiquez le port du point prcdent ainsi que ladresse 127.0.0.1 6.3 Requte DNS PardfautlesrequtesDNSnetransitentpasvialetunnelSSH.Parconsquentsiunsystmede filtrage web (OpenDNS) est en place, il y a de fortes chances que les requtes DNS soient bloques. Pour faire alors transiter ces requtes via notre tunnel, il est ncessaire de modifier une valeur dans les options avances de Firefox. Pour cela : Dans la barre dadresses, tapez about:config Recherchez la valeur network.proxy.socks_remote_dns Passez ensuite la valeur TRUE 13 7. Outils et logiciels 7.1 Putty Putty est lutilitaire par excellence pour se connecter un serveur SSH. 7.2 Kitty Kitty est une srieuse alternative Putty. En effet, en plus dune interface plus are, il sauvegarde lesconfigurationsdevosconnexionsdansdesfichiers(aulieuduregistre).Vouspouvezdonc aisment transporter vos paramtres sur une clef USB. 7.3 Putty Connection Manager Putty Connection Manager est un utilitaire vous permettant douvrir plusieurs consoles SSH au sein dune mme fentre. En plus de cela, il est possible de crer une base de donnes chiffre pour y stocker vos paramtres (ncessite lajout dune DLL supplmentaire). Page ici et tlchargement ici . Attention le projet nest apparemment plus support. 14 7.4 mRemoteNG RemoteNG est une autre alternative Putty Connection Manager. Tlchargement et informations ici. 7.5 Gate One : client SSH en HTML5 Gate One est un projet rcent permettant de se connecter en SSH depuis votre navigateur, et sans lajout de plugins. Plus dinformations ici. 15 7.6 FireSSH FireSSH est un plugin pour Firefox incluant un client SSH complet. Il est tlchargeable ici. De plus, il est capable de stocker les profils afin de faciliter leur accs ultrieurement. 16 8. Divers 8.1 Journaux dvnements Pour afficher les logs des connexions, excutez la commande suivante : tail -f /var/log/auth.log 8.2 Activation du routage Voir si le routage est activ (0 : dsactiv, 1 : activ) : sysctl net.ipv4.ip_forward Activer le routage temporairement : sysctl -w net.ipv4.ip_forward=1 Activer le routage permanent : nano /etc/sysctl.conf net.ipv4.ip_forwarding=1 Nhsitez pas menvoyer vos commentaires ou retours ladresse suivante : m. decrevoisier A-R-0-B-A-5 outlook . com Soyez-en dores et dj remerci