technique:infrastructure:machines_virtuelles:reseau_ssh

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
Dernière révisionLes deux révisions suivantes
technique:infrastructure:machines_virtuelles:reseau_ssh [2020/02/14 22:06] – ↷ Page déplacée de technique:infrastructure:vm:reseau_ssh à technique:infrastructure:machines_virtuelles:reseau_ssh qduchemitechnique:infrastructure:machines_virtuelles:reseau_ssh [2021/11/22 22:49] – ↷ Liens modifiés en raison d'un déplacement. qduchemi
Ligne 1: Ligne 1:
-===== Configuration réseau et du serveur SSH de la VM =====+{{indexmenu_n>20}}
  
-==== Configuration réseau ====+Configuration réseau et SSH
  
-Si jamais la configuration réseau semble être écrasée par une configuration IPv6, il est nécessaire de supprimer le paquet ''rdnssd'' qui fait du DNS discovery pour l'IPv6. Inutile, tant que nos infra ne supportent pas IPv6, et casse la configuration DNS statique :+<bootnote warning>Cette page suppose que vous avez accès à un shell sur une machine virtuelle nouvellement installée.</bootnote> 
 + 
 +## Configuration réseau 
 + 
 +Si jamais la configuration réseau semble être écrasée par une configuration IPv6, il est nécessaire de supprimer le paquet `rdnssdqui fait du DNS discovery pour l'IPv6. Il casse la configuration IPv6 statique, on peut donc le supprimer.
 ``` ```
 apt-get purge rdnssd apt-get purge rdnssd
 ``` ```
  
-Modification du fichier ''/etc/resolv.conf'' pour ajouter les serveurs DNS de Tetaneutral :+On modifie le fichier `/etc/resolv.confpour ajouter les serveurs DNS de Tetaneutral :
  
 ``` ```
Ligne 16: Ligne 20:
 ``` ```
  
-On édite le fichier ''/etc/network/interfaces'' :+On édite le fichier `/etc/network/interfaces` pour indiquer au système que l'on souhaite configurer l'interface `eth0` à la main :
  
-```+```bash
 source /etc/network/interfaces.d/* source /etc/network/interfaces.d/*
  
Ligne 28: Ligne 32:
 auto eth0 auto eth0
 allow-hotplug eth0 allow-hotplug eth0
-# On dit au système que l'on souhaite configurer l'interface eth0 à la main 
 iface eth0 inet manual iface eth0 inet manual
 ``` ```
  
 +Pour rappel, dans cette configuration, `eth0` de la VM est relié à une interface bridge de l'hôte, qui transmet les requêtes à la machine virtuelle. On suppose ici que l'IPv6 est fonctionnelle.
 +Sur Debian, il faudra éditer le fichier `/etc/rc.local` pour ajouter la configuration suivante :
  
-Dans le fichier ''/etc/rc.local'' nous devons ajouter la configuration suivante (en veillant à bien remplacer ''<ip de la machine>'' par l'IP que l'on souhaite attribuer à la machine) : +```bash
- +
-```+
 # On attend 3 secondes au boot pour être sûr d'avoir les interfaces réseau # On attend 3 secondes au boot pour être sûr d'avoir les interfaces réseau
 sleep 3 sleep 3
 + 
 +# Désactiver l'auto-configuration IPv6 pour permettre
 +# l'utilisation d'une adresse IPv6 statique
 +for i in /proc/sys/net/ipv6/conf/*; do \
 +  for j in autoconf accept_ra; do echo 0 > $i/$j; done;done
  
 # On allume l'interface eth0 # On allume l'interface eth0
 ip link set eth0 up ip link set eth0 up
-On ajoute l'IP sur l'interface eth0 +IPv4 publique 
-ip addr add <ip de la machine> dev eth0 +ip addr add <IPv4> dev eth0 
-# On ajoute la route par défaut vers le routeur de Tetaneutral+# On ajoute la route par défaut vers le routeur de Tetaneutral (à changer si autre FAI)
 ip route add default via 91.224.148.0 dev eth0 onlink ip route add default via 91.224.148.0 dev eth0 onlink
 +# IPv6 publique
 +ip -6 addr add <IPv6> dev eth0
 +# Lien-local IPv6 : unique sur l'hôte
 +ip -6 addr add fe80::80:<XX>/64 dev eth0
 +# Passerelle IPv6 par défaut : lien-local statique du routeur Tetaneutral (à changer si autre FAI)
 +ip -6 route add default via fe80::31 dev eth0
  
 exit 0 exit 0
 ``` ```
  
-==== Configuration SSH ====+Sur Alpine, il faudra [activer les scripts `local.d·`](https://unix.stackexchange.com/questions/442020/alpine-linux-run-a-startup-script-to-change-the-etc-issue) avec `rc-update add local default` et éditer le fichier `/etc/local.d/Network.start`.
  
-1Création des répertoires/fichiers qui vont bien pour les clefs SSH :+<bootnote warning>Il faut remplacer `<IPv4>`, `<IPv6>` et `<XX>`Ces valeurs sont à faire correspondre avec les routes déclarées sur l'hôte. Pour une VM chez Tetaneutral, on regardera sur la page de [[technique:old:alice_bob:network|configuration réseau des machines physiques]].</bootnote>
  
-``` +On exécute le script : 
-mkdir -p /root/.ssh/ + 
-touch /root/.ssh/authorized_keys+```bash 
 +chmod +x /etc/rc.local 
 +./etc/rc.local
 ``` ```
  
-2Ajouter les clés SSH+À ce stade, on doit être en mesure de contacter la machine depuis l'extérieur, via un `ping` par exemple.
  
-Pour ajouter votre clé, exécutez: ''ssh-copy-id root@IP-de-la-machine''+## Configuration SSH
  
-__Remarque:__ +S'assurer que le serveur SSH est installé. Dans `/etc/sshd_config`, on vérifie que la connexion par mot de passe pour `rootest **désactivée**, c'est-à-dire que la ligne commençant par `PermitRootLogin` est commentée.
-Afin de copier la clef SSH sur la machine, on active **temporairement** l'accès SSH par mot de passe. Via le VNC, on éditer le fichier ''/etc/ssh/sshd_config'' pour remplacer +
-``+
-PermitRootLogin without-password +
-``` +
-par +
-``` +
-PermitRootLogin yes +
-``` +
-De manière à pouvoir effectuer nos ''ssh-copy-id'' facilement.+
  
-De cette manière il est possible de faire la copie de clef SSH via SSH. Une fois que l'accès par clef fonctionne pour la machine, on remet la directive suivante dans le fichier ''/etc/ssh/sshd_config'', par mesure de sécurité : +Aujourd'hui, on utilise un serveur LDAP pour les connexions aux machines virtuelles : se référer au [[technique:adminsys:ldap:installation|tutoriel de mise en place de l'authentification LDAP]].
-``` +
-PermitRootLogin without-password +
-```+
  
-==== Patch pour les cgroups sous Debian ====+<bootnote critical>Il est préférable d'installer un [[technique:adminsys:secu:firewall|pare-feu basique]] et [[technique:adminsys:secu:fail2ban|fail2ban]].</bootnote>
  
-Une fois la configuration réseau et le serveur SSH configurésil faut faire en sorte que Debian prenne en compte les cgroupsPour se faire, il faut éditer le fichier ''/etc/default/grub'' et changer la ligne: +La configuration est terminée, la machine est accessible via son IP publique et SSH, avec authentification LDAP.
-``` +
-GRUB_CMDLINE_LINUX_DEFAULT="quiet" +
-``` +
-en  +
-``` +
-GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1" +
-```+