Préparation d'un serveur dédié OVH
Ce post est un mémo pour la préparation de chaque serveur physique, qui sera ensuite configuré comme un hyperviseur pour héberger des VM.
À la base, les serveurs dédiés que j’utilise sont des serveurs fournis par OVH, dont l’installation initiale n’est pas configurable (à part le partitionnement). Du coup il y a un ensemble de choses à faire pour le mettre dans l’état standard, sur lequel se base le reste de mes outils.
Installation
Distribution :
-
Ubuntu 16.04 LTS
-
Français
-
installation personnalisée
Partitionnement :
-
pas de partition boot
-
une partition racine de 20G
-
une partition swap de la taille de la mémoire
-
pas de partition home
-
laisser le reste de l’espace disque libre
Paramétrage :
-
définir le hostname (host.domain.ext)
-
choisir une clé ssh
-
ne pas utiliser le noyau de la distribution
Netboot
-
Stable kernel, vanilla - 64bit
-
Root device :
/dev/sda1
-
se connecter en ssh et redémarrer
Variables
export SSHPORT=12345 export USERNAME=monuser
Networking
Selon la configuration IPv6 générée par l’installeur, et l’effet de la topologie réseau, il se peut qu’il y ait du flapping de route par défaut, ou une perte de celle-ci.
Dans ces cas là, se connecter en IPv4, et modifier le fichier de configuration. Remplacer add
par replace
dans la configuration de l’interface réseau externe :
Avant: /sbin/ip -family inet6 route add default via ... Après: /sbin/ip -family inet6 route replace default via ...
Passer la commande modifiée tout de suite, pour éviter de devoir redémarrer encore une fois
SSH
Editer /etc/ssh/sshd_config
:
Port $SSHPORT PasswordAuthentication no
Recharger la configuration ssh :
systemctl restart ssh
Sans se déconnecter, re-tester la connexion root.
Utilisateurs
Création de l’utilisateur administrateur
adduser $USERNAME
On prend soin d’ajouter une configuration pour la gestion des groupes, en cas d’erreur de gestion
(umask 227 && echo "$USERNAME ALL=/usr/bin/gpasswd" > /etc/sudoers.d/group-recovery)
sudo -i -u $USERNAME ssh localhost -p $SSHPORT -o StrictHostKeyChecking=no cat ~root/.ssh/authorized_keys2 > /home/$USERNAME/.ssh/authorized_keys chown $USERNAME:$USERNAME /home/$USERNAME/.ssh/authorized_keys
Tester la connexion automatique vers l’utilisateur non privilégié
On ajoute cet utilisateur administrateur au groupe sudo
pour qu’il puisse tout faire
sudo gpasswd -a $USERNAME sudo
Tester l’exécution de commandes via sudo
sudo ls
Utils
apt-get -y install screen git htop ncdu iftop nload tcpdump
Activate filesystem storage for systemctl-journald by changing /etc/systemd/journald.conf
:
sudo sed -i -r -e 's/^[[:space:]]*#?[[:space:]]*Storage[[:space:]]*=.*$/Storage=persistent/' /etc/systemd/journald.conf sudo systemctl force-reload systemd-journald systemctl status systemd-journald
Resolver
echo "nameserver 213.186.33.99" > /etc/resolv.conf apt-get -y purge bind9
Packages
S’il n’y a pas de RAID logiciel, supprimer mdadm
apt-get -y purge mdadm
LVM
On créé un paquet de partitions :
parted --align=optimal --script /dev/sda \ mkpart extended 10% 100% \ mkpart logical 10% 15% \ mkpart logical 15% 20% \ mkpart logical 20% 25% \ mkpart logical 25% 30% \ mkpart logical 30% 35% \ mkpart logical 35% 40% \ mkpart logical 40% 45% \ mkpart logical 45% 50% \ mkpart logical 50% 55% \ mkpart logical 55% 60% \ mkpart logical 60% 65% \ mkpart logical 65% 70% \ mkpart logical 70% 75% \ mkpart logical 75% 80% \ mkpart logical 80% 85% \ mkpart logical 85% 90% \ mkpart logical 90% 95% \ mkpart logical 95% 100%
On vérifie les partitions :
lsblk
On initialise ces partitions en PV :
pvcreate --verbose --pvmetadatacopies 2 /dev/sda{5..22}
Mises à jour
cat << EOF > /usr/local/bin/apt-up #! /usr/bin/env sh apt-get update && \ apt-get upgrade && \ apt-get dist-upgrade && \ apt-get autoremove && \ apt-get clean EOF chmod +x /usr/local/bin/apt-up
Mettre à jour le système :
apt-up
Et maintenant on peut en faire ce qu’on veut !