tuto:1
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tuto:1 [2016/11/10 10:23] – remise en forme ssm2017 | tuto:1 [2022/02/07 12:32] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 336: | Line 336: | ||
| Sous windows (dans putty), il est possible de créer plusieurs " | Sous windows (dans putty), il est possible de créer plusieurs " | ||
| + | |||
| + | ===== sftp ===== | ||
| + | |||
| + | Sftp est tres pratique car il permet de transferer des fichiers ou monter un dossier distant sans avoir à installer un serveur ftp tout en utilisant une connexion sécurisée. | ||
| + | |||
| + | Par défaut, sftp est déjà actif. | ||
| + | |||
| + | Voir la partie " | ||
| + | |||
| + | ==== Se connecter par sftp ==== | ||
| + | |||
| + | === Client ftp === | ||
| + | |||
| + | Utiliser son client ftp préféré supportant sftp (comme filezilla bien qu'il soit relou concernant les clef ssh mais ça fonctionne quand même). | ||
| + | |||
| + | === Navigateur de fichiers === | ||
| + | |||
| + | Beaucoup de navigateurs de fichiers sous linux ou mac permettent la connexion sftp donc entrer l' | ||
| + | |||
| + | La ligne de connexion est souvent : sftp:// | ||
| + | |||
| + | Bien sûr si vous utilisez le fichiers de config des aliases, le boulot est facilité avec : sftp://toto | ||
| + | |||
| + | ==== Monter un volume sftp ==== | ||
| + | |||
| + | Il existe sous linux un programme nommé " | ||
| + | |||
| + | Voir https:// | ||
| ===== Les tunnels ===== | ===== Les tunnels ===== | ||
| Line 380: | Line 408: | ||
| </ | </ | ||
| - | editer le fichier / | + | Le fichier |
| - | <sxh bash> | + | |
| - | sudo nano / | + | |
| - | </ | + | |
| si besoin, relancer ssh avec : | si besoin, relancer ssh avec : | ||
| Line 390: | Line 415: | ||
| </ | </ | ||
| + | Le fichier de logs des connexions est : / | ||
| + | |||
| + | ==== Sécuriser un serveur ssh ==== | ||
| + | |||
| + | === Changer le port === | ||
| + | |||
| + | Beaucoup de scanners martellent le port 22 qui est celui par defaut de ssh donc il est recommandé d'en utiliser un autre. | ||
| + | |||
| + | Pour cela, nous avons besoin d'un serveur sur lequel ssh est déjà installé, d'un clavier et de quelques doigts (ou le nez pour ceux qui n'ont pas de bras). | ||
| + | |||
| + | * Editer le fichier de config de ssh qui est : / | ||
| + | * Rechercher la ligne commençant par " | ||
| + | * Remplacer 22 par le port voulu (9876 par exemple) | ||
| + | * Sauvegarder le fichier | ||
| + | * Relancer ssh | ||
| + | |||
| + | === Interdire la connexion en root === | ||
| + | |||
| + | * Editer le fichier de config de ssh qui est : / | ||
| + | * Rechercher la ligne commençant par " | ||
| + | * Sauvegarder le fichier | ||
| + | * Relancer ssh | ||
| + | |||
| + | === Interdire les connexions par mot de passe === | ||
| + | |||
| + | Une fois ce paramètre modifié, vous ne pourrez plus vous connecter au serveur si vous n'avez pas configurée une clef ssh donc voir plus haut pour voir comment faire (et tester la clef avant de faire la manip... je dis ça, je dis rien mais j'le dis quand même...). | ||
| + | |||
| + | * Editer le fichier de config de ssh qui est : / | ||
| + | * Rechercher la ligne commençant par "# | ||
| + | * Sauvegarder le fichier | ||
| + | * Relancer ssh | ||
| + | |||
| + | === Autoriser que les ip voulues === | ||
| + | |||
| + | On peut dire au système d' | ||
| + | |||
| + | Nous n' | ||
| + | |||
| + | * Créer un fichier / | ||
| + | * Le rendre exécutable (avec chmod +x par exemple) | ||
| + | * Y mettre : | ||
| + | <sxh bash> | ||
| + | #!/bin/bash | ||
| + | # on lui dit à quel endroit se trouve le programme iptables (au cas où) | ||
| + | IPTABLES="/ | ||
| + | # on lui dit quelle est notre carte réseau | ||
| + | WAN1_IFACE=" | ||
| + | # on lui dit quel est le port utilisé par ssh | ||
| + | SSH_PORT=" | ||
| + | # on lui donne une liste d' | ||
| + | ADMIN_IP=" | ||
| + | # on génère les regles iptables une par une dans une boucle | ||
| + | for admin in ${ADMIN_IP}; | ||
| + | ${IPTABLES} -t filter -A INPUT -p tcp -i ${WAN1_IFACE} -s ${admin} --dport ${SSH_PORT} -j ACCEPT | ||
| + | done | ||
| + | </ | ||
| + | * Ensuite on vérifie que les règles ont bien été déclarées avec : iptables -L | ||
| + | |||
| + | === Utiliser fail2ban === | ||
| + | |||
| + | Fail2ban est un daemon écrit en python qui lit en permanence les fichiers de logs à la recherche de choses bizarres et si il détecte quelque chose d' | ||
| + | |||
| + | * Installer fail2Ban : apt-get install fail2ban | ||
| + | * Créer une règle perso en ajoutant un fichier / | ||
| + | <sxh ini> | ||
| + | [ssh] | ||
| + | |||
| + | enabled | ||
| + | port = ssh, | ||
| + | filter | ||
| + | logpath | ||
| + | maxretry = 6 | ||
| + | </ | ||
| + | * Relancer fail2ban avec : service fail2ban restart | ||
| + | |||
| + | ==== sftp ==== | ||
| + | |||
| + | Voir plus haut la partie " | ||
| + | |||
| + | Par défaut, sftp est activé donc nous allons voir comment le configurer pour enfermer un utilisateur dans un dossier précis. | ||
| + | |||
| + | === Chroot sftp === | ||
| + | |||
| + | Parfois, nous avons besoin de permettre la connection d'un utilisateur sur un serveur afin qu'il puisse modifier certains fichiers (comme sur un serveur web par exemple) sauf qu'on veut surtout pas qu'il matte les dossiers de ses petits camarades ou qu'il se balade sur la bécane... | ||
| + | |||
| + | Pour verrouiller un utilisateur dans un dossier, il y a deux solutions : | ||
| + | |||
| + | * soit on met en place un chroot au niveau du système (lourd à mettre en place et maintenir) | ||
| + | * soit on fait un chroot en sftp (par contre l' | ||
| + | |||
| + | Voici la procédure (en prenant l' | ||
| + | |||
| + | == Configurer l' | ||
| + | |||
| + | * Créer un groupe qui contiendra les utilisateurs concernés : addgroup sftpusers | ||
| + | * Ajouter les utilisateurs concernés dans ce groupe : addgroup toto sftpusers | ||
| + | * Changer le propriétaire de leur dossier " | ||
| + | * Créer le dossier dans lequel ils seront enfermés : mkdir / | ||
| + | * Changer le propriétaire du dossier concerné : chown root:root / | ||
| + | * Créer un dossier dans lequel il pourra écrire : mkdir / | ||
| + | * Attribuer la propriété du fichier à l' | ||
| + | |||
| + | <callout type=" | ||
| + | |||
| + | == Configurer le serveur ssh == | ||
| + | |||
| + | * Editer le fichier de config de ssh qui est : / | ||
| + | * Aller tout à la fin | ||
| + | * Remplacer " | ||
| + | * Ajouter les paramètres suivants : | ||
| + | <sxh> | ||
| + | Match Group sftpusers | ||
| + | ChrootDirectory / | ||
| + | ForceCommand internal-sftp | ||
| + | AllowTCPForwarding no | ||
| + | X11Forwarding no | ||
| + | PasswordAuthentication yes | ||
| + | </ | ||
| + | |||
| + | <callout type=" | ||
| + | * Relancer ssh | ||
| + | |||
| + | <callout type=" | ||
| - | |||
| ===== notes ===== | ===== notes ===== | ||
| http:// | http:// | ||
tuto/1.1478769798.txt.gz · Last modified: (external edit)
