Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
utilisateurs:lildadou:mediabunker [Le 03/12/2012, 18:13]
lildadou [Paramètrage des services d'amorçage]
utilisateurs:lildadou:mediabunker [Le 11/09/2022, 13:13] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Maverick ​installation media_center sécurité raid tutoriel BROUILLON}}+{{tag>Precise ​installation media_center sécurité raid tutoriel BROUILLON}}
 ---- ----
 ====== Installation d'un centre multimédia de salon sécurisé ====== ====== Installation d'un centre multimédia de salon sécurisé ======
Ligne 23: Ligne 23:
 Les 2 derniers points sont déjà relativement bien traités sur Internet, ce tutoriel se concentrera donc sur la première problématique. Même si le niveau de sécurité n'est pas optimum, il représentera malgré tout un niveau qui pourra dissuader un bon nombre de personnes malveillantes. Le concept vise à placer une grande partie du système sur un support chiffré. Seul le /boot sera accessible à l'​attaquant,​ votre machine sera donc vulnérable aux attaques de type [[http://​theinvisiblethings.blogspot.com/​2009/​10/​evil-maid-goes-after-truecrypt.html|evil maiden (en)]] (l'​attaquant accède à votre machine pour y placer un /boot corrompu qui interceptera la clé de déchiffrement de votre système de fichiers). Les 2 derniers points sont déjà relativement bien traités sur Internet, ce tutoriel se concentrera donc sur la première problématique. Même si le niveau de sécurité n'est pas optimum, il représentera malgré tout un niveau qui pourra dissuader un bon nombre de personnes malveillantes. Le concept vise à placer une grande partie du système sur un support chiffré. Seul le /boot sera accessible à l'​attaquant,​ votre machine sera donc vulnérable aux attaques de type [[http://​theinvisiblethings.blogspot.com/​2009/​10/​evil-maid-goes-after-truecrypt.html|evil maiden (en)]] (l'​attaquant accède à votre machine pour y placer un /boot corrompu qui interceptera la clé de déchiffrement de votre système de fichiers).
  
-Des solutions existent pour parer ces attaques mais ne serons pas mise en place dans un premier temps : +Des solutions existent pour parer ces attaques mais ne serons pas mise en place dans un premier temps :
   - La première solution consiste à placer le /boot sur un support qui ne sera pas accessible à l'​attaquant ; classiquement une clef USB que vous placerez sous surveillance constante. La machine sera toujours vulnérable à une attaque de type [[http://​theinvisiblethings.blogspot.com/​2009/​10/​evil-maid-goes-after-truecrypt.html|evil maiden (en)]], mais compliquera considérablement la tâche de l'​attaquant puisque celui-ci devra s'​attaquer au [[:​grub|GRUB]] ou au [[:​wiki:​glossaire#​BIOS]]. Il devient plus simple de placer un [[http://​fr.wikipedia.org/​wiki/​Keylogger|keylogger]] matériel sur le clavier.   - La première solution consiste à placer le /boot sur un support qui ne sera pas accessible à l'​attaquant ; classiquement une clef USB que vous placerez sous surveillance constante. La machine sera toujours vulnérable à une attaque de type [[http://​theinvisiblethings.blogspot.com/​2009/​10/​evil-maid-goes-after-truecrypt.html|evil maiden (en)]], mais compliquera considérablement la tâche de l'​attaquant puisque celui-ci devra s'​attaquer au [[:​grub|GRUB]] ou au [[:​wiki:​glossaire#​BIOS]]. Il devient plus simple de placer un [[http://​fr.wikipedia.org/​wiki/​Keylogger|keylogger]] matériel sur le clavier.
   - Une deuxième solution s'​appuie sur les puces dites [[http://​fr.wikipedia.org/​wiki/​Trusted_Platform_Module|TPM]]. Des mécanismes matériels entrent en scène pour s'​assurer que le [[:​wiki:​glossaire#​BIOS]] n'a pas été modifié, le [[:​wiki:​glossaire#​BIOS]] vérifie que le GRUB n'a pas été modifié, et le [[:​grub|GRUB]] vérifie que le /boot n'a pas été modifié. On obtient ainsi une chaine de confiance qui garanti que le système n'a pas été corrompu. Cette technique est complexe à mettre en place et la communauté du libre n'est pas encore enclin à promouvoir un système qui cachent aussi des effets secondaires pervers [[http://​www.gnu.org/​philosophy/​can-you-trust.fr.html|source]].   - Une deuxième solution s'​appuie sur les puces dites [[http://​fr.wikipedia.org/​wiki/​Trusted_Platform_Module|TPM]]. Des mécanismes matériels entrent en scène pour s'​assurer que le [[:​wiki:​glossaire#​BIOS]] n'a pas été modifié, le [[:​wiki:​glossaire#​BIOS]] vérifie que le GRUB n'a pas été modifié, et le [[:​grub|GRUB]] vérifie que le /boot n'a pas été modifié. On obtient ainsi une chaine de confiance qui garanti que le système n'a pas été corrompu. Cette technique est complexe à mettre en place et la communauté du libre n'est pas encore enclin à promouvoir un système qui cachent aussi des effets secondaires pervers [[http://​www.gnu.org/​philosophy/​can-you-trust.fr.html|source]].
Ligne 94: Ligne 94:
 Le chiffrement que nous utiliserons est l'​[[http://​fr.wikipedia.org/​wiki/​Rijndael|AES]]. Le chiffrage [[http://​fr.wikipedia.org/​wiki/​Serpent_%28cryptographie%29|Serpent]],​ même s'il est cryptographiquement plus sûr, est suffisamment lourd pour former un goulot d'​étranglement sur le débit des disques. Le chiffrement que nous utiliserons est l'​[[http://​fr.wikipedia.org/​wiki/​Rijndael|AES]]. Le chiffrage [[http://​fr.wikipedia.org/​wiki/​Serpent_%28cryptographie%29|Serpent]],​ même s'il est cryptographiquement plus sûr, est suffisamment lourd pour former un goulot d'​étranglement sur le débit des disques.
  
-Pour le container [[http://​www.k-tux.com/​luks-quelques-grammes-de-paranoia-pour-des-donnees-bien-protegees|LUKS]] en RAID, on va utiliser l'​option //​align-payload//​ (qui permet de modifier la où commence les blocs de données du container) pour aligner le container avec notre RAID. Par défaut cette valeur est de 8 (secteurs x 512o = 4Ko) que nous plaçons à 512. +Pour le container [[http://​www.k-tux.com/​luks-quelques-grammes-de-paranoia-pour-des-donnees-bien-protegees|LUKS]] en RAID, on va utiliser l'​option //​align-payload//​ (qui permet de modifier la où commence les blocs de données du container) pour aligner le container avec notre RAID. Par défaut cette valeur est de 8 (secteurs x 512o = 4Ko) que nous plaçons à 512.
 La formule optimale est : //​(chunk_size/​512o)*qt_data_disk//​. Un RAID5 de 3 disques aura une valeur de qt_data_disk de 2 un RAID0 de 3 disques aura une valeur de 3. Pensez à adapter cette valeur si vous avez personnalisé la taille du chunk de vos RAIDs. La formule optimale est : //​(chunk_size/​512o)*qt_data_disk//​. Un RAID5 de 3 disques aura une valeur de qt_data_disk de 2 un RAID0 de 3 disques aura une valeur de 3. Pensez à adapter cette valeur si vous avez personnalisé la taille du chunk de vos RAIDs.
 <​code>​ <​code>​
Ligne 102: Ligne 102:
 </​code>​ </​code>​
  
-Vous pouvez maintenant déverrouiller les conteneurs [[http://​www.k-tux.com/​luks-quelques-grammes-de-paranoia-pour-des-donnees-bien-protegees|LUKS]] pour obtenir vos partitions mappées dans /​dev/​mapper/​ : +Vous pouvez maintenant déverrouiller les conteneurs [[http://​www.k-tux.com/​luks-quelques-grammes-de-paranoia-pour-des-donnees-bien-protegees|LUKS]] pour obtenir vos partitions mappées dans /​dev/​mapper/​ :
 <​code>​ <​code>​
 cryptsetup luksOpen /dev/sda3 unlocked-swapa cryptsetup luksOpen /dev/sda3 unlocked-swapa
Ligne 276: Ligne 276:
 </​code>​ </​code>​
 ===== Installation des services mediacenter ===== ===== Installation des services mediacenter =====
 +Nous avons maintenant une plateforme qui démarre. Nous allons transformer cette brique chiffrée en mediacenter fonctionnel.
 +
 +Script d'​installation rapide:
 +  * ssh, screen: Pour le tâche d'​administration à distance
 +  * fglrx: Pour l'​accélération matérielle
 +  * xbmc, xbmc-wiiremote:​ Pour le multimédia et la prise en charge de la wiimmote
 +  * deluge-web: Client bittorrent et son interface web
 +  * nginx: Front-end Web performant pour tout nos services accessible depuis le Web
 +  * php5-fpm: Pour d'​autre service Web
 +  * python-pip: Pour installer Flexget
 +  * pgld: Pour filtrer les communications vers des machines indésirables (sniffer, botnet, hadopi, ...)
 +  * smartmontools:​ pour le monitoring des disques durs
 +  * postfix, opendkim: pour l'​envoi de mail (notamment pour prévenir des pannes détectés par smartmontools)
 +  * dnssec: pour une résolution sans faille (notamment pour que opendkim arrête de nous insulter)
 +  * spamassin, spamass-milter:​ pour recevoir des mails
 +
 +<​code>​
 +add-apt-repository ppa:​wsnipex/​xbmc-xvba
 +add-apt-repository ppa:​nginx/​development
 +add-apt-repository ppa:​deluge-team/​ppa
 +add-apt-repository ppa:​jre-phoenix/​pgl-experimental
 +apt-get update
 +apt-get autoremove transmission-gtk
 +apt-get install ssh screen \
 +fglrx xbmc-standalone xbmc-eventclients-wiiremote \
 +nginx-full php5-fpm php5-gd php5-mysql mysql-server mysql-client \
 +deluged deluge-web python-pip pgld
 +pip install flexget
 +# Copier les script dans /​etc/​init.d/​
 +update-rc.d deluge-daemon defaults
 +update-rc.d xbmc-wiiremote defaults
 +</​code>​
 +<file - /​etc/​init.d/​deluge-daemon></​file>​
 +<file - /​etc/​init.d/​xbmc-wiiremote></​file>​
 +<file - /​etc/​nginx/​sites-available/​mediabunker></​file>​
 +
 +A virer:
   - Remplacer les clef SSH. Générer de nouveaux groupes d'​échanges Diffie-Hellman :   - Remplacer les clef SSH. Générer de nouveaux groupes d'​échanges Diffie-Hellman :
 <​code>​ssh-keygen -G candidates -b 4096</​code>​ <​code>​ssh-keygen -G candidates -b 4096</​code>​
Ligne 312: Ligne 349:
 apt-get install nginx-full apt-get install nginx-full
 </​code>​ </​code>​
-<file - /​etc/​nginx/​sites-available/​transmission-web> +<file - /​etc/​nginx/​sites-available/​mediabunker></​file>​
-# Redirection HTTP vers HTTPS +
-server { +
- listen 0.0.0.0:​80;​ +
- add_header Cache-Control "​public,​ must-revalidate";​ +
- access_log /​var/​log/​nginx/​transmission-proxy.access;​ +
- error_log /​var/​log/​nginx/​transmission-proxy.log;​ +
- server_name transmission.votre-domaine.net;​ +
-  +
- location / { +
- if ($host ~* ^(transmission\.votre-domaine\.net)$ ) { +
- rewrite ​ ^/​(.*)$ ​ https://​transmission.votre-domaine.net/​$1 permanent;​ +
-+
- return 444; +
-+
-+
- +
-server { +
- ### server port and name ### +
- listen 0.0.0.0:​443 ssl; +
- listen [votre:​ip:​v6]:​443 ssl; +
- server_name transmission.votre-domaine.net;​ +
- if ($host !~* ^(transmission.votre-domaine.net)$ ) { return 444; } #URL non matché par le domaine +
- +
- access_log /​var/​log/​nginx/​transmission-proxy.access;​ +
- error_log /​var/​log/​nginx/​transmission-proxy.error;​ +
- +
- ssl on; +
- ssl_certificate /​etc/​ssl/​certs/​transmission.votre-domaine.net.4096.startssl.crt;​ +
- #​ssl_certificate /​etc/​ssl/​certs/​transmission.votre-domaine.net.4096.crt;​ +
- ssl_certificate_key /​etc/​ssl/​private/​transmission.votre-domaine.net.4096.key;​ +
- ssl_dhparam /​etc/​ssl/​private/​transmission.dh2048.pem;​ +
-  +
- ### Add SSL specific settings here ### +
- keepalive_timeout 60;​ +
- ssl_session_cache shared:​SSL:​10m;​ +
- ssl_session_timeout 5m;​ +
- +
- ###  Limiting Ciphers ### +
- ssl_ciphers DHE-RSA-AES256-SHA:​DHE-DSS-AES256-SHA:​AES256-SHA;​ +
- #​ssl_ciphers AES256-SHA;​ +
- ssl_prefer_server_ciphers on;​ +
- ssl_protocols TLSv1;​ +
- +
- add_header Cache-Control "​public,​ must-revalidate";​ +
- add_header Strict-Transport-Security "​max-age=2592000;​ includeSubdomains";​ +
- add_header Front-End-Https on; +
- +
- location / { +
- proxy_pass http://​localhost:​9091/;​ +
- proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; +
- +
- ### Set headers #### +
- proxy_set_header Host $host; +
- proxy_set_header X-Real-IP $remote_addr;​ +
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;​ +
- +
- ### Most PHP, Python, Rails, Java App can use this header ### +
- proxy_set_header X-Forwarded-Proto https; +
- +
- ### By default we don't want to redirect it #### +
- proxy_redirect off;​ +
-+
-+
-</​file>​+
  
 [[http://​wiki.cchtml.com/​index.php/​Ubuntu_Maverick_Installation_Guide#​Installing_Proprietary_Drivers_a.k.a._Catalyst.2Ffglrx|Activer l'​accélération matérielle pour ATI (obsolète)]] [[http://​wiki.cchtml.com/​index.php/​Ubuntu_Maverick_Installation_Guide#​Installing_Proprietary_Drivers_a.k.a._Catalyst.2Ffglrx|Activer l'​accélération matérielle pour ATI (obsolète)]]
Ligne 398: Ligne 371:
 On ne peut plus convertir une grappe RAID de niveau 0 vers un autre niveau atteignable (niveaux 5 et 6, par exemple). Je vous propose d'​envoyer un paquet de café d'​arabica de Colombie aux développeurs de mdadm accompagné d'une requête d'​ajout de fonctionnalité (ou plutôt de correction de regression par rapport à //​raidreconf//​). On ne peut plus convertir une grappe RAID de niveau 0 vers un autre niveau atteignable (niveaux 5 et 6, par exemple). Je vous propose d'​envoyer un paquet de café d'​arabica de Colombie aux développeurs de mdadm accompagné d'une requête d'​ajout de fonctionnalité (ou plutôt de correction de regression par rapport à //​raidreconf//​).
  
-Admettez qu'il serait plutôt cocasse de sauvegarder nos données si durement protégées... ​+Admettez qu'il serait plutôt cocasse de sauvegarder nos données si durement protégées...
   - [[utilisateurs:​lildadou:​mediabunker#​nettoyage_des_support_physique|Commencer par neutraliser cryptographiquement votre disque de sauvegarde]]   - [[utilisateurs:​lildadou:​mediabunker#​nettoyage_des_support_physique|Commencer par neutraliser cryptographiquement votre disque de sauvegarde]]
   - [[utilisateurs:​lildadou:​mediabunker#​raid_luks_lvm|Créez-y ensuite un conteneur LUKS (sans vous préoccuper de l'​alignement ou du partionnement)]]   - [[utilisateurs:​lildadou:​mediabunker#​raid_luks_lvm|Créez-y ensuite un conteneur LUKS (sans vous préoccuper de l'​alignement ou du partionnement)]]
  • utilisateurs/lildadou/mediabunker.1354554808.txt.gz
  • Dernière modification: Le 03/12/2012, 18:13
  • par lildadou