Différences
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 | ||
systemes:linux:ssh [2016/01/28 18:44] pam [3. Utilisation de clés] |
systemes:linux:ssh [2019/02/06 14:03] (Version actuelle) |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== Introduction ===== | ===== Introduction ===== | ||
+ | |||
Dans ce document, je vous explique quelques possibilités d' | Dans ce document, je vous explique quelques possibilités d' | ||
- | ====== | + | ====== Configuration de base et sécurité ====== |
- | La configuration du serveur se trouve dans / | + | |
- | La configuration du client se trouve dans / | + | |
+ | * La configuration du serveur se trouve dans / | ||
+ | * La configuration du client se trouve dans / | ||
- | =====1.Pour éviter les attaques par brute force il faut changer le port d' | ||
- | Pour modifier le port d' | ||
- | <code bash> | + | ===== Brute Force ===== |
+ | |||
+ | * Pour modifier le port d' | ||
+ | * <code bash> | ||
#Package generated configuration file | #Package generated configuration file | ||
#See the sshd_config(5)manpage for details | #See the sshd_config(5)manpage for details | ||
Ligne 22: | Ligne 24: | ||
…</ | …</ | ||
- | Tentative de connexion au serveur : | + | * Tentative de connexion au serveur : |
- | + | | |
- | <code bash> | + | |
OpenSSH_6.2p2, | OpenSSH_6.2p2, | ||
debug1: Reading configuration data / | debug1: Reading configuration data / | ||
Ligne 35: | Ligne 36: | ||
- | =====2.Le compte | + | ===== Désactiver le root ===== |
- | Pour interdire la connexion root, il faut mettre le paramètre **PermitRootLogin** à no | + | |
- | Tentative de connexion au serveur : | + | * Pour interdire la connexion root, il faut mettre le paramètre **PermitRootLogin** à no |
- | + | * Tentative de connexion au serveur : | |
- | <code bash> | + | |
… | … | ||
root@10.203.22.220' | root@10.203.22.220' | ||
Ligne 47: | Ligne 47: | ||
</ | </ | ||
- | =====3.Enlever la possibilité de se connecter | + | ===== Désactiver l' |
- | Pour interdire la connexion root, il faut mettre le paramètre**PermitEmptyPasswords** à no | + | |
+ | * Pour interdire la connexion root, il faut mettre le paramètre**PermitEmptyPasswords** à no | ||
+ | |||
+ | ===== Limiter le temps d' | ||
- | =====4.Limiter le temps d' | + | * Pour modifier le temps d' |
- | Pour modifier le temps d' | + | |
- | =====5.Limiter le nombre de tentatives de mot de passe à 2.===== | + | ===== Limiter le nombre de tentatives de mot de passe à 2===== |
- | Pour modifier le nombre de tentatives, il faut changer la valeur du paramètre **MaxAuthTries **à 3 | + | |
- | <code bash> | + | * Pour modifier le nombre de tentatives, il faut changer la valeur du paramètre **MaxAuthTries **à 3 |
+ | * <code bash> | ||
root@10.203.22.220' | root@10.203.22.220' | ||
debug1: Authentications that can continue: public key, | debug1: Authentications that can continue: public key, | ||
Ligne 64: | Ligne 66: | ||
</ | </ | ||
- | =====6.Isoler un utilisateur dans un chroot.===== | + | ===== Isoler un utilisateur dans un chroot===== |
- | Je crée un dossier pour l' | + | |
- | <code bash> | + | * Je crée un dossier pour l' |
+ | * <code bash> | ||
- | <code bash> | + | * <code bash> |
17:24:19 root@sshtp: | 17:24:19 root@sshtp: | ||
</ | </ | ||
- | Copie des fichiers suivants dans le chroot : | + | * Copie des fichiers suivants dans le chroot : |
+ | - / | ||
+ | - / | ||
+ | - /etc/group | ||
- | / | + | * Connexion : |
- | / | + | |
- | / | + | |
- | + | ||
- | Connexion : | + | |
- | + | ||
- | <code bash> | + | |
Password: | Password: | ||
Ligne 102: | Ligne 102: | ||
- | ======2. Empreintes====== | + | ====== Empreintes |
Ssh vérifie que l' | Ssh vérifie que l' | ||
- | =====1.Sur le client, le fichier d' | + | ===== Sur le client, le fichier d' |
- | A chaque connexion, nous avons ce message | + | |
- | <code bash> | + | * A chaque connexion, nous avons ce message |
+ | * <code bash> | ||
... | ... | ||
The authenticity of host' | The authenticity of host' | ||
Ligne 115: | Ligne 116: | ||
</ | </ | ||
- | L' | + | * L' |
- | ======3. Utilisation de clés====== | + | ====== Utilisation de clés====== |
- | Les clés sont certainement la meilleure solution de connexion à ce jour. Cela fonctionne par paire (1clé privée et 1 clé publique) | + | |
- | =====1.Générer un couple de clés avec ssh-keygen sans passphrase.===== | + | Les clés sont certainement la meilleure solution de connexion à ce jour. Cela fonctionne par paire (1 clé privée et 1 clé publique) |
- | <code bash> | + | |
+ | ===== Générer un couple de clés avec ssh-keygen sans passphrase.===== | ||
+ | | ||
Generating public/ | Generating public/ | ||
Enter file in which to savethe key (/ | Enter file in which to savethe key (/ | ||
Ligne 145: | Ligne 147: | ||
</ | </ | ||
- | Nous avons désormais dans le home directory, les fichiers contenant clé publique et clé privée. | + | * Nous avons désormais dans le home directory, les fichiers contenant clé publique et clé privée |
+ | ===== Transférer la clé sur le serveur par ssh===== | ||
- | =====2.Transférer la clé sur le serveur par la méthode ssh.===== | + | * <code bash> |
- | <code bash> | + | |
The authenticity of host' | The authenticity of host' | ||
ECDSA key fingerprint is b0: | ECDSA key fingerprint is b0: | ||
Ligne 162: | Ligne 165: | ||
- | =====3.Restreindre le serveur pour qu'il n' | + | ===== N'accepter que les connexions que par clé ===== |
- | Pour n' | + | |
- | | + | * Pour n' |
- | | + | - |
- | | + | |
+ | | ||
- | =====4.Modifier la clé privée afin qu' | + | ===== Modifier la clé privée afin qu' |
- | <code bash> | + | |
+ | * <code bash> | ||
Key has comment ' | Key has comment ' | ||
Enter new passphrase (emptyfor no passphrase): | Enter new passphrase (emptyfor no passphrase): | ||
Ligne 178: | Ligne 182: | ||
- | Tentative de connexion : | + | * Tentative de connexion : |
- | <code bash> | + | |
... | ... | ||
debug1: key_parse_private_pem: | debug1: key_parse_private_pem: | ||
Ligne 196: | Ligne 200: | ||
- | ======4. Utilisation du shell====== | + | ====== Utilisation du shell====== |
- | =====1.Afficher le hostname du serveur sans ouvrir de shell distant.===== | + | ===== Afficher le hostname du serveur sans ouvrir de shell distant===== |
- | <code bash> | + | |
+ | * <code bash> | ||
Enter passphrase for key'/ | Enter passphrase for key'/ | ||
sshtp | sshtp | ||
</ | </ | ||
- | =====2.Trois exemples différents d' | + | ===== Trois exemples différents d' |
- | <code bash> | + | |
+ | * <code bash> | ||
Enter passphrase for key'/ | Enter passphrase for key'/ | ||
127.0.1.1 sshtp | 127.0.1.1 sshtp | ||
Ligne 216: | Ligne 222: | ||
- | ======5. Transferts de fichiers====== | + | ====== |
- | =====1.Transférer un fichier par le biais de SCP.===== | + | ===== Transférer un fichier par le biais de SCP===== |
- | <code bash> | + | |
+ | * <code bash> | ||
Enter passphrase for key'/ | Enter passphrase for key'/ | ||
testSCP 100% 2470 2.4KB/s 00:00 | testSCP 100% 2470 2.4KB/s 00:00 | ||
</ | </ | ||
- | =====2.Transférer un fichier entre deux machines distantes via SCP.===== | + | ===== Transférer un fichier entre deux machines distantes via SCP.===== |
- | Deux commandes possibles | + | |
- | <code bash> | + | * Deux commandes possibles: |
+ | - <code bash> | ||
</ | </ | ||
- | ou | + | * ou |
- | + | | |
- | <code bash> | + | |
</ | </ | ||
- | =====3.Transférer un fichier par le biais de SFTP.===== | + | ===== Transférer un fichier par le biais de SFTP===== |
- | <code bash> | + | |
+ | * <code bash> | ||
Connected to 10.203.22.220. | Connected to 10.203.22.220. | ||
sftp> ls | sftp> ls | ||
Ligne 258: | Ligne 265: | ||
- | =====4.Mettre en place un point de montage SSHFS.===== | + | ===== Mettre en place un point de montage SSHFS===== |
- | Sur le serveur : | + | |
- | <code bash> | + | * Sur le serveur : |
+ | * <code bash> | ||
</ | </ | ||
- | Sur le client | + | * Sur le client |
- | + | | |
- | <code bash> | + | |
13:35:04 root@lisa: | 13:35:04 root@lisa: | ||
13:35:36 root@lisa: | 13:35:36 root@lisa: | ||
Ligne 274: | Ligne 280: | ||
- | Contenu sur le serveur : | + | * Contenu sur le serveur : |
- | + | | |
- | <code bash> | + | |
total 8 | total 8 | ||
drwxr-xr-x 2 root root 4096févr. 9 13:36 . | drwxr-xr-x 2 root root 4096févr. 9 13:36 . | ||
Ligne 286: | Ligne 291: | ||
- | =====5.Effectuer des transferts de fichiers avec l' | + | ===== RSYNC ===== |
- | Avec rsync, on peut facilement faire des backup, cela permet de ne pas télécharger quotidiennement tout le contenu de la sauvegarde, il fait un check de l' | + | |
- | Il faut installer rsync sur les deux hôtes. | + | * Avec rsync, on peut facilement faire des backup, cela permet de ne pas télécharger quotidiennement tout le contenu de la sauvegarde, il fait un check de l' |
+ | * Il faut installer rsync sur les deux hôtes. | ||
- | <code bash> | + | * <code bash> |
</ | </ | ||
- | + | * <code bash> | |
- | <code bash> | + | |
sending incremental file list | sending incremental file list | ||
./ | ./ | ||
Ligne 306: | Ligne 310: | ||
</ | </ | ||
- | <code bash> | + | * <code bash> |
total 20 | total 20 | ||
drwxr-xr-x 2 test test 4096nov. 18 15:41 . | drwxr-xr-x 2 test test 4096nov. 18 15:41 . | ||
Ligne 318: | Ligne 322: | ||
- | ======6. Tunneling====== | + | ====== Tunneling====== |
- | Il est possible de faire du tunneling over ssh | + | * Il est possible de faire du tunneling over ssh |
- | On ouvre un shell sur le client | + | |
+ | * <code bash> | ||
- | <code bash> | + | ===== Proxy SOCKS ===== |
- | =====1.Monter un proxy SOCKS via le client SSH et l' | + | * <code bash> |
- | + | ||
- | <code bash> | + | |
… | … | ||
debug1: Authentication succeeded (public key). | debug1: Authentication succeeded (public key). | ||
Ligne 341: | Ligne 344: | ||
- | Sur le navigateur firefox proxy socks 127.0.0.1 : | + | * Sur le navigateur firefox proxy socks 127.0.0.1 : |
- | + | * Log ssh : | |
- | + | | |
- | Log ssh : | + | |
- | + | ||
- | <code bash> | + | |
debug1: channel 2: new[dynamic-tcpip] | debug1: channel 2: new[dynamic-tcpip] | ||
debug1: Connection to port1080 forwarding to socks port 0 requested. | debug1: Connection to port1080 forwarding to socks port 0 requested. | ||
Ligne 365: | Ligne 365: | ||
- | ==2.Monter une interface de type tun entre le client et le serveur SSH.== | + | == Monter une interface de type tun entre le client et le serveur SSH.== |
- | Il faut activer l'ip forwarding et PermitTunnel | + | |
- | **Machine 1 :** | + | |
- | <code bash> | + | * **Machine 1 :** |
+ | * <code bash> | ||
Last login: Mon Feb 914:47:09 2015 from 10.203.22.204 | Last login: Mon Feb 914:47:09 2015 from 10.203.22.204 | ||
14:48:24 root@sshtp: | 14:48:24 root@sshtp: | ||
Ligne 406: | Ligne 405: | ||
192.168.22.0/ | 192.168.22.0/ | ||
</ | </ | ||
- | **Machine 2 :** | ||
- | <code bash> | + | |
+ | * **Machine 2 :** | ||
+ | * <code bash> | ||
14:53:18 root@lisa: | 14:53:18 root@lisa: | ||
14:53:56 root@lisa: | 14:53:56 root@lisa: | ||
Ligne 419: | Ligne 419: | ||
- | ======7. X-Forwarding | + | ====== X-Forwarding ====== |
- | =====1.Utiliser OpenSSH pour afficher sur votre machine | + | ===== Afficher |
- | Installation du paquet x11-apps pour les tests (xeyes, xman, xload..) | + | |
- | + | ||
- | <code bash> | + | |
+ | * Installation du paquet x11-apps pour les tests (xeyes, xman, xload..) | ||
+ | * <code bash> | ||
15:01:24 root@lisa: | 15:01:24 root@lisa: | ||
</ | </ | ||
+ | * Par défaut, avec -X, la machine distante est considérée comme " | ||
- | Pour info sur mon mac, X11 s' | + | * Pour info sur mon mac, X11 s' |