21
1 XMBox Help red team pentester 1. Introduction Alors que le compteur du nombre de piratages en tout genre pour l’année 2014 venait de prendre fin avec un nouveau record à la clé (eBay, Domino’s Pizza, Snapchat, Gmail ou encore Sony), l’année 2015 démarre très fort avec le piratage de plusieurs milliers de sites français suite à l’opération #OpFrance faisant suite aux évènements tragiques du 8 janvier. Cette multiplication d’acte de piratage n’aura pas fait que couler beaucoup d’encore puisque l’ANSSI a mis à disposition des guides pratiques afin de « Protéger son site Internet des cyberattaques » (1). Ce guide de bonnes pratiques recommande l’utilisation de mots de passe robustes : au moins 12 caractères de types différents (majuscules, minuscules, chiffres, caractères spéciaux) ainsi que la restriction des interfaces d’administration. En effet, un mot de passe faible sur une interface permettant de prendre le contrôle sur un serveur peut rapidement s’avérer fatal. De plus, et l’opération #OpFrance nous l’a démontrée, il est indispensable de mettre en place un système de « patch management » pour l’ensemble des applications avec une priorité pour celles accessibles sur Internet (et principalement les CMS) afin de disposer des derniers correctifs de sécurité. Cette cyberguerre n’est pas sans rappeler celle opposant la Russie à l’Estonie en 2007 (2) ou la quasi- totalité d’un pays avait été extrêmement perturbée suite à des attaques incessantes sur l’ensemble des architectures de type OIV (Opérateur d'importance vitale). Une prise de conscience des entreprises pourrait déboucher sur une activité plus importante des cabinets de conseil indépendant spécialisé en sécurité des Systèmes d'Information et en cybercriminalité (toute ressemblance avec un cabinet connu n’est en aucun cas le fruit du hasard). De la taille d’un Raspberry, autonome comme un réseau sans fil de type hotspot et disposant d’un serveur Web ainsi que d’un puissant gestionnaire de document, la XMBox a pour objectif d’aider la communication d’une équipe de pentesters.

XMBox - regis-senet.frregis-senet.fr/projets/XMBox.pdf · identifiants par défaut sont « pi » pour le nom d’utilisateur et « raspberry » pour le mot de passe (attention, le

  • Upload
    lylien

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

1

XMBox

Help red team pentester

1. Introduction

Alors que le compteur du nombre de piratages en tout genre pour l’année 2014 venait de prendre fin

avec un nouveau record à la clé (eBay, Domino’s Pizza, Snapchat, Gmail ou encore Sony), l’année

2015 démarre très fort avec le piratage de plusieurs milliers de sites français suite à l’opération

#OpFrance faisant suite aux évènements tragiques du 8 janvier.

Cette multiplication d’acte de piratage n’aura pas fait que couler beaucoup d’encore puisque l’ANSSI

a mis à disposition des guides pratiques afin de « Protéger son site Internet des cyberattaques » (1).

Ce guide de bonnes pratiques recommande l’utilisation de mots de passe robustes : au moins 12

caractères de types différents (majuscules, minuscules, chiffres, caractères spéciaux) ainsi que la

restriction des interfaces d’administration. En effet, un mot de passe faible sur une interface

permettant de prendre le contrôle sur un serveur peut rapidement s’avérer fatal.

De plus, et l’opération #OpFrance nous l’a démontrée, il est indispensable de mettre en place un

système de « patch management » pour l’ensemble des applications avec une priorité pour celles

accessibles sur Internet (et principalement les CMS) afin de disposer des derniers correctifs de

sécurité.

Cette cyberguerre n’est pas sans rappeler celle opposant la Russie à l’Estonie en 2007 (2) ou la quasi-

totalité d’un pays avait été extrêmement perturbée suite à des attaques incessantes sur l’ensemble

des architectures de type OIV (Opérateur d'importance vitale).

Une prise de conscience des entreprises pourrait déboucher sur une activité plus importante des

cabinets de conseil indépendant spécialisé en sécurité des Systèmes d'Information et en

cybercriminalité (toute ressemblance avec un cabinet connu n’est en aucun cas le fruit du hasard).

De la taille d’un Raspberry, autonome comme un réseau sans fil de type hotspot et disposant d’un

serveur Web ainsi que d’un puissant gestionnaire de document, la XMBox a pour objectif d’aider la

communication d’une équipe de pentesters.

2

2. Initialisation du système

Notre XMBox reposant sur un Raspberry Pi, il est nécessaire, avant de commencer à l’utiliser, d’y

installer le système d’exploitation de notre choix : Raspbian (3).

Raspbian est un système d'exploitation libre et gratuit basé sur Debian et optimisé pour fonctionner

sur un Raspberry Pi (Cf. Wikipédia).

Un Raspberry Pi est un petit ordinateur monocarte (construit sur un circuit imprimé unique) à

processeur ARM fonctionnant exactement de la même manière qu’un ordinateur classique à

l’exception que le traditionnel disque dur est remplacé par une carte SD (4).

C’est donc sur cette dernière qu’il sera nécessaire de faire l’installation de Raspbian.

Si vous ne connaissez pas l’emplacement de votre carte SD, débranchez la de votre ordinateur et

effectuez la commande suivante :

# df -h

Branchez alors votre carte puis effectuez à nouveau la commande précédente. Un nouveau système

de fichier devrait apparaître : il s’agit de votre carte SD !

Notre carte mémoire répond au doux nom de /dev/disk3s1

3

A présent, et afin d’être en mesure d’écrire des données dessus, il est nécessaire de « démonter » la

carte. Pour cela :

# sudo diskutil unmount /dev/disk3s1

Une fois qu’il est possible d’écrire sur notre carte, nous allons y installer le système d’exploitation

Raspbian sur la totalité de l’espace de stockage (il est donc nécessaire de supprimer le « s1 » à la fin

de l’emplacement précédemment obtenu afin de spécifier la totalité du disque et non uniquement la

première partition ainsi que remplacer diskX par rdiskX).

# sudo dd bs=1m if=2015-02-16-raspbian-wheezy.img of=/dev/rdisk3

Une fois l’installation du système terminée, il ne vous reste plus qu’à éjecter la carte SD (sudo

diskutil eject /dev/rdisk3).

4

3. Configuration de Raspbian

Il est temps, à présent, de mettre les mains dans le code ! Pour cela, branchez l’écran (en HDMI) ainsi

que le clavier (en USB) au Raspberry Pi et y brancher la carte SD précédemment formatée. Ceci étant

fait, vous pouvez brancher l’alimentation !

Une fois le système démarré, il sera nécessaire de s’authentifier. Lors de la première connexion, les

identifiants par défaut sont « pi » pour le nom d’utilisateur et « raspberry » pour le mot de passe

(attention, le clavier est probablement en QWERTY).

Lors du premier démarrage, une interface de configuration vous sera proposée afin de paramétrer

votre système. Si celle-ci n’apparaissait pas, il est possible de l’afficher grâce à la commande

suivante :

# sudo raspi-config

• Déployer Rasbian sur la totalité de la carte

Avant toute chose, il est nécessaire de vérifier que le système Raspbian occupe bien la totalité de la

carte. Pour cela, il est nécessaire de sélectionner le premier choix : « Expand Filesystem ». Raspbian

se chargera alors de tout.

• Activer le serveur SSH

Afin de rendre l’accès à distance possible, nous allons activer le serveur SSH intégré à Raspbian. Pour

cela, choisir « Advanced Options ». Une fois dans le menu des options avancées, il est nécessaire de

choisir la quatrième option : « SSH » puis de l’activer (« Enable »).

5

• Passer le clavier en AZERTY

Le système d’exploitation étant déployé sur l’ensemble du système et le serveur SSH étant activé,

l’étape suivante est de passer la totalité du système en français pour plus de commodité.

Pour cela, nous allons nous rendre dans le menu « Internationalisation Options « et y choisir le

sous-menu « Change Locale ».

Dans la nouvelle interface, assurez-vous que l’option « en_GB.UTF-8 UTF-8 » est bien sélectionnée

(grâce à la présence de l’étoile entre les crochets) et sélectionnez également celle-ci : fr_FR.UTF-8

UTF-8. Lors de la validation, une nouvelle fenêtre vous sera présentée afin de déterminer les

« locales » à appliquer par défaut, choisissez l’option française.

Nous venons donc de mettre la totalité du système en français à l’exception du clavier qu’il est

nécessaire de configurer indépendamment.

Pour cela, retourner dans le menu « Internationalisation Options » et y choisir le sous-menu

« Change Keyboard Layout ». Une nouvelle fenêtre apparaît. Dans celle-ci, il est possible de laisser le

type de clavier dans sa valeur par défaut. L’étape suivante, quant a elle, est importante.

Comme il est possible de le voir sur l’image ci-dessus, les choix par défaut du clavier s’orientent vers

des claviers en anglais. Il est donc nécessaire de choisir l’option « Other » afin de configurer le clavier

de la manière souhaitée. Sur la nouvelle fenêtre, choisissez le clavier « French », puis la disposition

« The default », « No compose key », et enfin « No » pour l’utilisation du raccourcie pour terminer le

serveur graphique.

6

• Changer le mot de passe du Raspberry

La clavier étant maintenant en français, il est nécessaire de modifier le mot de passe par défaut

(« raspberry ») par un mot de passe plus solide. En effet, le compte par défaut permet d’accéder à

l’utilisateur « root ».

Pour cela, choisir l’option « Change User Password » dans le menu. Le changement se fera en ligne

de commande.

• Mettre à jour le système

Le Raspberry est maintenant entièrement configuré. La dernière étape reste la mise à jour du

système. Afin d’obtenir un shell, il est nécessaire de cliquer sur « Finish », puis lancer les commandes

suivantes :

# sudo aptitude update -y && sudo aptitude upgrade -y && sudo reboot

La dernière commande « reboot » va permettre de redémarrer le système afin que l’ensemble des

configurations précédemment effectuées soit pris en compte.

Une fois le système configuré, à jour et redémarré, nous allons y accéder directement via le

protocole SSH précédemment activé. Il est possible d’obtenir l’adresse IP du Raspberry Pi grâce à la

commande ifconfig eth0. Il est également possible de le détecter par un balayage du réseau

(commande « nmap -sP <IP DU RESEAU>»). Nous allons ensuite brancher le câble RJ45 sur le

Raspberry Pi afin de le relier au réseau local puis relancer la précédente commande afin de voir

l’adresse IP rajoutée :

7

Notre Raspberry Pi répond donc à l’adresse IP 192.168.0.39 sur notre réseau local. Il est possible de

le confirmer grâce à la commande suivante : nmap -O <Adresse IP>.

8

4. Installation du serveur Web

En termes de serveur Web, Apache, représentant près de 60% des parts du marché (5), a été mis de

côté au profit de son concurrent : Nginx. Mais alors, pourquoi « seulement » choisir le serveur en 2e

position lorsque le premier est tout autant accessible ? Tout est question de performance ! En effet,

à l’inverse d’Apache qui lance un nouveau processus pour chaque action, Nginx est un serveur

asynchrone lui permettant d’exécuter plusieurs actions en parallèle. Les 512 Mo de mémoire non

extensible du modèle B du Raspberry utilisé lors de nos tests expliquent l’utilisation d’un serveur

Web moins gourmand en ressource.

En ce qui concerne la gestion ainsi que le stockage des documents, le logiciel ownCloud (6) a été

choisi pour son aspect libre, gratuit et grâce au fait qu’il utilise le protocole WebDAV permettant

ainsi une synchronisation simplifiée des documents sur différents systèmes d’exploitation.

Bien que le Raspberry Pi dispose d’une interface Ethernet, nous partirons du principe que celle-ci est

utilisée pour l’accès à Internet ou bien au réseau interne d’un client, dans le cadre d’un test

d’intrusion interne. De plus, afin de différencier les données du Raspberry de celles envoyées sur

Internet, nous n’utiliserons pas la XMBox comme passerelle pour la connexion Internet, mais bien

comme un serveur indépendant. L’accès à ce dernier se fera ainsi grâce à un adaptateur Wi-Fi. Une

pléthore d’adaptateur est disponible à l’achat, mais pas autant n’est compatible avec les

distributions GNU/Linux ainsi qu’avec les Raspberry Pi (7). Après de nombreuses recherches, nous

avons jeté notre dévolu sur l’adaptateur Edimax EW-7811UN répondant à l’ensemble de nos

exigences pour un coût relativement faible.

• Installation et configuration du serveur Web

Afin d’être en mesure d’installer les prochains paquets, il est nécessaire d’ajouter une clé GnuPG puis

mettre le gestionnaire de paquet à jour. Pour cela :

# Ajout de la clé GnuPG

# wget http://www.dotdeb.org/dotdeb.gpg

# sudo apt-key add dotdeb.gpg

# rm dotdeb.gpg

# Mise à jour des paquets

# sudo apt-get update

# sudo apt-get upgrade

9

Les prérequis satisfait, il est alors possible d’installer l’ensemble des composants incluant le serveur

Web Nginx, la base de données MySQL ainsi que la version indépendante de PHP PHP-FPM. PHP-

FPM permet de conserver en mémoire les éléments et instructions invoqués afin d’être réutilisés

directement si cette même requête est à nouveau appelée, permettant une baisse de la charge

machine ainsi qu’une meilleure disponibilité des ressources.

# Installation des composants indispensables

# sudo apt-get install -y nginx php5 php5-fpm php5-gd php5-mysql mysql-server openssl bzip2

Et voilà ! Après un redémarrage, votre serveur Web est installé est opérationnel. Vous pouvez d’ores

et déjà y accéder avec votre navigateur à l’adresse suivante : http://<adresseIP>/.

Afin de préparer le gestionnaire de documents à venir, nous allons modifier la configuration du

serveur Nginx :

# sudo rm -rf /etc/nginx/sites-available/default

# sudo nano /etc/nginx/sites-available/default

server_tokens off;

add_header X-Frame-Options SAMEORIGIN;

add_header X-Content-Type-Options nosniff;

add_header X-XSS-Protection "1; mode=block";

server {

listen 80;

server_name xmbox.lan;

# Path to the root of your installation

root /var/www;

client_max_body_size 10G; # set max upload size

fastcgi_buffers 64 4K;

rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;

rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;

rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

index index.php;

error_page 403 /core/templates/403.php;

error_page 404 /core/templates/404.php;

10

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

location ~ ^/(data|config|\.ht|db_structure\.xml|README) {

deny all;

}

location / {

# The following 2 rules are only needed with webfinger

rewrite ^/.well-known/host-meta /public.php?service=host-meta last;

rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;

rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

try_files $uri $uri/ index.php;

}

location ~ ^(.+?\.php)(/.*)?$ {

try_files $1 = 404;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$1;

fastcgi_param PATH_INFO $2;

fastcgi_pass unix:/var/run/php5-fpm.sock;

}

# Optional: set long EXPIRES header on static assets

location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {

expires 30d;

# Optional: Don’t log access to assets

access_log off;

}

}

Le serveur Web installé et paramétré, il est maintenant possible de configurer la base de données

précédemment installée en ajoutant une base spécifique à l’application ownCloud ainsi qu’un

utilisateur non privilégié (dans le cas de la compromission de l’application Web).

# Facultatif (mais recommandé) : script permettant de sécuriser la base de données MySQL

# mysql_secure_installation

# Connexion à la base de données

# mysql -u root -p (Entrer le mot de passe spécifié lors de l’installation)

# Création de l’utilisateur « usernmae » et de la base « owncloud »

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

mysql> CREATE DATABASE IF NOT EXISTS owncloud;

mysql> GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';

mysql> exit

11

La sécurité d’un système d’information, quelconque soit-il, doit être mise en œuvre durant la

réalisation du projet et non pas à la fin de celui-ci dans l’éventualité où il reste un peu de temps. Pour

cela, et afin de protéger les communications entre les clients et la XMBox, nous allons mettre en

place le chiffrement des données via HTTPS. Pour cela, nous allons générer les certificats et dans un

deuxième temps (Cf. Un peu de sécurité dans ce monde de brutes), mettre à jour le fichier de

configuration du serveur Nginx afin que ce dernier les prenne en compte :

# Création des dossiers accueillant les certificats

# sudo mkdir -p /etc/nginx/ssl/{cert,private}

# Génération de la clé privée

# openssl genrsa -aes256 -out xmbox.key 4096

# Générer une demande de signature de certificat

# openssl req -new -key xmbox.key -out xmbox.csr

# Suppression de la passphrase

# cp xmbox.key xmbox.key.org

# openssl rsa -in xmbox.key.org -out xmbox.key

# rm xmbox.key.org

# Génération du certificat

# openssl req -x509 -nodes -sha256 -days 3650 -newkey rsa:2048 -in xmbox.csr -signkey xmbox.key -out

xmbox.crt

# Copie du certificat et de la clé dans les dossiers adéquates

# sudo mv xmbox.crt /etc/nginx/ssl/cert/

# sudo mv xmbox.key /etc/nginx/ssl/private/

# sudo chown nginx:nginx /etc/nginx/ssl/private/xmbox.key

# sudo chmod 400 /etc/nginx/ssl/private/xmbox.key

# rm xmbox.csr

Comme nous avons pu l’évoquer précédemment, nous intégrerons la prise en compte des certificats

dans une prochaine partie.

12

• Installation du gestionnaire de documents

L’ensemble des documents transitant sur notre XMBox sera donc géré par ownCloud. Son

installation est relativement simple :

# Création de l’arborescence de l’application

# sudo mkdir -p /var/www/owncloud

# cd /var/www/owncloud

# Téléchargement et installation de la dernière version d’ownCloud (7.0.4)

# sudo wget --no-check-certificate https://download.owncloud.org/community/owncloud-7.0.4.tar.bz2

# sudo tar xjf owncloud-7.0.4.tar.bz2

# cd owncloud

# sudo mv * ../../ && cd ../..

# sudo rm -rf owncloud*

# sudo mkdir data

# sudo chown -R www-data:www-data /var/www/*

# Redémarrage du serveur Nginx

# sudo service nginx restart

OwnCloud est désormais installé !

13

Afin de vous connecter, il est nécessaire de créer un administrateur (un indicatif indiquant la

complexité du mot de passe est à votre disposition). Il ne reste plus qu’à rajouter les éléments de

connexion à la base (username, password et owncloud sont les valeurs précédemment précisées).

14

• Un peu de sécurité dans ce monde de brutes

En accédant aux options d’ownCloud (admin -> Administration), un avertissement de sécurité nous

informe qu’il est vivement recommandé de configurer le serveur pour forcer l’utilisation du

protocole sécurisé HTTPS.

Nous allons donc forcer l’utilisation de celui-ci au sein du serveur web en remplaçant cette ligne

(dans le fichier /etc/nginx/sites-available/default) :

listen 80;

Par celles-ci :

listen 443 ssl;

ssl on;

ssl_certificate /etc/nginx/ssl/cert/xmbox.crt;

ssl_certificate_key /etc/nginx/ssl/private/xmbox.key;

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 5m;

Puis, après avoir redémarré nginx (sudo service nginx restart) nous allons alors forcer l’utilisation du

protocole sécurisé au sein de la configuration d’ownCloud (admin -> Administration) :

Il est également possible de rediriger l’ensemble des requêtes en direction de HTTP vers HTTPS en

rajoutant les lignes suivantes (toujours dans le fichier /etc/nginx/sites-available/default) et en

redémarrant le serveur web (service nginx restart) afin que l’ensemble des actions précédentes soit

pris en compte :

server {

listen 80;

rewrite ^(.*) https://$host$1 permanent;

}

Enfin, afin d’accroître la sécurité du système, nous allons également installer le logiciel Fail2ban.

Fail2ban parcourt les fichiers de log du serveur afin de détecter des tentatives de bruteforce dans les

mires d’authentification.

# Installation de fail2ban

# sudo apt-get install -y fail2ban

15

Par défaut, ownCloud ne produit aucun fichier de log. Il est donc nécessaire de modifier son fichier

de configuration afin d’activer les logs d’erreur afin que fail2ban soit en mesure de les interpréter.

Pour cela, il est nécessaire de rajouter les lignes suivantes au fichier /var/www/config/config.php :

'logtimezone' => 'Europe/Paris',

'logfile' => '/var/log/owncloud.log',

'loglevel' => '2',

'log_authfailip' => true,

OwnCloud n’étant pas en mesure de créer ce fichier par lui-même, il est donc nécessaire de la faire à

sa place ainsi que lui donner le droit d’y écrire :

# Création des fichiers de log

# sudo touch /var/log/owncloud.log && sudo chmod a+rw /var/log/owncloud.log

Maintenant que le fichier de log est créé avec les bons droits, il est nécessaire de s’attaquer à la

configuration de fail2ban en créant l’expression régulière qui va l’amener à appliquer sa contre-

mesure. Pour cela, il va falloir créer le fichier /etc/fail2ban/filter.d/owncloud.conf de la manière

suivante :

# sudo nano /etc/fail2ban/filter.d/owncloud.conf

[Definition]

failregex={"app":"core","message":"Login failed: user '.*' , wrong password,

IP:<HOST>","level":2,"time":".*"}

Expression régulière permettant de trouver toutes les tentatives de connexion échouées.

Dernièrement, afin d’indiquer à fail2ban cette nouvelle règle à prendre en compte, il est nécessaire

de la rajouter dans le fichier /etc/fail2ban/jail.conf :

[owncloud]

enabled = true

filter = owncloud

bantime = 5

port = https,http

logpath = /var/log/owncloud.log

maxretry = 3

« enabled » va permettre d’activer cette règle au redémarrage de fail2ban.

« port » va indiquer les protocoles impactés par cette règle

« logpath » va permettre d’indiquer à fail2ban le fichier de log à prendre en compte

« maxretry » quant à lui va spécifier le nombre de tentatives autorisé avant le blocage

Comme nous venons de le préciser, le redémarrage de fail2ban est nécessaire afin que cette nouvelle

règle soit prise en compte sudo /etc/init.d/fail2ban restart.

Il est à noter également que la version Enterprise permet de mettre en place une sécurité

supplémentaire grâce au chiffrement des données en AES-256.

16

5. Installation et configuration du Wi-Fi

La configuration du serveur web ainsi que du gestionnaire de document étant terminé, il est à

présent possible de configurer le réseau Wi-Fi de notre XMBox afin de la rendre autonome.

Afin de mettre en place notre réseau sans fil, nous nous sommes orientés vers le nano adaptateur

Edimax EW-7811UN. Petit, pas très cher et reconnu par les Raspbian ainsi que le Raspberry Pi, il ne

nous en a pas fallu plus pour confirmer notre choix.

Afin de vérifier que l’adaptateur Wi-Fi est correctement reconnu, branchez-le et tapez la commande

suivante : lsusb (commande permettant d’afficher les informations sur les périphériques USB).

Notre carte Wi-Fi est reconnue dès son branchement

Avant de rendre autonome notre XMBox, il est nécessaire d’installer certains paquets. Nous aurons

donc à rajouter HostAP permettant de créer des points d’accès sans fil, rfkill afin d’activer ou de

désactiver les périphériques sans fil ainsi que dnsmasq faisant office de serveur DHCP embarqué.

# Installation des composants indispensables

# sudo apt-get install -y hostapd hostap-utils iw bridge-utils rfkill

17

• Configuration de l’interface Wi-Fi

Afin de configurer l’interface Wi-Fi, nous allons modifier le fichier /etc/network/interfaces de la

manière suivante :

# Automatically brings up interfaces with ifup -a

auto lo

auto br0

# Loopback

iface lo inet loopback

# Keep eth0 as dhcp so it can connect to an existing router

# (Optional--I used this since I was configuring via SSH)

iface eth0 inet dhcp

# Bridge interface

iface br0 inet dhcp

bridge_fd 1

bridge_hello 3

bridge_maxage 10

bridge_stp off

bridge_ports eth0 wlan0

# Allow hotplug

allow-hotplug wlan0

allow-hotplug eth0

iface wlan0 inet manual

iface wlan0 inet manual

Puis redémarrez l’interface wlan0 afin que la nouvelle configuration soit prise en compte :

# sudo ifdown wlan0

# sudo ifup wlan0

18

• Configuration du point d’accès

A présent, nous allons créer configurer le point d’accès auquel nous viendrons nous connecter. Le

tout se passe dans le fichier /etc/hostapd/hostapd.conf :

# Interface précisée précédemment

interface=wlan0

bridge=br0

driver=rtl871xdrv

country_code=FR

ctrl_interface=wlan0

ctrl_interface_group=0

# Nom du réseau

ssid=XMBox

hw_mode=g

channel=1

wpa=3

# Mot de passe du réseau (au moins 20 caractères)

wpa_passphrase=ThisIsTheP@ssw0rd4Acc3ssMyN3tw0rk’(-

# Protocole de chiffrement à utiliser

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

wpa=2

auth_algs=1

rsn_pairwise=CCMP

beacon_int=100

auth_algs=3

macaddr_acl=0

wmm_enabled=1

eap_reauth_period=360000000

Puis, modifiez le fichier /etc/default/hostapd pour y intégrer la ligne suivante :

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Ensuite, pour régler quelques soucis de compatibilité, il sera nécessaire d’installer une version

différente du binaire /usr/sbin/hostapd :

# cd /usr/sbin

# sudo rm -f hostapd

# sudo wget http://dl.dropbox.com/u/1663660/hostapd/hostapd

# sudo chown root:root hostapd

# sudo chmod 755 hostapd

Pour enfin terminer par un redémarrage du service hostapd :

# sudo service networking restart

# sudo service hostapd restart

19

6. Vérification du bon fonctionnement

L’ensemble des configurations faites, il est maintenant possible de se connecter au réseau Wi-Fi

nouvellement créé et correspondant à notre XMBox. Celui-ci devrait apparaître dans la liste des

réseaux sans fils autour de vous :

Le réseau XMBox est maintenant accessible

Le mot de passe précédemment spécifié dans le fichier de configuration sera alors exigé afin

d’accéder au réseau :

Accès au réseau « XMBox » grâce au mot de passe spécifié dans le fichier de configuration

20

Une fois connecté au réseau, il est alors possible de se connecter à la XMBox afin d’accéder au

gestionnaire de fichier afin de partager l’ensemble des documents avec les utilisateurs connectés à

au réseau XMBox :

21

7. Références et liste du matériel

• Liste du matériel

Description Lien Prix

Raspberry Pi Model B+ (matos1) 32,78€

Boite pour Raspberry Pi Model B+ (matos2) 8,99€

Alimentation 5V (matos3) 8,29€

Adaptateur Wi-Fi (matos4) 12,18€

• Références

(1) http://www.ssi.gouv.fr/fr/menu/actualites/proteger-son-site-internet-des-cyberattaques.html

et

http://www.ssi.gouv.fr/fr/guides-et-bonnes-pratiques/recommandations-et-guides/securite-des-applications-

web/recommandations-pour-la-securisation-des-sites-web.html

(2) http://www.rts.ch/info/monde/1028047-une-cyberguerre-russo-estonienne-declenchee.html

(3) http://www.raspbian.org/

(4) https://fr.wikipedia.org/wiki/Carte_SD

(5) http://w3techs.com/technologies/history_overview/web_server

(6) http://owncloud.org/

(7) http://elinux.org/RPi_USB_Wi-Fi_Adapters

(matos1) http://www.amazon.fr/Raspberry-Pi-Model-Carte-

700MHz/dp/B00LPESRUK/ref=sr_1_1?s=computers&ie=UTF8&qid=1420471861&sr=1-1&keywords=Raspberry+Pi

(matos2) http://www.amazon.fr/NEW-Raspberry-Model-Case-

OneNineDesign/dp/B00M8ZEHIQ/ref=sr_1_6?s=computers&ie=UTF8&qid=1420471861&sr=1-6&keywords=Raspberry+Pi

(matos3) http://www.amazon.fr/Aukru%C2%AE-Chargeur-Alimentation-Raspberry-

mod%C3%A8le/dp/B00EZLBJ32/ref=sr_1_5?s=computers&ie=UTF8&qid=1420471861&sr=1-5&keywords=Raspberry+Pi

(matos4) http://www.amazon.fr/Edimax-EW-7811UN-Nano-Adaptateur-

sans/dp/B003MTTJOY/ref=sr_1_9?s=computers&ie=UTF8&qid=1420471861&sr=1-9&keywords=Raspberry+Pi

Merci à Yannick et Adrien pour la relecture !