issue102:tutoriel_2
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
issue102:tutoriel_2 [2015/11/16 14:43] – auntiee | issue102:tutoriel_2 [2015/11/16 18:49] (Version actuelle) – andre_domenech | ||
---|---|---|---|
Ligne 13: | Ligne 13: | ||
Un serveur Web est un logiciel qui délivre des pages Web (et potentiellement d' | Un serveur Web est un logiciel qui délivre des pages Web (et potentiellement d' | ||
- | Et comment cela fonctionne-t-il réellement ? | + | Et comment cela fonctionne-t-il réellement ? |
**When a request is sent to that specific listening port, the daemon wakes up and produces an action – for a web server, the daemon typically sends back a web page. | **When a request is sent to that specific listening port, the daemon wakes up and produces an action – for a web server, the daemon typically sends back a web page. | ||
Ligne 29: | Ligne 29: | ||
Quel serveur Web choisir ? | Quel serveur Web choisir ? | ||
- | Les serveurs les plus populaires sont Apache, ngix, Microsoft et Google (liste recueillie chez netcraft.com). Je ne suis pas très habitué à Google en matière de serveur et Microsoft est à priori hors liste (imaginez pourquoi!). Il nous reste donc à choisir entre Apache et ngix. | + | Les serveurs les plus populaires sont Apache, ngix, Microsoft et Google (liste recueillie chez netcraft.com). Je ne suis pas très habitué à Google en matière de serveur et Microsoft est à priori hors liste (imaginez pourquoi !). Il nous reste donc à choisir entre Apache et ngix. |
Apache existe depuis plus longtemps et possède la plus grande part du marché. Ngix est, semble-t-il, | Apache existe depuis plus longtemps et possède la plus grande part du marché. Ngix est, semble-t-il, | ||
Ligne 48: | Ligne 48: | ||
We can now check that the web-server started properly (shown below) - using a web browser, key the IP address of the server (in my example it is 159.203.90.111).** | We can now check that the web-server started properly (shown below) - using a web browser, key the IP address of the server (in my example it is 159.203.90.111).** | ||
- | Installer le serveur Web d' | + | Installer le serveur Web d' |
Avant de commencer, notez que je vais également ajouter les commandes pour Centos7. | Avant de commencer, notez que je vais également ajouter les commandes pour Centos7. | ||
Ligne 56: | Ligne 56: | ||
sudo apt-get install apache2 (Centos7 – yum install httpd) | sudo apt-get install apache2 (Centos7 – yum install httpd) | ||
- | Assurez-vous de répondre Y pour continuer (ou d' | + | Assurez-vous de répondre Y pour continuer (ou d' |
On peut maintenant s' | On peut maintenant s' | ||
Ligne 96: | Ligne 96: | ||
• MaxRequestsPerChild is the threshold after which a child process will re-spawn. For example, as any software, Apache can have memory leaks – so restarting the child process after a given number of requests served will clean up potentially leaked resources.** | • MaxRequestsPerChild is the threshold after which a child process will re-spawn. For example, as any software, Apache can have memory leaks – so restarting the child process after a given number of requests served will clean up potentially leaked resources.** | ||
- | Configuration et réglage. | + | Configuration et réglage |
Maintenant qu' | Maintenant qu' | ||
Ligne 102: | Ligne 102: | ||
D' | D' | ||
- | Théoriquement, | + | Théoriquement, |
- | Éditez le fichier : / | + | Éditez le fichier : / |
sudo vi / | sudo vi / | ||
Ligne 121: | Ligne 121: | ||
Que signifie tout cela ? | Que signifie tout cela ? | ||
- | • StartServers définit le nombre minimum de serveurs enfants créés quand le serveur Web démarre. | + | • StartServers définit le nombre minimum de serveurs enfants créés quand le serveur Web démarre. 2 fonctionne très bien pour moi et je ne sais pas exactement quelle est la valeur par défaut. |
- | • MinSpareServers est le nombre minimum de fils qui attendent des requêtes alors que MaxSpareServers est son nombre maximum. Plus le nombre est élevé et plus la charge que peut supporter le serveur est importante. Il faut toutefois équilibrer ces valeurs avec les capacités de notre serveur (1 CPU et 512MB de RAM) Dans notre cas, 6 et 12 fonctionnent bien. | + | • MinSpareServers est le nombre minimum de fils qui attendent des requêtes alors que MaxSpareServers est son nombre maximum. Plus le nombre est élevé et plus la charge que peut supporter le serveur est importante. Il faut toutefois équilibrer ces valeurs avec les capacités de notre serveur (1 CPU et 512 MB de RAM) Dans notre cas, 6 et 12 fonctionnent bien. |
• MaxClients est le nombre maximum de requêtes simultanées qui seront traîtées (toute requête supplémentaire sera mise en file d' | • MaxClients est le nombre maximum de requêtes simultanées qui seront traîtées (toute requête supplémentaire sera mise en file d' | ||
- | • MaxRequestsPerChild est la valeur au-delà de laquelle un serveur enfant se ré-initialisera. Par exemple, comme tout logiciel, Apache peut avoir des fuites de mémoire | + | • MaxRequestsPerChild est la valeur au-delà de laquelle un serveur enfant se réinitialisera. Par exemple, comme tout logiciel, Apache peut avoir des fuites de mémoire |
**Disable default site | **Disable default site | ||
Ligne 164: | Ligne 164: | ||
Désactiver le site par défaut | Désactiver le site par défaut | ||
- | Il est temps maintenant de désactiver le site par défaut c' | + | Il est temps maintenant de désactiver le site par défaut, c' |
Il faut d' | Il faut d' | ||
Ligne 172: | Ligne 172: | ||
sudo a2dissite 000-default | sudo a2dissite 000-default | ||
- | Vérifier | + | Vérifiez |
- | Redémarrer | + | Redémarrez |
Créer notre site | Créer notre site | ||
- | Le nom de notre site sera iceberg-tutorial.com (iceberg.com est déjà pris !) ; nous allons donc créer un fichier de configuration nommé iceberg-tutorial.conf (note : nous aurions pu choisir n' | + | Le nom de notre site sera iceberg-tutorial.com (iceberg.com est déjà pris !) ; nous allons donc créer un fichier de configuration nommé iceberg-tutorial.conf (note : nous aurions pu choisir n' |
sudo vi / | sudo vi / | ||
- | Et ajouter | + | Et ajoutez |
< | < | ||
Ligne 195: | Ligne 195: | ||
Que signifie tout cela ? | Que signifie tout cela ? | ||
- | • Apache écoute sur le port 80 (voir ci-dessous) | + | • Apache écoute sur le port 80 (voir ci-dessous). |
- | • Le nom du serveur est celui de notre site | + | • Le nom du serveur est celui de notre site. |
• DocumentRoot est le chemin de l' | • DocumentRoot est le chemin de l' | ||
• ErrorLog est le chemin de l' | • ErrorLog est le chemin de l' | ||
Ligne 248: | Ligne 248: | ||
sudo a2ensite iceberg-tutorial.conf | sudo a2ensite iceberg-tutorial.conf | ||
- | Si nous essayons d' | + | Si nous essayons d' |
Par défaut, Apache cherche un fichier nommé index.html – créons-le : | Par défaut, Apache cherche un fichier nommé index.html – créons-le : | ||
Ligne 258: | Ligne 258: | ||
Quelques notes rapides sur les ports TCP | Quelques notes rapides sur les ports TCP | ||
- | Nous avons déjà abordé les ports TCP lors de notre précédent article. Un excellent outil pour déterminer quels sont les ports ouverts est nmap. Pour scanner les 1 000 premiers ports, tapez : | + | Nous avons déjà abordé les ports TCP lors de notre précédent article. Un excellent outil - pour déterminer quels sont les ports ouverts |
sudo nmap localhost | sudo nmap localhost | ||
Ligne 264: | Ligne 264: | ||
et vous verrez quels sont les ports ouverts. | et vous verrez quels sont les ports ouverts. | ||
- | Ici les ports 22 (SSH) et 80 (http) sont ouverts | + | Ici les ports 22 (SSH) et 80 (http) sont ouverts, comme prévu. |
Pour scanner d' | Pour scanner d' | ||
Ligne 286: | Ligne 286: | ||
Sites virtuels | Sites virtuels | ||
- | Il est possible d' | + | Il est possible d' |
On peut donc avoir plusieurs fichiers de configuration dans le dossier / | On peut donc avoir plusieurs fichiers de configuration dans le dossier / | ||
Ligne 310: | Ligne 310: | ||
Sécurité | Sécurité | ||
- | À quoi rimerait le paramétrage d'un serveur Web sans sécurité ? | + | À quoi rimerait le paramétrage d'un serveur Web sans sécurité ? |
Apache est un logiciel Open Source, il est donc très facile d' | Apache est un logiciel Open Source, il est donc très facile d' | ||
- | Souvenez-vous toutefois que la sécurité n'est pas à toute épreuve | + | Souvenez-vous toutefois que la sécurité n'est pas à toute épreuve, c'est simplement un facteur limitant |
**Out of the box security | **Out of the box security | ||
Ligne 352: | Ligne 352: | ||
Sécurité par défaut | Sécurité par défaut | ||
- | Par « par défaut » j' | + | Par « par défaut » j' |
ServerTokens Prod | ServerTokens Prod | ||
Ligne 378: | Ligne 378: | ||
Commentaire rapide sur la signification de tout cela : | Commentaire rapide sur la signification de tout cela : | ||
- | • ServerTokens et ServerSignature ne donneront pas la version d' | + | • ServerTokens et ServerSignature ne donneront pas la version d' |
• TraceEnabled ne permet pas le débogage (une trace additionnelle) et TimeOut est sans doute explicite ! | • TraceEnabled ne permet pas le débogage (une trace additionnelle) et TimeOut est sans doute explicite ! | ||
• Les ordres concernant le Directory (répertoire) ajoutent des restrictions sur le dossier racine. | • Les ordres concernant le Directory (répertoire) ajoutent des restrictions sur le dossier racine. | ||
Ligne 391: | Ligne 391: | ||
There are many websites with all the instructions on how to install ModSecurity and turn on CRS – for all step-by-step instructions, | There are many websites with all the instructions on how to install ModSecurity and turn on CRS – for all step-by-step instructions, | ||
- | Sécurité supplémentaire – module ModSecurity pour Apache. | + | Sécurité supplémentaire – module ModSecurity pour Apache |
- | Très courant pour les serveurs Apache (et peut-être pour d' | + | Très courant pour les serveurs Apache (et peut-être pour d' |
- | Une fois installé, ModSecurity ne fait rien par défaut | + | Une fois installé, ModSecurity ne fait rien par défaut, vous devez activer les options dont vous avez besoin. Pour faciliter les choses, des règles communes (appelées aussi CRS – Core Set Rules, ensemble des règles de base) sont disponibles et ont juste besoin d' |
- | Il y a un tas de sites internet | + | Il y a un tas de sites Internet |
**Cleanup and some statistics | **Cleanup and some statistics | ||
Ligne 409: | Ligne 409: | ||
Note that the log file size will continue increasing – so we must clean it up. This very small script (shown on the next page)will count all unique access to the web server and then compress the log. It's a bash job, all lines starting with # are comments. Once the script is created, you can add the script to a cron job to run daily:** | Note that the log file size will continue increasing – so we must clean it up. This very small script (shown on the next page)will count all unique access to the web server and then compress the log. It's a bash job, all lines starting with # are comments. Once the script is created, you can add the script to a cron job to run daily:** | ||
- | Nettoyage et quelques statistiques. | + | Nettoyage et quelques statistiques |
Le dossier / | Le dossier / | ||
Ligne 415: | Ligne 415: | ||
Allez voir dans access.log. Vous y verrez l' | Allez voir dans access.log. Vous y verrez l' | ||
- | Nous pouvons aussi obtenir des statistiques | + | Nous pouvons aussi obtenir des statistiques |
- | Remarquez que la taille des fichiers journaux n' | + | Remarquez que la taille des fichiers journaux n' |
**Final Note – website registration and DNS | **Final Note – website registration and DNS | ||
Ligne 433: | Ligne 433: | ||
Note finale – Enregistrement du site et DNS | Note finale – Enregistrement du site et DNS | ||
- | Une fois que le serveur est monté et que les pages sont prêtes, vous allez probablement enregistrer un nom de site – il est plus facile de se souvenir de iceberg-tutorial.com que de 159.203.90.111. | + | Une fois que le serveur est monté et que les pages sont prêtes, vous allez probablement enregistrer un nom de site ; il est plus facile de se souvenir de iceberg-tutorial.com que de 159.203.90.111. |
- | Pour faire cela, allez sur votre registrar en ligne favori et suivez toutes les étapes (il faudra payer quelque chose – c'est habituellement de l' | + | Pour faire cela, allez sur votre registrar en ligne favori et suivez toutes les étapes (il faudra payer quelque chose, c'est habituellement de l' |
- | Vous devrez alors créer une entrée DNS à Digital Ocean – c'est le lien qui détermine où doit aller le navigateur | + | Vous devrez alors créer une entrée DNS à Digital Ocean, c'est le lien qui détermine où doit aller le navigateur quand quelqu' |
Toutes les informations sur ces étapes sont très bien expliquées ici : https:// | Toutes les informations sur ces étapes sont très bien expliquées ici : https:// | ||
J' | J' |
issue102/tutoriel_2.txt · Dernière modification : 2015/11/16 18:49 de andre_domenech