Procedure - Portfolio | Anthony MANDRON
Transcription
Procedure - Portfolio | Anthony MANDRON
07/03/2014 SARI Sécurisation Accès Réseau Internet Anthony MANDRON SDIS 21 SARI Table des matières Contexte :.................................................................................................................................................................. 2 Mise en situation : ................................................................................................................................................. 2 Schéma : .................................................................................................................................................................... 2 Introduction : .......................................................................................................................................................... 2 Première étape : Mise en place des routeurs internes ....................................................................... 2 Mise en place du routage sur les routeurs internes : ..................................................................... 3 Procédure d’installation de Keepalived : ............................................................................................ 4 Test de fonctionnement : ........................................................................................................................... 4 Mise en place du Pare-feu Ipfire : ................................................................................................................... 6 Introduction : ..................................................................................................................................................... 6 Procédure d’installation : .............................................................................................................................. 6 Installation de keepalived :.................................................................................................................... 13 Synchronisation des données des pares-feu : .................................................................................... 19 Génération des clés SSH .......................................................................................................................... 19 Création du script backup.sh : .............................................................................................................. 19 Configuration de Fcron : ......................................................................................................................... 20 ANTHONY MANDRON 1 SARI Contexte : Le projet SARI (Sécurité accès réseau Internet) a pour objectif d’améliorer la qualité de service (Qos) en termes de disponibilité, de perte de paquets, de débits. La situation actuelle présente des commutateurs de niveau 3 redondants sur le reseau interne et externe (2 pour le réseau interne et 2 pour le réseau externe). La solution de pare-feu actuelle netasq ne permet pas une reprise de service. La solution à mettre en œuvre est l’implantation d’un pare-feu actif et passif avec deux liens heartbeats entre les deux pare-feu. Cette solution permettra d’assurer la haute disponibilité entre les deux pare-feu. Elle permet aussi la synchronisation en temps réel des données, assurant ainsi une transparence totale lors du basculement sur le pare-feu passif. Mise en situation : La solution permet de réaliser une maquette de la mise en place d’un pare-feu actif/passif grâce à des solutions open-source. En effet, cette solution est possible de mettre en place grâce à des solutions open-source. Schéma : Shéma à mettre Introduction : Le but est de mettre en place l'architecture décrit dans le schéma correspondant à l’architecture cœur de réseau. La réalisation de la maquette se fera virtuellement grâce à la solution de virtualisation VirtualBox. Première étape : Mise en place des routeurs internes Les routeurs internes effectuent le routage des paquets des clients présents sur le LAN. Le SDIS dispose de deux routeurs internes afin de pouvoir garantir une continuité de service. Ces deux routeurs sont reliés par un lien HSRP. ANTHONY MANDRON 2 SARI Etant donné que le protocole HSRP est propriétaire, il est donc obligatoire de se tourner vers des solutions open-source. Le choix s’est porté sur Keepalived qui utilise le protocole VRRP (protocole de redondance de routeur virtuel) consiste à augmenter le taux de disponibilité sur les routeurs virtuels. Il se matérialise par l’attribution d’une adresse IP virtuelle entre les routeurs. Si un des routeurs tombent en panne, l’adresse IP virtuelle est immédiatement transférée vers un autre routeur. Ce procédé permet de garantir une continuité de service et une transparence totale pour l’utilisateur. Mise en place du routage sur les routeurs internes : Routeur interne : Activation du routage au démarrage de manière automatique sur les deux routeurs : vim /etc/init.d/routage.sh #!/bin/sh ### BEGIN INIT INFO # Provides: routage # Required-Start: $network $remote_fs $syslog # Required-Stop: $network $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Partage de connexion # Description: Activation du routage ### END INIT INFO echo 1 >/proc/sys/net/ipv4/ip_forward Il faut ensuite rendre le script exécutable : chmod 755 /etc/init.d/routage.sh On peut alors ajouter le script au démarrage : insserv /etc/init.d/routage.sh ANTHONY MANDRON 3 SARI Procédure d’installation de Keepalived : Sur chaque routeur : aptitude install keepalived Il faut créer ensuite le fichier “keepalived.conf” sur les routeurs : Vim /etc/keepalived/keepalived.conf lobal_defs { } vrrp_instance vrrp1 { # We don't own the IP address, which allows manual triggering of IP change when machine comes UP # see man keepalived.conf. state BACKUP priority 150 nopreempt interface eth1 virtual_router_id 255 advert_int 5 smtp_alert virtual_ipaddress { 172.16.2.3/24 brd 172.16.2.255 dev eth1 scope global } } Désactiver ensuite le service keepalived au démarrage sur les deux machines : update-rc.d keepalived remove Par la suite, on peut voir sur la machine master l’adresse IP virtuelle. Test de fonctionnement : Pour tester le fonctionnement de notre solution, il suffit de couper le serveur master et regarder les logs sur le serveur slave durant l’extinction de la première machine. ANTHONY MANDRON 4 SARI Logs : On constate bien que keepalived a détecté le premier serveur indisponible et passe l’adresse virtuelle au second serveur. On peut voir en effet, le basculement de l’adresse IP virtuelle sur le routeur secondaire. ANTHONY MANDRON 5 SARI Mise en place du Pare-feu Ipfire : Introduction : Ipfire est une distribution linux orientée pare-feu, il propose des fonctions de firewall, de détection d’intrusions (snort), de proxy, de serveur proxy (cache, filtrage de contenu, de serveur DNS (DNS dynamique) et DHCP, de serveur vpn (Ipsec et OpenVPN). Il génère aussi des rapports sur les connexions et il analyse les logs. Dans notre contexte, Ipfire sera installé avec trois cartes, une pour l’acces web une autre, pour le réseau interne et une pour la DMZ. Il sera couplé d’un autre serveur Ipfire avec un lien vrrp (Keepalived) avec le deuxième pare-feu. Procédure d’installation : Sélectionner le premier choix : Choisir la langue : ANTHONY MANDRON 6 SARI Laisser le choix par default : On confirme le formatage du disque : ANTHONY MANDRON 7 SARI L’installation démarre : A la fin de la proédure d’installation, la machine redemarre et doit demarrer sur le disque dur. Configuration de Ipfire : Choissisez la langue du clavier : ANTHONY MANDRON 8 SARI Choisissez votre zone géographique pour le serveur de temps : Entrer le nom de l’hote du pare-feu : ANTHONY MANDRON 9 SARI Entrer votre domaine : Choisisser votre mot de passe : ANTHONY MANDRON 10 SARI Choississez votre configuration de réseaux : Rouge Vert Orange Bleu WAN (Réseau externe) LAN (Réseau interne) DMZ Accès réseau sans fil Vous devez ensuite assigner les interfaces réseaux en fonction de la configuration choisie : ANTHONY MANDRON 11 SARI Vous devez ensuite affecter les adresses réseaux : Et enfin, selectionner la passerelle et le serveur de noms : ANTHONY MANDRON 12 SARI Redémarrer ensuite et le pare-feu est configuré. Installation de keepalived : pakfire install keepalived On va ensuite créer le script d’initialisation du keepalived : vim /etc/init.d/keepalived #!/bin/bash # start/stop script for ipfire's keepalived packet # (w) Cisco Bob 2013 # History: # 22.Aug 2013 CB initial version DAEMON="/usr/sbin/keepalived" VRRP="--vrrp" CHECK="--check" CFGFILE="-f /var/ipfire/keepalived/keepalived.conf" WDOG_VRRP="--wdog-vrrp 1" WDOG_CHECK="--wdog-check 30" DEFAULTS="/var/ipfire/keepalived/defaults" PIDFILE="/var/run/keepalived.pid" DEBUG="" daemonName=${DAEMON##*/} ANTHONY MANDRON 13 SARI if [ -s $DEFAULTS ] then . $DEFAULTS fi if [ ! -x $DAEMON ] then echo "File $DAEMON is not executable - bailout" exit 3 fi if [ ! $CFGFILE ] then echo "sorry configile $CFGFILE must exist - bailout" exit 3 fi function startProc () { $DAEMON $DEBUG $VRRP $CHECK $CFGFILE $WDOG_VRRP $WDOG_CHECK [ $? -eq 0 ] && echo "$!" >$PIDFILE } function stopProc () { if [ -f $PIDFILE ] then kill $(cat $PIDFILE) rm -f $PIDFILE else list=$(ps -ef | grep keepalived | grep -v grep) if [ -z $list ] then # no process found - exit silently exit 0 fi pidOfDaemonRaw=$(ps -ef | grep $daemonName | awk '{ print $2 ","$3}') # returns 1555,1 if it is the daemon pidOfParent=${pidOfDaemonRaw#*,} pidOfDaemon=${pidOfDaemonRaw%,*} if [ $pidOfParent = "1" ] then #echo "OK - killing $DAEMON with PID=$pidOfDaemon" kill $pidOfDaemon fi fi } if [ $# -lt 1 ] then ANTHONY MANDRON 14 SARI echo "usage: $0 start|stop|restart" exit 3 fi case $1 in start) startProc ;; stop) stopProc ;; restart) stopProc sleep 1 startProc ;; *) echo "unsupported paramter: $1 should be start,stop,restart" ;; esac exit 0 Cette commande va permettre de rendre le fichier exécutable chmod 755 /etc/init.d/keepalived mkdir /var/ipfire/keepalived vim /var/ipfire/keepalived/keepalived.conf ANTHONY MANDRON 15 SARI global_defs { } vrrp_instance fw { # We don't own the IP address, which allows manual triggering of IP change whe n machine comes UP # see man keepalived.conf. state BACKUP priority 150 nopreempt interface green0 virtual_router_id 255 advert_int 5 smtp_alert virtual_ipaddress { 172.16.0.5/24 brd 172.16.0.255 dev green0 scope global Ce fichier va configuration le service VRRP et lui attribuer une adresse IP virtuelle. Il est important d’indiquer dans ce fichier la priorité (150 pour le serveur primaire et 100 pour le serveur secondaire) entre les serveurs utilisant keepalived. La création de ce fichier est une étape nécessaire dans l’utilisation de keepalived vim /var/ipfire/keepalived/defaults # gets sourced by keepalived start/stop script DAEMON="/usr/sbin/keepalived" VRRP="--vrrp" #CHECK="--check" CHECK="" CFGFILE="-f /var/ipfire/keepalived/keepalived.conf" WDOG_VRRP="--wdog-vrrp 1" #WDOG_CHECK="--wdog-check 30" WDOG_CHECK="" PIDFILE="/var/run/keepalived.pid" # for debugging set #DEBUG="--dont-fork --log-console --log-detail" #DEBUG="--log-detail" DEBUG="" ANTHONY MANDRON 16 SARI On lance cette commande pour lancer le service keepalived /etc/init.d/keepalived start On remarque bien notre nouvelle adresse IP : Test de fonctionnement : ANTHONY MANDRON 17 SARI On remarque bien que l’adresse Ip virtuelle a bien été transmise au deuxième pare-feu : ANTHONY MANDRON 18 SARI Synchronisation des données des pares-feu : Dans le processus de continuité de service, il est important aussi de disposer des données identiques sur les deux pare-feu afin de garantir une reprise de service immédiate. Pour se faire, nous allons utiliser scp qui va nous permettre de copier les sauvegardes du pare-feu afin de permettre la restauration de celles-ci si besoin. Génération des clés SSH Synchronisation des clés SSH pour permettre l’authentification sans mot de passe pour automatiser les transferts. Dans un premier temps, on va générer la clé avec la commande suivante : ssh-keygen -t rsa On copie aussi la nouvelle clé sur le serveur distant : scp /root/.ssh/id_rsa.pub root@adresseip:/root/.ssh/ Se connecter ensuite sur le serveur distant et mettre la nouvelle clé dans le fichier authorized_keys pour autoriser la connexion avec cette clé avec la commande suivante : cat id_rsa.pub >> /root/.ssh/authorized_keys On peut ensuite se connecter sans authentification par mot de passe avec la clé publique : ssh -i chemin clé root@adresseip Une fois, la connexion ssh configuré, on va pouvoir déclencher une action automatique grâce à fcron en lançant la commande scp toutes les 12h de manière à disposer des sauvegardes si besoin. Création du script backup.sh : Ce script va contenir la commande scp et pourra être lancé par fcron. mkdir /root/script ANTHONY MANDRON 19 SARI vim /root/script/backup.sh scp -r -i /root/ipfire1 /var/ipfire/backup/ 172.16.0.4:/var/ipfire/ L’option –i permet l’utilisation de la clé SSH pour permettre l’authentification sans mot de passe. Cette commande va permettre de rendre le script exécutable. chmod 755 /root/script/backup.sh Configuration de Fcron : fcrontab -e Contenu à rajouter : #transfert des sauvegardes du pare-feu @ 12h /root/script/backup.sh Mise en place d'une politique de sécurité sur la DMZ : Configuration d'un reverse proxy : ANTHONY MANDRON 20