Open SSH

De EjnTricks

Cet article présente l'installation de OpenSSH sur un serveur Ubuntu.

Hand-icon.png Votre avis

Current user rating: 61/100 (1 votes)

 You need to enable JavaScript to vote


System-Install-icon.png Installation

L'installation du serveur s'effectue en une ligne de commande:

apt-get install openssh-server
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Paquets suggérés :
  rssh molly-guard openssh-blacklist openssh-blacklist-extra
Les NOUVEAUX paquets suivants seront installés :
  openssh-server
0 mis à jour, 1 nouvellement installés, 0 à enlever et 2 non mis à jour.
Il est nécessaire de prendre 321ko dans les archives.
Après cette opération, 856ko d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://fr.archive.ubuntu.com/ubuntu/ maverick/main openssh-server amd64 1:5.5p1-4ubuntu4 [321kB]
321ko réceptionnés en 2s (125ko/s)    
Préconfiguration des paquets...
Sélection du paquet openssh-server précédemment désélectionné.
(Lecture de la base de données... 152930 fichiers et répertoires déjà installés.)
Dépaquetage de openssh-server (à partir de .../openssh-server_1%3a5.5p1-4ubuntu4_amd64.deb) ...
Traitement des actions différées (« triggers ») pour « ureadahead »...
Traitement des actions différées (« triggers ») pour « ufw »...
Traitement des actions différées (« triggers ») pour « man-db »...
Paramétrage de openssh-server (1:5.5p1-4ubuntu4) ...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
 * Stopping OpenBSD Secure Shell server sshd                             [ OK ] 
ssh start/running, process 2891


Configuration-icon.png Configuration

Backup-icon.png Sauvegarde configuration Initiale

De nombreuse configurations sont disponibles. Celles ci s'effectuent dans le fichier /etc/ssh/sshd_config. La première action réalisée est de faire une copie de ce fichier non modifiable afin d'éviter tout problème et permettre une restauration rapide.

cd /etc/ssh
sudo cp sshd_config sshd_config.factory-defaults
sudo chmod 400 sshd_config.factory-defaults

Icon ACL.png Autorisation

Afin de sécuriser le serveur, il est possible de spécifier les personnes ayant accès au server. Il faut alors ajouter la ligne suivante, pour autoriser uniquement le compte etienne:

AllowUsers etienne

Command-icon.png Locale

Lors du passage en version 14.04 sur Ubuntu, et certainement suite à des modifications malheureuses, il était devenu impossible de saisir des accents dans un terminal. Les caractères accentués étaient également mal représentés dans la console. Après de nombreuses tentatives sur l'installation des différentes locales, utilisations de l'outil dpkg-reconfigure, il s'est avéré que c'est configuration SSH qui entraînait le problème de saisi des caractères Français.

Après connexion, la commande locale produisait le résultat suivant.

LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

Et pourtant cela rentrait en contradiction avec le contenu du fichier /etc/default/locale.

#cat /etc/default/locale
LANG=fr_FR.UTF-8

Les recherches du type Comment saisir les caractères accentués dans un terminal, ou ubuntu file /etc/default/locale has no effect, mettait en évidence un problème d'enregistrement de la locale Française sur le système. Pourtant, tous les fichiers semblaient être présents.

  • Fichier fr_FR dans le répertoire /usr/share/i18n/locales.
  • Fichier UTF-8.gz dans le répertoire /usr/share/i18n/charmaps.

La solution, pour cette installation, a été de modifier le paramètre UsePAM dans le fichier de configuration /etc/ssh/sshd_config. Celui-ci était positionné à no. En le passant à yes, la définition de la locale par défaut est alors prise en compte après connexion.

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no
UsePAM yes

Le résultat de la commande <locale>locale</code> confirmait ensuite la bonne prise en compte.

#locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

Viewer icon.png Bannière

Il est aussi possible de spécifier un message personnalisé lors de la connexion. Un nouveau message est mis en place, et stocké dans le fichier /var/opt/ssh/issue.net.

cd /var/opt
mkdir ssh
chmod 700 ssh
cd ssh
touch issue.net

Il faut ensuite indiquer ce nouvel emplacement dans le fichier /etc/ssh/sshd_config

#Banner /etc/issue.net
Banner /var/opt/ssh/issue.net

En prenant pour exemple le contenu suivant:

Etienne Jouvin server base on Ubuntu

En se connectant au serveur à l'aide de Putty, les messages sont les suivants:

login as: etienne
Etienne Jouvin server base on Ubuntu
etienne@192.168.1.5's password:
Linux etienne-server 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

Last login: Sat Dec 18 23:18:06 2010 from ejn-dc630.local

Pour modifier le message après connexion, il faut modifier le fichier /etc/motd, qui es un lien vers /var/run/motd. Dans le cadre de cette installation, le contenu original est:

Linux etienne-server 2.6.35-23-generic #41-Ubuntu SMP Wed Nov 24 11:55:36 UTC 2010 x86_64 GNU/Linux
Ubuntu 10.10

Welcome to Ubuntu!
 * Documentation:  https://help.ubuntu.com/

Le lien est supprimé et un fichier est créé:

cd /etc
rm motd
touch motd

Le contenu est:

Welcome to Etienne's Server!

Lors de la connexion, les messages sont à présent:

login as: etienne
Etienne Jouvin server base on Ubuntu
etienne@192.168.1.5's password:
Welcome to Etienne's Server!
Last login: Sun Dec 19 00:27:09 2010 from ejn-dc630.local


Le paramètre TCPKeepAlive permet de conserver la connexion ouverte. Il semblerait que les messages envoyés ne soit pas encryptés permettant une attaque. La valeur du paramètre est passée de yes à no.

#TCPKeepAlive yes
TCPKeepAlive no

Lock-icon.png Sécurité

Lors de l'ouverture d'une machine sur internet et la mise à disposition du port de SSH, il est important de contrôler les accès à la machines et potentiellement bannir les adresses IP tentant des attaques. Pour cela, l'application iptables pour configurer un firewall, couplée avec fail2ban permettant de bannir automatiquement, apporte un premier niveau de sécurité.


Viewer icon.png Voir aussi

Documentation officielle: https://help.ubuntu.com/7.04/server/C/openssh-server.html

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

http://ubuntuforums.org/showthread.php?t=831372