Crazy Makers

Faites-le vous même!

SOUTENEZ-NOUS!
Déjà 8 personnes nous ont soutenu.
Nous vous sommes très reconnaissants!
PARTAGER SUR:
  • facebook
  • twitter
  • linkin
  • Google Plus
Logo CrazyMakers

Votre serveur NAS/DLNA/Owncloud à la maison.

Mise en place un serveur Cloud à la maison afin de pouvoir accéder à ses fichiers de partout et bénéficier d'un serveur DLNA pour lire ses fichiers Audio/Vidéo sur TV et autres appareils compatibles.



La culture maker (de l'anglais make, lit. faiseur) est une culture (ou sous-culture) contemporaine constituant une branche de la culture Do it yourself (DIY) (qu'on peut traduire en français par « faites-le vous-même »).          (Source: Wikipedia)
les "Crazy Makers" sont les plus fous et les plus passionnés des makers...

Catégorie

Internet/Réseau.

Niveau de difficulté

temps nécessaire

Environ 5 heures en comptant les temps d'installation.

?>

Pour activer le contrôle distance, il faut obtenir l'IP du raspberry sur votre réseau, pour cela, il faut taper cette commande dans la console du PI

Ifconfig

Résultat IfConfig

On obtient donc l'ip du raspberry... (il est également possible d'obtenir cet IP dans la page d'administration de votre box.)

On peut donc lancer PuTTY et saisir les informations demandées.

Cliquez sur Oui...

login as: Pi
Mot de passe par défaut: raspberry

Configuration putty

Alerte de sécurité PuTTY

Connexion au Raspberry en SSH

Installation du controle à distance sur le raspberry

sudo apt-get install tightvncserver
Démarrage du VNC
vncserver-geometry 800x600 -depth 16 :1
Arrêt du VNC
vncserver -kill :<display-number>

Cette commande démarrera le serveur VNC, la première fois que vous exécuterez cette commande on vous demandera votre mot de passe à 8 caractères...

Installation de la visionneuse VNC sSous windows

https://www.realvnc.com/download/viewer/

Voilà qui facilitera la suite des opérations...

Alerte sécurité VNCViewer

Pi à travers le VNC

Paramétrage-VNC-Viewer.jpg

Paramétrage du serveur

Mise à jour des paquets du raspberry

sudo apt-get update && sudo apt-get upgrade

APT-get Update & Upgrade

Il faut prévoir un bon moment pour cette mise à jour, allez prendre un café, un thé ou une bière... Une fois terminée, on redémarre le raspberry via la commande

sudo reboot

Paramétrage du disque dur

Récupération du chemin du disque dur
Mount

Formatage du disque dur en ext3 (Format nécessaire au paramétrage des droits, un formatage en NTFS, FAT ou FAT32 peut générer des problèmes dans le paramétrage des droits (Bloquer tous les droits au seul compte root).

mkfs.ext3 /dev/hdb1

Démontage du disque dur

sudo umount "/media/pi/Iomega HDD"

Création du dossier du serveur de données et lien entre le disque dur et celui-ci

sudo mkdir /media/NAS
sudo mount -t auto /dev/sda1 /media/NAS

Montage automatique au démarrage du disque dur sur le dossier:

sudo nano /etc/fstab

Ajouter :

/dev/sda1 /media/NAS auto noatime 0 0

Installation de Owncloud

wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
sudo apt-get update
sudo apt-get install owncloud

Allez prendre un café...

Installation de mysql pour gestionnaire de base de données (Uniquement si il ne s'est pas installé avec owncloud!)

sudo apt-get install mysql-server

Demande de mot de passe à l'installation de mysql

Il va falloir définir la taille maximale qu'il ser apossible d'uploader via owncloud en éditant "php.ini"

sudo nano /etc/php5/apache2/php.ini

Modifiez les valeurs de « post_max_size » et « upload_max_filesize » en une valeur plus élevée (exemple: 3000M (3 Go)).

Assurez-vous que les fichiers .htaccess soient pris en compte par le serveur

sudo nano /etc/apache2/apache2.conf

Remplacez les « AllowOverride None » par « AllowOverride All ».

Configurer MySQL pour OwnCloud

Comme nous l’avons dit plus haut, nous allons utiliser la base de données MySQL. Pour des raisons de sécurité, nous allons créer un utilisateur dédié à OwnCloud, qui ne pourra utiliser que la base de OwnCloud.

Tout d’abord, connectez vous à MySQL avec la commande suivante :

mysql -u root -p<votre_password>

Le password à employer est celui de l’utilisateur « root » de MySQL. Vous ne devez pas mettre d’espace entre l’argument « -p » et le mot de passe.

Maintenant que nous sommes connectés à MysQL, nous allons créer la base « owncloud » avec la commande ci-dessous :

create database owncloud;

Création base de données owncloud sous console mysql

Nous avons choisis de nommer la base du même nom que l’application afin vous ne se soyez pas perdu, mais vous pouvez la nommer comme bon vous semble (dans ce cas, vous devrez adapter la suite du tutoriel à votre choix).

Création de l’utilisateur

Nous allons maintenant ajouter un utilisateur et lui donner tous les droits sur la table OwnCloud. Pour cela, il vous suffit d’exécuter la commande suivante :

GRANT ALL PRIVILEGES ON owncloud.* TO <le_nom_du_user>@localhost IDENTIFIED BY '<le_password_du_user>';

Détaillons les arguments, « owncloud » correspond à la base créée juste avant.

La partie « .* » permet de préciser que nous souhaitons donner l’accès à toutes les tables contenues dans la base owncloud.

L’argument «<le_nom_du_user» doit-être remplacé par le nom que vous souhaitez donner à l’utilisateur que nous allons créer, et « <le_password_du_user> » est le mot de passe que vous souhaitez donner à ce nouvel utilisateur.

Nous vous conseillons de choisir un utilisateur au nom clair (« owncloud » par exemple) et avec un password complexe !

Ces informations nous serons demandées lors de notre première connexion au site owncloud.

Maintenant que la partie MySQL est finie, vous pouvez quitter MySQL avec un simple CTR+D ou la commande suivante.

exit

Avant d'accéder à la configuration de owncloud, il faut procéder au changement de propriétaire du dossier principal du NAS et modifier l'attribution des droits

sudo adduser [votre nom d'utilisateur]
sudo usermod -a -G www-data [votre nom d'utilisateur]
sudo usermod -a -G www-data pi
sudo chown -R [votre nom d'utilisateur]:www-data "/media/NAS"
sudo chmod -R 770 "/media/NAS"

On paramètre la racine du serveur

sudo nano /etc/apache2/sites-enabled/000-default.conf

en modifiant:

DocumentRoot /var/www/owncloud

Enregistrer le fichier et redémarrer Apache avec la ligne de commande suivante :

sudo /etc/init.d/apache2 restart

Rendez-vous à http://[votre_ip] pour accéder à la page de configuration de owncloud

Choisissez votre nom d'utilisateur et votre mot de passe
saisissez l'adresse des fichiers dans le cloud (/media/NAS)
Vos identifiants mysql:
root, [motdepasse], owncloud, localhost.

Page de configuration de Owncloud
Page d'accueil de owncloud

Supprimez les fichiers présents sur le cloud.

Retournez dans la console du PI et lancez ces 3 commandes

sudo mkdir /media/NAS/[Votre nom d'utilisateur OWNCLOUD]/files/Videos
sudo mkdir /media/NAS/[Votre nom d'utilisateur OWNCLOUD]/files/Images
sudo mkdir /media/NAS/[Votre nom d'utilisateur OWNCLOUD]/files/Musique

Si tout se passe bien, vous devriez avoir 3 dossiers dans votre owncloud sinon, il y a un problème de permissions, dans ce cas il faudra refaire un CHMOD.

3 dossiers partagés dans owncloud

Paramétrage du partage réseau

sudo apt-get install apt-transport-https
Installation de Samba pour le partage réseau
sudo apt-get install samba samba-common-bin

Ajout d'un utilisateur samba (doit être le même que votre nom d'utilisateur précédemment créé sur le raspberry!)

sudo smbpasswd -a [votre nom d'utilisateur]

Sauvegarde de la configuration par débaut de Samba et creation d’une config:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old
sudo nano /etc/samba/smb.conf

Paramétrage Samba

contenu :

[global]
workgroup = WORKGROUP
server string = Serveur Cloud
netbios name = Mon Cloud
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0

[Videos]
comment = Dossier vidéos
path = "/media/NAS/Crazydoub/files/Videos/"
browseable = yes
read only = no
writable = yes
valid users = @www-data
create mask = 0770
directory mask = 0770

[Images]
comment = Dossier Images
path = "/media/NAS/Crazydoub/files/Images/"
browseable = yes
read only = no
writable = yes
valid users = @www-data
create mask = 0770
directory mask = 0770

[Musique]
comment = Dossier Musique
path = "/media/NAS/Crazydoub/files/Musique/"
browseable = yes
read only = no
writable = yes
valid users = @www-data
create mask = 0770
directory mask = 0770

[Tous les Fichiers]
comment = Racine du Cloud
path = "/media/NAS/Crazydoub/files/"
browseable = yes
read only = no
writable = yes
valid users = @www-data
create mask = 0770
directory mask = 0770

 Démarrer/re-démarrer/arrêter samba:
sudo /etc/init.d/samba start
sudo /etc/init.d/samba restart
sudo /etc/init.d/samba stop

Installation et configuration du DLNA

sudo apt-get install minidlna
Add yourself and minidlna user to the www-data group using the command below:

sudo usermod -a -G www-data minidlna

Editez le fichier de configuration de miniDLNA
sudo nano /etc/minidlna.conf
modifiez cette partie:
# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
media_dir=V,/media/NAS/Crazydoub/files/Videos
media_dir=P,/media/NAS/Crazydoub/files/Images
media_dir=A,/media/NAS/Crazydoub/files/Musique

Redémarrez minidlna
sudo service minidlna restart

Paramétrage des ports côté Box

Paramétrez les ports de votre box (PAT/NAT)

Nom Protocole Port
SSH TCP 22
Nbname UDP 137
Nbdatagram UDP 138
Nbsession TCP 139
Direct Les deux 445
SSL (Si utilisé) Les deux 443
http server TCP 80

Sécurisation du serveur grâce à SSL (OPTIONNEL)

On crée un répertoire où seront stockés les certificats.

sudo mkdir /etc/apache2/ssl

Puis on génère les certificats pour 3 ans (1095 jours) dans ce répertoire.

sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key

Remplissez tous les champs

Generating a 2048 bit RSA private key
............................................+++
.....................+++
writing new private key to '/etc/apache2/ssl/server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:Ile de France
Locality Name (eg, city) []:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Boulangerie Nanard
Organizational Unit Name (eg, section) []:Laboratoire
Common Name (e.g. server FQDN or YOUR name) []:[IP_WEB_DE_VOTRE_RASPBERRY]
Email Address []:votreemail@email.com

Le plus important est le "Common Name" qui doit être l'adresse depuis laquelle vous accédez à votre serveur depuis l'extérieur...

On active le module SSL d'Apache

sudo a2enmod ssl

On met en place le site par défaut (default-ssl) en créant un lien symbolique.

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf

On édite le fichier qu'on vient de lier

sudo nano /etc/apache2/sites-enabled/000-default-ssl.conf

Et on modifie les deux lignes suivantes:

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

Activation du module headers d'Apache

a2enmod headers

Ajout du header dans les paramètres SSL du site

sudo nano /etc/apache2/sites-enabled/000-default-ssl.conf

ajouter après "<VirtualHost *:443>"

# Guarantee HTTPS for 1 Year including Sub Domains
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

Modifier le "DocumentRoot" qui avait été modifié précédemment pour une connexion non sécurisée

DocumentRoot /var/www/owncloud

Redémarrer apache

sudo service apache2 restart
sudo sudo systemctl daemon-reload

Voilà, vous pouvez vous connecter à votre serveur et à owncloud via:

https://[IP_DU_RASPBERRY]

Votre navigateur vous affichera sûrement une alerte pour vous indiquer que le certificat provient d'une auto-signature, c'est normal puisque c'est le cas. Cochez alors"Ignorer toujours" ou équivalent...



Aucun Commentaire Posté pour le moment
Soyez le premier à poster un commentaire.

Vos commentaires seront lus par d'autres visiteurs et seront affichés en page d'accueil.
Merci de bien vouloir soigner la rédaction de vos messages.

 

Attention, suite aux nombreux spams et messages anonymes, en postant un commentaire,
comme sur un forum,votre ip:54.226.209.201 sera stockée sur notre base de données.
En postant un commentaire, vous recevrez un message à chaque fois qu'un utilisateur y répondra.