Documentation du Dr FRAPPE

Ce wiki regroupe les résultats de mes expériences en informatique accumulés au cours de mes recherches sur le net.

Dans la mesure du possible, j'ai cité mes sources ; il en manque certainement… :-)

Différences

Ci-dessous, les différences entre deux révisions de la page.


Révision précédente
tutoriel:internet:llsp:start1 [2022/08/13 21:57] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +{{tag>Trusty BROUILLON}}
  
 +====== Création d'un serveur HTTP (Lighty) + PHP + SQLite ======
 +
 +<WRAP center round info 60%>
 +__Note préliminaire__ :
 +
 +Dans ce tutoriel, nous supposons un hôte :
 +  * de nom **server.exemple.com**
 +  * d'adresse IP **192.168.0.31**.
 +
 +Modifiez ces paramètres selon vos besoins.
 +</WRAP>
 +
 +Un serveur **lighttpd** permet de construire un site web accessible via le réseau local (LAN).
 +
 +En configurant le routeur et le pare-feu, vous pouvez ouvrir l'accès au site via l'Internet (en faisant attention à la sécurité).
 +
 +<WRAP center round info 60%>
 +**__Arborescence de lighty__**
 +
 +Voici les dossiers et fichiers importants de **lighty** (les fichiers sont en italique, ceux qui nous servent sont en jaune et soulignés):
 +
 +<diagram>
 +| AAA |                        |AAA=**/etc**
 +| |!| |
 +| |`|-| AAA |                  |AAA=**lighttpd**
 +| | | | |!| |
 +| | | | |)|-| AAA |            |AAA=**//lighttpd.conf//**
 +| | | | |!|
 +| | | | |`|-| AAA |            |AAA{border-color:red;background-color:lightgreen}=**conf–available** :\\ répertoire des configurations complémentaires
 +| | | | | | | |!| |
 +| | | | | | | |)|-| AAA        |AAA{border-color:red;background-color:yellow}=**//__40–config.conf__//** :\\ configuration générale
 +| | | | | | | |!| |
 +| | | | | | | |)|-| AAA        |AAA{border-color:red;background-color:yellow}=**//__50–modulexxx.conf__//** :\\ configuration du module **modulexxx**
 +| | | | | | | |!| |
 +| | | | | | | |)|-| AAA        |AAA{border-color:red;background-color:yellow}=**//__90–vhost–xxx.yyy.tld.conf__//** :\\ configuration de l'hôte virtuel **xxx.yyy.tld**
 +| | | | | | | |:| |
 +| | | | | | | |L|~| AAA        |AAA{text-align:left;border-color:white}=etc.
 +
 +| AAA | | | | |   | bbb |     |AAA=**/var**|bbb=**/srv**
 +| |!| | | | | |   | |!|
 +| |)|-| AAA | |-@a| |`|-| AAA |AAA{border-color:red;background-color:lightgreen}=**/www**\\ racine par défaut du site
 +| |!|
 +| |`|-| AAA                   |AAA=**log**
 +| | | | |!|
 +| | | | |`| AAA               |AAA=**lighttpd**
 +| | | | | | |!|
 +| | | | | | |)|-| AAA |AAA{border-color:red;background-color:yellow}=**//__access.log__//**
 +| | | | | | |!|
 +| | | | | | |`|-| AAA |AAA{border-color:red;background-color:yellow}=**//__error.log__//**
 +</diagram>
 +
 +  * **/etc/lighttpd/** : répertoire des configurations
 +    * **//lighttpd.conf//** : configuration par défaut ; nous n'y touchons pas.
 +    * **conf–available/** : répertoire des configurations complémentaires ; c'est ici que nous travaillerons. Pour cela, nous créerons des fichiers :
 +      * **//__40–config.conf__//** : configuration générale
 +      * **//__50–modulexxx.conf__//** : configuration du module xxx
 +      * **//__90–vhost–xxx.yyy.tld.conf__//** : configuration de l'hôte virtuel xxx.yyy.tld
 +  * **/srv/www/** : racine par défaut du site (reportée depuis **/var/www** par montage)
 +  * **/var/log/lighttpd/** : répertoire des journaux du serveur
 +    * **//__access.log__//** : journal des pages traitées par le serveur
 +    * **//__error.log__//** : journal des erreurs
 +</WRAP>
 +
 +Pour ne pas toucher au fichier de configuration par défaut **/etc/lighttpd/lighttpd.conf**, livré avec l'application, nous ne travaillerons que dans le répertoire **/etc/lighttpd/conf-available/**. Ainsi, les réglages ne seront pas affectés par les mises à jour et les migrations seront simplifiées (il suffira de récupérer le fichier de configuration).
 +
 +Dans ce dossier, nous placerons :
 +  * les réglages généraux dans un fichier spécifique **/etc/lighttpd/conf-available/40–config.conf**
 +  * les réglages des modules (fichiers **/etc/lighttpd/conf-available/50–modulexxx.conf**)
 +  * les hôtes virtuels (fichiers 90–vhost–xxx.yyy.tld.conf)
 +
 +Le dossier **/var/log/lighttpd/** contient les journaux (accès : **access.log**, erreurs : **error.log**)
 +
 +Le dossier **/srv/www/** est la racine du site, de même que **/var/www** (par montage).
 +
 +===== Configuration =====
 +
 +==== PhpPgAdmin ====
 +
 +Créez avec les droits d'administration le fichier **/etc/lighttpd/conf-available/50-phppgadmin.conf** pour y écrire ceci :
 +
 +<code - /etc/lighttpd/conf-available/50-phppgadmin.conf>
 +# PhpPgAdmin :
 +alias.url += ( "/phppgadmin" => "/usr/share/phppgadmin/")alias.url += ( "/phppgadmin" => "/usr/share/phppgadmin/")
 +</code>
 +
 +Activez cette configuration en lançant :<cli prompt='$ '>...@...:~ $ sudo lighty-enable-mod phppgadmin</cli>
 +
 +==== Hôtes virtuels (vhost) ====
 +
 +=== vhosts utilisateur ===
 +
 +Chaque utilisateur du système a accès à son home personnel et à un sous-répertoire public_html de son home. Il suffit de créer cette arborescence pour qu'elle soit aussitôt utilisable.
 +
 +<code - users.domaine.tld>
 +$HTTP["host"] =~ "users\.domaine\.tld" {
 +    evhost.path-pattern = "/home/%4/public_html/" 
 +}
 +</code>
 +
 +Si **johndoe** est un user, l'adresse [[http://johndoe.users.example.org/]] => **/home/johndoe/public_html/**
 +
 +__**Méthode plus générale**__
 +
 +Toujours pour l'utilisateur **johndoe**,
 +
 +<code - users.domaine.tld>
 +$HTTP["host"] =~ "users\.domaine\.tld" {
 +    server.document-root = "/home/%4/sites/default/site"
 +    evhost.path-pattern  = "/home/%4/sites/%0/site/"
 +}
 +</code>
 +
 +  * Si **johndoe.users.domaine.tld** est demandé, et que **/home/johndoe/sites/domaine.tld/site/** est trouvé, ce chemin devient la docroot.
 +  * Si **johndoe.users.domaine.tld** est demandé mais qu'il n'existe pas de répertoire **/home/johndoe/sites/domaine.tld/site/**, alors la docroot reste **/home/johndoe/sites/default/site**.
 +
 +==== Rendre le serveur disponible sur Internet ====
 +
 +Il reste à rediriger le port 80 (en TCP) vers la machine qui supporte le serveur http, comme ceci :
 +
 +paramètres de la freebox -> mode avancé -> réseau local/redirection de ports :
 +
 +ajouter une redirection,
 +  * port de début : 80
 +  * port de fin : 80
 +  * TCP
 +  * choisir l'IP de la machine qui supporte le serveur
 +  * commentaire : par exemple, serveur http framboise
 +
 +==== Pare-feu ====
 +
 +Installez le paquet **[[apt>arno-iptables-firewall]]** ou en ligne de commande :<cli>$ sudo apt install arno-iptables-firewall</cli>
 +
 +Pendant l'installation, il vous posera quelques questions pour configurer le parefeu :
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-1.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-2.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-3.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-4.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-5.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-6.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-7.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-8.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-9.png|}}
 +
 +{{materiel:internet:serveur:llsp-capture-iptables-10.png|}}
 +
 +==== Fail2ban ====
 +
 +**Fail2ban** est sans doute le logiciel le plus important pour protéger votre serveur.
 +
 +Principe : si un attaquant échoue plus de 3 fois (par exemple) à se connecter au serveur, alors son IP est bannie (automatiquement avec iptables).
 +
 +**Fail2ban** fonctionne avec **ssh**, mais aussi le serveur mail **postfix** et **dovecot**, ainsi que d'autres services comme le **ftp**!
 +
 +Pour l'installer :
 +<cli>$ sudo apt-get install fail2ban</cli>
 +
 +Pour le configurer, éditez avec les droits d'administration le fichier **/etc/fail2ban/jail.conf** pour le modifier comme ceci :
 +
 +Précisez :
 +  * **enabled = true** pour les services que vous souhaitez protéger,
 +  * ainsi que le nombre maximum de tentatives permises dans **maxretry** (par défaut, **maxretry = 3**).
 +
 +===== Utilisation =====
 +
 +Lancez l'application.
 +
 +===== Désinstallation =====
 +
 +Pour supprimer cette application, il suffit de supprimer son paquet.
 +
 +===== Voir aussi =====
 +
 +  * **(en)** Site officiel du module accesslog [[http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAccessLog]]
 +  * **(en)** Comment configurer WebDAV avec Lighttpd : [[http://www.howtoforge.com/setting-up-webdav-with-lighttpd-debian-etch]] et sa deuxième page (lien en bas de page)
 +
 +//Basé sur [[http://redmine.lighttpd.net/projects/lighttpd/wiki|]] par lighttpd.//