atelier_automatisation/chapitre01.md

79 lines
2.2 KiB
Markdown

## Chapitre 0.1
Dernier atelier de mise à niveau avant Ansible
LXD : hyperviseur de conteneurs LXC
LXC : technologie de conteneurisation
### LXD
#### Entrer dans un conteneur LXC
- En root : `lxc exec <ct> /bin/bash`
- En user : `lxc exex test --sudo --user <user> --login`
#### Demo Bastion ssh et rappel
**Rappel :**
Génération d'un couple clé publique clé privée ssh :`ssh-keygen -t ed25519`
la clé en `.pub` contient la clé publique à déposer sur les conteneur. On ne touche pas à l'autre elle est confidentielle.
**Création et configuration du conteneur bastion :**
```
lxc launch images:debian/buster bastion
lxc exec bastion /bin/bash
apt-get update
apt-get install -y openssh-server
echo "ssh_pubkey" >> ~/.ssh/authorized_keys
```
On doit pouvoir se connecter en ssh depuis notre ordinateur au conteneur bastion mais pas au conteneur test
Sur notre conteneur test (voir 0.0) on configure ssh pour que seul le bastion puisse y accéder (plus tard on ferra ça avec un pare-feu).
```
PermitRootLogin no
Match Address ipConteneurTest
PermitRootLogin without-password
```
Puis on dépose notre clé ssh et on restart sshd
```
echo "ssh_pubkey" >> ~/.ssh/authorized_keys
systemctl restart sshd
```
Normalement il n'est plus possible de se connecter au conteneur test depuis notre ordinatateur. Il est accessible uniquement depuis le bastion.
**Point réseau :**
- L'adresse `0.0.0.0` représente l'adresse wildcard en IPv4.
**Sur notre ordinateur :**
~/.ssh/config
```
Host bastion
Hostname ipConteneurBastion
User root
Host test1
Hostname ipConteneurTest # Correspond à l'ip à laquelle test1 est accessible depuis test (le bastion)
User root
ProxyJump bastion
```
**Ce qui change dans la "vrai vie" :**
- On ne se connecte jamais via mot de passe
- On évite au maximum de se connecter en root, même à un conteneur accessible que à travers le bastion.
- C'est le pare-feu qui nous empêche de nous connecteur aux conteneurs "backend" (le conteneur test dans notre cas) et non une config sshd.
----
Il est possible de partager son serveur X avec un conteneur LXC, cela peut permettre de faire tourner un service dans un conteneur et de l'utiliser sur ça machine hôte.