Files
vps-docs/hestiacp/chapitres/02-preparation-systeme.md
Zana 2e18724685 Ajout du guide PDF HestiaCP réutilisable (HestiaCP 1.10.4)
- 14 chapitres + annexe en Markdown (chapitres/), 99 étapes
- Générateur WeasyPrint (build/build.py) : PDF générique ou
  personnalisé via --vars fichier.conf
- PDF générique + PDF personnalisé srv1.skglobalinstitute.com
- Commandes v-* vérifiées contre le code source HestiaCP 1.10.4
- 03-bis-hestiacp.md pointe vers le nouveau guide

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018J2PsVQ28oW4xEkWJpcU9G
2026-09-10 20:01:59 +02:00

174 lines
4.6 KiB
Markdown

# Préparer le système
On part d'un Ubuntu 24.04 neuf, connecté en **root**. Ce chapitre prépare le terrain sans rien installer qui gênerait HestiaCP.
## Mettre le système à jour
```bash
apt update && apt full-upgrade -y
apt autoremove -y
```
Si un nouveau noyau a été installé, redémarrez puis reconnectez-vous :
```bash
[ -f /var/run/reboot-required ] && reboot
```
## Définir le nom du serveur
```bash
hostnamectl set-hostname {{FQDN}}
```
Ajoutez le nom du serveur dans `/etc/hosts` :
```bash
cat >> /etc/hosts << 'EOF'
{{IP}} {{FQDN}} {{HOST}}
{{IPV6}} {{FQDN}} {{HOST}}
EOF
```
Les images Contabo utilisent **cloud-init**, qui peut remettre l'ancien nom du serveur au redémarrage. Bloquez ce comportement :
```bash
[ -d /etc/cloud/cloud.cfg.d ] && echo 'preserve_hostname: true' > /etc/cloud/cloud.cfg.d/99-preserve-hostname.cfg
```
> [!CHECK]
> `hostname -f` doit afficher {{FQDN}}.
## Régler le fuseau horaire
Adaptez la zone à votre pays. La liste complète s'obtient avec `timedatectl list-timezones`.
```bash
timedatectl set-timezone Africa/Abidjan
timedatectl
```
## Supprimer UFW
HestiaCP gère son propre pare-feu (iptables + Fail2ban). L'installeur considère UFW comme un paquet en conflit : supprimez-le avant.
```bash
ufw disable
apt purge -y ufw
```
## Vérifier les noms réservés
HestiaCP crée un compte Linux pour son administrateur. Le nom {{ADMIN}} ne doit exister **ni comme utilisateur, ni comme groupe**, et doit être différent de {{USER}}.
```bash
getent passwd {{ADMIN}}; getent group {{ADMIN}}
```
> [!CHECK]
> Aucune ligne ne doit s'afficher.
> [!NOTE] Pourquoi pas « admin » ?
> Sur les images Ubuntu de Contabo, un **groupe `admin` existe déjà**, et l'installeur refuse un nom déjà pris. Choisissez un nom personnel (ex. `hadmin`, `skadmin`) : c'est aussi un nom de moins à deviner pour les robots.
## Éviter le blocage IPv6 pendant l'installation
Sur certains VPS, l'installeur se bloque en téléchargeant ses paquets par IPv6. Dites au système de préférer l'IPv4 pour les connexions sortantes (l'IPv6 reste active) :
```bash
sed -i 's|^#precedence ::ffff:0:0/96 100|precedence ::ffff:0:0/96 100|' /etc/gai.conf
grep "^precedence" /etc/gai.conf
```
> [!CHECK]
> La commande `grep` affiche `precedence ::ffff:0:0/96 100`.
## Vérifier la configuration réseau (Netplan)
L'installeur s'attend à trouver la configuration réseau dans `/etc/netplan`.
```bash
ls /etc/netplan/
ip -6 addr show scope global
```
> [!CHECK]
> Au moins un fichier `.yaml` dans `/etc/netplan/`, et votre IPv6 {{IPV6}} dans la sortie de `ip`.
## Ajouter un fichier d'échange (swap)
HestiaCP ne crée un swap que sur les très petits serveurs. Un swap de 4 Go évite qu'un pic de mémoire ne fasse planter MariaDB ou ClamAV.
```bash
swapon --show
```
Si rien ne s'affiche :
```bash
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
echo 'vm.swappiness = 10' > /etc/sysctl.d/99-swap.conf
sysctl --system > /dev/null
```
> [!CHECK]
> `free -h` affiche une ligne `Swap:` de 4,0 Gi.
## Installer les outils de base
Uniquement des outils sans conflit avec HestiaCP : ni serveur web, ni base de données, ni serveur mail.
```bash
apt install -y curl wget git micro htop tmux unzip ca-certificates gnupg lsb-release dnsutils
```
Faites de `micro` l'éditeur par défaut :
```bash
update-alternatives --install /usr/bin/editor editor /usr/bin/micro 60
update-alternatives --set editor /usr/bin/micro
```
## Créer votre utilisateur sudo
Vous ne vous connecterez plus en root après le chapitre 4. Créez votre compte d'administration système :
```bash
adduser {{USER}}
usermod -aG sudo {{USER}}
```
Autorisez `sudo` sans mot de passe pour ce compte. C'est pratique, mais cela suppose une connexion par **clé SSH uniquement** (chapitre 4).
```bash
echo '{{USER}} ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/010-{{USER}}
chmod 440 /etc/sudoers.d/010-{{USER}}
visudo -c
```
> [!CHECK]
> `visudo -c` répond `parsed OK` pour chaque fichier.
## Installer votre clé SSH
**Sur votre ordinateur** (pas sur le serveur), créez une clé si vous n'en avez pas :
```bash
ssh-keygen -t ed25519 -C "{{USER}}@{{HOST}}"
```
Puis envoyez-la au serveur :
```bash
ssh-copy-id {{USER}}@{{IP}}
```
Sous Windows sans `ssh-copy-id`, copiez le contenu de `C:\Users\<vous>\.ssh\id_ed25519.pub` dans le fichier `/home/{{USER}}/.ssh/authorized_keys` du serveur.
> [!CHECK]
> Dans un **nouveau** terminal, `ssh {{USER}}@{{IP}}` vous connecte sans mot de passe, puis `sudo whoami` répond `root`. Gardez la session root ouverte tant que ce test n'est pas réussi.