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édentesRévision précédente
Prochaine révision
Révision précédente
pratique:informatique:bastionssh [07/05/2025 19:42] – [Configuration côté utilisatrice] Zatalyzpratique:informatique:bastionssh [09/05/2025 17:14] (Version actuelle) – [Configuration côté utilisatrice] Zatalyz
Ligne 78: Ligne 78:
 # Authentification # Authentification
 PermitRootLogin no PermitRootLogin no
-AllowGroups wheel,jump+AllowGroups wheel jump
    
 PasswordAuthentication no PasswordAuthentication no
Ligne 109: Ligne 109:
 LogLevel VERBOSE LogLevel VERBOSE
  
-# Match optionnel pour restreindre plus finement (exemple)+# Match précise qui a droit à quoi
 Match Group jump Match Group jump
 +     # AllowTcpForwarding nécessaire pour que ce soit transmis, 
 +     # Renseigner ensuite les adresses et ports.
 +     AllowTcpForwarding yes
      PermitOpen 10.0.0.10:22      PermitOpen 10.0.0.10:22
      PermitOpen 10.0.0.11:22      PermitOpen 10.0.0.11:22
      PermitOpen 10.0.0.12:22      PermitOpen 10.0.0.12:22
  
-Match User alice +Match Group wheel
-     AllowTcpForwarding yes +
- +
-Match User lapin+
     PermitTTY yes     PermitTTY yes
     ForceCommand none     ForceCommand none
Ligne 185: Ligne 185:
 chmod 0600 /home/lapin/.ssh/authorized_keys</code> chmod 0600 /home/lapin/.ssh/authorized_keys</code>
  
 +=== L'hyperviseur a-t-il les bonnes adresses ? ===
 +Bastion2 étant l'hyperviseur, il peut avoir sa façon (unique) de gérer les adresses, suivant le pont etc. Pour vérifier si la VM "192.168.1.10" est réellement joignable sous ce nom :
 +<code>ip route get 192.168.1.10
 +ping 192.168.1.10
 +ip neigh</code>
 +
 +Si ça ne trace pas la route, si ça ne ping pas... la dernière commande liste les ip voisines, ça peut donner des pistes.
 ==== Configuration côté Serveur final ==== ==== Configuration côté Serveur final ====
   * sshd_config   * sshd_config
   * Accepter uniquement des connexions depuis Bastion2   * Accepter uniquement des connexions depuis Bastion2
- 
  
 <code bash sshd_config/perso> <code bash sshd_config/perso>
 +# Protocole et sécurité de base
 Protocol 2 Protocol 2
-Ciphers aes256-ctr,aes192-ctr,aes128-ctr +StrictModes yes
-MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com+
    
 +# Chiffrement et algorithmes
 +HostKey /etc/ssh/ssh_host_ed25519_key
 +KexAlgorithms sntrup761x25519-sha512,sntrup761x25519-sha512@openssh.com
 +Ciphers chacha20-poly1305@openssh.com,aes128-gcm@openssh.com,aes256-gcm@openssh.com
 +MACs hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com
 +PubkeyAcceptedAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,sk-ssh-ed25519@openssh.com,sk-ssh-ed25519-cert-v01@openssh.com
 + 
 +# Authentification
 PermitRootLogin no PermitRootLogin no
-StrictModes yes+AllowGroups wheel
    
 PasswordAuthentication no PasswordAuthentication no
 +PermitEmptyPasswords no
 KbdInteractiveAuthentication no KbdInteractiveAuthentication no
 PubkeyAuthentication yes PubkeyAuthentication yes
 UsePAM yes UsePAM yes
    
-PermitEmptyPasswords no+# Paramètres de session et de connexion
 MaxAuthTries 6 MaxAuthTries 6
 LoginGraceTime 30 LoginGraceTime 30
 +ClientAliveInterval 3m
 +ClientAliveCountMax 5
    
-AllowGroups wheel +# Comportement à la connexion, environnement
-  +
-AllowTcpForwarding no +
-X11Forwarding no +
- +
 PrintLastLog yes PrintLastLog yes
 PrintMotd no PrintMotd no
- +PermitUserEnvironment no
 AcceptEnv LANG LC_* AcceptEnv LANG LC_*
-  + 
-Subsystem sftp /usr/lib/openssh/sftp-server+# Redirections et accès à distance 
 +AllowTcpForwarding no 
 +X11Forwarding no
 </code> </code>
 +
 === Cas particulier d'un tunnel === === Cas particulier d'un tunnel ===
 Dans un cas particulier, j'ai hélas besoin de pouvoir parfois utiliser un [[pratique:informatique:box_fai|tunnel]] (fichue box qui ne se gère pas direct en ssh). On peut ajouter ceci depuis le serveur qui va permettre le tunnel :  Dans un cas particulier, j'ai hélas besoin de pouvoir parfois utiliser un [[pratique:informatique:box_fai|tunnel]] (fichue box qui ne se gère pas direct en ssh). On peut ajouter ceci depuis le serveur qui va permettre le tunnel : 
Ligne 266: Ligne 281:
 <code>ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_alice -C "alice"</code> <code>ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_alice -C "alice"</code>
  
-Copier la clé sur la/les VM auxquelles elle a accès ainsi que dans les deux bastions, dans ''/home/alice/.ssh/authorized_keys''+Copier la clé **publique** sur la/les VM auxquelles elle a accès ainsi que dans les deux bastions, dans ''/home/alice/.ssh/authorized_keys''
  
 Son fichier de config avec un seul bastion (tout en local, donc adresse locale !!!). Ça, ça marche. Son fichier de config avec un seul bastion (tout en local, donc adresse locale !!!). Ça, ça marche.
Ligne 315: Ligne 330:
 Pour se connecter :  Pour se connecter : 
   ssh vm-finale   ssh vm-finale
 +
 +<WRAP center round tip 100%>
 +Attention si on utilise un script (genre [[pratique:informatique:ansible|Ansible]] pour créer les utilisatrices. Une utilisatrice admin sur la VM ne doit PAS être admin sur le bastion. 
 +</WRAP>
 +
 +
  
 {{tag>Informatique, SSH}} {{tag>Informatique, SSH}}
pratique/informatique/bastionssh.1746639761.txt.gz · Dernière modification : 07/05/2025 19:42 de Zatalyz