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
This commit is contained in:
173
hestiacp/chapitres/02-preparation-systeme.md
Normal file
173
hestiacp/chapitres/02-preparation-systeme.md
Normal file
@@ -0,0 +1,173 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user