PROJET AUTOBLOG


Idleman

source: Idleman

⇐ retour index

[Billet invité] Construire un serveur de donnée pour préparer l’arrivée de DropCenter

dimanche 12 mai 2013 à 12:52

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

tuto nas 1

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)

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

tuto nas 2

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 :

tuto nas 3

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é.

tuto nas 4

Voila résultat des courses:  je recycle 2 320go, 2 disques de 1 to et 3 disque de 80 go.

Donc je vais installer:

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:

tuto nas 5tuto nas 6

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.
tuto nas 7
la clés boot, comme nous sommes là pour installer ubuntu server, on choisi « installer ubuntu server »
tuto nas 8
L’installation démarre, on choisi la langue et les setting regionals
tuto nas 9tuto nas 10
Puis arrive un truc excellent la détection de clavier … j’étais bleuffé  bon ok c’est simple mais super pratique
tuto nas 11
la distribution charge les modules
tuto nas 12
l’installation se poursuit par :

tuto nas 13tuto nas 14tuto nas 15

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.

tuto nas 16tuto nas 17
le système vous montre les partitions crées sur le disque. Elles sont aux nombres de deux :

tuto nas 18=

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

tuto nas 19

tuto nas 20

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.

tuto nas 21

On va maintenant choisir les fonctions de notre serveur :

tuto nas 22

Il nous faut un PHP,MySQL,Apache pour l’outil d’admin en mode web et pour l’installation de notre futur dropcenter

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).

tuto nas 23

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.

tuto nas 24

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 :

Voici un exemple de connexion avec putty :

tuto nas 25 tuto nas 26 tuto nas 27

Acceptez le certificat et votre fenêtre de loggin s’ouvre, connectez vous.

tuto nas 28

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)
tuto nas 29

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 :

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) :
tuto nas 30

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.
tuto nas 31

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
tuto nas 32
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.
tuto nas 33
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).
tuto nas 34
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.tuto nas 35
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 :

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 :

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 »
tuto nas 48
Mettez votre groupe de travail windows pour ma part MARVEL (si vous ne savez pas ce que c’est laissez WORKGROUP) et sauvez
tuto nas 49
Cliquez maintenant sur tuto nas 50
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é.
tuto nas 51

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.tuto nas 52
Puis dans le partage document cliquez sur Droit et accès de fichier: tuto nas 53
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
tuto nas 54
Sauvegarder puis enfin dans
tuto nas 55
Cochez à oui inscriptible
tuto nas 56

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 !!!!.

...