Soutenir Vision du Web dans son partage de logiciels et de ressources libres

Ce mineur crée de la monnaie numérique Monero pour soutenir Vision du web.
Merci de désactiver votre bloqueur de publicité.
Aucune publicité ne sera affichée.
Le mineur utilise les ressources de votre machine pour créer gratuitement de la monnaie numérique.
Le montant des donations pour Vision du web est de 0.073630040880528 Monero.

Installer Apache2 sur Debian

De Wiki. Analyse, Communication, Développement, Hacking.
Aller à : navigation, rechercher
Naviguer sur le wiki : Accueil du wiki - Administrateur - Développeur - Intégrateur - Marketing - Multimédia - Objectifs - We make Hack
Naviguer sur le site : Accueil du site - Les annuaires - Les éditoriaux - Le forum - Les outils - Les projets
 
Consulter le sommaire de cette page en étant déconnecté du réseau : Télécharger le sommaire en PDF

Sommaire

Installer Apache2 sur Debian

Installer Apache2

sudo apt install apache2
Le fichier index.html de Apache2 est généralement situé dans le dossier /var/www/ ou /var/www/html/.
Le fichier index.html est affiché dans le navigateur suite à l'appel de l'adresse 127.0.0.1 ou localhost.

Connaître la version du serveur Apache2

sudo apache2 -v
Server version: Apache/2.4.35 (Debian)
Server built:   2018-10-07T10:54:58

Réinitialiser Apache2

Revenir à une configuration initiale de Apache2 depuis GNU/Linux Debian Jessie :
sudo dpkg --force-confmiss -i /var/cache/apt/archives/apache2_*.deb

Désinstaller Apache2

sudo apt autoremove apache2

Démarrer Apache2

Simuler le démarrage de Apache2

# Simuler le démarrage de Apache2 avec l'option -k permet d'afficher les erreurs éventuellement rencontrées sans lancer Apache2.
sudo apache2 -k start
Préférer la commande suivante pour tester la configuration de Apache2 :
sudo apachectl -t
Ou encore
sudo apache2ctl -t

Exemple d'erreurs de variables d'environnement

AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
Il semble être préférable de lancer Apache2 avec la commande sudo /etc/init.d/apache2 start ou apache2ctl start !
En général, Apache2 ne devrait pas être appelé directement, mais, plutôt via /etc/init.d/apache2 ou apache2ctl.
La configuration Debian par défaut nécessite des variables d'environnement définies dans /etc/apache2/envvars et ne sont pas disponibles si Apache2 est démarré directement.
Cependant, apache2ctl peut être utilisé pour passer des arguments arbitraires à Apache2.
Le message d'erreur précédent n'est alors plus affiché avec la commande suivante :
sudo apache2ctl -k start
# On pourrait modifier le fichier de configuration de Apache2, mais, cela semble inutile en réalité.
sudo nano /etc/apache2/apache2.conf
# Commenter la ligne 80.
# DefaultRuntimeDir ${APACHE_RUN_DIR}
# Ajouter une ligne 81 avec le chemin vers le dossier : "/etc/apache2/"
DefaultRuntimeDir "/etc/apache2/"
# Redémarrer le test de démarrage de Apache2 avec la commande suivante : sudo apache2 -k start afficherait de nouvelles variables non définies.
[Wed Oct 10 03:18:33.292977 2018] [core:warn] [pid 22105] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Wed Oct 10 03:18:33.293130 2018] [core:warn] [pid 22105] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Wed Oct 10 03:18:33.293198 2018] [core:warn] [pid 22105] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Wed Oct 10 03:18:33.293268 2018] [core:warn] [pid 22105] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00543: apache2: bad user name ${APACHE_RUN_USER}
Une solution serrait de faire un export des variables :
export APACHE_PID_FILE=/var/run/apache2.pid
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
...
Remplacer apache2 par apache2ctl permet au test de démarrage de fonctionner sans faire d'alertes sur les variables d'environnement.
Utiliser cette commande pour tester le démarrage en prenant en compte les variables d'environnement du système Apache2 sur Debian : sudo apache2ctl -k start

Variables d'environnement

Tester la configuration d'un serveur Apache2 :
sudo apache2 -t
La commande à lancer pour tester la configuration d'Apache2 en prenant en compte les variables d'environnement :
sudo apache2ctl -t
Le fichier contenant les variables d'environnement : /etc/apache2/envvars
Vérifier si le fichier envvars contient des erreurs de syntaxe.
sh -n /etc/apache2/envvars && echo Syntax OK || echo FAIL
La commande pour obtenir la liste de toutes les variables d'environnement nécessaires au démarrage de Apache2 :
sudo apache2ctl -S

Démarrer Apache2

Cette première commande de démarrage ne serrait pas à privilégier, comme lu précédemment, elle ne prendrait pas en compte les variables d'environnement correctement.
sudo service apache2 start
Préférer les deux commandes suivantes pour démarrer Apache2.
# Ancienne commande :
/etc/init.d/apache2 start
# Nouvelle commande :
sudo apache2ctl start
Saisir localhost dans la barre d'adresses du navigateur pour voir s'afficher les informations suivantes :
Apache2-debian-default-page.png

Debian-apache2-configuration-overview.png

Redémarrer Apache2

# Anciennes commandes :
sudo service apache2 restart
sudo /etc/init.d/apache2 restart
# Nouvelles commandes :
sudo systemctl restart apache2

Recharger la configuration de Apache2

sudo /etc/init.d/apache2 reload

Arrêter Apache2

sudo /etc/init.d/apache2 stop

Vérifier si Apache2 écoute le réseau

netstat -ntlp | grep ":80"
tcp  0 0 :::80  :::*  LISTEN 3996/httpd

Gestion des erreurs : status, configtest, logs, journal

Consulter les statuts du service Apache2

# Démarrer Apache2 :
sudo service apache2 start
# Consulter les statuts du service :
La commande sudo systemctl status apache2.service détail l'état de Apache2.
Dans cet exemple, on constate que le module Passenger est présent.
Il ne s'agit donc pas d'une configuration de Apache2 par défaut, un module a déjà été installé.
systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
  Loaded: loaded (/etc/init.d/apache2)
  Active: active (running) since dim. 2016-07-17 01:02:34 CEST; 12h ago
 Process: 11953 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 Process: 12930 ExecReload=/etc/init.d/apache2 reload (code=exited, status=0/SUCCESS)
 Process: 12127 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/apache2.service
          ├─12162 /usr/sbin/apache2 -k start
          ├─12948 PassengerWatchdog
          ├─12955 PassengerHelperAgent
          ├─12970 PassengerLoggingAgent
          ├─12987 /usr/sbin/apache2 -k start
          └─12988 /usr/sbin/apache2 -k start
Pour utiliser Apache2 en local avec une installation standard, désinstaller le mod Passenger.
Apache refusera de démarrer si la configuration du mod Passenger n'est pas purgée.
En utilisant la commande sudo apache2 -k start on observe que la configuration de mod_passenger est toujours active même si le module a été désinstallé.
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /usr/lib/apache2/modules/mod_passenger.so into server: /usr/lib/apache2/modules/mod_passenger.so: cannot open shared object file: No such file or directory
Si on tente tout de même de démarrer Apache2, un message d'erreur sera affiché sur le terminal :
job for apache2.service failed. see 'systemctl status apache2.service'
La désinstallation de mod_passenger avec --purge permet de démarrer Apache2.
Les lignes de Passenger ne seront plus affichées dans les statuts.
apt-get autoremove --purge mod_passenger
systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
  Loaded: loaded (/etc/init.d/apache2)
  Active: active (running) since dim. 2016-07-17 14:03:23 CEST; 5min ago
 Process: 14150 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 Process: 14176 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
  CGroup: /system.slice/apache2.service
          ├─14192 /usr/sbin/apache2 -k start
          ├─14195 /usr/sbin/apache2 -k start
          └─14196 /usr/sbin/apache2 -k start
Plusieurs lignes semblent indiquer que Apache est lancé plusieurs fois.
On les tues rapidement avec sudo killall apache2
systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
  Loaded: loaded (/etc/init.d/apache2)
  Active: inactive (dead) since dim. 2016-07-17 15:38:57 CEST; 56min ago
 Process: 14696 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
 Process: 14585 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
sudo systemctl -l status apache2
● apache2.service - The Apache HTTP Server
  Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
  Active: inactive (dead) since Fri 2018-08-17 03:30:54 CEST; 13min ago
 Process: 5421 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
 Process: 969 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS)
 Process: 5373 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 5378 (code=exited, status=0/SUCCESS)
Les statuts de Apache2 semblent maintenant correct et Apache2 peut être lancé normalement :
sudo service apache2 start.

Utiliser configtest pour identifier une erreur de démarrage

Identifier une erreur qui empêche Apache2 de démarrer avec la commande suivante :
sudo apache2ctl configtest
apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/passenger.load: Cannot load /usr/lib/apache2/modules/mod_passenger.so 
into server: /usr/lib/apache2/modules/mod_passenger.so: cannot open shared object file: No such file or directory
Action 'configtest' failed.
The Apache error log may have more information.
Erreur de mod manquant pour libapache2-mod-passenger.
La configuration du mod passenger n'a pas été supprimée.
Cette erreur est résolue.
Je relance la commande sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
Cette erreur est un simple avertissement qui n'empêche pas le fonctionnement du serveur Apache.
Définir la directive 'ServerName' globalement pour supprimer ce message.
Cette erreur est résolue.

Lire les logs de Apache2

Le fichier error.log de Apache2 est localisé dans /var/log/apache2/error.log
Consulter le journal avec la commande journalctl -xn

Le fichier de configuration de Apache2

apache2.conf

# Éditer le fichier de configuration :
sudo nano /etc/apache2/apache2.conf
# Ajouter les lignes suivantes pour désactiver la divulgation d'informations par le serveur Apache2 :
# Désactiver la signature du serveur.
ServerSignature Off
# Passer la directive ServerTokens à Prod (Pour Product Only). Le champ Server contiendra uniquement le nom du serveur web utilisé.
ServerTokens Prod
# Désactiver la méthode HTTP TRACE qui présente une vulnérabilité de type XST (Cross-Site-Tracing).
# Les attaques XST utilisent la méthode HTTP TRACE et une faille de type XSS (Cross-site Scripting).
# Une fois désactivée, un accès refusé de type erreur http 403 sera affiché si on souhaite utiliser la méthode TRACE.
TraceEnable Off
# Redémarrer pour prendre en compte les modifications :
sudo systemctl restart apache2

Le fichier de configuration Htaccess

Sécurité

# Quelque protections supplémentaires a placer dans un fichier .htaccess si le Module Rewrite est installé et activé.
# Empêcher les attaques par include de fichier externe.
RewriteEngine On
RewriteCond %{QUERY_STRING} =//
RewriteRule .* - [F,L]
# Bloquer l'accès au site pour libwww-perl.
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} libwww [NC]
RewriteRule .* - [F,L]
# Protection contre les attaques se servant de Register Global On.
SetEnv REGISTER_GLOBALS 0
# Interdire l'utilisation de la méthode TRACE.
# Avant l'intégration de cette option dans la configuration d'Apache, on utilisait une réécriture depuis le fichier .htaccess.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* - [F]

Rediriger un domaine vers un dossier

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/dossier/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /dossier/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain$ [NC]
RewriteRule ^(/)?$ dossier/index.php [L]

Les modules sur Apache2

Afficher la liste des modules activés

# Afficher la liste des modules activés
sudo ls /etc/apache2/mods-enabled/

Vérifier les modules disponibles

Connaître la liste des modules disponibles pour Apache2.
sudo ls /etc/apache2/mods-available/
Connaître la liste des modules disponibles pour Apache2.
apt-cache search libapache2

Activer des modules

# Activer un module.
# Un lien symbolique va être ajouté dans le dossier /etc/apache2/mods-enabled et pointera vers le fichier de définition du module.
a2enmod Nom_du_module
# Redémarrer Apache2 pour prendre en compte l'activation d'un module.
sudo systemctl restart apache2
# Les modules utilisent leur configuration par défaut depuis le répertoire /etc/apache2/mods-available.
# En général deux fichiers existent pour chaque module installé sur le système :
# Un fichier avec une extension .load contient la directive de chargement du module réel, généralement contenu dans le répertoire /usr/lib/apache2/modules/.
# Un fichier avec une extension .conf qui contient la configuration par défaut du module.
# Il est possible de modifier cette configuration par défaut en ajoutant de nouvelles directives.
# Les distributions basée sur Debian proposent un répertoire /etc/apache2/conf.d pour ajouter de nouvelles configurations personnalisées. 
# Créer un nouveau fichier nommé à notre convenance pour ajouter une configuration personnalisée.
# L’ensemble des fichiers sont concaténés à la fin de la configuration de Apache2.

Mod Passenger

# Installer Mod Passenger.
sudo apt install libapache2-mod-passenger
# Activer Mod Passenger.
a2enmod passenger
# Désactiver Mod Passenger.
a2dismod passenger
# Désinstaller Mod Passenger et sa configuration.
sudo apt-get autoremove --purge libapache2-mod-passenger

Mod Proxy et Proxy HTTP

# Activer Mod Proxy et Proxy HTTP.
sudo a2enmod proxy proxy_http
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName streaming.domaine.tld
ProxyPass / http://localhost:8000/
ProxyPassReverse / http://localhost:8000/
ProxyPreserveHost On
ProxyRequests off
</VirtualHost>
Cette exemple permet de rediriger le trafic du port 80 vers le port 8000.

Mod Rewrite

# Activer Mod Rewrite.
sudo a2enmod rewrite

Mod Evasive

Installer et configurer mod_evasive pour Apache2.

Mod Security2

Mod_security est un Pare-feu applicatif, un WAF ("Web Application Firewall"), qui agit sur la couche 7 du modèle OSI, la couche application. 
La plupart des Pare-feu travaillent sur la couche 3 et agissent au niveau des ports (Port 22 pour SSH, 80 pour le Web, ...). Il sert également d'IDS/IPS pour les applications web.
Il peut utiliser les règles très strictes de Open Web Application Security Project (OWASP) Core Rules Set (CRS).
Il surveille le trafic HTTP en temps réel et protège les applications web des attaques Brute force.
Il filtre et modifie la réponse renvoyées par le serveur web (Exemple : Les erreurs 404 ou 500).

Installer mod-security2

On va installer mod-security2 un pare-feu web pour Apache.
Créer le fichier /etc/apt/sources.list.d/mod-security2.list et y inscrire :
### Dépôt pour mod-security2 ###
deb //etc.inittab.org/~agi/debian/libapache-mod-security2 ./
Récupérer la clef gpg :
[email protected] # gpg --keyserver pgpkeys.mit.edu --recv-keys C514AF8E4BA401C3
[email protected] # gpg --export -a C514AF8E4BA401C3 | apt-key add - 
Mettre à jour les dépôts :
[email protected] # aptitude update 
Installer le module :
[email protected] # aptitude install libapache-mod-security mod-security-common
Source complémentaire : https://www.it-connect.fr/installation-de-mod_security-devant-un-serveur-web-apache/#III_Installation_de_mod_security
Source complémentaire : https://devops.profitbricks.com/tutorials/how-to-configure-modsecurity-and-mod_evasive-for-apache-on-centos-7/

Configurer mod-security2

Configuration du module, créer le fichier /etc/apache2/conf.d/mod-security.conf et ajouter ceci :
<IfModule mod_security2.c>
 Include /etc/modsecurity/*.conf
</IfModule>
Il va falloir créer le dossier /etc/modsecurity et copier les fichiers de configuration :
[email protected] # mkdir /etc/modsecurity
[email protected] # cd /usr/share/doc/mod-security-common/examples/rules
[email protected] # cp *.conf base_rules/* /etc/modsecurity/ 
De plus, il faut créer le dossier pour les logs :
[email protected] # mkdir /etc/apache2/logs 
Optionnel : commenter la ligne contenant Host header is a numeric IP address du fichier /etc/modsecurity/modsecurity_crs_21_protocol_anomalies.conf pour autoriser l'accès au site par l'intermédiaire d'une adresse IP.

Activer le module mod-security2

# Activer Mod Security.
a2enmod mod-security
Relancer Apache :
[email protected] # apache2ctl restart 
# Vérifier que le module est bien chargé :
[email protected] # cat /var/log/apache2/error.log | grep ModSecurity 
# Devrait renvoyer :
[notice] ModSecurity for Apache/2.5.12 (http://www.modsecurity.org/) configured.
Un excellent module et une protection fiable.
Il peut être un peu extrême de l'utiliser lors d'un développement en local.
Le comportement de PHPmyAdmin peut être altéré, certains scripts retournerons une erreur car jugés dangereux.
Il est possible de contourner ce problème pour les étapes de développement.
Ajouter une règle dans les options du virtualHost ou dans un .htaccess pour désactiver mod-security :
SecRuleEngine Off
Une fois le développement terminé, il est fortement recommandé de rétablir la sécurité.
Ok-ko.png Source : https://www.skyminds.net/serveur-dedie-securiser-apache-2-avec-mod-security/
Ok-ko.png How to Configure ModSecurity and mod_evasive for Apache on CentOS 7 : https://devops.profitbricks.com/tutorials/how-to-configure-modsecurity-and-mod_evasive-for-apache-on-centos-7/

Mod SSL

# Activer Mod SSL.
a2enmod ssl

Désactiver des modules

# Désactiver un module.
a2dismod nom_du_module
# Redémarrer Apache2 pour prendre en compte la désactivation d'un module.
sudo systemctl restart apache2

VirtualHost

Créer un VirtualHost

Deux répertoires sont a utiliser par défaut pour ajouter un (ou plusieurs) VirtualHost(s) : /etc/apache2/sites-available/ et /etc/apache2/sites-enabled/.
Ajouter un fichier dans votre répertoire sites-available pour chaque site web a héberger virtuellement.
Il n'y a pas de limite au nombre de sites web que vous pouvez héberger virtuellement avec Apache.
Il est recommandé de donner au fichier le même nom que le nom de domaine utilisé.
Dans le répertoire /etc/apache2/sites-available/ se trouve un fichier par défaut appelé "default" ou "000-default.conf".
Utiliser ce fichier comme modèle pour vos VirtualHost en le copiant avec un nouveau nom.
cd /etc/apache2/sites-available/
Ajouter un VirtualHost pour le site visionduweb.com :
cp default visionduweb.com
Les droits appliqués par défaut :
sudo chown root:root visionduweb.com
sudo chmod 644 visionduweb.com
Configurer le VirtualHost du site visionduweb.com :
sudo nano visionduweb.com
<VirtualHost IP_DU_SERVEUR:80>
  ServerAdmin [email protected]
  ServerName visionduweb.com
  ServerAlias www.visionduweb.com
  DocumentRoot /var/www/html/visionduweb.com/
  <Directory />
      Options FollowSymLinks
      AllowOverride None
  </Directory>
  <Directory /var/www/html/visionduweb.com/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride ALL
      Order allow,deny
      allow from all
  </Directory>
  LogLevel warn
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
 </VirtualHost>
La directive DocumentRoot est utilisée pour définir le répertoire des pages web du site sur le serveur.
N'importe quel répertoire peut être utilisé, si il existe sur le serveur.

Activer ou désactiver un site sous Apache2

# Activer un site en créant un lien symbolique du dossier sites-enabled vers le dossier sites-available :
# Ce lien symbolique peut également être créé manuellement avec la commande ln -s.
a2ensite NomDeMonSite
# Désactiver le site en supprimant ce lien symbolique :
a2dissite NomDeMonSite
# Lister les site activés :
ls /etc/apache2/sites-enabled/
# Lister les sites activables :
ls /etc/apache2/sites-available/
# Redémarrer Apache2 pour appliquer les modifications.
sudo apache2ctl restart

Options de configuration de VirtualHost

Il est possible de bloquer certaines actions avec les options des VirtualHosts.
Le fichier .htaccess peut également être utilisé pour configurer Apache2.
# Empêcher le listage des répertoires.
Options -Indexes
# Ne pas suivre les liens symboliques.
Options -FollowSymLinks
# Empêcher l'accès à une page avec sonNom.php ou sonNom.
Options -MultiViews
# Combiner plusieurs options.
Options -Indexes -FollowSymLinks -MultiViews
Ok-ko.png Exemples depuis la documentation : http://httpd.apache.org/docs/2.2/fr/vhosts/examples.html

VirtualHosts des domaines enregistrés

Les VirtualHosts des domaines enregistrés.

Configurer un reverse proxy Apache - HTTP/HTTPS

Source : https://blog.victor-hery.com/2012/10/configurer-reverse-proxy-apache.html

Note de sécurité

Désactiver la réponse au ping de votre machine

Cette configuration permet d'éviter des attaques par déni de service (DoS) qui utilisent ce genre de requêtes pour saturer un serveur (ICMP Flood).
Désactiver la réponse au Ping :
sudo nano /proc/sys/net/ipv4/icmp_echo_ignore_all
# Remplacer la valeur 0 par défaut par la valeur 1 pour désactiver la réponse au ping.
# Le changement de configuration est immédiatement pris en compte.
Réactiver la réponse au Ping :
sudo nano /proc/sys/net/ipv4/icmp_echo_ignore_all
# Remplacer la valeur 1 par la valeur 0 par défaut pour réactiver la réponse au ping.
La valeur par défaut 0 est rétablie au prochain démarrage.
Pour rendre la modification permanente, faire la modification directement dans le fichier sysctl.conf :
cd /etc/
sudo nano sysctl.conf
# Ajouter la ligne suivante pour conserver votre modification après redémarrage :
net.ipv4.icmp_echo_ignore_all = 1
# Il est possible que cette configuration empêche de consulter les statistiques de monitoring depuis le panel OVH.

Méthode d'authentification d'Apache pour l'accès a un répertoire

Il est déconseillé de sécuriser un répertoire par un accès à l'aide de la méthode d'authentification d'Apache.
Les informations transitent en clair et de ce fait, à l'aide d'une attaque MITM, il est très facile d'obtenir celles-ci.

Sécurité avec Apache2 - Informations complémentaires

ICMP Flood - Vous êtes floodé de milliers de requêtes

Votre site ce voit empêché de fonctionner normalement car le serveur n'arrive plus à traiter les requêtes.
Aucune de ces pistes ne suffit mais toutes ensemble permettent de limiter le problème.
- Si l’attaque ne s’effectue que sur certaine url, vous pouvez directement les bloquer depuis votre firewall avec des règles ad-hoc.
- La plupart du temps, ce type d’attaque s’effectue sur le port 80. Si vous avez la possibilité de passer votre solution en https vous réglerez le problème.
Faites en sorte que votre apache n’écoute plus sur le port 80 et vous stoppez net une partie des attaques.
- Activer le mod security d’Apache (Efficacité limitée pour des grosses attaques)
- Optez pour un vrai firewall de préférence physique ou à défaut logiciel type pfsense car Iptables ne suffira pas.
- Changer d’adresse IP votre machine et faites oublier l’ancienne adresse en ne l’utilisant pas pendant un certain temps.
- Si vous pouvez filtrer les adresses IP de votre client directement dans le firewall, ceci est encore plus efficace.
- Mettre en place un VPN avec les clients de l’application si possible (rarement le cas).
- Vérifier que votre machine n’est pas vérolée par un rootkit et dans le doute réinstaller votre front à partir d’une distribution à jour et propre.
# Sécurité Serveur aller plus loin :
Modifier le nom du script d'accès à APC (?)
# Voir également :
port-knocking

Bibliographie

Ok.png La gestion des modules : https://technique.arscenic.org/lamp-linux-apache-mysql-php/apache-le-serveur-http/article/la-gestion-des-modules
Ok.png Activer ou désactiver un site sous apache 2 : http://www.billyboylindien.com/hebergement/memento-apache-ajout-suppression-de-site.html
Ok.png Désactiver la méthode HTTP TRACE sous Apache 2 : https://www.it-connect.fr/desactiver-la-methode-http-trace-sous-apache-2/
Ok.png VirtualHosts : https://wiki.gandi.net/fr/hosting/using-linux/tutorials/ubuntu/virtualhosts
Ok.png Apache mod security, mod evasive : limitation du traffic, protection anti-DDOS : https://wiki.kogite.fr/index.php/Apache_mod_security,_mod_evasive_:_limitation_du_traffic,_protection_anti-DDOS
Ok-ko.png Installer Apache PHP MySQL et Webmin : https://www.skyminds.net/serveur-dedie-installation-dapache-php-mysql-et-webmin/
Ok-ko.png Debian 9 - Apache MariaDB PHPMyAdmin : http://jc.etiemble.free.fr/abc/index.php/realisations/trucs-astuces/deb9php7
Ok-ko.png Utiliser la documentation officielle pour le serveur HTTP Apache Version 2.4 : https://httpd.apache.org/docs/2.4/
Ok-ko.png Sécurité Apache 2 : Le B.A.-BA : https://jeanphi.net/blog/2013/06/securite-apache-2-le-baba
Ok-ko.png Installer un serveur web : http://www.linux-note.com/installer-un-serveur-web/
Ok-ko.png Documentation Apache2 Ubuntu : https://doc.ubuntu-fr.org/apache2
Ko.png http://www.commentcamarche.net/contents/796-installation-d-un-serveur-web-sous-linux-apache-php-et-mysql
Ko.png Installer et optimiser Apache2 : https://buzut.fr/configuration-dun-serveur-linux-apache2/
Ko.png http://olange.developpez.com/articles/debian/installation-serveur-dedie/
Ko.png Sécuriser Apache2 : https://wiki.debian-fr.xyz/S%C3%A9curiser_Apache2
Ko.png https://www.mistra.fr/tutoriel-linux-serveur-web-apache2.html
Ko.png https://linux.goffinet.org/31_services_apache_http_server/
Ko.png http://debian-facile.org/doc:reseau:apache2:multisite
Ko.png https://www.tecmint.com/apache-security-tips/

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Pour écrire en Markdown : Éditeur - Générateur de tableau 1 - Générateur de tableau 2.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur le wiki avec un don en monnaie numérique :
AEON - Bitcoins (BTC) - Bitcoins Cash - Bitcoins Gold - Bitcore (BTX) - Blackcoins - Bytecoins - Clams - Dash - Monero - Dogecoins - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Miroir PlanetHoster du 1er Novembre 2018.