logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:reseau:ssh:serveur [09/02/2021 19:12]
captnfab [Sécurisation]
doc:reseau:ssh:serveur [09/02/2021 20:29] (Version actuelle)
captnfab [ssh-server : autoriser les connexions extérieures de manière sécurisée]
Ligne 1: Ligne 1:
-====== ​ssh-server : autoriser les connexions extérieures de manière sécurisée ======+====== ​openssh-server : autoriser les connexions extérieures de manière sécurisée ======
  
   * Objet : Installer un serveur ssh   * Objet : Installer un serveur ssh
Ligne 5: Ligne 5:
   * Commentaires : //​Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... //   * Commentaires : //​Administrer son serveur à distance, établir un tunnel sécurisé pour relayer des ports, etc... //
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
-  * Suivi : {{tag>à-compléter}}+  * Suivi : {{tag>}}
     * Création par [[user>​bendia]] le 07/01/2014     * Création par [[user>​bendia]] le 07/01/2014
     * Testé par [[user>​captnfab]] le 09/02/2021     * Testé par [[user>​captnfab]] le 09/02/2021
Ligne 22: Ligne 22:
 Si vous voulez la personnaliser,​ il vous faut éditer le fichier ''/​etc/​ssh/​sshd_config''​ : Si vous voulez la personnaliser,​ il vous faut éditer le fichier ''/​etc/​ssh/​sshd_config''​ :
 <code root>​editor /​etc/​ssh/​sshd_config</​code>​ <code root>​editor /​etc/​ssh/​sshd_config</​code>​
 +
 +Les valeurs de configuration par défaut sont souvent présentées commentées (avec un ''#''​ en début de ligne).
  
 Comme d'​hab',​ plus d'​infos dans le : Comme d'​hab',​ plus d'​infos dans le :
 <code user>man sshd_config</​code>​ <code user>man sshd_config</​code>​
  
-===== Sécurisation ​=====+Une fois configuré il vous suffit de relancer SSH, à faire en root : 
 +<code root>​service ssh restart</​code>​ 
 + 
 +===== Sécurité et bonnes pratiques ​=====
  
 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 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
Ligne 43: Ligne 48:
 Il peut être intéressant de relire les conseils généraux en matière de [[doc:​systeme:​securite | sécurité]] ! Il peut être intéressant de relire les conseils généraux en matière de [[doc:​systeme:​securite | sécurité]] !
  
-Voici quelques ​conseils ​de sécurisation spécifiques à OpenSSH :+Voici quelques ​options avec lesquelles il ne faut pas faire de blague.
  
-==== Restreindre les connexions SSH ==== +==== Connexion ​par root ====
- +
-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+
-<code root>​editor /​etc/​ssh/​sshd_config</​code>​ +
-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. +
- +
-=== Connexion par root ===+
  
 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é((Au moins 30 caractères,​ majuscules, minuscules, chiffres, symboles, totalement aléatoire et changé régulièrement)). 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é((Au moins 30 caractères,​ majuscules, minuscules, chiffres, symboles, totalement aléatoire et changé régulièrement)).
Ligne 59: Ligne 56:
 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''​ 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''​
  
-=== Connexion par clefs ===+==== Connexion par clefs ====
  
 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''​ 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''​
Ligne 66: Ligne 63:
 Vous pouvez forcer l'​utilisation unique du premier fichier avec ''​AuthorizedKeysFile .ssh/​authorized_keys''​. Vous pouvez forcer l'​utilisation unique du premier fichier avec ''​AuthorizedKeysFile .ssh/​authorized_keys''​.
  
-=== Connexion par mot de passe ===+==== Connexion par mot de passe ====
 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''​ 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''​
  
Ligne 79: Ligne 76:
 </​note>​ </​note>​
  
-=== Restreindre l'​accès à quelques utilisateurs ===+==== 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:​ 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:​
  
Ligne 89: Ligne 86:
 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. 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 ===+==== 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. Dans le même esprit que le paramètre ci-dessus on peut autoriser directement tous les utilisateurs d'un groupe.
Ligne 95: Ligne 92:
 <code bash>​AllowGroups mongroupadmin</​code>​ <code bash>​AllowGroups mongroupadmin</​code>​
  
-=== Le port ===+==== 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. 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 +On peut par exemple changer le port **22** (c'est le port par défaut du service SSH) pour le port 10010 avec la directive ​''​Port 10010''​
-''​Port 10010''​+
  
-Une fois configuré il vous suffit de relancer SSH, à faire en root : +===== Contrôler les logs =====
-<code root>​service ssh restart</​code>​+
  
-==== Contrôler ​les logs ====+Il est important de regarder ​les logs de temps en temps. Les tentatives de connections infructueuses sont consignées dans ''/​var/​log/​auth.log''​.
  
-  * Dans tout les cas, il est important de regarder les logs de temps en temps. Les tentatives de connections infructueuses sont consignées dans /​var/​log/​auth.log ​.+<code root>​grep Invalid ​/​var/​log/​auth.log</​code>​
  
-<code root>cat /​var/​log/​auth.log | grep Invalid</​code>​+Un outil comme **logcheck** peut être utile pour envoyer systématiquement les logs par email.
  
-  * logcheck+===== Astuces =====
  
-==== Bien paramétrer son firewall... ​==== +==== Accès depuis l'​extérieur ​==== 
- +Rediriger un port (22 par exemple) de la freebox/​livebox/​whateverbox vers le port ssh de votre machine pour vous connecter chez vous depuis l'​extérieur.
-  * [[:​doc:​reseau:​iptables]]+
  
 ==== Fail2ban ==== ==== Fail2ban ====
  
-<code root>apt-get install fail2ban</​code>​ +fail2ban est un utilitaire permettant de bannir automatiquement (pendant une durée configurable) les ip ayant échoué plusieurs fois d'​affilée à se connecter. 
- +<code root>apt install fail2ban</​code>​
-==== Le port knocking ==== +
- +
-TODO FIXME +
- +
-===== Astuces ===== +
- +
-==== Accès depuis l'​extérieur ==== +
-  * Rediriger le port 22 de la freebox/​livebox/​whateverbox vers votre machine pour vous connecter chez vous depuis l'​extérieur +
-TODO FIXME+
  
 ==== Serveur de fichier sftp ==== ==== Serveur de fichier sftp ====
  
 Pour limiter SSH au partage de fichiers, voir [[:​doc:​reseau:​ssh:​tp-sftp-via-openssh-server|Configuration d'​OpenSSH comme serveur SFTP]] Pour limiter SSH au partage de fichiers, voir [[:​doc:​reseau:​ssh:​tp-sftp-via-openssh-server|Configuration d'​OpenSSH comme serveur SFTP]]
doc/reseau/ssh/serveur.1612894335.txt.gz · Dernière modification: 09/02/2021 19:12 par captnfab

Pied de page des forums

Propulsé par FluxBB