Jump to content

Edit History

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto fréquemment mis a jour )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de debian 8

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian  8 est normalement fourni avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

2a-1 : Edit du 12/06/2019 : UN PETIT TUTO DANS LE TUTO POUR PERSONNALISER VOTRE HOSTNAME (si ca ne vous interresse pas, direction chapitre 2a-2) :

Vous remarquerez que votre serveur porte un nom du genre ns12345678.IP.22.22.22.22.ovh.net

C'est moche et pas du tout personnel. Vous pouvez changer cela en faisant plusieur choses :

- Allez sur votre compte OVh, puis dans la ligne de votre domaine vous allez dans les DNS. . Vous ajouter une zone A et lui donnez un nom comme "monserveur.mondomaine.com". Ensuite vous la faite pointer sur l'IP de votre serveur.

- Dans votre serveur, vous tapez :

"nano /etc/hostname"

et vous mettez votre nom d'hote c'est a dire : monserveur (sans le reste de la zone A)

ensuite on tape

"nano /etc/hosts"

et vous remplacez les deux lignes contenant le nom de votre ancien serveur en mettant le votre a la place par exemple :

127.0.0.1       localhost 127.0.1.1     monserveur.mondomaine.com     monserveur
# The following lines are desirable for IPv6 capable hosts
::1     localhost       ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
22.22.222.22   monserveur.mondomaine.com    monserveur

un CTRL X, un validation et voila..

Ensuite un "reboot" pour mettre en place pour de vrai.

N'oubliez pas que votre DNS doit se propager et que cela peut prendre 24h

2a-2 : Si vous ne souhaitez pas changer votre hostname, une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet avec le nom par défaut, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

Il se peut que le sourcelist ne soit plus d'actualité au moment ou vous lisez.. Au cas ou, rajoutez juste les contrib et non free a la fin de vos lignes existantes.

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

Notez que sous Debian 8 (SI vous êtes en debian 7 allez directement à l'install d'apache) seul Mysqli est accepté, donc on install :

"apt-get install php5-mysql"

Cela empechera une futur erreur de ispconfig

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

 

Installer PHP :

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple).

- Notez que vous pouvez adapter ces lignes. Par exemple, si vous ne voulez pas de serveur de mail sur votre serveur (vos mails sont gérés par OVH, par exemple), votre ligne pourra ressembler à ceci : « apt-get install  zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon  zip >> , puis  vous passez direct au chapitre 2e-b

- Sinon, la ligne complète donne ceci :

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles (serveur de mail et webmail) :

 

« apt-get install postfix postfix-mysql getmail4»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

« /etc/init.d/mysql restart »

Pour gagner de la vitesse de chargement, on active la directive "Expires" qui permet aux navigateurs de ne pas recharger les images a chaque fois :

a2enmod expires

 

2e-b : Encore quelques programmes :)

"apt-get install openssl rkhunter binutils"

 On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

N'oubliez pas cette ligne necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec debian 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser le serveur DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

2e-c : Installation des logs et des stats adaptés à ISPCONFIG  et installation de fail2ban:

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2
 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

2e-d : INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN si vous l'avez installé :

 

ceci a été corrigé sous la dernière version d'ISPCONFIG, on ne fait rien donc ..

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

DERNIERS PETITS REGLAGES ET CHARGEMENTS :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 .voir 7.1 selon les versions  N'installez pas de version de PHP plus haute que celles ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto fréquemment mis a jour )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de debian 8

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian  8 est normalement fourni avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

2a-1 : Edit du 12/06/2019 : UN PETIT TUTO DANS LE TUTO POUR PERSONNALISER VOTRE HOSTNAME (si ca ne vous interresse pas, direction chapitre 2a-2) :

Vous remarquerez que votre serveur porte un nom du genre ns12345678.IP.22.22.22.22.ovh.net

C'est moche et pas du tout personnel. Vous pouvez changer cela en faisant plusieur choses :

- Allez sur votre compte OVh, puis dans la ligne de votre domaine vous allez dans les DNS. . Vous ajouter une zone A et lui donnez un nom comme "monserveur.mondomaine.com". Ensuite vous la faite pointer sur l'IP de votre serveur.

- Dans votre serveur, vous tapez :

"nano /etc/hostname"

et vous mettez votre nom d'hote c'est a dire : monserveur (sans le reste de la zone A)

ensuite on tape

"nano /etc/hosts"

et vous remplacez les deux lignes contenant le nom de votre ancien serveur en mettant le votre a la place par exemple :

127.0.0.1       localhost 127.0.1.1     monserveur.mondomaine.com     monserveur
# The following lines are desirable for IPv6 capable hosts
::1     localhost       ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
22.22.222.22   monserveur.mondomaine.com    monserveur

un CTRL X, un validation et voila..

Ensuite un "reboot" pour mettre en place pour de vrai.

N'oubliez pas que votre DNS doit se propager et que cela peut prendre 24h

2a-2 : Si vous ne souhaitez pas changer votre hostname, une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet avec le nom par défaut, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

Il se peut que le sourcelist ne soit plus d'actualité au moment ou vous lisez.. Au cas ou, rajoutez juste les contrib et non free a la fin de vos lignes existantes.

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

Notez que sous Debian 8 (SI vous êtes en debian 7 allez directement à l'install d'apache) seul Mysqli est accepté, donc on install :

"apt-get install php5-mysql"

Cela empechera une futur erreur de ispconfig

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

 

Installer PHP :

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple).

- Notez que vous pouvez adapter ces lignes. Par exemple, si vous ne voulez pas de serveur de mail sur votre serveur (vos mails sont gérés par OVH, par exemple), votre ligne pourra ressembler à ceci : « apt-get install  zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon  zip >> , puis  vous passez direct au chapitre 2e-b

- Sinon, la ligne complète donne ceci :

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles (serveur de mail et webmail) :

 

« apt-get install postfix postfix-mysql getmail4»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

2e-b : Encore quelques programmes :)

"apt-get install openssl rkhunter binutils"

 On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

N'oubliez pas cette ligne necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec debian 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser le serveur DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

2e-c : Installation des logs et des stats adaptés à ISPCONFIG  et installation de fail2ban:

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2
 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

2e-d : INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN si vous l'avez installé :

 

ceci a été corrigé sous la dernière version d'ISPCONFIG, on ne fait rien donc ..

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

DERNIERS PETITS REGLAGES ET CHARGEMENTS :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 .voir 7.1 selon les versions  N'installez pas de version de PHP plus haute que celles ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto fréquemment mis a jour )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de 8

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian  8 est normalement fourni avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

2a-1 : Edit du 12/06/2019 : UN PETIT TUTO DANS LE TUTO POUR PERSONNALISER VOTRE HOSTNAME (si ca ne vous interresse pas, direction chapitre 2a-2) :

Vous remarquerez que votre serveur porte un nom du genre ns12345678.IP.22.22.22.22.ovh.net

C'est moche et pas du tout personnel. Vous pouvez changer cela en faisant plusieur choses :

- Allez sur votre compte OVh, puis dans la ligne de votre domaine vous allez dans les DNS. . Vous ajouter une zone A et lui donnez un nom comme "monserveur.mondomaine.com". Ensuite vous la faite pointer sur l'IP de votre serveur.

- Dans votre serveur, vous tapez :

"nano /etc/hostname"

et vous mettez votre nom d'hote c'est a dire : monserveur (sans le reste de la zone A)

ensuite on tape

"nano /etc/hosts"

et vous remplacez les deux lignes contenant le nom de votre ancien serveur en mettant le votre a la place par exemple :

127.0.0.1       localhost 127.0.1.1     monserveur.mondomaine.com     monserveur
# The following lines are desirable for IPv6 capable hosts
::1     localhost       ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
22.22.222.22   monserveur.mondomaine.com    monserveur

un CTRL X, un validation et voila..

Ensuite un "reboot" pour mettre en place pour de vrai.

N'oubliez pas que votre DNS doit se propager et que cela peut prendre 24h

2a-2 : Si vous ne souhaitez pas changer votre hostname, une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet avec le nom par défaut, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

Il se peut que le sourcelist ne soit plus d'actualité au moment ou vous lisez.. Au cas ou, rajoutez juste les contrib et non free a la fin de vos lignes existantes.

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

Notez que sous Debian 8 (SI vous êtes en debian 7 allez directement à l'install d'apache) seul Mysqli est accepté, donc on install :

"apt-get install php5-mysql"

Cela empechera une futur erreur de ispconfig

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

 

Installer PHP :

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple).

- Notez que vous pouvez adapter ces lignes. Par exemple, si vous ne voulez pas de serveur de mail sur votre serveur (vos mails sont gérés par OVH, par exemple), votre ligne pourra ressembler à ceci : « apt-get install  zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon  zip >> , puis  vous passez direct au chapitre 2e-b

- Sinon, la ligne complète donne ceci :

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles (serveur de mail et webmail) :

 

« apt-get install postfix postfix-mysql getmail4»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

2e-b : Encore quelques programmes :)

"apt-get install openssl rkhunter binutils"

 On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

N'oubliez pas cette ligne necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec debian 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser le serveur DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

2e-c : Installation des logs et des stats adaptés à ISPCONFIG  et installation de fail2ban:

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2
 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

2e-d : INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN si vous l'avez installé :

 

ceci a été corrigé sous la dernière version d'ISPCONFIG, on ne fait rien donc ..

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

DERNIERS PETITS REGLAGES ET CHARGEMENTS :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 .voir 7.1 selon les versions  N'installez pas de version de PHP plus haute que celles ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de 8

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian  8 est normalement fourni avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

2a-1 : Edit du 12/06/2019 : UN PETIT TUTO DANS LE TUTO POUR PERSONNALISER VOTRE HOSTNAME (si ca ne vous interresse pas, direction chapitre 2a-2) :

Vous remarquerez que votre serveur porte un nom du genre ns12345678.IP.22.22.22.22.ovh.net

C'est moche et pas du tout personnel. Vous pouvez changer cela en faisant plusieur choses :

- Allez sur votre compte OVh, puis dans la ligne de votre domaine vous allez dans les DNS. . Vous ajouter une zone A et lui donnez un nom comme "monserveur.mondomaine.com". Ensuite vous la faite pointer sur l'IP de votre serveur.

- Dans votre serveur, vous tapez :

"nano /etc/hostname"

et vous mettez votre nom d'hote c'est a dire : monserveur (sans le reste de la zone A)

ensuite on tape

"nano /etc/hosts"

et vous remplacez les deux lignes contenant le nom de votre ancien serveur en mettant le votre a la place par exemple :

127.0.0.1       localhost 127.0.1.1     monserveur.mondomaine.com     monserveur
# The following lines are desirable for IPv6 capable hosts
::1     localhost       ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
22.22.222.22   monserveur.mondomaine.com    monserveur

un CTRL X, un validation et voila..

Ensuite un "reboot" pour mettre en place pour de vrai.

N'oubliez pas que votre DNS doit se propager et que cela peut prendre 24h

2a-2 : Si vous ne souhaitez pas changer votre hostname, une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet avec le nom par défaut, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

Il se peut que le sourcelist ne soit plus d'actualité au moment ou vous lisez.. Au cas ou, rajoutez juste les contrib et non free a la fin de vos lignes existantes.

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

Notez que sous Debian 8 (SI vous êtes en debian 7 allez directement à l'install d'apache) seul Mysqli est accepté, donc on install :

"apt-get install php5-mysql"

Cela empechera une futur erreur de ispconfig

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

 

Installer PHP :

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple).

- Notez que vous pouvez adapter ces lignes. Par exemple, si vous ne voulez pas de serveur de mail sur votre serveur (vos mails sont gérés par OVH, par exemple), votre ligne pourra ressembler à ceci : « apt-get install  zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon  zip >> , puis  vous passez direct au chapitre 2e-b

- Sinon, la ligne complète donne ceci :

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles (serveur de mail et webmail) :

 

« apt-get install postfix postfix-mysql getmail4»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

2e-b : Encore quelques programmes :)

"apt-get install openssl rkhunter binutils"

 On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

N'oubliez pas cette ligne necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec debian 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser le serveur DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

2e-c : Installation des logs et des stats adaptés à ISPCONFIG  et installation de fail2ban:

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2
 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

2e-d : INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN si vous l'avez installé :

 

ceci a été corrigé sous la dernière version d'ISPCONFIG, on ne fait rien donc ..

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

DERNIERS PETITS REGLAGES ET CHARGEMENTS :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 .voir 7.1 selon les versions  N'installez pas de version de PHP plus haute que celles ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

Notez que sous Debian 8 (SI vous êtes en debian 7 allez directement à l'install d'apache) seul Mysqli est accepté, donc on install :

"apt-get install php5-mysql"

Cela empechera une futur erreur de ispconfig

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

Necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

Necessaire pour l'installation de prestashop :

apt-get install php5-intl

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

ISPCONFIG GERE MAINTENANT LET'S ENCRYPT DONC :

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto
./certbot-auto

Puis quand il demande si on veux créer le certificat on fait cancel. C'est ISPC3 qui le fera pour nous.

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

(Avant d'installer ispconfig, si vous voulez avoir php-fpm en plus du reste : apt-get install php5-fpm)

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

 

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

 

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

(Si un message a propos de patch absent s'affiche, tapez apt-get install patch et relancez php -q install.php)

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

 

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

 

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

 

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

 

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

EDIT DU 27-05-19 : Prestahop est compatible jusqu'au PHP 7.0 . N'installez pas de version de PHP plus haute que celle ci, sinon plantage assuré :)

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

Jean Francois G

Jean Francois G

Installer de A à Z son Serveur  VPS ou dédié sur debian 7 ou 8 + ISPCONFIG

 

 par Jean François Guilard - 71100 Chalon sur Saone - [email protected]

 

( tuto constamment mis a jour pour les dernières versions de débian : Actuellement 7 et 8 )

Dans cet exemple nous choisissons un serveur VPS OVH mais le tuto est valable pour tous les serveurs VPS de n'importe quel prestataire et même les serveurs 100% dédiés.

 

 

 

Vous lirez dans plein de topics : "Si tu n'es pas un administrateur de génie, alors ne tente pas l'expérience des serveurs dédiés car c'est impossible. Tu dois faire appel à un professionnel payant."

Nous allons tenter ici de casser ce discours et de faire en sorte que vous puissiez vous aussi avoir votre serveur dédié avec juste un minimum de connaissances.

 

 Lorsque votre opérateur vous livre votre VPS, sa version de débian est "nue" (Sauf cas spéciaux). C'est à dire que le serveur démarre, charge linux, comprend le html... mais c'est à peu prêt tout. Pour le reste c'est une coquille vide qui attend patiemment que quelqu'un vienne lui dire quoi faire. Il va donc falloir que ce soit vous qui le lui disiez.

 

Dans ce tuto vous allez apprendre à installer les fichiers nécessaires pour que le serveur comprenne le PHP, utilise une base de donnée et supporte les fonctions utiles à prestashop, mais aussi le sécuriser, le clôturer et punir les méchants qui souhaiteraient lui faire du mal..

 

Vous allez également installer un gestionnaire graphique de serveur, accessible depuis internet, afin de pouvoir gérer celui ci plus facilement sans avoir besoin d'en apprendre les lignes de commandes. J'ai choisi ISP-Config car il à l'avantage d'être 100% gratuit et assez simple à comprendre.

 

Pour les novices, comptez environ 1h30 pour tout faire.. Alors ... c'est parti ! (les modifs pour débian 8 sont marquées en ROUGE) certaines spécifiques à débian 7 seront marquées en BLEU

 

Nous allons avoir besoin des données que nous avons reçu d’OVH ou de votre opérateur lors de la création du VPS.

  • Notamment son nom (vpsxxxxx.ovh.net) ou (xxxxxxx.vpsoperateur.xxx)
  • Le mot de passe root pour le ssh
  • L’adresse IP du serveur

 

1 / Si vous avez déjà tenté quelque chose sur votre VPS il faut le réinstaller.  :

 

1A / POUR LES VPS OVH APRES 2013 (DONC ACTUELS 2014 et 2015)

Vous devez vous rendre dans votre espace d'administration de votre compte sur le site OVH

Vous cliquez sur le nom de votre VPS

En haut à droite une case est marquée "REINSTALLER"

Vous choisissez la version de Débian 7 (ou 8 c'est selon votre choix).

  

2/ Préparation du serveur :

 

Nous allons tout paramétrer par SSH. Donc il faut télécharger un programme pour cela. Par exemple le logiciel Putty : http://www.clubic.co...0874-putty.html

 

Lancez  putty, puis connectez vous sur l’IP de votre serveur.

 

Une fenêtre noir apparait, c’est la que tout se passe.

 

  • Tapez votre login : root
  • Puis votre mot de passe reçu sur le mail de confirmation que vous venez de recevoir.

 

Nous allons utiliser un éditeur de fichier pour paramétrer notre serveur.

Debian 7 et 8 sont normalement fournis avec l'utilitaire nano. Il est parfait pour faire notre paramétrage et en plus est complet.

Pour savoir s'il est bel et bien déja préinstallé, il suffit de taper l'ordre "Nano"'

Si un editeur noir s'affiche, c'est tout bon. un CTRL X reviendra aux lignes de commandes.

Si un message d'erreur s'affiche alors allez au chapitre 2b, effectuez les modifs et revenez ici après :)

 

A noter que :

- pour annuler la saisie : CTRL Z

- Pour enregistrer le fichier : CTRL X, puis Y pour confirmer et ENTREE pour valider le nom de fichier

- Pour débloquer si l'on a fait une mauvaise manip : CTRL C

 

2a : Verifier le hostname

 

Une fois logué en root, la première chose à faire est de vérifier que votre host est bien configuré (notamment si vous n'êtes pas sur un serveur VPS OVH, ou si vous êtes sur un vrai dédié :

"nano /etc/hostname"

Vous vérifiez que le nom de votre serveur est présent et bien complet, sinon vous corrigez.

 

2b : Changer le mot de passe du root

 

Pour mieux vous rappeler du mdp root, nous allons le changer. Tapez

« passwd root »

Et choisissez un mot de passe qui vous plait.

 

2c : Faire la mise à jour des sources et installer les ordres critiques

 

 Pour mettre les bonnes sources d'applications pour votre débian, on fait "nano /etc/apt/sources.list" (ou "vi /etc/apt/sources.list" si nano n'est pas encore installé) et on efface tout ce qu'il y a d'écrit.

Ensuite on rempli avec les choses suivantes :

 

Pour débian 7, le sourcelist idéale est :

deb http://security.debian.org/ wheezy/updates main contrib non-free

deb http://ftp.fr.debian.org/debian/ wheezy-updates main non-free contrib

deb http://ftp.debian.org/debian wheezy main contrib non-free

deb http://ftp.debian.org/debian/ wheezy-backports main contrib non-free

 

 Pour débian 8 mettez à jour la liste des sources pour qu'elle contienne ceci :

deb http://ftp.us.debian.org/debian jessie main contrib

deb http://security.debian.org jessie/updates main contrib non-free

deb http://ftp.us.debian.org/debian jessie-updates main

 

Maintenant on lance la prise en compte des nouvelles sources

  •  « apt-get update », validez

Si erreur "There is no public key available for the following key IDs" :

apt-get install debian-archive-keyring

apt-key update

 

Normalement à ce stade on met à jour notre linux, mais pour éviter des erreurs plus tard nous allons dès maintenant installer des appli critiques :

Installation de dialog (au cas ou) : "apt-get install dialog"

puis les taches cron : apt-get install cron

puis les complément de apt : " apt-get install apt-utils"

 

Puis on met à jour notre linux

  • “apt-get upgrade”, validez 

 

Maintenant que le système est à jour, on va pouvoir travailler correctement

 

2d : Configurer la langue et les caractères

 

Par défaut, le serveur est configuré pour en_EN.utf8, nous allons le paramétrer pour les caractères français :

 

« dpkg-reconfigure locales »

 

Un panneau apparait. Faites naviguer la liste et cochez fr_FR.UTF-8, puis tab et validez

Dans région par défaut, choisissez « fr_FR.UTF-8 »

 

Nous avons donc configuré la langue française et le type de caractère à UTF-8 (ça tombe bien c'est ce qu'utilise prestashop)

 

Note : Si le message "no locales installed on this server" apparait, lancez l'installation avec un "apt-get install locales" puis recommencez le chapitre 2

 

2e : Installer les programmes obligatoires

 

Installation de mysql :

“apt-get install mysql-server mysql-client”

Vous devrez confirmer, puis donner le mot de passé que vous voulez pour l’utilisateur root

 

Installation d’apache :

« apt-get install apache2 »

Vous devrez confirmer en tapant Y à la question.

Update : Notez que nous avons installé la version worker d'apache.

 

Installer PHP :

“apt-get install php5 libapache2-mod-php5”

apt-get install php5

apt-get install php5-cgi

apt-get install libapache2-mod-fcgid

 

Et on relance le service

« /etc/init.d/apache2 restart »

 

Installation des modules optionnelles (redimensionnement graphique, module de traduction etc.. ) selon votre utilisation vous pouvez en ajouter ou en retirer :

 

« apt-get install php5-curl php5-gd php-pear php5-pspell php5-recode php5-snmp php5-sqlite»

(Les appellations des modules sont adaptées maintenant à debian 7 et 8. Pas de soucis) 

 

Et on reboot

« Reboot »

 

La fenêtre SSH va se fermer. Relancez putty et reconnectez-vous en root avec votre nouveau mot de passe.

 

Installation de phpmyadmin :

 

 « apt-get install phpmyadmin »

 

Sur l’application en route, pointez « apache » avec la barre d’espace et validez

A la prochaine question sur dbconfig-common, dites non.

 

 

Optionnels mais conseillés : Installation de l’antivirus et d'autres modules  (comme unzip par exemple):

 

 « apt-get install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon  zip »

 

Ce qui installe clamAV, amavisd et spam-assassin, ainsi que les compresseurs et décompresseurs

 

Comme c'est amavisd qui sera utilisé avec isp-config et que ce logiciel se sert des configs de spam-assasin, on va pouvoir l'annuler.

 

"/etc/init.d/spamassassin stop"
"update-rc.d -f spamassassin remove"

 

On installe le serveurs de courrier et les appli utiles :

 

« apt-get install postfix postfix-mysql openssl getmail4 rkhunter binutils»

 

Aux questions répondez : « site internet », puis renseignez votre nom de VPSxxx.ovh.net (ou votre hostname si vous n'êtes pas chez ovh), puis SSL « non »

 

Maintenant, on autorise mySQL à écouter partout :

 

« nano /etc/mysql/my.cnf »

 

Commentez la ligne bind-address = 127.0.0.1

Ce qui donne « # bind-address = 127.0.0.1 »

Sauvez le fichier

Relancez le service

 

« /etc/init.d/mysql restart »

 

 

   

 

On installe maintenant FCGI, suExec, Pear, mcrypt et quelques modules utiles:

 

« apt-get install libexpat1 php5-cgi apache2-suexec php-auth mcrypt »

La aussi j'ai adapté l'ancien tuto pour qu'il soit compatible avec 7 et 8

 

Puis on active les modules de redirections etc..

 

“a2enmod suexec rewrite ssl actions include”
“a2enmod dav_fs dav auth_digest”

 

On relance le service :

 

« /etc/init.d/apache2 restart »

 

Installation du serveur FTP :

 

« apt-get install pure-ftpd-common pure-ftpd-mysql »

« nano /etc/default/pure-ftpd-common »

 

Et on change sur ce fichier la ligne VIRTUALCHROOT=false, en VIRTUALCHROOT=true

Et on sauve

Puis on relance le service

 

« /etc/init.d/pure-ftpd-mysql restart »

 

 

Optionnel (utile que si vous souhaitez ne pas utiliser les DNS de votre opérateur) : Installation du serveur DNS

« apt-get install bind9 dnsutils »

 

Installation des logs et des stats adaptés à ISPCONFIG :

“apt-get install vlogger webalizer awstats geoip-database”

« nano /etc/cron.d/awstats »

Et dans ce fichier commentez toutes les lignes

 

Installation de fail2ban :

« apt-get install fail2ban »

 

Puis on crée les fichiers de configuration pour chaque service

 

« nano /etc/fail2ban/jail.conf »

en mettant ces lignes en enabled= true:

 

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log

bantime = 86400
maxretry = 2

 

[pure-ftpd]

enabled  = true
port     = ftp,ftp-data,ftps,ftps-data
filter   = pure-ftpd
logpath  = /var/log/syslog

bantime= 7400
maxretry = 3

 

[postfix]

enabled  = true
port     = smtp,ssmtp,submission
filter   = postfix
logpath  = /var/log/mail.log

bantime = 86400

maxretry = 2

 

 

Moi j'ai été hard, j'ai mis 2 tentative maximum en erreur car les russes ont bien compris que tout le monde mettait 5 et ils tentent que 3 fois par 20 minutes...

Vous pouvez remonter à 5 si vous avez peur de vous tromper vous même ... Mais bon si vous connaissez vos codes, normalement c'est zero mauvaises tentatives...

 

INSTALLATION D'ISPCONFIG :

 

Lancez cette ligne de commande :

ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

Cela corrigera chez certains le fait qu'il n'y a pas de virtualhost SSL d'activé et évitera le message 'NameVirtualHost *:443 has no VirtualHosts'

 

 

 

Maintenant tapez les ligne suivantes :

cd /tmp

wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz

tar xfz ISPConfig-3-stable.tar.gz

cd ispconfig3_install/install/

php -q install.php

 

 

Maintenant il faut remplir les zones demandées par ISPConfig :

 

ISPConfig-3-300x94.png

Select language (en,de) [en]:  Faire entrer

Installation mode (standard,expert) [standard]: Faire entrer

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: Taper le nom du Hostname du serveur

MySQL server hostname [localhost]: Faire entrer

MySQL root username [root]: Faire entrer

MySQL root password []: Taper ici le mont de passe que vous avez défini à l'installation de MySql

MySQL database to create [dbispconfig]: Faire entrer

MySQL charset [utf8]: Faire entrer

 

La il va y avoir une création des clés de sécurité puis il redemande ensuite de nouvelles informations :

 

Country Name (2 letter code) [AU]: Saisir les deux lettres du pays du serveur (FR pour france)

State or Province Name (full name) [some-State]: Taper le nom de votre département ou laisser vide

Locality Name (eg, city) []: Taper le nom de la ville ou laisser vide

Organization Name (eg, company) [internet Widgits Pty Ltd]: Taper le nom de la Boutique, ou laisser vide

Organizational Unit Name (eg, section) []: Faire entrer

Common Name (eg, YOUR name) []: Taper votre nom de famille ou laisser vide

Email Address []: Taper votre adresse email de contact webmaster ou laisser vide

 

Il mouline et termine l'installation.

 

L’installation de base est terminée.

 

Pour acceder a ispconfig :

Vpsxxxxx.ovh.net :8080 (ou votre hostname:8080 ou votre IP:8080

 

Pour acceder à phpmyadmin

Vpsxxxxx.ovh.net/phpmyadmin

 

Attention, si vous êtes dans les dernières versions, l'accès à phpmyadmin se fait avec :

Vpsxxxxx.ovh.net:8080/phpmyadmin

 

3/ Réglages essentiels de sécurité 

 

3a : Edition de php.ini pour autoriser l’importation des gros fichiers dans phpmyadmin :

 

« nano /etc/php5/apache2/php.ini »

 

En face de max_input_vars, mettre 20000 (Pour les fichiers de traduction de prestashop)

Et mettez 20M en face de upload_max_filesize =

 

!! Attention !! si vous choisissez le mode PHP-CGI pour vos site vous devez faire la même chose dans le dossier /etc/php5/CGI

 

On relance le serveur :  /etc/init.d/apache2 restart

 

3b : securiser et changer le port d’accès pour ispconfig

 

« nano /etc/apache2/sites-available/ispconfig.vhost »

 

Vous trouverez ceci :

 

Listen 8080

NameVirtualHost *:8080

<VirtualHost _default_:8080>

<IfModule mod_fcgid.c>

 

À changer en ceci si vous voulez le port 7654 à la place du 8080 :

 

Listen 7654

NameVirtualHost *:7654

<VirtualHost _default_:7654>

<IfModule mod_fcgid.c>

 

 

3c : Changer l’adresse d’accès de phpmyadmin

 

« nano /etc/phpmyadmin/apache.conf »

 

Vous trouverez ceci :

Alias /phpmyadmin /usr/share/phpmyadmin

 

A changer en ceci (ou monraccourci = l’adresse souhaitée)

Alias /monraccourci /usr/share/phpmyadmin

 

4 : Parametrer un nouveau site dans ISPCONFIG

 

Dans ISP CONFIG :

  • / Enlever les prefixes :

Si on ne compte pas utiliser son dédier pour vendre des sites a des clients, on peut enlever les préfixes automatiques que ISP config met dans les paramètres.

Onglet « system » : « Interface config » : onglet « sites »

  • Supprimer tous les préfixes déjà préconfigurés. Cela évitera de ne plus se rappeler des différents login que ispconfig aurait modifié lui-même.
  • / Créer son propre compte client :

Histoire de ne pas avoir de messages de rappel a répétition ou de zones vides dans la config.

 

Onglet « Client »

« Ajouter un nouveau client » et on renseigne les zones

  • / On crée l’espace du futur site web :

 

Onglet « Site »: « Add new site »

Sous onglet « domaine » :

- Serveur : sélectionner son serveur

- Client : le fameux client créé précédemment

- Adresse ip : * (choisir l’etoile et ne pas choisir l’adresse IP du serveur, sauf si vous ne voulez jamais rajouter d’autres sites. En gros laisser l’étoile)

- Domaine : nomdomaine.com (ne pas mettre le www.)

- De CGI à SuEXEC, remplissez selon les technologies utilisées

- Auto sous-domaine : *.

- SSL : cochez si vous administrez via SSL

- ]PHP : choisissez votre fonctionnement de PHP (fast-CGI)

- Actif : Coché (évidemment)

Et : ENREGISTRER

  • / On crée l’utilisateur FTP pour le site :

Onglet « site » : Sous onglet « utilisateur FTP »
+ Nouvel utilisateur FTP : puis
Site web : on choisi le domaine concerné

Nom d’utilisateur : Choisir un login (qui ne sera pas modifié puisqu’on a supprimé les préfixes)

Choisir un mot de passe

Quota de disque : -1 (c’est vous donc pas de restriction)

Actif : ben oui

On peut maintenant accéder via FTP a l’espace web et uploader le site dans le dossier « web »

  • / La base de données :

Sous ISPConfig, J’ai essayé l’onglet « base de données » de l’onglet « site », mais ça ne fait rien.

Même si on crée un nouvelle base, cela ne la crée pas réellement (PHPmyadmin le confirme)

Donc je passe par PHPmyadmin pour créer ma base de données puis l’importation pour transférer les tables .

  • Sous phpmyadmin créez une nouvelle base de donnée (rappelez vous de son nom pour plus tard), puis dans cette base de données, grâce à l’onglet « importer », restaurez votre sauvegarde SQL que vous avez faite via votre mutualisé. Pour cela cliquez sur parcourir et allez cherchez le fichier Zip ou sql (c’est selon) puis cliquez sur « executer ». Ca mouline …. On attends (ça peut durer longtemps) … et hop c’est bon.
  • Dans privileges, créez un nouvel utilisateur, donnez lui un nom, laissez « tout serveur », donnez lui un mot de passe, et les privilèges passe partout. (vous pouvez aussi donnez tous les droits sur cette base uniquement, en cliquant sur le choix plus bas, plus facile mais c’est plus risqué) . Cliquez sur « éxecuter »
  • La base est prête

 

5 / Pointer votre DNS de domaine sur votre serveur 

Chez votre registar, accédez au zones DNS, puis dans la zone A, mettez votre serveur vps.xxxxx.ovh.com ou votre adresse IP de serveur

Dans la zone MX, faites pareil (si vous voulez gérer vos mails sur votre serveur)

 

 

6 / Sécuriser son accès SSH

Actuellement votre accès à distance est sur ROOT sur le port  22, c'est à dire sur l'utilisateur maître (un dieu en somme) sur le port par défaut.

Nous allons changer cela afin de compliquer une éventuelle tentative d'utilisation de votre SSH par un tiers.

 

6a : Changement du port d'accès :

 

Avec putty, accedez à votre serveur et loguez vous en root.

puis :

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 1 (Quelques fois protocol 2)

 

à changer en ceci (ou 7654 est à changer dans le numéro de port que vous souhaitez) :

 

# What ports, IPs and protocols we listen for

Port 7654
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::

#ListenAddress 0.0.0.0
Protocol 2

 

et sauvegardez

 

6b : Maintenant nous allons créer un utilisateur autre que root:

 

Création de l'utilisateur :

 

"adduser teteatoto"

 

Pas bien compliqué ça ... Mais pour l'instant root peut toujours accéder au SSH

 

6c : Interdiction du SSH à root  et autorisation d'accès à teteatoto

 

Attention : Cette étape va interdire le login SSH de root, ne vous trompez pas concernant le nouveau nom d'utilisateur. Si vous l'oubliez = Réinstallation

 

"nano /etc/ssh/sshd_config"

 

vous allez avoir ceci :

 

# Authentication:

LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

 

 

à changer en ceci :

 

# Authentication:
LoginGraceTime 120

PermitRootLogin no
StrictModes yes

AllowUsers teteàtoto

 

sauvez le fichier

relancez le service :

 

"/etc/init.d/ssh restart"

 

Dorénavant pour accéder au serveur en ssh vous devrez vous loguer en tant teteatoto (et mot de passe de teteatoto), puis dès que vous accedez à la ligne de commande, vous devrez demander les droits du root pour travailler à sa place avec la lignes suivante :

 

"su -"

 

Il sera demandé le mot de passe du root et une fois fait, hop vous avez pris sa place

 

7 / METTRE A JOUR CLAMAV SOUS DEBIAN 7 :

 

Pour ceux qui ne supportent pas d'avoir des lignes d'avertissements dans les logs, vous avez remarquez que clamav affiche toujours des messages indiquant qu'il est "out to date". Ça n'empêche en rien son fonctionnement mais si vous souhaitez corriger cela alors :

 

"nano /etc/apt/sources.list"

 

Ajoutez la source suivante :

deb http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free
deb-src
http://ftp.de.debian.org/debian/ wheezy-updates main contrib non-free

 

puis lancez la mise a jour des sources et du programme :

 

"apt-get update"
"apt-get install clamav"
"apt-get -u upgrade"

 

Relancer amavis pour qu'il prenne en compte les modifs :

 

"/etc/init.d/amavis restart"

 Cette solution ne fonctionne plus sur débian 8. Je mettrais la nouvelle soluce ici même dès que je l'aurais mis en place et testée.

 

8 / VERIFIER QUE LE MODULE MOD_EXPIRES EST BIEN ACTIF

 

Pour gagner de la vitesse dans l'affichage des pages il est important que les navigateurs sachent quand ils doivent recharger les images et quand les prendre dans le cache. Pour cela c'est le module 'expires' qui donne les instructions.

 

Debian n'active pas toujours ce module par défaut, alors dans le doute on va le vérifier et si besoin l'activer :

 

On lance la commande suivante :

"a2enmod expires"

 

Si on à la réponse 'expires already enabled' alors on est bon, rien besoin de rajouter.

 

Si la réponse est 'Enabling module expires. To activate the new configuration, you need to run:   service apache2 restart' Alors on écoute et on tape sagement :

"service apache2 restart"

 

Et hop, google vous dira merci.
 

Derniers petits chargements :

 

Je rajoute quelques utilitaires qui seront bien utiles si vous voulez décompresser des fichiers de sauvegardes ou bien en créer ou les transférer sur une autre serveur..

 

apt-get install unzip zip ftp

 

Comme son nom l'indique unzip decompresse des archives zip, son petit frère zip les crée, et ftp est le mode ligne de commande pour transférer sur un ftp distant. Il ne reste plus qu'a créer le script qui va bien..

 

IMPORTER UNE BASE EXISTANTE MYSQL :

 

Astuce pour ceux qui souhaitent faire une importation sans risque d'erreur d'un PHP.ini ou de phpmyadmin :

 

en ssh :

cd /var

mkdir temp

 

Dans le phpmyadmin de l'ancien serveur, faire une exportation de la bdd en format zip

Copier ensuite ce fichier zip de vitre PC au nouveau VPS dans ce dossier temporaire.

Lancez un

unzip nomdelabase.zip,

qui donnera un fichier nomdelabase.sql

 

dans le nouveau phpmyadmin du vps créer la base de données (par exemple basetoto)

Puis un nouveau uilisateur pour cette base.

 

Ensuite en SSh faites :

 mysql -u utilisateur -p nomdelabasevps < nomdelabase.sql

 

il suffit ensuite de donner le mot de passe de l'utilisateur et l'importation se fait en quelques secondes seulement..

 

puis :

rm nomdelabase.*

 

et le dossier est de nouveau propre

 

De plus on contourne ainsi les limitations des PHP.ini ce qui sécurise encore un peu plus et permet de laisser le upload_max_filesize par défaut..

 

 

et voila. Vous avez terminé.

 

Vous venez de créer votre serveur dédié rien qu'à vous et en plus vous l'avez fait tout seul ! Félicitation !

Vous avez sans doute économisé plusieurs centaines d'euros de main d’œuvre et je sais par expérience que se lancer dans l'e-commerce demande de faire des économies un peu partout au début. :)

 

Bonne administration et n’hésitez pas à poser des questions si vous rencontrez un soucis.

×
×
  • Create New...