[ Proxmox sur Dedibox ] Préparation du serveur : Partie 1

Je viens de me lancer dans un truc un peu fou, l’hébergement de site sur un serveur dédié. En soit rien de très compliqué évidemment, mais je veux faire quelque chose de sécurisé, maniable et facile à administrer. J’ai donc choisi de me lancer dans la virtualisation avec Proxmox et OpenVZ. De cette façon je pourrais avoir plusieurs machines virtuelles, les sauvegarder, les dupliquer et les restaurer en cas de problème.

Donc état des lieux j’ai :

  • un nom de domaine enregistré chez 1and1.fr, on dira chto.fr.
  • un serveur dédié chez Online, une Dédibox DC, on dira qu’elle s’appelle sd-20001.dedibox.fr que son adresse IP est 88.190.1.6. J’ai pris 3 IP failover pour pouvoir jouer : 88.190.100.81, 88.190.100.82, 88.190.100.83

Première étape installer le système :
Il suffit de se laisser guider par l’interface d’Online. Juste j’ai modifié la table de partition, avec une partition de 50Go pour / et le reste on laisse libre. J’ai donné le nom d’utilisateur « userchto » et le nom de la machine « hoster ».
La suite est un mélange de plusieurs tutos trouvé par ci, par là au fur et à mesure des recherches.

Une fois la machine installé, c’est parti on se connecte via le navigateur à l’adresse http://88.190.1.6, on va dans Configuration/System puis dans DNS. Dans le nom d’hôte on met hoster, dans le nom de domaine on met chto.fr. Dans l’onglet Time on choisi le bon fuseau horaire. Dans l’onglet Admin, on met l’email. Dans l’onglet options on met tout en français.

Ensuite on se connecte en SSH sur le serveur.
Adresse : 88.190.1.6, port 22 avec le compte root

On change le port de connexion SSH (ici on met le port 8800 mais ça peut être autre chose) et on interdit l’accès au compte root

nano /etc/ssh/sshd_config
Port 8800
PermitRootLogin no
AllowUsers userchto

On modifie le hostname pour que ça nous retourne host.chto.fr

nano /etc/hostname
hoster.chto.fr

On modifie le fichier hosts

nano /etc/hosts
127.0.0.1 localhost hoster
88.190.1.6 hoster.chto.fr hoster

Après ça on redémarre

reboot

On se reconnecte en SSH
Adresse : 88.190.1.6, port 8800 avec le compte userchto
Puis

su
*Mot de passe root
apt-get update
apt-get upgrade
apt-get install zip unzip gcc diff bzip2 make
dpkg-reconfigure postfix
*Site internet
*Nom du courrier : chto.fr
*Adresse : postmaster
*Autres destinations (ajouter) : , chto.fr
*Forcer MAJ synchro : non
*Réseau interne : rien toucher
*Utiliser procmail : oui
*Taille des boites 10000
*Caractère d extension : +
*Protocole : ipv4
nano /root/.bashrc
*Ajouter en bas du fichier
echo 'Acces au shell root le '  `date``who`| mail -s `hostname -f` votre.adresse.perso@mail.fr
* Il se peut que vous n arriviez pas à taper le caractère ` pour cela maintenez alt et taper 096.
chmod o-x /usr/bin/gcc-4.1
chmod o-x /usr/bin/make
chmod o-x /usr/bin/apt-get
chmod o-x /usr/bin/dpkg

Maintenant on va mettre en place le pare feu. Pour plus d’explication vous pouvez vous rendre sur le wiki d’OpenVZ

J’ai quelque peu modifié le fichier donné pour pouvoir faire un réglage plus fin.

nano /etc/vz/vz.conf
*A la ligne IPTABLES="...." ajouter à la fin "ipt_conntrack ip_conntrack_ftp"
cd /etc/init.d/
wget http://blog.chto.fr/fichiers/firewall
nano firewall

Maintenant il faut y mettre les bons réglages notamment le SEGMENT, THISHOST et OK_XXPUT_XXX_PORTS en mettant les ports que vous souhaitez ouvrir en entrée et en sortie.

Ensuite on va créer le fichier /etc/init.d/functions

# /etc/init.d/functions

success() {
echo -n "...succes"
}
failure() {
echo -n "...erreur"
}

Puis on tape

chmod +x /etc/init.d/firewall

On redémarre avant de tester le parefeu

reboot

On se reconnecte en SSH
Adresse : 88.190.1.6, port 8800 avec le compte userchto
Puis

su
*Mot de passe root

On teste le firewall pour voir si tout fonctionne encore et si on perd pas la main

/etc/init.d/firewall start

Normalement il n’y a pas d’erreur sinon revoir du côté du fichier /etc/vz/vz.conf pour activer les modules.
Une fois que le firewall fonctionne, on active la mise en route automatique

update-rc.d firewall defaults
apt-get install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
* Remplacer le bantime par 6000 au lieu de 600
* Remplacer la valeur de destemail par votre email
* Remplacer la valeur de mta par mail à la place de sendmail
* Après la ligne [ssh] remplacer le port par 8800 à la place de ssh

3 réflexions au sujet de « [ Proxmox sur Dedibox ] Préparation du serveur : Partie 1 »

  1. Accès dans une VM à un serveur ftp mode passif

    Bonsoir,
    Récemment, les serveurs de sauvegarde de Free (dedibackup) sont passés du mode ftp actif (ports fixes) au mode ftp passif (les ports sont dynamiques à partir du port 1024).
    Le ftp dans une VM ne marche plus si vous utilisiez un pare-feu dans votre serveur maitre (hoster), comme le script firewall du tuto de Brice, « [proxmox sur dedibox] Préparation du serveur 1ère »
    Voici une modification à faire pour permettre l’accès à un ftp mode passif aux VM.

    Pour permettre de joindre n’importe quel serveur ftp en mode passif à partir du port 1024, Dans le fichier script /etc/init.d/firewall
    ajouter après la ligne « echo « Firewall: Setting up container firewalls »:

    # FTP passive
      iptables -t filter -A FORWARD -p tcp --dport 1024: -s $CTIP -j ACCEPT;

    ensuite sauvegarder.
    puis redémarrer le firewall (en login root)avec la commande:

    /etc/init.d/firewall restart

    Petit test en ligne de commande pour vérifier que cela fonctionne dans la VM cible:
    Connectez vous sur la VM, puis en mode ligne de commande, tapez:

    ftp -p [ Ip serveur ftp] [entrée]

    entrez les login/mdp si demandés.
    une fois le prompt du serveur « ftp> », vous tapez la commande « ls »
    Apparait alors le message « Entering Passive mode (XXX,YYY,VVV,WWW,nnn,mmm)
    où XXX,YYY,VVV,WWW est l’adresse réelle du serveur IP (mais séparé avec des virgules) et nnn et mmm les ports dynamiques alloués.
    Si la liaison fonctionne vous aurez le message retour « Accepted data connection » et le résultat de la commande ls (liste des fichiers)
    Sinon, les ports sont bloqués par le firewall, vous aurez le message « FTP: connect: Connection timed out ».

    Bonne soirée

    PS: En mode parano, si vous voulez restreindre les ports qu’à un seul serveur ftp, remplacez dans le script firewall, l’ajout des 2 lignes précédentes par:

    # FTP passive
      iptables -t filter -A FORWARD -p tcp –dport 1024: -s $CTIP -d [votre serveur ftp] -j ACCEPT;

    et remplacer par l’adresse de IP de votre serveur ftp.

    Note: cela s’appliquera à toutes les VM

    Attention: dans le cas d’une dedibox, l’adresse réelle n’est pas forcément, l’url du serveur ftp. Pour connaitre l’adresse réelle, lancez l’exemple de la commande FTP vu plus haut. L’adresse réelle sera XXX.YYY.VVV.WWW.

  2. Bonsoir Brice.
    Vous avez très bien fait!

    Si c’est possible, il y aurait deux lignes à corriger:
    1/
    dans la 1ère ligne : « Accès dans une VM à un serveur ftp mode passif suite ».
    Le dernier mot « suite » est à supprimer…. Je ne sais pas pourquoi je l’ai tapé?!

    2/
    Dans la ligne « Récemment, les serveurs de sauvegarde de Free (dedibox) »,
    il faudrait remplacer « (dedibox) » par « (dedibackup) » qui est le bon nom du service de sauvegarde de free pour les dedibox.

    Bonne soirée

Les commentaires sont fermés.