Installation
Partir sur le partitionnement par défaut ?
Configurer le reverse sur le panel admin OVH
Config de base
Compte Root, user et SSH
Modifier le mot de passe root ayant été envoyé par mail
passwd root
Créer un user de base pour la connexion ssh
adduser nouveauuser
Ajouter la clé publique pour la future connexion ssh de l'utilisateur
su nouveauuser
Clé publique à déposer dans :
~/.ssh/authorized_keys
Modifier la configuration SSH vi /etc/ssh/sshd_config
Port 10000 # Changer le port par défaut PermitRootLogin no # Ne pas permettre de login en root Protocol 2 # Protocole v2 #AllowUsers nouveauuser # N'autoriser qu'un utilisateur PubkeyAuthentication yes # Autoriser uniquement l'authentification par clé #PasswordAuthentication no # Refuser l'authentification par mot de passe - N'activer qu'après avoir confirmé connexion par clé.
Redémarrer le service SSH après ces modifications :
/etc/init.d/ssh restart
Configuration des locales ainsi que du fuseau horaire
dpkg-reconfigure locales dpkg-reconfigure tzdata
Mettre a jour le system et reboot
aptitude update && aptitude full-upgrade
Configuration réseau
vi /etc/hostname et indiquer le reverse configuré chez OVH
vi /etc/hosts
127.0.0.1 localhost openvz xx.x.xxx.xxx truc.machin.com openvz
vi /etc/resolv.conf
nameserver ip_serveur_dns_1 nameserver ip_serveur_dns_2
Entrer 127.0.0.1 et vérifier que les DNS OVH sont saisis en backup.
Ne pas répondre aux ping broadcast
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
Désactiver le routage de paquets d'origine interne (a tester si ne pose pas de pb avec les VM)
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
Refuser les messages de réponse icmp invalides
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
Redémarrer le reseau
/etc/init.d/networking restart
Vérifications
hostname -f
doit retourner le FQDN soit truc.machin.com
hostname -s
doit retourner le nom court, soit openvz
hostname -d
doit retourner le domaine, soit machin.com
hostname -i
retourne l'adresse IP
Firewall
Modifier le fichier sysctl.conf afin de permettre le forwarding ipv4 :(ne devrait pas etre nécéssaire)
Consulter /etc/network/interfaces et voir quelles interfaces sont établies par défaut par OVH.
net.ipv4.ip_forward=1
vi /etc/init.d/firewall
#!/bin/sh # Vider les tables actuelles iptables -t filter -F # Vider les règles personnelles iptables -t filter -X # Interdire toute connexion entrante et sortante iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP # --- # Ne pas casser les connexions etablies iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Autoriser loopback iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT # ICMP (Ping) iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A OUTPUT -p icmp -j ACCEPT # --- # SSH In iptables -t filter -A INPUT -p tcp --dport 10000 -j ACCEPT # SSH Out iptables -t filter -A OUTPUT -p tcp --dport 10000 -j ACCEPT # DNS In/Out iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT # NTP Out iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
chmod +x /etc/init.d/firewall
En cas d'erreur, redémarrer le serveur
Afin de l'ajouter aux scripts appelés au démarrage :
update-rc.d firewall defaults
Pour le retirer, utiliser la commande suivante :
update-rc.d -f firewall remove
/etc/init.d/firewall pour activer le filtrage.
Applications
Synchro du temps
apt-get install ntp ntpdate.
Editer /etc/ntp.conf ou /etc/default/ntpdate pour vérifier si bien configuré
/etc/init.d/ntp restart.
Applis
aptitude install pound fail2ban rkhunter
Configuration pound
## redirect all requests on port 8080 ("ListenHTTP") to the local webserver (see "Service" below): ListenHTTP Address 91.121.173.80 Port 80 # my services definition Service HeadRequire "Host:.*www.domaine.net.*" BackEnd Address vz-opensso Port 8180 End End Service HeadRequire "Host:.*abcd.domaine.net.*" BackEnd Address vz-pouet Port 81 End End End
Configuration Fail2ban (pour ssh)
vi /etc/fail2ban/fail2ban.conf
Copier le fichier d'exemple puis le modifier
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local vi /etc/fail2ban/jail.local
Configuration rkhunter
vi /etc/default/rkhunter vi /etc/rkhunter.conf
aptitude install bind9 bind9-host dnsutils
Configuration des disques pour rendre compatible les snapshots à chaud
On va utiliser md2 actuellement monté sur /var/lib/vz.
Backup des données de la partition
Il nous faut donc commencer par faire un backup:
mkdir -p /home/backup cp -pr /var/lib/vz/* /home/backup/
On va demonter la partition sur laquelle est montée /var/lib/vz (/dev/md2) dans notre cas:
umount /var/lib/vz
Theoriquement il faudrait changer le type de la partition /dev/md2 pour du Linux LVM (8e):
fdisk /dev/md2
"commande t pour changer le type => 8e"
Seuelement ça ne fonctionne pas, donc on fait comme si c'etait ok ;)
Création du PV
pvcreate /dev/md2
Création du VG
On crée le VG que l'on nomme pve
vgcreate pve /dev/md2
Création des LV
On va creer un volume logique sur lequel on montera ensuite /var/lib/vz Et un autre qui sera dedié aux backup qui sera monté sur/var/lib/vz/dump
Attention, le volume dump va accueillir... les dumps de vos machines virtuelles, assurez vous que vous la dimensionnez en fonction de vos besoins. Dans notre cas les dumps sont transférés sur un serveur de backup puis effacés du serveur local donc on n'a pas besoin de "beaucoup" de place.
lvcreate -L 300G -n vz pve lvcreate -L 50G -n dump pve
On formate ces lv (ext3):
mke2fs -j /dev/pve/vz -L vz mke2fs -j /dev/pve/dump -L dump
Modification du fstab
On doit a present modifier le fstab pour :
supprimer les points de montage /dev/md2 -> /var/lib/vz creer le point de montage /dev/pve/vz -> /var/lib/vz et /dev/pve/dump vers /var/lib/vz/dump
Il faut penser a creer /var/lib/vz/dump (en ayant monter /var/lib/vz avant...)
Au final le fstab doit ressembler a :
# <sys.fichiers><pt de montage><type> <options> <dump> <pass> /dev/md1 / ext3 errors=remount-ro 0 1 #/dev/md2 /var/lib/vz ext3 defaults 1 2 /dev/pve/vz /var/lib/vz ext3 defaults 1 2 /dev/pve/dump /var/lib/vz/dump ext3 defaults 1 2 /dev/sda3 swap swap defaults 0 0 /dev/sdb3 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs defaults 0 0
On mount le le tout:
mount -a
On verifie:
$ mount /dev/md1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/mapper/pve-vz on /var/lib/vz type ext3 (rw) /dev/mapper/pve-dump on /var/lib/vz/dump type ext3 (rw
Restauration du backup
Il nous faut a present restaurer ce qu'il y avait a l'origine dans /var/lib/vz
cp -pr /home/backup/* /var/lib/vz/
Vérification
Il nous reste a verifier que le vzdump se fait en mode snapshot
Un cree une machine virtuelle:
vzctl create 101 --ostemplate debian-4.0-i386-minimal vzctl start 101
On lance un backup:
vzdump --snapshot 101
Si tout se passe comme prevu, on a :
INFO: Starting new backup job - vzdump --snapshot 101 INFO: Starting Backup of VM 101 (openvz) INFO: status = CTID 101 exist mounted running INFO: creating lvm snapshot of /dev/mapper/pve-vz ('/dev/pve/vzsnap') INFO: Logical volume "vzsnap" created INFO: mounting lvm snapshot INFO: creating archive '/var/lib/vz/dump/vzdump-101.dat' (/mnt/vzsnap/private/101) INFO: Total bytes written: 145551360 (139MiB, 11MiB/s) INFO: file size 138MB INFO: Logical volume "vzsnap" successfully removed INFO: Finished Backup of VM 101 (00:00:21)
Création des VM
Création des VM
https://votreserveur.ovh.net
(user root et mdp)
Il faut stocker les images iso dans /var/lib/vz/template/iso pour qu’elles soient visibles depuis la web gui.
On peut les télécharger directement depuis la web gui