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

Documents pareils