Article rédigé par le lecteur Sébastien DELPORTE
Hello à tous,
Voici mon second post cet excellent blog que je suis depuis un petit moment.
Afin de nous préparer dignement à l’arrivé de DropCenter, je vous propose de nous installer un serveur de donnée sécurisé.
L’objectif est donc de recycler un vieux PC pour en faire un serveur de donnée. J’entends par là que celui-ci doit pouvoir supporter un crash disque sans perte de donnée, qu’il possède un PHP,MySQL …. enfin comme c’est un serveur il n’y aura ni clavier, souris et écran donc l’administration se fera à distance et les services enverrons des mails en cas de problème.
Personnellement j’ai un vieux pentium 2 core avec 4gb de ram qui suffira amplement pour cette utilisation mais n’importe quel PC fera l’affaire.
Puis j’ai récupéré tous mes vieux disques qui trainaient partout.
Un peu de théorique (juste 30s)
Pour sécuriser des données rien de mieux que de monter un RAID…
Non non ici pas de gendarmes, mais simplement une redondance de données et un calcul de parité entre les disques pour sécuriser les données :
Raid 1 : Les données sont écrites à l’identique sur 2 disques donc si il y en a un qui tombe en panne tout va bien
Ce raid protège donc les données et à l’avantage d’accroitre la vitesse en lecture ( la tête est lue sur 1 disque et le reste du corps sur l’autre)
- Perte de 50% du volume utile ( si j’ai deux disques de 1To donc 2To au total seul 1To est utilisable pour les données)
Raid 5 : Les données sont réparties sur l’ensemble des disques et une partie parité est créée pour sécuriser la grappe en cas de panne d’un des disques
- Dans le cas du raid logiciel ou semi matériel ( la majorité des contrôleurs grand public), la consommation de ressource est plus importante
- En cas de crash, il faut remette un disque et reconstruire la grappe (ce qui peut prendre du temps). Sinon les données sont toujours accessibles mais avec temps d’accès très dégradé.
- La formule du calcul de l’espace utile (là vous stockez vos données) est (X-1)*C où X est le nombre de disque et C la capacité des disques. Bon ok un exemple dans le cas de 3 disques de 1to on a 2to utile donc 66% d’espace utile (au lieu de 50%)
Pour ceux qui aime le détail : http://fr.wikipedia.org/wiki/RAID_(informatique)#Les_diff.C3.A9rents_types_de_syst.C3.A8mes_RAID
Pour les paranoïaques : le Spare
Cela consiste à mettre un disque en réserve dans la grappe du raid, si un disque crash le disque en spare prend automatiquement sa place.
Les choix :
L’objectif étant de récupérer le matériel, j’ai choisi linux pour OS (Ubntu server), le contrôleur de ma carte mère ne gérant pas le RAID j’ai choisi de faire un raid logiciel.
(En fait dans tous les cas j’aurais choisi un raid logiciel pour m’affranchir de la partie matériel car les contrôleurs ne sont pas forcément compatibles entre eux)
La pratique :
J’ai plein de disque mais sont-ils tous bon ?
Ben oui et non … nous devons connaître leur état de santé pour savoir le niveau de risque pris.
La majorité des disques durs sont équipés de la technologie dites « smart » qui permet de connaitre leur état de santé.
Mon poste de travail étant sous Windows voici la manip pour tester vos disques. Je les insèrent dans mon Dock Usb.
Puis j’utilise le soft suivant : Chirtal diskinfo
Lancez le soft (diskinfo.exe) puis regardez l’état de santé de votre disque :
Dans la copie d’écran on voit que mon disque a bien vécu, donc personnellement je vais le mettre dans la grappe raid mais les autres disques devront être en bonne santé.
Voila résultat des courses: je recycle 2 320go, 2 disques de 1 to et 3 disque de 80 go.
Donc je vais installer:
- 1. L’os sur le 320 go
- 2. un disque de 320 go pour les données non sécurisé
- 3. un raid 5 sur les 80go pour les documents
- 4. un raid 1 sur les 1to pour les photos et vidéos ( je pourrais l’étendre plus tard en raid 5 si je décide d’acheter un nouveau disque)
Pour le billet j’ai simplifié les explications avec un disque OS de 320go Hitachi et 1 raid 1 sur 2 disques de 1to western digital
Préparer l’installation du serveur :
Au delà du montage dans la tour, il faut préparer l’os.
J’ai pris le Ubuntu serveur car je n’ai pas besoins d’interface graphique sur le serveur de toute façon il n’aura pas d’écran ni de clavier à part pour phase d’installation de l’os.
Mais je vous vois pâlir : il va falloir tout faire en ligne de commande ….
Meuhnon jdéconne !! Bon ok pas tant que ça, il vas falloir vous flaggeller un peu au début et puis on vas utiliser une interface d’administration via un navigateur (ouf !).
Pour préparer l’installation de l’OS:
- 1. téléchargez la version de Ubuntu server (personnellement vu que la 13 arrive j’ai pris la 12.10 et pas un long term support)
- 2. téléchargez UnetBootIn usb creator : http://www.clubic.com/telecharger-fiche282172-unetbootin.html
- 3. insérez votre clès USB,lancer linux live.
- 1. Etape 1 : sélectionnez votre clès
- 2. Etape 2 : cliquez sur « … » puis sélectionner le download de Ubuntu server
- 3. Etape 5 : cliquez sur ok
une fois que l’installation sur la clès USB est fini, il n y a plus qu’a commencer en l’insérant dans le server et en bootant dessus.
L’installation du serveur
Même si l’installation est relativement simple je vous ais pris les étapes cruciales en copie d’écran.Au-delà de du clavier, de l’écran connectez votre serveur à internet, c’est crucial pour les mises à jour. La 1ere étape comme disait ma grand-mère est la principale quand on rencontre une nouvelle fille » donc on se trompe pas et on boote sur la clès.
la clés boot, comme nous sommes là pour installer ubuntu server, on choisi « installer ubuntu server »
L’installation démarre, on choisi la langue et les setting regionals
Puis arrive un truc excellent la détection de clavier … j’étais bleuffé bon ok c’est simple mais super pratique
la distribution charge les modules
l’installation se poursuit par :
- le nom de la machine. Dans l’exemple « thor » (l’ensemble des machines de mon réseau porte un nom de personnage de Marvel).
- Le nom de l’utilisateur qui sera créé et son mot de passe.
- Sur le chiffrement du dossier personnel, j’ai répondu non car les fichiers ne seront pas stockés dans ce dossier de plus mes fichiers ne seront pas chiffrés, je ne suis pas la NASA.
On arrive à un moment important, le choix du partitionnement du disque.
L’objectif est de créer un disque système et des disques de donnée en raid. Je consacre donc un disque entier au système d’exploitation. Puis je choisis donc le disque de 320go pour le système, si jamais vous avez peur de vous tromper dans vos disques ne branchez que votre disque système. Les autres disques ne seront pas utilisés pendant l’installation.
le système vous montre les partitions crées sur le disque. Elles sont aux nombres de deux :
- la partition qui recevra les fichiers
- et une partition de swap qui recevra les fichiers d’échanges avec la RAM (nous n’y auront pas accès après l’installation).
L’installation va maintenant se poursuivre avec l’installation et la mise à jour des paquets. Si vous avez un proxy indiquez-le, ce qui n’est pas mon cas
Pour plus de sécurité, je vous conseil d’installer automatiquement les mises à jour de sécurité, l’objectif étant d’avoir le moins d’administration à faire.
On va maintenant choisir les fonctions de notre serveur :
Il nous faut un PHP,MySQL,Apache pour l’outil d’admin en mode web et pour l’installation de notre futur dropcenter
- Un serveur OpenSSH, afin d’avoir un accès à distance au serveur pour ne pas avoir un clavier et un écran connectés en permanence à celui-ci
- Un mail server, qui nous servira de relais SMTP pour que le serveur puisse nous pousser des mail d’alerte sur son état
- Un serveur Samba car en attendant Drop box, je vais créer des répertoires partagés et synchronisés vers mes PC sous windows.
En fonction de vos besoins vous pouvez cocher d’autre case, mais l’idée est de cocher que le strict nécessaire pour ne pas saturer les serveur pour rien (ne vous inquiétez pas via la commande sudo tasksel
vous pouvez avoir de retour accès à cet écran ou d’autre moyen seront détaillés plus loin pour installer les softs dont on a besoin).
Voila on arrive à la fin de l’installation, il ne nous reste plus qu’à installer l’outil de boot Grub. Si vous n’avez jamais installé de linux et que vous n’avez rien d’autre sur le disque (c’est le cas si vous avez suivit le tuto ) répondez oui.
La connexion SSH, redémarrage, mis à jour de 1ere installation
Bien, je suis toujours avec mon serveur connecté avec un écran et un clavier, nous allons vérifier la connexion à distance pour pouvoir libérer notre serveur.
Le serveur SSH permet d’ouvrir une console à distance sur un serveur unix/linux. Il y a donc une partie server que nous avons installé et une partie cliente. Pour la partie cliente, celle-ci dépend de votre OS donc voici des clients pour les différents type de machine :
- Windows : putty
- Android : Juice
- Linux : intégrée dans toutes les distributions
Voici un exemple de connexion avec putty :
Acceptez le certificat et votre fenêtre de loggin s’ouvre, connectez vous.
Ayant sélectionné la mise à jour automatique des paquets en cas de patch sécurité. On voit dans la copie d’écran ci-dessus que les paquets se sont mis à jour et que donc je dois redémarrer le serveur.
Cela tombe bien je vous propose de mettre à jour un fichier de ressource pour nous faciliter la vie, cette étape est facultative mais rend les manips plus simple
Copier collez cette suite dans votre fichier .bashrc : nano .bashrc
export EDITOR='nano'
/## Couleurs pour le prompt
DEFAULT=”\[33[00m\]”
BLACK=”\[33[30m\]”
RED=”\[33[31m\]”
GREEN=”\[33[32m\]”
ORANGE=”\[33[33m\]”
BLUE=”\[33[34m\]”
MAGENTA=”\[33[35m\]”
CYAN=”\[33[36m\]”
WHITE=”\[33[37m\]”
## Effets de texte (défaut, gras, souligné)
export DEF=”33[0;0m”
export BOLD=”33[1m”
export UNDER=”33[4m”
#commande pour redemarer ou eteindre
alias restart=’sudo shutdown 0 -r -t0′
alias arret=’sudo shutdown 0 -h -P -t 0′
#alias pour mettre en forme et en couleur
alias dir=’dir –color=auto’
alias egrep=’egrep –color=auto’
alias fgrep=’fgrep –color=auto’
alias grep=’grep –color=auto’
alias ls=’ls -l –color=auto’
alias vdir=’vdir –color=auto’
alias cp=’cp -v -i’
alias df=’df -h -T’
alias du=’du -h’
alias find=’find -L’
alias mv=’mv -v -i’
alias rm=’rm -v’
alias ll=’ls -F -l -h’
alias l=’ls -F -C’
alias md=’mkdir -p -v’
alias e=’$EDITOR’
alias se=’sudo $EDITOR’
alias ss=’sudo su’
alias s=’sudo’
## Afficher le prompt de root et $USER de manières différentes
if [ `whoami` = root ]; then
PS1=”$GREEN\u@\h$CYAN:\W$RED\$ $DEFAULT”
else
PS1=”$GREEN\u@\h$CYAN:\W$ORANGE\$ $DEFAULT”
fi
alias inpkg=’sudo apt-get install’
alias rmpkg=’sudo apt-get autoremove –purge’
alias sepkg=’apt-cache search’
alias lstar=’tar -tf’
alias mktar=’tar -cvf archive.tar’
alias untar=’tar -xvf’
function me {
sudo chown -R $USER $@
sudo chgrp -R $USER $@
}
function root {
sudo chown -R root $@
sudo chgrp -R root $@
}
function up {
echo -e “${BOLD}Mises à jour de la base de donnée …$DEF”
sudo updatedb
echo -e “${BOLD}Mises à jour des paquets …$DEF”
sudo dpkg –configure -a
sudo apt-get install -f
sudo apt-get check -qq
sudo apt-get update -qq
sudo apt-get upgrade
sudo apt-get autoremove –purge
sudo apt-get clean -qq
sudo apt-get autoclean -qq
}
Sauvez en tapant ctrl-o
puis quittez ctrl-x
, taper . .bashrc
(n’oublier pas le premier .) pour prendre ne compte le nouveau fichier.
Tapez la commande pour redémarrer : restart
(ou shutdown 0 –r –t0
si vous n’avez pas mis votre bashrc à jour).
On fini par mettre à jour la distribution avec les derniers patch :
si vous avez mis votre bashrc à jour tapez up
ou sinon :
sudo apt-get update && sudo apt-get upgrade
La commande update met à jour la liste des paquets.
La commande upgrade permet d’installer les versions les plus récentes de tous les paquets de la version d’Ubuntu en cours.
L’installation webmin :
Bien nous allons installer webmin qui permet d’administrer le serveur via une interface web pour minimiser les lignes de commande.
Le site web de webmin : http://www.webmin.com/
la documentation Ubuntu liée : http://doc.ubuntu-fr.org/webmin qui contient ce que nous allons faire en beaucoup plus détaillé car elle traite tous les cas
Première étape vérifier que l’installation de Apache c’est bien passé, dans un bowser accédez à l’URL suivante : http://thor – remplacer thor par le nom de votre machine (voir étape de l’installation)
Si ce n’est pas le cas lancer le script de restart de apache : /etc/init.d/apache2 restart
Bien webmin n’est pas dans le dépôt logiciel de Ubuntu,il faut d’abord installer le lien vers le dépôt de webmin :
- Ajouter la clé GPG du dépôt à votre système en saisissant dans le terminal SSH
sudo wget -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add –
(attention n’oubliez pas le tiret à la fin de la comande) - modifier votre fichier de référence de vos pour y ajouter le dépôt suivant:Accèder au fichier
/etc/apt/sources.list
en tapant :sudo nano /etc/apt/sources.list
(se /etc/apt/sources.list
)à la fin du fichier ajouter le dépot :
#ajout du dépot de webmin
deb http://download.webmin.com/download/repository sarge contrib
puis
ctrl-O
etctrl-x
pour sauver et sortir - On recharge les paquets et on installe
sudo apt-get update
sudo apt-get install webmin
ou
inpkg webmin
(si vous avez mis le bashrc à jour) - On change le mot passe root de webminsudo /usr/share/webmin/changepass.pl /etc/webmin root <<votre_mot_de_passe>>
Et voila un petit test de connexion avec https://thor:10000 (remplacer thor par le nom de votre machine, ignorer l’avertissement du certificat Https) :
Installation du serveur mail satellite :
Vous pouvez passer cette étape mais elle apporte un confort non négligeable au serveur.
Bien l’idée maintenant est : un serveur doit être surveillé. Il ne doit pas être nécessaire de ce connecter à celui ci pour savoir qu’il a un problème.
Tous les mails internes du serveur doivent être re-dirigés vers une messagerie internet, ce qui permet pour les services critiques de recevoir les alertes de fonctionnement.
Pour envoyer des emails nous utilisons le serveur Postfix qui sera configuré en relais SMTP appelé serveur satellite.
On lance la configuration de base : sudo dpkg-reconfigure postfix
1. La première question correspond justement au type d’installation de Postfix que vous souhaitez effectuer, ici Système Satellite.
2. La question suivante permet de choisir le nom suivant le symbole @ pour les expéditeurs de vos courriels. Choisissez donc ici le nom de votre machine par exemple (qualifié, c’est-à-dire machine.nomdomaine.org par exemple). Dans mon cas cela donne thor.marvel.com
3. Ensuite, cette question est le point clé de l’assistant, elle permet de saisir le SMTP de votre FAI. Donc, mettez l’adresse du serveur smtp. Si vous devez préciser un port différent du port 25, ajouter : puis le numéro du port. Par exemple, si je dois utiliser le port 1234 je doit mettre smtp.serveur.org:1234. J’utilise pour ma part j’utilise le serveur STMP de google : smtp.gmail.com: 587.
4. Le courrier de root doit être envoyé en alias sur un autre utilisateur, saisissez donc ce nom d’utilisateur à la question suivante (au quotidien, lorsque l’utilisateur root du système enverra un mail, il sera transféré sous le nom de l’utilisateur choisi ici). Donc mettez votre compte pour que les emails de root soit directement renvoyer vers votre boite mail, ou expédiés par votre boite mail.
5. Ensuite, choisissez les noms d’hôtes qui seront acceptés lorsqu’un utilisateur local souhaitera envoyer un courrier (le nom de votre machine devrait suffire ici).
6. Répondez Oui à la question « Forcer des mises à jour synchronisées de la file d’attente des courriels ? »
7. Il est fortement recommander de n’accepter les envois de courrier que sur la boucle locale, à savoir « 127.0.0.0/8″ pour la question suivante.
8. La taille maximale des boites aux lettres peut être mise à 0, si vous êtes sûr des utilisateurs de votre machine.
9. Le caractère « + » est très bien pour signifier une adresse locale, laissez donc ce champ à la question suivante
10. Enfin, tous les protocoles Internet méritent d’être activés, choisissez donc « tous » à la question suivante.
Bien maintenant que la configuration de base est effectuée, il ne reste plus que quelques fichiers à modifier : Dans /etc/postfix/main.cf
(pour mémoire la commande d’édition : sudo nano /etc/postfix/main.cf
ou se /etc/postfix/main
) ajouter en fin de fichier les lignes suivantes :
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_enforce_tls = yes
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_generic_maps = hash:/etc/postfix/generic
Voila ce que cela donne, pensez aussi à vérifier, la ligne relayhost.
Maintenant nous créons le fichier qui contiendra le password pour le server STMP, créer le fichier /etc/postfix/sasl/sasl_passwd
( sudo nano /etc/postfix/sasl/sasl_passwd
) et ajouter : smtp.serveur.org nom_utilisateur:mot_de_passe
(example dans mon cas smtp.google.com toto@gmail.com:toto)
Créons le fichier de mapping utilisateur adresse email externe: /etc/postfix/generic
(sudo nano /etc/postfix/generic
)
sebastien toto@gmail.com
Maintenant il ne reste plus à faire prendre en compte à Postfix la nouvelle configuration :
- 1. Mettons à jour les certifcats :
sudo update-ca-certificates
sudo c_rehash /etc/ssl/certs/
- 2. Prenons en compte le mot de passe STMP et le mapping des utilisateurs :
sudo postmap /etc/postfix/sasl/sasl_passwd
sudo postmap /etc/postfix/generic
- 3. On redémarre le service :
sudo /etc/init.d/postfix restart
- 4. Un petit test d’email pour être sur :
echo "test" | mail -s "Sujet Test" toto@gmail.com
Installation du RAID :
Nous voici à la partie coeur du tutorial, enfin vous me direz …. mais regardez le chemin accompli, vous avez un serveur prêt et propre à faire fonctionner tous les services dont vous avez besoins. Maintenant nous allons le sécuriser.
Le Logiciel MDADM permet de monter un raid logiciel sous linux et au miracle il existe un module webmin pour le paramètrer en avant donc pour créer notre RAID 1 sur 2 disques de 1to :
- 1. installation de MDADM et refresh de webminon installe :
sudo apt-get install mdadm
(ouinpkg mdadm
) puis aller dans webmin rafraichir les modules utilisés (rafraichissez la page après l’opération) - 2. Création des partitions sur les disques dans webmin avec le type linux raid On s’occupera de Disque B et C qui serviront pour notre raid 1 de To, mais la manipulation est la même pour un Raid 5 sur 3 disques. Sur chaque disque il faut créer une partition de type linux raid.
- Voila faites de même pour le 2eme disque.
- 3. création du raid dans webminCela va se passer dans Webmin, sous l’entrée Matériel->linux raid.
Puis Sélectionnez votre type de raid et créer le. A noter que les notifications sont envoyées à root, si vous avez fait la configuration du serveur mail les notifications vont vous arriver sur votre mail internet.
Puis sur l’écran suivant, noter le nom du dispositif, ici
/dev/md0
(il nous servira plus tard). Sélectionnez les partitions du raid (carré rouge) et si besoins une partition de spare (carrè bleu), ici j’ai mis mes deux partitions de 1to précédemment créer en linux raid. - Voici le résultat :
- 4. formatage du disque et création du point de montage :Dans un terminal, il faut formater le disque md0 ( ou le nom du disipostif raid) :
sudo mkfs -t ext4 /dev/md0
Maintenant créons le point de montage automatique. En premier lieu le répertoire de montage :sudo mkdir /mnt/data
(ici je nomme data le répertoire qui correspondra à mon raid). Puis allez dans dans webmin Système->Montages disques et réseaux, sélectionnez le type de file system ext4 puis cliquez sur ajouter montage - 5. mise à jour des autorisations sur Data,l’idée est de créer un groupe Data qui aura les droits en lecture/écriture sur le répertoire data. Afin que l’ensemble des utilisateurs de la famille puissent y déposer leurs fichiers.Dans webmin aller dans système->utilisateur et groupe, puis ajoutez le groupe dataIndiquez le nom du groupe et mettez votre utilisateur dedans
Puis sur un terminal :
chgrp data /mnt/data
, puischmod +775 /mnt/data.
Voila tous ceux qui sont dans le groupe data auront accès à votre raid, oui mais bon faut il y avoir accès ….
Samba
Allons danser avec Samba pour avoir accès depuis notre fenêtre préférée. Houlà je fatigue … nous allons donnée accès à un répertoire de notre raid depuis windows. Dans webmin, Cliquez dans le menu sur serveur->Partage de fichiers Windows avec Samba puis sur l’icône « réseau windows »
Mettez votre groupe de travail windows pour ma part MARVEL (si vous ne savez pas ce que c’est laissez WORKGROUP) et sauvez
Pour synchroniser vos comptes unix avec vos comptes samba comme cela quand je crée le compte de mon épouse (avec le groupe data), elle aura automatiquement les accès au répertoire partagé.
Sauvegardez puis cliquez sur créer un nouveau fichier partagé : Entrez le nom du partage, le répertoire à créer physiquement, j’ai mis le groupe data avec des permissions à 775 comme précédemment comme cela tous les membres de data pourront avoir accès au répertoire.
Puis dans le partage document cliquez sur Droit et accès de fichier:
Forcer le groupe data et les autorisations à 775 afin que tous les nouveaux fichiers et répertoires soient créés pour tous les utilisateurs de data
Sauvegarder puis enfin dans
Cochez à oui inscriptible
S.M.A.R.T on linux
Facultatif : Aller encore une petite étape pour renforcer la sécurité des disques du serveur. Vous vous souvenez au début du tuto je vous fais vérifier les disques avec smart. Nous allons l’installer et nous faire envoyer des alertes sur les disques par mail afin d’anticiper tous problèmes.
Installer le paquet : apt-get install smartmontools
Rafraichissez les modules de webmin puis la page webmin
Aller dans Matériel==>SMART Drive Status : vous pouvez voir l’état de vos disques
Maintenant pour que le service démarre automatiquement, éditez le fichier /etc/default/smartmontools (se /etc/default/smartmontools) et décommenter start_smartd=yes (enlevé le # au début de la ligne). Puis démarrer le service en tapant : sudo /etc/init.d/smartmontools start
Le service est configuré pour faire des tests régulièrement et en cas de warning envoyer un email à root, si vous avez configuré le serveur mail dans le tuto vous recevrez un email sur votre compte.
the end
Et voila je m’arrête, si vous être preneur la prochaine fois je monte le FTP avec accès sur le web (donc j’ajoute de la sécurité sur le serveur) et je monte un serveur DLNA pour mater des films un truc plus fun enfin !!!!.
Après avoir lu avec beaucoup d’intérêt ton article, pourrais-je te poser une question?
Voilà, j’ai fait deux, trois recherches sur le net et je suis tombé sur le BitTorrent SyncApp.
http://blog.studiovitamine.com/actualite,107,fr/sync-app-de-bittorent-un-cloud-communautaire-peer-to-peer,304,fr.html?id=1158
J’ai testé et c’est vraiment génial. N’arriverait-on pas au même résultat en un minimum de temps?
bonjour, un grand merci pour ton infos mais je trouve également que c’est trop long surtout pour les novices quoi! merci quand même!
laura
Merci.
Je garde ça sous le coude.
Bonjour,
Super tuto ! Il manque juste une partie expliquant l’installation du module NFS pour la lecture des films sur XBMC… Du coup je suis livré à moi même et je galère 😉