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.
- http://www.alsacreations.com/tuto/lire/621-Configuration-d-un-serveur-dedie-de-A-a-Z.html
- http://documentation.online.net/fr/serveur-dedie/systemes-d_exploitation/distribution-proxmox
- http://documentation.online.net/fr/serveur-dedie/ns-secondaire/gestion-fr
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
Port 8800
PermitRootLogin no
AllowUsers userchto
On modifie le hostname pour que ça nous retourne host.chto.fr
hoster.chto.fr
On modifie le fichier hosts
127.0.0.1 localhost hoster
88.190.1.6 hoster.chto.fr hoster
Après ça on redémarre
On se reconnecte en SSH
Adresse : 88.190.1.6, port 8800 avec le compte userchto
Puis
*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.
*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
success() {
echo -n "...succes"
}
failure() {
echo -n "...erreur"
}
Puis on tape
On redémarre avant de tester le parefeu
On se reconnecte en SSH
Adresse : 88.190.1.6, port 8800 avec le compte userchto
Puis
*Mot de passe root
On teste le firewall pour voir si tout fonctionne encore et si on perd pas la main
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
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
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 »:
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:
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:
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:
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.
Merci beaucoup pour votre ajout 😉
J’ai corrigé un tout petit peu pour que ça soit plus clair.
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