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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:ssh:serveur [05/07/2014 15:58] captnfab |
doc:reseau:ssh:serveur [12/01/2016 17:21] milou [Sécurisation] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== SSH coté serveur====== | + | ====== ssh-server : autoriser les connexions extérieures de manière sécurisée ====== |
- | * Objet : Créer un serveur ssh | + | * Objet : Installer un serveur ssh |
- | * Niveau requis : {{tag>avisé}} | + | * Niveau requis : {{tag>débutant avisé}} |
* 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 à-tester}} | * Suivi : {{tag>à-compléter à-tester}} | ||
* Création par [[user>bendia]] le 07/01/2014 | * Création par [[user>bendia]] le 07/01/2014 | ||
Ligne 16: | Ligne 16: | ||
===== Installation ===== | ===== Installation ===== | ||
- | <code root>apt-get install openssh-server</code> | + | <code root>apt-get update && apt-get install openssh-server</code> |
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 29: | Ligne 29: | ||
===== Sécurisation ===== | ===== Sécurisation ===== | ||
- | Jojo vous recommande de ne pas ouvrir cette connection SSH tel quelle sur le net... il y a des malins qui forcent le passage pour entrer chez vous en essayant des tetra…floppées de mot de passes courants ;-). | + | Jojo vous recommande de ne pas ouvrir cette connection SSH tel quelle sur le net... il y a des malins qui forcent le passage pour entrer chez vous en essayant des tetra…floppées de mots de passe courants ;-). |
- | Donc si vous voulez **exporter** une session SSH via un PC a 18 000 km :-D de chez vous, restez prudents et sécurisez-là au maximum(([[doc:systeme:securite | De la sécurité...]])) et en suivant les conseils suivants | + | Donc si vous voulez **exporter** une session SSH via un PC a 18 000 km :-D de chez vous, restez prudents et sécurisez-la au maximum(([[doc:systeme:securite | De la sécurité...]])) et en suivant les conseils suivants |
==== Restreindre les connexions à SSH ==== | ==== Restreindre les connexions à SSH ==== | ||
Ligne 37: | Ligne 37: | ||
Il suffit d'éditer le fichier ''sshd_config'' en root sur le PC distant. Le fichier se trouve dans le dossier ///etc/ssh/// | Il suffit d'éditer le fichier ''sshd_config'' en root sur le PC distant. Le fichier se trouve dans le dossier ///etc/ssh/// | ||
<code root>nano /etc/ssh/sshd_config</code> | <code root>nano /etc/ssh/sshd_config</code> | ||
- | Puis de modifier les arguments suivant «le cas est pris pour une connection __uniquement par clé__» : | + | Puis de modifier les arguments suivants (le cas est pris pour une connexion __uniquement par clé__) : |
- | <code bash>PermitRootLogin no # évite la connexion root « plus que recommandé » | + | <file config Exemple de sshd_config> |
+ | PermitRootLogin no # évite la connexion root « plus que recommandé » | ||
RSAAuthentication yes # active la reconnaissance RSA | RSAAuthentication yes # active la reconnaissance RSA | ||
PubkeyAuthentication yes | PubkeyAuthentication yes | ||
Ligne 45: | Ligne 46: | ||
PasswordAuthentication no # désactive la connexion par mot de passe | PasswordAuthentication no # désactive la connexion par mot de passe | ||
PermitEmptyPasswords no # désactive les mots de passe vide | PermitEmptyPasswords no # désactive les mots de passe vide | ||
+ | MaxStartups 1 # limite la connexion, normalement 6 par défaut | ||
UsePAM no # désactive la connection par mot de passe | UsePAM no # désactive la connection par mot de passe | ||
AllowUsers votrelogin secondlogin # restreint l'accès à votre login uniquement | AllowUsers votrelogin secondlogin # restreint l'accès à votre login uniquement | ||
DenyUsers test guest admin root snort apache nobody # interdire l'accès à certains users, pour les paranos... | DenyUsers test guest admin root snort apache nobody # interdire l'accès à certains users, pour les paranos... | ||
- | MaxStartups 1 # limite la connexion, normalement 6 par défaut</code> | + | </file> |
+ | |||
+ | |||
+ | <note> | ||
+ | **Pour la ligne ''PasswordAuthentication no''** :\\ | ||
+ | |||
+ | Dans un premier temps, laisser **"# PasswordAuthentication yes"** pour permettre la première connexion depuis ssh client, c'est-à-dire pour permettre la connexion par [[doc:reseau:ssh:client#par-nom-d-utilisateur-mot-de-passe|nom d'utilisateur et mot de passe]] lorsque aucune clé n'a été générée.\\ | ||
+ | |||
+ | Puis lorsque la génération [[doc:reseau:ssh:client#par-cles-asymetriques|des clés asymétriques]] a été faite et que celles-ci ont été exportées et sont opérationnelles (la "passphrase" uniquement est demandée pour la connexion du client ssh au serveur ssh), on peut alors éditer à nouveau **/etc/ssh/sshd_config** pour mettre **''PasswordAuthentication no''**</note> | ||
==== Restreindre la connexion à un utilisateur ==== | ==== Restreindre la connexion à un utilisateur ==== | ||
Ligne 54: | Ligne 64: | ||
Moins de monde autorisé à se connecter via ssh, moins de risques il y aura… | Moins de monde autorisé à se connecter via ssh, moins de risques il y aura… | ||
- | AllowUsers **monuserquipeutseconnecter** | + | <code bash>AllowUsers monuserquipeutseconnecter</code> |
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 | ||
Ligne 61: | Ligne 71: | ||
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. | ||
- | AllowGroups **mongroupadmin** | + | <code bash>AllowGroups mongroupadmin</code> |
Les options qu'il est conseillé de changer dans un premier temps sont : | Les options qu'il est conseillé de changer dans un premier temps sont : | ||
Ligne 68: | Ligne 78: | ||
* Le port **22** # C'est le port par défaut du service SSH | * Le port **22** # C'est le port par défaut du service SSH | ||
Nous allons le mettre ici à 10010 | Nous allons le mettre ici à 10010 | ||
- | Port **10010** | + | <code bash>Port 10010</code> |
Une fois configuré il vous suffit de relancer SSH, à faire en root : | Une fois configuré il vous suffit de relancer SSH, à faire en root : | ||
Ligne 91: | Ligne 101: | ||
==== Le port knocking ==== | ==== Le port knocking ==== | ||
- | TODO | + | TODO FIXME |
===== Astuces ===== | ===== Astuces ===== | ||
Ligne 97: | Ligne 107: | ||
==== Accès depuis l'extérieur ==== | ==== 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 | * Rediriger le port 22 de la freebox/livebox/whateverbox vers votre machine pour vous connecter chez vous depuis l'extérieur | ||
- | TODO | + | TODO FIXME |
==== Serveur de fichier sftp ==== | ==== Serveur de fichier sftp ==== | ||
* Configuration de SSH comme serveur de fichier. | * Configuration de SSH comme serveur de fichier. | ||
- | TODO | + | TODO FIXME |