Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Un seul paquet à installer
apt install openssh-server
Le serveur SSH est automatiquement démarré après l'installation du paquet.
La configuration par défaut est très bonne, et il n'est pas conseillé d'y toucher à moins de bien savoir ce que vous faites.
Si vous voulez la personnaliser, il vous faut éditer le fichier /etc/ssh/sshd_config
:
editor /etc/ssh/sshd_config
Comme d'hab', plus d'infos dans le :
man sshd_config
Un serveur SSH permet a priori à un utilisateur extérieur de se connecter sur le système. Il y a deux méthodes pour s'authentifier auprès d'un serveur SSH
La deuxième méthode est plus sûre que la première.
Le serveur SSH écoute sur le port 22 du système, qui est accessible depuis le réseau local.
Il peut être intéressant de relire les conseils généraux en matière de sécurité !
Voici quelques conseils de sécurisation spécifiques à OpenSSH :
Sur le système hébergeant le serveur SSH, il est possible d'éditer le fichier de configuration /etc/ssh/sshd_config
, par exemple avec la commande suivante lancée en root:
editor /etc/ssh/sshd_config
Les valeurs de configuration par défaut sont souvent présentées commentées (avec un #
en début de ligne).
Voici quelques règles avec lesquelles il ne faut pas faire de blague.
Il ne faut absolument pas autoriser root à se connecter par mot de passe, sauf à s'assurer d'avoir un mot de passe en béton armé2).
Vous pouvez autoriser les connexions à root par paire de clefs publique/privée, c'est le comportement par défaut: PermitRootLogin prohibit-password
ou complètement bloquer toutes les connexions: PermitRootLogin no
Par défaut, la connexion par clefs est autorisée, c'est très bien et reste sans conséquence si vous n'utilisez pas cette possibilité. PubkeyAuthentication yes
Les clefs ssh des utilisateurs sont lues par défaut dans deux fichiers du dossier personnel des utilisateurs : ~/.ssh/authorized_keys
et ~/.ssh/authorized_keys2
(déconseillé).
Vous pouvez forcer l'utilisation unique du premier fichier avec AuthorizedKeysFile .ssh/authorized_keys
.
Si vous voulez interdire la connexion par mot de passe (attention à être sûr de bien pouvoir vous connecter par clef avant…), vous pouvez désactiver cette possibilité avec PasswordAuthentication no
et UsePAM no
Vérifiez que vous n'autorisez pas la connexion aux comptes dont le mot de passe est vide: PermitEmptyPasswords no
PasswordAuthentication no
</note>
=== Restreindre l'accès à quelques utilisateurs ===
Plutôt que de laisser possible la connexion à n'importe quel compte utilisateur (à condition d'avoir la clef ou le mot de passe), vous pouvez n'autoriser la connexion que pour certains comptes en spécifiant les noms d'utilisateur:
AllowUsers utilisateur1 utilisateur2
Ou inversement, en interdisant spécifiquement la connexion à certains comptes:
DenyUsers test guest admin root snort apache nobody
Il est possible de spécifier plusieurs utilisateurs ou un masque d'expression régulière, je vous laisse lire la doc pour un paramétrage plus fin.
=== Restreindre la connexion à un groupe ===
Dans le même esprit que le paramètre ci-dessus on peut autoriser directement tous les utilisateurs d'un groupe.
<code bash>AllowGroups mongroupadmin</code>
=== Le port ===
Si votre serveur SSH est exposé sur internet, il peut être pratique pour limiter le bruit (et dans une moindre mesure, augmenter la sécurité), de changer le port d'écoute de celui-ci.
On peut par exemple changer le port 22** (c'est le port par défaut du service SSH) pour le port 10010
Port 10010
Une fois configuré il vous suffit de relancer SSH, à faire en root :
service ssh restart
==== Contrôler les logs ====
cat /var/log/auth.log | grep Invalid
==== Bien paramétrer son firewall… ====
==== Fail2ban ====
apt-get install fail2ban
==== Le port knocking ====
TODO
===== Astuces =====
==== Accès depuis l'extérieur ====
TODO
==== Serveur de fichier sftp ====
Pour limiter SSH au partage de fichiers, voir Configuration d'OpenSSH comme serveur SFTP