RAPPORT DE CONCEPTION - PLAN DE REPRISE



Documents pareils
Procédure d'installation

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

REPARTITION DE CHARGE LINUX

Réaliser un inventaire Documentation utilisateur

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Projet de mise en œuvre d un serveur ftp sur serveur dédié

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Tutoriel compte-rendu Mission 1

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

MANUEL UTILISATEUR KIWI BACKUP V 3

Linux et le Shell. Francois BAYART. Atelier du samedi 20 Novembre

Ajout et Configuration d'un nouveau poste pour BackupPC

Installation du serveur WEB Apache ( MySQL, PHP) sous Debian 7.

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

RAPPORT D'AUDIT - SÉCURITÉ ET PERFORMANCES DES SERVEURS

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

BTS SIO Dossier BTS. PURCHLA Romain

installer_un_serveur_debian - Documentation Ubuntu Francophone Installation complète d'un serveur web sous Debian 6.0

Installation d'un serveur sftp avec connexion par login et clé rsa.

Les différentes méthodes pour se connecter

Sauvegarde automatique des données de GEPI

TP Service HTTP Serveur Apache Linux Debian

Installation et configuration de Vulture Lundi 2 février 2009

FreeNAS Shere. Par THOREZ Nicolas

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

PPE GESTION PARC INFORMATIQUE

TP Linux : Firewall. Conditions de réalisation : travail en binôme. Fonctionnement du parefeu Netfilter. I Qu est ce qu'un firewall?

Procédure d utilisation et de paramétrage (filtrage) avec IPFIRE

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Installation d un hébergement Web à domicile

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

Documentation technique OpenVPN

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Différentes installations sur un serveur Windows 2000 ou 2003.

Symantec Backup Exec Remote Media Agent for Linux Servers

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Atelier Migration. Mohamadi ZONGO Formateur assistant Kassim ASSIROU Atelier Migration.

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Le protocole FTP (File Transfert Protocol,

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guide de démarrage rapide

CDS Invenio Installation et configuration de base

pare - feu généralités et iptables

Situation professionnelle n X

Guide d'installation de la base de données ORACLE 10g ( ) pour linux FEDORA CORE 4.

Résolution des problèmes de connexion XDMCP aux hôtes UNIX et Linux

Projet Administration Réseaux

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Projet Semestre2-1SISR

II- Préparation du serveur et installation d OpenVpn :

titre : CENTOS_CUPS_install&config Système : CentOs 5.7 Technologie : Cups Auteur : Charles-Alban BENEZECH

Serveur d application WebDev

JetClouding Installation

Les messages d erreur d'applidis Client

Serveur Acronis Backup & Recovery 10 pour Linux. Update 5. Guide d'installation

Sauvegardes par Internet avec Rsync

FILTRAGE de PAQUETS NetFilter

Symantec Backup Exec 12.5 for Windows Servers. Guide d'installation rapide

OpenMediaVault installation

PROXY SQUID-SQARD. procédure

Table des matières Hakim Benameurlaine 1

DOCUMENTATION VISUALISATION UNIT

Serveur de sauvegardes incrémental

Machine virtuelle W4M- Galaxy : Guide d'installation

TP Sur SSH. I. Introduction à SSH. I.1. Putty

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15

Serveur Subversion Debian GNU/Linux

GUIDE D INSTALLATION. Portaneo Enterprise Portal version 4.0

SERVEUR HTTP Administration d apache

Installation de Zabbix

Autorité de certification

Storebox User Guide. Swisscom (Suisse) SA

Les serveurs WEBUne introduction

HP Data Protector Express Software - Tutoriel 4. Utilisation de Quick Access Control (Windows uniquement)

Simple Database Monitoring - SDBM Guide de l'usager

Assistance à distance sous Windows

Table des matières. Date : Version : 29/06/ Objet : OpenVas 6.0

Sage CRM. 7.2 Guide de Portail Client

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Sécurité GNU/Linux. FTP sécurisé

SÉCURITÉ DU SI. Mini PKI. Denoun Jérémy De Daniloff Cyril Bettan Michael SUJET (3): Version : 1.0

FileMaker Server 14. Guide de démarrage

CA Desktop Migration Manager

CA ARCserve D2D pour Linux

Service FTP. Stéphane Gill. Introduction 2

Installation de la plate-forme Liberacces 2.0 «Intégrale» avec LiberInstall

NOTE: Pour une meilleure sécurisation, nous vous recommandons de faire l installation des outils web à l intérieur d un serveur virtuel.

Formation Iptables : Correction TP

KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim

Guide de prise en main Symantec Protection Center 2.1

Netfilter & Iptables. Théorie Firewall. Autoriser le trafic entrant d'une connexion déjà établie. Permettre le trafic entrant sur un port spécifique

Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A. TP réseau firewall

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Table des matières Hakim Benameurlaine 1

1. Comment accéder à mon panneau de configuration VPS?

Transcription:

Sur Terre et dans l'espace...... où l'échec n'est pas une option RAPPORT DE CONCEPTION - PLAN DE REPRISE D'ACTIVITÉ BUREAU D'INNOVATION SERVICE CONCEPTION

Cette page est laissée vide volontairement

Rapport de Conception - Plan de Reprise d'activité Détails du Document Catégorie Niveau de Classification Langue Bureau d'innovation FR - Français Date de Rédaction jeudi 16 mai 2013 Date de Génération @ 22:33:21 Auteur(s) Division Validation Technique Validation Managériale Acceptation Client Validation Client Guillaume REMBERT Guillaume REMBERT Guillaume REMBERT Service Conception Nom Entreprise Fonction Date Liste de Distribution Avant-Propos Avertissement Autorité de Publication Copyrights Ce document est un exemple de rapport de conception dans le cadre d'un plan de reprise d'activité. Euryece Telecom ne fait aucune assertion et ne donne aucune garantie, expresse, implicite ou légale, concernant notamment, mais non limité à : l exactitude, l actualité ou l exhaustivité des renseignements fournis, l absence de tout défaut et d'erreurs. En aucun cas, Euryece Telecom ne sera responsable des dommages prévisibles ou imprévisibles, directs ou indirects, découlant de tout ce qui précède et suit, ou de l utilisation autorisée ou non autorisée du présent document et des renseignements qui y figurent, ou de l accès autorisé ou non autorisé à ceux ci, notamment de toute mesure prise ou omission commise par une personne à cet égard. Sans en limiter la portée, Euryece Telecom ne sera en aucun cas responsable des dommages particuliers, indirects, consécutifs ou punitifs. Euryece Telecom 16 Place du Général de Gaulle 59 000 Lille FRANCE Tous droits réservés Euryece Telecom & Guillaume REMBERT Ce travail est licencié sous licence «Creative Common Attribution-ShareAlike 3.0 Unported» (CC BY-SA 3.0)

Cette page est laissée vide volontairement

Page 5 de 60 LISTE DES CHANGEMENTS Version Date Nom Détails 0.01 G. REMBERT Version initiale

Page 6 de 60 TABLE DES MATIÈRES 1 INTRODUCTION...8 2 DOCUMENTS APPLICABLES ET RÉFÉRENCES...9 2.1 Documents Applicables...9 2.2 Documents de Référence...9 3 TERMES, DÉFINITIONS ET ABRÉVIATIONS...10 4 PROBLÈME...11 4.1 Sauvegarde...11 4.1.1 XX...11 4.1.2 XX...11 4.1.3 XX...11 4.2 Restauration...12 4.2.1 Service Web...12 4.2.2 Dépendances...12 5 SOLUTION...13 5.1 Sauvegarde...13 5.2 Restauration...13 6 ARCHITECTURE...14 6.1 Sauvegarde...14 6.1.1 Systèmes...14 6.1.2 Séquence...15 6.1.3 Configuration...16 6.2 Restauration...25 6.2.1 Systèmes...25 6.2.2 Séquence...26 6.2.3 Configuration...27 7 GUIDE D'UTILISATION...53 7.1 Sauvegarde...53 7.1.1 Récapitulatif des informations importantes...53 7.1.2 Accès aux données...53 7.2 Restauration...56 7.2.1 Récapitulatif des informations importantes...56 7.2.2 Activation du plan de reprise d'activité...57 8 ANNEXES...60 8.1 Déploiement d'une application WebDev...60

Page 7 de 60 LISTE DES FIGURES (1)Systèmes mis en œuvre dans le cadre de la sauvegarde...14 (2)Systèmes mis en œuvre dans le cadre de la restauration...25 (3)Captures d'écrans de Duplicati permettant de réaliser la restauration...55 (4)Captures d'écrans du bureau distant permettant de réaliser la restauration...59 LISTE DES TABLES 1.Documents Applicables... 9 2.Documents de Référence... 9 3.Acronymes... 10 4.Définitions... 10

Page 8 de 60 1 INTRODUCTION Dans le cadre du plan de reprise d'activité d'xx, ce rapport a pour but de : - modéliser le problème, - modéliser la solution, - détailler l'architecture globale de la solution, - guider l'administrateur et utilisateur de la solution.

Page 9 de 60 2 DOCUMENTS APPLICABLES ET RÉFÉRENCES 2.1 Documents Applicables Référence Document N Titre [AD1] ET-LEG-OCON-XX Aspects Juridiques Contrat de services [AD2] ET-SRV-CSL-CSL-DisasterRecoveryPlan_XX Rapport de Conseil Plan de Reprise d'activité 1. Documents Applicables 2.2 Documents de Référence Référence Document N Titre [RD1] http://code.google.com/p/duplicati/wiki/commandlineho wto «A guide to using Duplicati from a commandline» [RD2] - Serveur d'application WebDev pour Linux [RD3] http://www.perlmonks.org/?node_id=131861 Perl Script - Lowercase 2. Documents de Référence

Page 10 de 60 3 TERMES, DÉFINITIONS ET ABRÉVIATIONS Acronyme Signification FTP «File Transfer Protocol» NAS «Network Attached Storage» PRA Plan de Reprise d'activité SSH «Secure SHell» 3. Acronymes Terme Définition 4. Définitions

Page 11 de 60 4 PROBLÈME Des services web sont actuellement proposés par XX à leurs clients. Ceux-ci hébergent des informations privées de leurs clients qu'il est capital de préserver. 4.1 Sauvegarde Selon [AD2], la fonction de sauvegarde doit permettre à XX de conserver une (des) copie(s) indépendante(s) et sécurisée(s) des données associées à ses services web. Selon [AD2], la fonction de sauvegarde doit garantir une perte de données inférieure à : - XX : une demi-journée d'activités (matinée de XXH à XXHXX / après-midi de XXHXX à XXH), - XX : une journée d'activités, - XX : une minute d'activités (dossier XX). 4.1.1 XX XX 4.1.2 XX XX 4.1.3 XX XX

Page 12 de 60 4.2 Restauration Selon [AD2], la fonction de restauration doit permettre à XX d'utiliser les données sauvegardées afin de rétablir les services web. Selon [AD2], le plan de reprise d'activité doit garantir un rétablissement des services web en moins de 4 heures dans le pire des cas (objectif de reprise d'activité nominal de 15 minutes pour XX, XX et XX). 4.2.1 Service Web La restauration consiste à mettre en place un serveur web et le serveur d'application WebDev, et à y rétablir les données sauvegardées. 4.2.2 Dépendances Comme étudié dans [AD2], le service web est également dépendant du service DNS. De plus, le service FTP est également nécessaire car il est utilisé par les logiciels XX ainsi que l'environnement de développement WebDev.

Page 13 de 60 5 SOLUTION 5.1 Sauvegarde La sauvegarde est réalisée à deux niveaux : - par XX, sur un serveur NAS local (hors du périmètre d'action), - par XX, sur un serveur FTPS distant, utilisant le logiciel vsftpd (https://security.appspot.com/vsftpd.html). Dans le cas de XX, XX, XX et XX, il s'agit d'un service de sauvegarde planifié par l'ordonnanceur de Windows. Le logiciel Duplicati (www.duplicati.com) est utilisé pour réaliser les sauvegardes distantes. Dans le cas de XX, il s'agit en plus d'un service de sauvegarde continu, dont l'exécution est contrôlée par l'ordonnanceur de Windows. Le logiciel WinSCP (http://winscp.net) est utilisé pour réaliser la synchronisation. 5.2 Restauration La restauration est réalisée sur une plate-forme de virtualisation, à l'aide d'une machine virtuelle pré-configurée. Celle-ci comprend un serveur web, le serveur d'application WebDev et le serveur FTP utilisé par les applications XX. Dans le cas de XX, XX, XX et XX, la restauration est un service activé à la demande, par l'administrateur XX. Le logiciel Duplicati (www.duplicati.com) est utilisé pour réaliser la restauration distante. Dans le cas de XX, la restauration est un service activé à la demande par l'administrateur XX. Le logiciel SCP est utilisé pour réaliser la restauration distante. Afin de simplifier l'exécution en conditions de stress, un script automatise cette opération.

Page 14 de 60 6 ARCHITECTURE 6.1 Sauvegarde 6.1.1 Systèmes Il y a 2 systèmes principaux mis en jeu afin de réaliser la fonction de sauvegarde : - Serveur Virtuel XX sur Serveur Dédié XX (Windows Server 2008 + Duplicati + WinSCP), - Serveur Virtuel FTPS XX Crypté sur Serveur Dédié XX (CentOS 6 + vsftpd + rsync + cron). (1)Systèmes mis en œuvre dans le cadre de la sauvegarde

Page 15 de 60 6.1.2 Séquence La sauvegarde est réalisée ponctuellement pour XX, XX et XX (par le planificateur de tâches Windows qui appelle Duplicati) et en continu pour XX (par le planificateur de tâche Windows qui arrête et redémarre WinSCP). Pour des raisons de sécurité (si le serveur XX est piraté, il est alors possible d'accéder au serveur Virtuel FTPS et de tenter de détruire les sauvegardes existantes), une copie de la sauvegarde est réalisée tous les mercredis dans un second dossier non-accessible depuis l'extérieur. Une seconde mesure est également mise en place afin d'augmenter la sécurité des informations, il s'agit d'une modification automatique des autorisations d'accès aux fichiers en lecture uniquement.

Page 16 de 60 6.1.3 Configuration Serveur Virtuel XX sur Serveur Dédié XX XX Configuration de l'hôte : XX Configuration de la machine virtuelle : ETAPE 1 - Duplicati Téléchargement et installation de Duplicati (http://www.duplicati.com). Utilisation de variables systèmes Windows pour la flexibilité : PRA_FTP_USERNAME monnomdutilisateur PRA_FTP_NAME monserveurftp.mondomaine.maracine PRA_FTP_PORT monportftp PRA_FTP_PASSWORD monmotdepasse PRA_ENCRYPTION_PASSWORD monmotdepasse NB : Il existe une interface graphique confortable, mais la configuration présente de la machine fait que l'utilisateur ne peut pas rester connecté. Il est donc nécessaire d'utiliser le planificateur de tâches Windows en combinaison à l'interface en ligne de commande. Pour obtenir les commandes nécessaires, il est possible d'utiliser cette interface graphique et d'avoir l'équivalent des paramètres sélectionnés en ligne de commande à la fin.

Page 17 de 60 XX: Dans le planificateur de tâche, tous les jours @ 12H et tous les jours à 22H : "C:\Program Files\Duplicati\Duplicati.CommandLine.exe" backup --auto-cleanup --tempdir=d:\dossiertemp --ftp-username= %PRA_FTP_USERNAME% --ftp-password=%pra_ftp_password% --ftp-passive --use-ssl --accept-any-ssl-certificate --volsize=650mb --max-upload-pr-second=1mb --thread-priority=lowest --passphrase= %PRA_ENCRYPTION_PASSWORD% --aes-encryption-dont-allow-fallback=true --full-if-older-than=1m --retry-delay=1m --number-of-retries=60 D:\DOSSIERSERVICE\ ftp:// %PRA_FTP_NAME%:%PRA_FTP_PORT%/service "C:\Program Files\Duplicati\Duplicati.CommandLine.exe" delete-all-but-n 4 --tempdir=d:\dossiertemp --ftp-username=%pra_ftp_username% --ftp-password=%pra_ftp_password% --ftp-passive --use-ssl --accept-any-ssl-certificate --volsize=650mb --max-upload-pr-second=1mb --thread-priority=lowest --aes-encryption-dont-allow-fallback=true --full-if-older-than=1m --retry-delay=1m --number-of-retries=60 ftp:// %PRA_FTP_NAME%:%PRA_FTP_PORT%/service [...]

Page 18 de 60 Notes : Pour optimiser les temps et la complexité des fonctions sauvegarde et restauration, le canal de communication et de stockage étant déjà chiffrés, il est possible de désactiver le chiffrage des archives, il suffit de remplacer «--passphrase=%pra_encryption_password% --aes-encryption-dont-allow-fallback=true» par «--no-encryption» dans la commande de sauvegarde et par «--aes-encryption-dont-allow-fallback=true» par «--no-encryption» dans la commande de suppression des anciennes sauvegardes. Néanmoins, afin d'assurer la sécurité des informations en cas d'accès non-autorisé au service FTPS, le chiffrage a été activé. En cas de problèmes de connexion (interruptions régulières par exemple), il est conseillé de réduire la taille des fichiers et de modifier la configuration par défaut des paramètres «--retry-delay=1m» et «--number-of-retries=60».

Page 19 de 60 ETAPE 2 - WinSCP XX: Configuration des paramètres de connexion via l'interface graphique de WinSCP d'une session, sauvegardée sous PRA_FTP_Session. Dans le planificateur de tâches, démarrage de la tâche toutes les minutes (pour s'assurer une synchronisation exacte toutes les minutes certains fichiers supprimés sur le serveur ne sont pas toujours supprimés à distance). Note : Il y a un problème d'arrêt du processus par Windows, même si «forcer l'arrêt» est indiqué. La solution de contournement est de forcer l arrêt de la tâche par commande. Etape 1 : Arrêt du processus précédent : taskkill /f /im WinSCP.exe Etape 2 : Synchronisation complète : "C:\Program Files (x86)\winscp\winscp.exe" /console /command "option reconnecttime 1800" "open PRA_FTP_Session" "synchronize remote -delete "D:\DOSSIERSERVICE"./service" "exit" Etape 3 : Synchronisation continue : Notes : "C:\Program Files (x86)\winscp\winscp.exe" /console /command "option reconnecttime 1800" "open PRA_FTP_Session" "keepuptodate -delete "D:/DOSSIERSERVICE"./service" "exit" Il faut au maximum une minute pour que des fichiers supprimés du serveurs soient supprimés du serveur distant. Il faut 1 à 2 secondes pour propager une modification sur un fichier ou la création d'un nouveau fichier.

Page 20 de 60 Serveur Virtuel FTPS XX Crypté sur Serveur Dédié XX XX utilise la solution de virtualisation libre KVM (http://www.linux-kvm.org) sur CentOS / Linux. XX Configuration de l'hôte : ETAPE 1 Redirection des ports Le port standard FTP (21) est déjà utilisé pour un autre serveur FTP. De ce fait, le port 51021 a été redirigé vers le port 21 de la machine virtuelle. Les transactions se réalisent en mode passif (le client FTP n'a pas à avoir de port spécifique accessible) sur les ports 51100 à 51150. 1.1 - Le service de pare-feu intégré est également utilisable pour réaliser la translation de ports. Les commandes utilisées sont (stockées dans /etc/rc.local pour rendre leur exécution permanente) : iptables -t nat -I PREROUTING -m limit --limit 60/minute --limit-burst 250 -p tcp --dport 51021 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:21 iptables -t nat -I PREROUTING -m limit --limit 60/minute --limit-burst 250 -p tcp --dport 51100:51150 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:51100-51150 Où $IPLOCALEVM correspond à l'adresse IP de la machine virtuelle.

Page 21 de 60 Configuration de la machine virtuelle : ETAPE 1 - VSFTPD 1.1 - Installation du serveur vsftpd : yum -y install vsftpd 1.2 - Configuration du serveur vsftpd : nano /etc/vsftpd/vsftpd.conf anonymous_enable=no xferlog_file=/var/log/xferlog.log xferlog_std_format=yes nopriv_user=ftpsecure chroot_local_user=yes log_ftp_protocol=yes banner_file=/etc/vsftpd/issue guest_enable=yes guest_username=ftpsecure user_sub_token=$user local_root=/home/ftpsecure/$user ssl_enable=yes ssl_tlsv1=yes rsa_cert_file=/etc/vsftpd/server.pem vsftpd_log_file=/var/log/vsftpd.log dual_log_enable=yes ssl_ciphers=high virtual_use_local_privs=yes pasv_address=$ipv4publique pasv_addr_resolve=yes pasv_enable=yes pasv_min_port=51100 pasv_max_port=51150 port_enable=yes require_ssl_reuse=no use_localtime=yes Où $IPv4PUBLIQUE est l'adresse IPv4 publique du serveur (utilisée pour l'initialisation du mode passif). Note : $USER ne doit pas être modifié. 1.3 - Génération du certificat auto-signé pour le cryptage de la connexion : openssl req -new -x509 -nodes -out /etc/vsftpd/server.pem -keyout /etc/vsftpd/server.pem -days 3650 -newkey rsa:2048

Page 22 de 60 1.4 - Configuration du message d accueil : nano /etc/vsftpd/issue Bienvenue, Welcome, Recepción, Welkom, Willkommen, 환 영 ברוכים הבאים, au service FTP d'xx POLITIQUE DE SECURITE AVERTISSEMENT AUX UTILISATEURS L'utilisation de ce système constitue votre consentement à la surveillance et aux tests de sécurité Toute activité est enregistrée avec votre nom d'hôte et adresse IP Merci pour votre compréhension 1.5 - Ajout de l'utilisateur ftpsecure : adduser ftpsecure 1.6 - Configuration du pare-feu : nano /etc/sysconfig/iptables -A INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -p tcp --destination-port 51100:51150 -j ACCEPT 1.7 - Configuration du module FTP du parefeu : nano /etc/sysconfig/iptables-config IPTABLES_MODULES="ip_conntrack_ftp" 1.8 - Redémarrage du parefeu : service iptables restart 1.9 - Configuration de SELinux : setsebool -P ftp_home_dir=1 setsebool -P allow_ftpd_anon_write=0 setsebool -P allow_ftpd_full_access=1 1.10 - Démarrage du service vsftpd : service vsftpd start 1.11 - Auto-démarrage du service vsftpd : chkconfig vsftpd on 1.12 - Vérification de l'exécution du service : netstat -ntap grep ftp 1.13 - Ajout d'utilisateurs et mots de passe dans un fichier : nano /etc/vsftpd/virtual-users.txt utilisateur monmotdepasse 1.14 - Ajout d'utilisateurs dans une base de données : db_load -T -t hash -f /etc/vsftpd/virtual-users.txt /etc/vsftpd/virtual-users.db

Page 23 de 60 1.15 - Suppression du fichier sensible : rm /etc/vsftpd/virtual-users.txt 1.16 - Configuration de l'authentification : nano /etc/pam.d/vsftpd auth required pam_userdb.so db=/etc/vsftpd/virtual-users account required pam_userdb.so db=/etc/vsftpd/virtual-users session required pam_loginuid.so 1.17 - Création du dossier dédié : mkdir /home/ftpsecure/utilisateur 1.18 - Redémarrage du service : service vsftpd restart 1.19 - Création des dossiers nécessaires : mkdir /home/ftpsecure/utilisateur/service 1.20 Modification des droits et du propriétaire des dossiers : chown -R root:root /home/ftpsecure/utilisateur chmod -R 755 /home/ftpsecure/utilisateur chmod -R 777 /home/ftpsecure/utilisateur/* 1.21 Désactivation de la possibilité de supprimer les fichiers aux non-propriétaires (utilisation du «sticky bit») : chmod -R +t /home/ftpsecure/utilisateur/* ETAPE 2 CRON + RSYNC 2.1 - Installation de rsync et cron : yum -y install rsync cronie 2.2 - Création du dossier de sauvegarde protégé : mkdir /home/secure 2.3 - Démarrage de cron : service crond start 2.4 - Automatisation du démarrage de cron : chkconfig crond on 2.5 - Création de la tâche hebdomadaire de synchronisation sécurisée (tous les mercredis à 0H00) : nano /etc/crontab 0 0 * * 3 root rsync -vur --delete /home/ftpsecure/utilisateur /home/secure/

Page 24 de 60 2.6 - Création de la tâche de modification des droits d'accès en lecture (tous les jours à 14H00 et 00H00 pour XX / tous les jours à minuit pour tous les services) : nano /etc/crontab 0 0 * * * root find /home/ftpsecure/utilisateur/service -type f xargs chmod 444 0 0 * * * root find /home/ftpsecure/utilisateur/service -type f xargs chown root:root 1 0 * * * root find /home/ftpsecure/utilisateur/service -type f -mtime +90 xargs chmod 777 0 14 * * * root find /home/ftpsecure/utilisateur/service -type f xargs chmod 444 0 14 * * * root find /home/ftpsecure/utilisateur/service -type f xargs chown root:root 1 14 * * * root find /home/ftpsecure/utilisateur/service -type f -mtime +90 xargs chmod 777 2.7 - Redémarrage de cron : service crond restart

Page 25 de 60 6.2 Restauration 6.2.1 Systèmes Il y a 3 systèmes principaux mis en jeu afin de réaliser la fonction de restauration : - Serveur Virtuel FTPS XX Crypté sur Serveur Dédié XX (CentOS 6 + vsftpd), - Serveur Virtuel WEB Proxy XX Crypté sur Serveur Dédié XX (CentOS 6 + Apache), - Serveur Virtuel WEB XX Crypté sur Serveur Dédié XX (Debian 6 + Apache + WebDev + vsftpd + Duplicati + X2Go). (2)Systèmes mis en œuvre dans le cadre de la restauration

Page 26 de 60 6.2.2 Séquence La restauration du service web consiste à recopier les différentes données des services web XX dans les dossiers spécifiques et à donner accès au serveur web à l'extérieur. Une fois le serveur de XX à nouveau actif (retour à l'état initial), il est alors nécessaire d'y restaurer la dernière version des données des services web.

Page 27 de 60 6.2.3 Configuration Serveur Virtuel FTPS XX Crypté sur Serveur Dédié XX Voir paragraphe sauvegarde correspondant de la section précédente.

Page 28 de 60 Serveur Virtuel WEB Proxy XX Crypté sur Serveur Dédié XX Configuration de l'hôte : ETAPE 1 Redirection des ports Le port standard WEB (80) est partagé entre plusieurs service web. De ce fait, le port 80 est redirigé vers une machine virtuelle avec un serveur web apache qui réalise un proxy avec les différents hôtes virtuels (basé sur les noms de domaine). 1.1 - Le service de pare-feu intégré est également utilisable pour réaliser la translation de ports. Les commandes utilisées sont (stockées dans /etc/rc.local pour rendre leur exécution permanente) : iptables -t nat -I PREROUTING -m limit --limit 1000/minute --limit-burst 1000 -p tcp --dport 80 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:80 Où $IPLOCALEVM correspond à l'adresse IP de la machine virtuelle. Note : Par sécurité, le nombre de connections est limité pour pallier aux attaques par déni de service. Il faut adapter la configuration aux besoins spécifiques XX. Configuration de la machine virtuelle : 1.1 - Ajout d'hôtes virtuels : ETAPE 1 Proxy Apache nano /etc/httpd/conf/httpd.conf <VirtualHost *:80> ServerName webdev.domaine.racine ProxyPass / http://$iplocalevm:80/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / http://webdev.domaine.racine/ RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-name" "webdev.domaine.racine" RequestHeader set "x-webobjects-server-url" "http://webdev.domaine.racine" RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0" RequestHeader set "x-webobjects-remote-host" %{REMOTE_HOST}e env=remote_host </VirtualHost> <VirtualHost *:80> ServerName www.webdev.domaine.racine ProxyPass / http://$iplocalevm:80/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / http://www.webdev.domaine.racine/ RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-name" "www.webdev.domaine.racine" RequestHeader set "x-webobjects-server-url" "http://www.webdev.domaine.racine" RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0"

Page 29 de 60 RequestHeader set "x-webobjects-remote-host" %{REMOTE_HOST}e env=remote_host </VirtualHost> <VirtualHost *:443> SSLEngine on SSLCertificateFile /etc/pki/tls/certs/ca.crt SSLCertificateKeyFile /etc/pki/tls/private/ca.key ServerName www.webdev.domaine.racine ProxyPass / http://$iplocalevm/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / http://www.webdev.domaine.racine/ RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-name" "www.webdev.domaine.racine" RequestHeader set "x-webobjects-server-url" "http://www.webdev.domaine.racine" RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0" RequestHeader set "x-webobjects-remote-host" %{REMOTE_HOST}e env=remote_host </VirtualHost> <VirtualHost *:80> #TO MAKE SURE PASSING THE VIRTUAL HOST NAME ProxyPreserveHost On ServerName www.service.domaine.racine ProxyPass / http://$iplocalevm:80/ retry=1 acquire=3000 timeout=600 Keepalive=On ProxyPassReverse / http://www.service.domaine.racine/ RequestHeader set "x-webobjects-server-port" "80" RequestHeader set "x-webobjects-server-name" "www.service.domaine.racine" RequestHeader set "x-webobjects-server-url" "http://www.service.domaine.racine" RequestHeader set "x-webobjects-server-protocol" "HTTP/1.0" RequestHeader set "x-webobjects-remote-host" %{REMOTE_HOST}e env=remote_host </VirtualHost> Où $IPLOCALEVM correspond à l'adresse IP de la machine virtuelle.

Page 30 de 60 Serveur Virtuel WEB XX Crypté sur Serveur Dédié XX Configuration de l'hôte : ETAPE 1 Redirection de ports Le port standard FTP (21) est déjà utilisé pour un autre serveur FTP. De ce fait, le port 50021 a été redirigé vers le port 21 de la machine virtuelle. Les transactions se réalisent en mode passif (le client FTP n'a pas à avoir de port spécifique accessible) sur les ports 50100 à 50150. Le port standard SSH (22) n'est pas utilisé mais afin de réduire l'exposition du serveur aux attaques automatiques, le port 50022 a été redirigé vers le port 22 de la machine virtuelle. 1.1 - Le service de pare-feu intégré est également utilisable pour réaliser la translation de ports. Les commandes utilisées sont (stockées dans /etc/rc.local pour rendre leur exécution permanente) : iptables -t nat -I PREROUTING -m limit --limit 60/minute --limit-burst 250 -p tcp --dport 50021 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:21 iptables -t nat -I PREROUTING -m limit --limit 60/minute --limit-burst 250 -p tcp --dport 50022 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:22 iptables -t nat -I PREROUTING -m limit --limit 60/minute --limit-burst 250 -p tcp --dport 50100:50150 -j DNAT! -s 192.168.122.0/24 --to-destination $IPLOCALEVM:50100-50150 Où $IPLOCALEVM correspond à l'adresse IP de la machine virtuelle. Configuration de la machine virtuelle : Les distributions Debian Squeeze 6.07 et CentOS 6.4 ont été testées. Le fonctionnement a été validé pour la distribution Debian. La distribution CentOS, plus sécurisée, n'a pas permis aujourd'hui le fonctionnement du service pour des raisons de contexte SELinux non compatible avec l'installation de WebDev. Étant donné que le service web n'est pas destiné à fonctionner en permanence, mais uniquement provisoirement en cas de reprise d'activité, l'utilisation de Debian, moins sécurisée, se justifie malgré tout. La procédure d'installation sous CentOS, quasiment terminée est néanmoins décrite ci-après dans le cas où XX souhaiterait utiliser par le futur un serveur WebDev en production.

Page 31 de 60 ETAPE 1 Serveur Web : Apache 1.1 - Installation du serveur web : apt-get install apache2 Debian CentOS (Ajout du dépôt de paquets EPEL pour pouvoir installer mod_ssl et mod_security) su -c 'rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm' Note : Si problème, vérifier le lien (http://fedoraproject.org/wiki/epel), les versions changent régulièrement yum -y install httpd mod_ssl mod_security

Page 32 de 60 1.2 - Configuration du serveur web : Debian PERFORMANCES nano /etc/apache2/apache2.conf ServerLimit 1000 <IfModule mm_prefork_module>... MaxClients 1000 </IfModule> <IfModule mpm_worker_module>... MaxClients 1000 </IfModule> <IfModule mpm_event_module>... MaxClients 1000 </IfModule> SECURITE nano /etc/apache2/conf.d/security ServerTokens Prod ServerSignature Off TraceEnable Off VIRTUAL HOSTS nano /etc/apache2/sites-enabled/000-default <VirtualHost *:80> ServerAdmin contact@contact.com ServerName www.webdev.domaine.racine ServerAlias webdev.domaine.racine DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options -Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Page 33 de 60 Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>

Page 34 de 60 nano /etc/httpd/conf/httpd.conf ServerTokens Full Listen 80 KeepAlive On TraceEnable Off <IfModule prefork.c>... ServerLimit 1000 MaxClients 1000 </IfModule> <IfModule worker.c>... MaxClients 1000 </IfModule> ServerAdmin contact@contact.com ServerName www.webdev.domaine.racine <Directory "/var/www/html">... Options -Indexes FollowSymLinks... </Directory> <Directory "/var/www/icons"> Options -Indexes MultiViews FollowSymLinks </Directory> ServerSignature Off nano /etc/httpd/conf.d/mod_security.conf SecServerSignature WebDevWebServer nano /etc/hosts 127.0.0.1 webdev.domaine.racine CentOS 1.3 - (Re)Démarrage du serveur : service httpd start /etc/init.d/apache2 restart 1.4 - Auto-démarrage du serveur : chkconfig httpd on CentOS Debian Uniquement CentOS

Page 35 de 60 ETAPE 2 Serveur FTP : VSFTPD 2.1 - Installation du serveur FTP: apt-get install vsftpd yum install vsftpd Debian CentOS 2.2 - Configuration du serveur FTP: Debian nano /etc/vsftpd.conf anonymous_enable=no local_enable=yes write_enable=yes local_umask=022 nopriv_user=ftpsecure chroot_local_user=yes... rsa_cert_file=/etc/ssl/private/vsftpd.pem log_ftp_protocol=yes banner_file=/etc/vsftpd.hello user_sub_token=$user local_root=/home/$user/sitesweb/ftp ssl_enable=yes ssl_tlsv1=yes vsftpd_log_file=/var/log/vsftpd.log dual_log_enable=yes ssl_ciphers=high virtual_use_local_privs=yes pasv_address=$ipv4publique pasv_addr_resolve=yes pasv_enable=yes pasv_min_port=50100 pasv_max_port=50150 port_enable=yes require_ssl_reuse=no use_localtime=yes #ATTENTION!! Pour la compatibilité avec le déploiement WebDev (ftps non accepté), il est nécessaire d'accepter les connections non cryptées force_local_logins_ssl=no force_local_data_ssl=no Où $IPv4PUBLIQUE correspond à l'adresse IPv4 publique. Note : $USER ne doit pas être modifié.

Page 36 de 60 CentOS nano /etc/vsftpd/vsftpd.conf anonymous_enable=no local_enable=yes write_enable=yes local_umask=022 nopriv_user=ftpsecure chroot_local_user=yes... rsa_cert_file=/etc/ssl/certs/vsftpd.pem log_ftp_protocol=yes banner_file=/etc/vsftpd/vsftpd.hello user_sub_token=$user local_root=/home/$user/sitesweb/ftp ssl_enable=yes ssl_tlsv1=yes vsftpd_log_file=/var/log/vsftpd.log dual_log_enable=yes ssl_ciphers=high virtual_use_local_privs=yes pasv_address=$ipv4publique pasv_addr_resolve=yes pasv_enable=yes pasv_min_port=50100 pasv_max_port=50150 port_enable=yes require_ssl_reuse=no use_localtime=yes #ATTENTION!! Pour la compatibilité avec le déploiement WebDev (ftps non accepté), il est nécessaire d'accepter les connections non cryptées force_local_logins_ssl=no force_local_data_ssl=no Note : $USER ne doit pas être modifié. Où $IPv4PUBLIQUE correspond à l'adresse IPv4 publique. 2.3 - Génération d'un certificat auto-signé : Debian openssl req -new -x509 -nodes -out /etc/ssl/private/vsftpd.pem -keyout /etc/ssl/private/vsftpd.pem -days 3650 -newkey rsa:2048 CentOS openssl req -new -x509 -nodes -out /etc/ssl/certs/vsftpd.pem -keyout /etc/ssl/certs/vsftpd.pem -days 3650 -newkey rsa:2048

Page 37 de 60 2.4 - Configuration du message d'accueil du serveur FTP: nano /etc/vsftpd.hello nano /etc/vsftpd/vsftpd.hello Debian CentOS Debian & CentOS ברוכים הבאים, 영 Bienvenue, Welcome, Recepción, Welkom, Willkommen, 환 au service FTP d'xxx POLITIQUE DE SECURITE AVERTISSEMENT AUX UTILISATEURS L'utilisation de ce système constitue votre consentement à la surveillance et aux tests de sécurité Toute activité est enregistrée avec votre nom d'hôte et adresse IP Merci pour votre compréhension 2.5 - Ajout de l'utilisateur ftpsecure : adduser ftpsecure passwd ftpsecure 2.6 - Création de l'utilisateur webdev : adduser webdev passwd webdev Debian & CentOS Uniquement CentOS Debian & CentOS Uniquement CentOS 2.7 - Création du dossier de stockages des sites : Debian & CentOS mkdir /home/webdev/sitesweb chown webdev:webdev /home/webdev/sitesweb 2.8 - (Re)démarrage du serveur ftp: /etc/init.d/vsftpd restart service vsftpd start chkconfig vsftpd on 2.9 - Vérification du fonctionnement : netstat -ntap grep ftp Debian CentOS Debian & CentOS