Un bastion SSH est un serveur qui nous permet d’accéder à d’autres serveurs.
Voici un schéma pour expliquer son fonctionnement :
On m’a demandé de mettre en place ce bastion dans la bulle business de la plateforme OSS pour pouvoir accéder aux équipements réseaux. Cependant, cela m’impose de modifier la plateforme. Car pour des raisons de logiques, on sépare le chemin qu’emprunte les utilisateurs de celui des administrateurs. A l’heure actuelle, si on veut aller sur une VM dans OSS, on utilise la VM lan-proxy-02 pour y accéder, puis le pare-feu globale à tous les VLAN d’OSS. Voici un second schéma qui explique cela :
Pour que les administrateurs et les utilisateurs puissent accéder aux équipements réseaux depuis OSS, il faudra faire ceci :
Compétence mise en oeuvre
Allez vous référez au Tableaux des compétences
Installation et configuration
L’installation des VM n’a toujours pas changé.
Ressources des VM
Première VM : LAN-PROXY-03
- 2Go de RAM
- 4vCPU
- 20Go de stockage
- Hostname : lan-proxy-04
- VLAN : lan et private
Seconde VM : BUSINESS-PROXY-01
- 2Go de RAM
- 4vCPU
- 20Go de stockage
- Hostname : business-proxy-01
- VLAN : business
Configuration d’OpenSSH
OpenSSH est installé par défaut sur tous les serveurs, donc on a pas besoin de l’installer.
La configuration d’OpenSSH est la même sur les deux VM.
J’ai fait un fichier .sh pour aller plus vite sur le déploiement (./bastion_ssh/sshd.sh sur le dépôt Git). Ce script permet de configurer la partie serveur d’OpenSSH ainsi que la partie client pour les utilisateurs quand ils se connectent au serveur.
Configuration utilisateur
Chaque utilisateur sur sa machine doit rajouter cette configuration :
Host *.device.ef-fr.net
IdentityFile ~/.ssh/id_ed25519
ForwardAgent yes
ProxyJump business-proxy-01
Host business-proxy-01
HostName business-proxy-01.business.31tls00.ef-fr.net
IdentityFile ~/.ssh/id_ed25519
ForwardAgent yes
ProxyJump lan-proxy-03
Host lan-proxy-03
HostName lan-proxy-03.lan.31tls00.ef-fr.net
IdentityFile ~/.ssh/id_ed25519
ForwardAgent yes
Configuration firewall sur MGMT-GATEWAY-02
Sur cette machine, on utilise nftables pour la configuration du firewall. Voici un exemple de configuration à rajouter dans nftables (Les IP ne sont pas les bonnes, et ce n’est pas exactement la même configuration qu’en production):
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# Permettre les connexions établies et les connexions liées
ct state established,related accept
# Accepter les connexions SSH en provenance de lan-proxy-03 vers business-proxy-01
ip saddr 192.168.1.10 tcp dport 22 ip daddr 192.168.2.10 accept
# Accepter les paquets locaux
iif lo accept
# Rejeter les autres paquets
drop
}
chain forward {
type filter hook forward priority 0; policy drop;
# Permettre le forwarding des paquets
ip saddr 192.168.1.10 ip daddr 192.168.2.10 accept
# Rejeter les autres paquets
drop
}
chain output {
type filter hook output priority 0; policy accept;
}
}