« Installer Apache2 » : différence entre les versions
(Page créée avec « == Configuration du service SSH pour SFTP == {{ Box Information | objet=Un compte SFTP ne doit pouvoir se connecter qu’au service SFTP du serveur et avoir accès qu’au répertoire home. }} * Editer le fichier de configuration '''/etc/ssh/sshd_config'''. Commenter la ligne suivante : #Subsystem sftp /usr/lib/openssh/sftp-server * Puis, à la fin du fichier, ajouter les lignes suivantes : Subsystem sftp internal-sftp Match group sftp X11Forwa... ») |
|||
(6 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Serveur Web}} | |||
__TOC__ | |||
== Configuration du service SSH pour SFTP == | == Configuration du service SSH pour SFTP == | ||
Ligne 50 : | Ligne 54 : | ||
{{ Box Console | objet=root@apache2:~# service apache2 restart }} | {{ Box Console | objet=root@apache2:~# service apache2 restart }} | ||
== Installation d’une version spécifique de PHP == | |||
{{ Box Information | objet=Les versions de PHP proposées dans les dépôts Debian peuvent être obsolètes. Il est donc nécessaire d’ajouter le dépôt SURY qui regroupe un certain nombre de package PHP pour les distribution Linux basées sur Debian. }} | |||
=== Installation === | |||
* Ajout du dépôt et installation des dépendances : | |||
{{ Box Console | objet=root@apache2:~# curl -sSL https://packages.sury.org/php/README.txt | bash -x }} | |||
* Installation de la version '''8.1''' de PHP ''(exemple à adapter en fonction de la version souhaitée)'' : | |||
{{ Box Console | objet=root@apache2:~# apt-get install php'''8.1''' php'''8.1'''-fpm php'''8.1'''-mysql php'''8.1'''-apcu php'''8.1'''-apcu-bc php'''8.1'''-bz2 php'''8.1'''-cli php'''8.1'''-common php'''8.1'''-curl php'''8.1'''-gd php'''8.1'''-intl php'''8.1'''-ldap php'''8.1'''-mbstring php'''8.1'''-xmlrpc php'''8.1'''-zip libapache2-mod-php'''8.1''' }} | |||
=== Création d’un pool spécifique pour le VHost === | |||
{{ Box Information | objet=Les pools permettent de contrôler les droits et les ressources utilisés pour chaque VHost hébergés sur le serveur. }} | |||
* Créer le fichier de configuration '''/etc/php/8.2/fpm/pool.d/exemple.conf''' et y <span style="color:orange">adapter</span>/coller les lignes suivantes : | |||
[<span style="color:orange">exemple</span>] | |||
user = <span style="color:orange">exemple</span> | |||
group = <span style="color:orange">exemple</span> | |||
listen = /run/php/php8.2-fpm.<span style="color:orange">exemple</span>.sock | |||
listen.owner = <span style="color:orange">exemple</span> | |||
listen.group = www-data | |||
pm = dynamic | |||
pm.max_children = 5 | |||
pm.start_servers = 2 | |||
pm.min_spare_servers = 1 | |||
pm.max_spare_servers = 3 | |||
* Redémarrer le service pour prendre en compte les nouveaux paramètres : | |||
{{ Box Console | objet=root@apache2:~# /etc/init.d/php8.2-fpm restart }} | |||
<br /> | |||
{{ Box Remarque | objet=Pour de plus amples informations, reportez-vous à l'article [[Serveur_Web_Apache2#Création_du_pool_PHP | Création d'un pool PHP pour Apache 2]]. }} | |||
=== Activation au niveau d’un VHost === | |||
* Editer le fichier de configuration du VHost puis ajouter les éléments suivant avant la balise '''</virtual>''' : | |||
<FilesMatch \.php$> | |||
SetHandler "proxy:unix:/run/php/php'''8.1'''-fpm.<span style="color:orange">exemple</span>.sock|fcgi://localhost" | |||
</FilesMatch> | |||
=== Activation par défaut === | |||
* Pour activer la version '''PHP 8.1''' par défaut sur le serveur web '''Apache2''' : | |||
{{ Box Console | objet=root@apache2:~# a2enmod proxy_fcgi setenvif<br /> | |||
root@apache2:~# a2enconf php8.1-fpm }} | |||
== Paramétrage du pare-feu == | |||
=== Matrice des flux autorisés === | |||
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement. | |||
{| class="wikitable" style="margin:auto" | |||
|+ Matrice de flux | |||
|- | |||
! Source !! Protocole(s) !! Port(s) !! Description | |||
|- | |||
| * || tcp || 22 || Accès SSH, SFTP. | |||
|- | |||
| * || tcp || 80 || Accès Web HTTP. | |||
|- | |||
| * || tcp || 443 || Accès Web HTTPS. | |||
|- | |||
| <@IP_SUPERVISION> || udp || 161,162 || Accès SNMP depuis serveur supervision. | |||
|- | |||
| * || icmp || — || Réponse aux requêtes ping. | |||
|} | |||
=== Configuration iptables sur la couche IPv4 === | |||
* Installation des paquets '''iptables''' (pare-feu) et '''iptables-persistent''' ''(sauvegarde persistante de la configuration)''. | |||
{{ Box Console | objet=root@apache2:~# apt-get install iptables iptables-persistent -y }} | |||
* Ajout des règles '''iptables''' pour autoriser les flux '''SSH''', '''ICMP''' et '''WEB''' : | |||
{{ Box Console | objet=root@apache2:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -p tcp --dport 80 -j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -p tcp --dport 443 -j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -p udp –m multiport -s <@IP_SUPERVISION> --dports 161,162 -j ACCEPT<br /> | |||
root@apache2:~# iptables –A INPUT –p icmp –j ACCEPT<br /> | |||
root@apache2:~# iptables –A INPUT –i lo –j ACCEPT<br /> | |||
root@apache2:~# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br /> | |||
root@apache2:~# iptables -P INPUT DROP }} | |||
* Sauvegarde de la configuration et application automatique à chaque redémarrage du système. | |||
{{ Box Console | objet=root@apache2:~# dpkg-reconfigure iptables-persistent }} | |||
=== Configuration ip6tables sur la couche IPv6 === | |||
* Ajout des règles '''ip6tables''' pour autoriser les flux '''SSH''', '''ICMP''' et '''WEB''' : | |||
{{ Box Console | objet=root@apache2:~# iptables -A INPUT -p tcp --dport 22 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -p udp –m multiport -s <@IPV6_SUPERVISION> --dports 161,162 -j ACCEPT<br /> | |||
root@apache2:~# ip6tables –A INPUT –p icmpv6 –j ACCEPT<br /> | |||
root@apache2:~# ip6tables –A INPUT –i lo –j ACCEPT<br /> | |||
root@apache2:~# ip6tables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br /> | |||
root@apache2:~# ip6tables -P INPUT DROP }} | |||
* Sauvegarde de la configuration et application automatique à chaque redémarrage du système. | |||
{{ Box Console | objet=root@apache2:~# dpkg-reconfigure iptables-persistent }} | |||
== Configuration supervision SNMP == | |||
* Installation du paquet snmpd. | |||
{{ Box Console | objet=root@apache2:~# apt-get install snmpd }} | |||
* Depuis le fichier de configuration '''/etc/snmp/snmpd.conf''', rechercher la ligne : | |||
sysLocation | |||
sysContact | |||
* Puis, remplacer son contenu par : | |||
sysLocation PARIS,DC5 | |||
sysContact webmaster@domaine.tld | |||
* Rechercher la ligne : | |||
agentaddress 127.0.0.1,[::1] | |||
* Puis, remplacer son contenu par : | |||
agentaddress <@IP_PUBLIC_APACHE2> | |||
* Rechercher la ligne : | |||
rocommunity public default –V systemonly | |||
* Puis, remplacer son contenu par : | |||
rocommunity public default | |||
* Redémarrer le service '''snmp''' pour appliquer les changements. | |||
{{ Box Console | objet=root@apache2:~# service snmpd restart }} | |||
== Synchronisation du temps == | |||
* Installation du paquet '''ntpdate''' : | |||
{{ Box Console | objet=root@apache2:~$ apt-get install ntpdate }} | |||
* Depuis le fichier de configuration '''ntpdate''' disponible dans le répertoire '''/etc/default''', rechercher la ligne : | |||
NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org" | |||
* À remplacer par ''(optionnel, si vous disposez d'un serveur NTP spécifique)'' : | |||
NTPSERVERS="<@IP_NTP_SERVEUR>" | |||
* Forcer la synchronisation du temps avec le serveur de temps : | |||
{{ Box Console | objet=root@apache2:~$ ntpdate <@IP_NTP_SERVEUR> }} |
Dernière version du 6 juillet 2024 à 12:09
— Serveur Web —
Certificats SSL Web | .htaccess | Authentification par carte à puce | Certificats Let's Encrypt
Archives : Ancien article sur Apache2 | Module Whois | ProFTPd
Configuration du service SSH pour SFTP
|
Un compte SFTP ne doit pouvoir se connecter qu’au service SFTP du serveur et avoir accès qu’au répertoire home. |
- Editer le fichier de configuration /etc/ssh/sshd_config. Commenter la ligne suivante :
#Subsystem sftp /usr/lib/openssh/sftp-server
- Puis, à la fin du fichier, ajouter les lignes suivantes :
Subsystem sftp internal-sftp Match group sftp X11Forwarding no ChrootDirectory /home/ AllowTcpForwarding no ForceCommand internal-sftp
- Pour appliquer la configuration, redémarrer le service ssh :
|
|
Installation du serveur Web
- Installation du paquet Apache2 (Serveur Web) et de ses dépendances :
|
|
- Installations de modules complémentaires pour Apache2 notamment pour l’authentification Kerberos :
|
|
- Installation du module FCGID pour la gestion de requêtes CGI simultanées :
|
|
- Installation du module mpm_itk pour l’exécution du processus Apache avec l’utilisateur assigné au VHost :
|
|
- Installation du module PHP en version courante (module pour Apache2) et de ses dépendances :
|
|
- Activation d’SSL de la réécriture d’url et de FCGI sur Apache2 :
|
|
- Redémarrage du service Apache2 pour la bonne prise en compte des nouveaux paramètres:
|
|
Installation d’une version spécifique de PHP
|
Les versions de PHP proposées dans les dépôts Debian peuvent être obsolètes. Il est donc nécessaire d’ajouter le dépôt SURY qui regroupe un certain nombre de package PHP pour les distribution Linux basées sur Debian. |
Installation
- Ajout du dépôt et installation des dépendances :
|
|
- Installation de la version 8.1 de PHP (exemple à adapter en fonction de la version souhaitée) :
|
|
Création d’un pool spécifique pour le VHost
|
Les pools permettent de contrôler les droits et les ressources utilisés pour chaque VHost hébergés sur le serveur. |
- Créer le fichier de configuration /etc/php/8.2/fpm/pool.d/exemple.conf et y adapter/coller les lignes suivantes :
[exemple] user = exemple group = exemple listen = /run/php/php8.2-fpm.exemple.sock listen.owner = exemple listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3
- Redémarrer le service pour prendre en compte les nouveaux paramètres :
|
|
Pour de plus amples informations, reportez-vous à l'article Création d'un pool PHP pour Apache 2. |
Activation au niveau d’un VHost
- Editer le fichier de configuration du VHost puis ajouter les éléments suivant avant la balise </virtual> :
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.1-fpm.exemple.sock|fcgi://localhost"
</FilesMatch>
Activation par défaut
- Pour activer la version PHP 8.1 par défaut sur le serveur web Apache2 :
|
|
Paramétrage du pare-feu
Matrice des flux autorisés
Par défaut, les flux non listés ci-dessous ne sont pas autorisés sur l’équipement.
Source | Protocole(s) | Port(s) | Description |
---|---|---|---|
* | tcp | 22 | Accès SSH, SFTP. |
* | tcp | 80 | Accès Web HTTP. |
* | tcp | 443 | Accès Web HTTPS. |
<@IP_SUPERVISION> | udp | 161,162 | Accès SNMP depuis serveur supervision. |
* | icmp | — | Réponse aux requêtes ping. |
Configuration iptables sur la couche IPv4
- Installation des paquets iptables (pare-feu) et iptables-persistent (sauvegarde persistante de la configuration).
|
|
- Ajout des règles iptables pour autoriser les flux SSH, ICMP et WEB :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système.
|
|
Configuration ip6tables sur la couche IPv6
- Ajout des règles ip6tables pour autoriser les flux SSH, ICMP et WEB :
|
|
- Sauvegarde de la configuration et application automatique à chaque redémarrage du système.
|
|
Configuration supervision SNMP
- Installation du paquet snmpd.
|
|
- Depuis le fichier de configuration /etc/snmp/snmpd.conf, rechercher la ligne :
sysLocation sysContact
- Puis, remplacer son contenu par :
sysLocation PARIS,DC5 sysContact webmaster@domaine.tld
- Rechercher la ligne :
agentaddress 127.0.0.1,[::1]
- Puis, remplacer son contenu par :
agentaddress <@IP_PUBLIC_APACHE2>
- Rechercher la ligne :
rocommunity public default –V systemonly
- Puis, remplacer son contenu par :
rocommunity public default
- Redémarrer le service snmp pour appliquer les changements.
|
|
Synchronisation du temps
- Installation du paquet ntpdate :
|
|
- Depuis le fichier de configuration ntpdate disponible dans le répertoire /etc/default, rechercher la ligne :
NTPSERVERS="0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org"
- À remplacer par (optionnel, si vous disposez d'un serveur NTP spécifique) :
NTPSERVERS="<@IP_NTP_SERVEUR>"
- Forcer la synchronisation du temps avec le serveur de temps :
|
|