Tym-Project

From: SUPINFO
To: Tous
Subject: IT

Installer Un Serveur SSH Destiné Au Tunneling

Suite à cet article, j’ai jugé bon de vous expliquer comment mettre en place un serveur ssh sécurisé qui sera destiné seulement à faire du tunneling. La configuration va être plus poussée que pour un serveur classique car vous aurez en permanence un terminal ouvert sur le serveur, ce qui augmente donc les risques que quelqu’un prenne la main sur votre serveur.Notre serveur sera une Debian 5.0.

Installons donc les paquets nécessaires :

apt-get update
apt-get install openssh-server

Commencez par démarrer le serveur avec la configuration de base

/etc/init.d/sshd start

Créons maintenant le groupe tunnelers :

groupadd tunnelers

Puis un utilisateur, l’option -G permet de le rendre membre du groupe que l’on vient de créer et -m de forcer la création du home :

useradd -G tunnelers -m tun1

Nous allons lui donner un mot de passe temporaire car à terme cet utilisateur n’en aura plus :

passwd tun1

Il est temps de créer le couple de clés RSA. Si vous êtes sous Windows et que vous utilisez Putty, consultez cet article pour avoir des clés utilisables.
Sur la machine client, exécutez la commande suivante :

ssh-keygen –t rsa

Vous aurez alors la possibilité de choisir un mot de passe pour votre clé, moins pratique, mais plus sécurisé…

Il faut maintenant placer la clé publique sur le serveur :

ssh-copy-id -i .ssh/id_rsa.pub tun1@server.chez-moi.com

Une fois la clé placée correctement, nous allons supprimer le mot de passe de l’utilisateur tun1 :

passwd –d tun1

Nous allons aussi lui attribuer un shell limité. Pour cela il faut éditer le fichier /etc/passwd et changer la ligne :

tun1:x:1001:1002::/home/tun1:/bin/sh

par (rbash signifie Restricted Bash) :

tun1:x:1001:1002::/home/tun1:/bin/rbash

Enfin pour éviter tout problèmes dans le répertoire personnel de tun1, nous allons changer les droits comme suit :

chown root:root /home/tun1

et supprimer tout ce qui n’est pas nécessaire au login ssh :

rm .bash*
rm .profile

L’utilisateur tun1 n’est donc plus propriétaire de son home, et ne peut effectuer qu’un nombre très restreint de commandes.

Passons à la configuration du serveur.

Le fichier de configuration du serveur est /etc/ssh/sshd_config. Effacez complètement de fichier, nous allons en créer un nouveau avec les lignes suivantes :

Port 443
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
UsePrivilegeSeparation yes
SyslogFacility AUTH
LogLevel INFO
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
PermitEmptyPasswords no
# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

KerberosAuthentication no

GSSAPIAuthentication no

X11Forwarding no
TCPKeepAlive yes
# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Nous pouvons maintenant redémarrer le serveur :

/etc/init.d/sshd restart

Vous pouvez maintenant utiliser votre nouveau serveur tout beau, tout “secure” : ssh –p 443 –l tun1 –D 8080 –i ~/.ssh/id_rsa server.chez-moi.com

Essayez donc de mettre le bazar sur le serveur avec tun1, c’est assez compliqué !

Bonne sécurisation ;-)

Comments