Open SSH
Cet article présente l'installation de OpenSSH sur un serveur Ubuntu.
Sommaire
Votre avis
Current user rating: 61/100 (1 votes)
|
|
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
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
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
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=
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
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é.
Voir aussi
Documentation officielle: https://help.ubuntu.com/7.04/server/C/openssh-server.html