Sécuriser un serveur web

Preview:

Citation preview

Sécuriser un serveur Web

JABBARI Taoufik

PLAN◉ Introduction◉ Mise en situation :

- CentOS.- Apache.

◉ Sécuriser CentOS◉ Sécuriser Apache.◉ Conclusion.

Introduction1

Mise en situation2

CENTOSUne distribution Linux principalement

destinée aux serveurs.

Très stableMises à jour fréquentesL’outil YUM

Grande communauté

APACHEUn serveur web gratuit et open source

destiné aux serveurs web.

Open-SourceSécurisé

ExtensibleGrande communauté

Sécuriser CentOS

Protection physique

Avant de faire quoi que ce soit , il est indispensable pour l’administrateur de désactiver les périphériques de données externes.

Protéger Centos

Supprimer les programmes inutiles

Afficher la liste des programmes installé :

Pour désinstaller :

Protéger Centos

Yum list installed

Yum remove packageName

Pare-Feu

Le pare-feu va filtrer tout le trafic en n’autorisant que les échanges permis par l’administrateur. Pour l’installer sous CentOS , il suffit d’utiliser la commande YUM :

Protéger Centos

SUDO YUM INSTALL IPTABLES

Pare-Feu

Pour consulter les règles courantes il faut taper la commande suivante :

Protéger Centos

iptables -L -v 

Pare-Feu

Pour ajouter des règles il faut taper les lignes suivantes dans le fichier situé dans /etc/init.d/firewall :Pour le port 80 par exemple :

Pour Loop back :

Protéger Centos

iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A OUTPUT -o lo -j ACCEPT

PORTSENTRY

Cet utilitaire permet de bloquer en temps réel la plupart des scans de port connus :

Protéger Centos

YUM INSTALL PORTSENTRY

FAIL2BAN

Fail2ban est un utilitaire qui se base sur les logs de la machine pour chercher des actions suspectes répétées (par exemple, des erreurs de mots de passe) dans un laps de temps donné. S’il en trouve, il bannira l’IP de l’attaquant via iptables. 

Protéger Centos

YUM INSTALL FAIL2BAN

RKHUNTER

Rkhunter est un utilitaire qui est chargé de détecter d’éventuels rootkits sur votre serveur. Il est relativement léger (s’exécute une fois par jour par défaut).Il est possible de spécifier un émail pour recevoir des alertes de RKHUNTER.

Protéger Centos

YUM INSTALL RKHUNTER

Les fichiers LOG

◉/var/log/auth.log qui contient toutes les tentatives d’accès au serveur. ◉/var/log/message et /var/log/syslog contient les erreurs, bugs, informations, etc;◉/var/log/fail2ban est le log d’alerte de fail2ban. /var/log/rkhunter pour voir les rapports quotidien de Rkhunter.

Protéger Centos

Les fichiers LOG

◉Pour ce simplifier la tâche , il est possible d’utiliser le programme logwatch  qui permet de résumer plusieurs logs afin de ne vous retourner que des anomalies si possible. Cela évite un long et fastidieux travail de recherche.

Protéger Centos

YUM INSTALL LOGWATCH

Quelques conseils :

◉ Interdire les utilisateurs sans mot de passe.◉ Toujours choisir de bons mots de passe.◉ Maintenir son système à jour (yum update).

Protéger Centos

Securiser Apache

Installer Apache :

Document Racine :

Fichier de configuration :

Protéger Apache

YUM INSTALL APACHE

/var/www/html 

/etc/httpd/conf/httpd.conf

Cacher la signature serveur :

Protéger Apache

Cacher la signature serveur :

Prise en compte de la nouvelle configuration :

Protéger Apache

ServerSignature Off ServerTokens Prod

Service httpd restart

Désactiver l’affichage des répertoires

Protéger Apache

Désactiver l’affichage des répertoires

Prise en compte de la nouvelle configuration :

Protéger Apache

<Directory /var/www/html> Options -Indexes </Directory>

Service httpd restart

Protection contre les attaques de type DDoS :

Protéger Apache

Limiter la taille de la requête HTTP :

<Directory "/var/www/myweb1/user_uploads"> LimitRequestBody 512000 </Directory>

Protection contre les attaques de type DDoS :

Protéger Apache

Autres paramètres disponibles dans le fichier de configuration Apache pour se protéger contre ce type d’attaque :• TimeOut : Le temps maximum pour qu’un script s’éxecute.• MaxClients : Nombre de session maximum avec le serveur.• KeepAliveTimeout : Le temps pour que le serveur ferme la connection.• LimitRequestFields : Le nombre maximum de requetes HTTP reçus du client.

Activer les fichiers LOG d’Apache

Protéger Apache

<VirtualHost *:80>DocumentRoot /var/www/html/example.com/ServerName www.example.comDirectoryIndex index.htm index.html index.phpServerAlias example.comErrorDocument 404 /story.phpErrorLog /var/log/httpd/example.com_error_log</VirtualHost>

Quelques conseils :

◉ Il faut mettre à jour régulièrement Apache.◉ Il faut utiliser ses propres pages d’erreurs

personnalisés.◉ Effacer les logs chaque fin de mois grâce à CRON.◉ Désactiver les modules inutiles pour avoir plus de

contrôle.

Protéger Apache

Des questions ?

Merci pour votre attention!

Travail effectué par :JABBARI Taoufik

Recommended