nohup et scp, comment détacher un processus du terminal

nohup et scp, comment détacher un processus du terminal

Aller, un petit billet pour vous parler des commandes nohup et scp et donner une solution à un problème que j’ai rencontré.

Il m’arrive souvent de vouloir transférer des fichiers volumineux d’un serveur à un autre et qui ne se trouvent pas sur le même réseau, plusieurs solutions existent, mais je parlerai ici de la commande SCP.
En résumé, le SCP (Secure Copy Protocol) permet de transférer en toute sécurité des fichiers entre deux machines via le protocole sécurisé SSH.

Le souci c’est que plus les fichiers sont lourds, plus le temps de transfert augmente, et si vous avez une connexion merdique, comme c’est mon cas, le temps d’attente s’allonge considérablement, et pendant ce temps vous ne pouvez pas fermer le terminal ou éteindre la machine, car le processus du scp et lié à celui du shell qui l’a lancé.

nohup et scp

Vous allez me dire, rien de plus simple, la commande nohup permet justement de détacher le processus fils du processus père.
Ok, nous pouvons utiliser la commande nohup dans ce cas de figure, mais pas en utilisation standard, car la scp demande un mot de passe.

Pour plus de clarté voici un exemple concret

Imaginons que j’ai un fichier nommé “MonFichierTresLourd” que je veux transférer à un serveur “zenzla@chezmoi” et plus exactement dans le répertoire “/media/fichier”

En temps normal, j’utilise la commande scp seule

1
2
scp -r MonFichierTresLourd  zenzla@chezmoi:/media/fichier
zenzla@chezmoi password:

Ici, il me demande le mot de passe pour me connecter au serveur distant qui est zenzla@chezmoi

Maintenant, si j’utilise la commande scp avec une utilisation standard de nohup

1
nohup scp -r MonFichierTresLourd  zenzla@chezmoi:/media/fichier

Dans ce cas, je n’aurais pas la main pour saisir le mot de passe :(, même en arrêtant le processus avec Ctrl+z

La solution est donc de jouer avec les redirections des flux comme le démontre la commande si dessous

1
2
3
4
5
6
nohup scp -r MonFichierTresLourd  zenzla@chezmoi:/media/fichier > nohup.out 2>&1
zenzla@chezmoi password: <--- Saisir le mot de passe

Ctrl+z
.......
bg

Explication
Nous redirigeons la sortie standard (1) vers le fichier nohup.out ainsi que la sortie des erreurs (2), cela vas nous permettre de saisir le mot de passe demandé,
mais le terminal n’est toujours pas libre, il faut donc arrêter (non le tuer) le processus en faisant un Ctrl+z puis le mettre en arrière-plan (background) en saisissant bg

Voilà votre terminal est libre !!
Pour vous assurer que la copie des fichiers tourne bien en arrière plan, utilisez la commande jobs

Vous pouvez maintenant éteindre votre machine et rentrer chez vous grâce à nohup et scp

Comment réinitialiser le RaspBerry Pi

Comment réinitialiser le RaspBerry Pi

réinitialiser le RaspBerry
réinitialiser le RaspBerry PI
Je viens de réinitialiser le RaspBerry Pi que j’ai depuis une petite année maintenant, et comme d’hab j’écris cet article pour avoir une trace de ce que j’ai fais.

Ok, Ok ce n’est pas très compliquer de réinitialiser le RaspBerry Pi, mais avoir un mémo quelque part me rassure et cela peu aider d’autre personne.

J’utilise ce merveilleux outil pour divers trucs, un serveur pour les divers formations que j’organise ; serveur Web, serveur SQL, serveur d’application Java, serveur de test etc.

Pourquoi réinitialiser le RaspBerry Pi

Bah, pour les mêmes raisons pour les quelles vous formateriez votre PC ou serveur, c’est à dire de repartir sur des bases seines sans rien sur le système.

Comme je suis exclusivement sous Gnu/Linux, ce mini tuto n’est pas adapté à Windows ou Mac.

Bon allons-y

1 – récupérer le dernière version de Raspbian

Rasbian est le système d’exploitation par défaut des RaspBerry.

Vous pouvez récupérer la dernière version sur le site officiel, et uniquement le site officiel raspberrypi.org
Nous le téléchargerons dans /tmp

1
2
3
cd /tmp

wget https://downloads.raspberrypi.org/raspbian_latest

Vous obtiendrez un fichier zip dont le nom comporte la date de la release de type DATE-raspbian-VERSION.zip

dézipez ce fichier avec unzip (remplacez DATE-raspbian-VERSION.zip par le nom exacte du ficher téléchargé)

1
unzip DATE-raspbian-VERSION.zip

Vous obtiendrez l’image de la Raspbian de type DATE-raspbian-VERSION.img

2- préparation de votre carte MicroSD

Insérez la carte MicroSD de votre RaspBerry dans le lecteur dédié de votre ordinateur, dans la majorité des cas il vous faudra un adaptateur, MicroSD → SD.

adaptateur microsd raspberry
adaptateur microsd raspberry

Détecter sur quel point elle a été montée, dans la majorité des cas c’est /dev/sd(quelques chose)
La commande « lsblk -p » peut vous aider si le périphérie est monté automatiquement lors de sont insertion

1
2
3
4
5
6
7
8
9
lsblk -p
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
/dev/sda      8:0    0 931,5G  0 disk
├─/dev/sda1   8:1    0   100M  0 part
└─/dev/sda2   8:7    0 219,6G  0 part /
/dev/sdb      8:16   1   7,4G  0 disk
├─/dev/sdb1   8:17   1    63M  0 part /media/zenzla/boot
└─/dev/sdb2   8:18   1   7,4G  0 part /media/zenzla/2f840c69-cecb-4b10-87e4-01b9d28c231c
/dev/sr0     11:0    1  1024M  0 rom

Sinon la carte n’est pas montée automatiquement, utilisez la commande ls -ltr /dev/sd* et identifiez la dernière ligne affichée
En effet cette commande nous liste les dernières modifications de /dev/sd

1
2
3
4
5
6
7
8
9
10
ls -ltr /dev/sd*
brw-rw---- 1 root disk 8,  0 juil.  5 10:04 /dev/sda
brw-rw---- 1 root disk 8,  6 juil.  5 10:04 /dev/sda6
brw-rw---- 1 root disk 8,  4 juil.  5 10:04 /dev/sda4
brw-rw---- 1 root disk 8,  7 juil.  5 10:04 /dev/sda7
brw-rw---- 1 root disk 8,  3 juil.  5 10:04 /dev/sda3
brw-rw---- 1 root disk 8,  2 juil.  5 10:04 /dev/sda2
brw-rw---- 1 root disk 8,  1 juil.  5 10:04 /dev/sda1
brw-rw---- 1 root disk 8,  5 juil.  5 12:48 /dev/sda5
brw-rw---- 1 root disk 8, 16 juil.  5 13:05 /dev/sdb

Dans notre cas le point de montage de la carte est /dev/sdb.

3 – copie de l’image système sur la carte.

Pour installer l’image de la Rasbian sur notre carte SD nous utilisons la commande « dd » comme suite :

1
dd bs=1M if=chemin_vers_le_img_de_raspbian of=/dev/votre_carte

Dans notre cas cela donne

1
dd bs=1M if=/tmp/DATE-raspbian-VERSION.img of=/dev/sdb

Important

il ne faut pas confondre /dev/sdb et /dev/sdb1
/dev/sdb c’est le nom du disque
/dev/sdb1 c’est la première partition de ce disque

Dans notre cas il faut bien mettre le disque c’est a dire « sdb »

4 – Fin de l’installation

Retirez à présent la carte MicroSD et remettez a sur votre framboise.

Voilà, vous venez de réinitialiser le RaspBerry à l’état d’usine 🙂

Solution firmware: failed to load brcm/bcm43xx-0.fw sur Debian 8

Solution firmware: failed to load brcm/bcm43xx-0.fw sur Debian 8

failed to load brcm/bcm43xx-0.fw

Lors d’une nouvelle installation de Debian 8 sur un pc portable, il m’était impossible de me connecter en Wifi, ce dernier ne trouvant aucun réseau actif.
En cherchant un peu dans les logs de démarrage avec “dmesg” j’ai trouvé que c’est le firmware de la carte wifi qui était absent.

1
failed to load brcm/bcm/bcm43xx-0.fw (-2)

Ce firmware n’étant pas libre, et donc non disponible dans les dépôts Debian par défaut lors d’une installation standard.

résoudre le problème failed to load brcm/bcm43xx-0.fw

Apparemment, en cherchant sur le net, je me suis rendu compte que je n’étais pas le seul à rencontrer ce bug, ce qui est rassurant en même temps :P. Mais la solution la plus claire que j’ai pu trouver est celle du Wiki de Debian

Et donc, pour résoudre ce problème “failed to load brcm/bcm43xx-0.fw” il nous faut ajouter le dépôt “nom-free” à la source liste de Debian, pour cela ouvrez le fichier /etc/apt/sources.list avec votre éditeur de texte préféré, pour moi c’est vi

1
vi /etc/apt/sources.list

puis ajouter la ligne suivant à la fin de ce fichier

1
deb http://http.debian.net/debian/ jessie main contrib non-free

faite une mise-à-jour de la liste des dépôts

1
apt-get update

Puis installez les paquets linux-headers appropriés et broadcom-sta-dkms, cela installera aussi le paquet recommandé wireless-tools.

1
apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

DKMS compilera le module wl adapté à votre système.

Maintenant pour éviter les conflits, il faut décharger les modules qui peuvent nous compliquer l’installation

1
modprobe -r b44 b43 b43legacy ssb brcmsmac

On charge le module wl

1
modprobe wl

Rebooter le système pour une prise en charge des modification apportée

1
reboot

Et le tour est joué :)!! Je capte à nouveau les réseaux wifis disponibles.

Vous pouvez trouver la liste des périphériques pris en charge par le module wl dans le lien du wiki de Debian donné plus haut.

BIND DNS : query (cache) ‘*/IN’ denied

BIND DNS : query (cache) ‘*/IN’ denied

Ce matin en regardant les logs de mon serveur nouvellement réinstallé, je vois des milliers de lignes liées à BIND DNS :

1
2
3
4
5
...
09-Oct-2015 22:23:29.076 client 74.125.181.49#32935: query (cache) 'www.site.fr/A/IN' denied
09-Oct-2015 22:23:29.086 client 74.125.181.54#38723: query (cache) 'www.site.fr/A/IN' denied
09-Oct-2015 22:23:39.833 client 62.34.202.138#51968: query (cache) 'www.site.fr/A/IN' denied
...

Dans un premier temps, je pensais à une attaque du mon serveur, mais en cherchant bien sur le net, je n’étais pas le seul a être touché par ce problème lié à BIND9 les fameux “Faille DOS DNS”.
Et c’est bien ce que m’a confirmé l’outil dnstop, outil de monitoring de requêtes DNS, avec la commande

1
dnstop eth0

Dans mon cas, le serveur BIND DNS refuse bien les requêtes, d’où la mention “denied”, donc même si cela engendrait des kilomètres de ligne dans les fichiers logs, le serveur n’en souffre pas.

Oui mais comment faire pour bloquer tous ce raffut bind dns ?

J’ai pensé alors à fail2ban qui est un formidable outil pour bannir les IP trop encombrantes.
Mais cela s’avère une très mauvaise solution, car en général dans ce type d’attaques, les IP sont celles des victimes voir même de moteurs de recherche, et non celles des assaillants.
Bannir l’IP d’un moteur de recherche, ce n’est jamais bon.

Sécuriser sont serveur BIND DNS

Ce qu’il faut vérifier dans un premier temps, c’est si le serveur BIND DNS n’est pas récursif.

Avec la commande suivante

1
dig @IP_DU_SERVEUR SOA fr.

Si vous voyez dans les flags la mention “ra”, c’est que le serveur est récursif. (ra = recursion available)
Attention, vous devez faire ce test depuis l’extérieur de votre réseau local.

1
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

Pour corriger cela il faut ajouter à la fin du fichier de configuration de BIND les lignes suivantes

1
vi /etc/bind/named.conf.options

ajoutez

1
allow-recursion { 127.0.0.1; IP_DU_SERVEUR;};

Ce qui limite l’utilisation de BIND DNS au serveur lui même.

Ensuite ajoutez la ligne

1
allow-query-cache { 127.0.0.1; IP_DU_SERVEUR;};

Et cela pour interdire l’utilisation du cache de notre serveur
Ajoutez enfin

1
2
additional-from-cache no;
recursion no;

redémarrer bind pour la prise en compte des modifications

1
/etc/init.d/bind9 restart

Ref. Blog de bortzmeyer, Système Linux

DNS mail de GANDI, les configurations dans ISPConfig

DNS mail de GANDI, les configurations dans ISPConfig

Hello,

Généralement quand j’écris un article c’est justement pour y revenir après et ne pas oublier ce que j’ai fait pour le truc que j’ai bidouillé fonctionne. Et c’est le cas pour celui-ci.
En résumé, j’ai un domaine, dont le site est hébergé par mon serveur dédié, mais je veux que la gestion des e-mails reste chez Gandi, pour des raisons pratiques.
J’avais fait l’erreur il y a quelques mois, ou j’ai changé les DNS d’un site pour pointer sur mon serveur, mais de ce fait les mails Gandi ne fonctionnaient plus, car dans les DNS il faut configurer les DNS mail de GANDI

DNS mail de GANDI dans ISPConfig

Il va de soi que nous parton du fait que le site est maintenant hébergé chez vous avec la bonne config DNS.

Pour garder la gestion des DNS mails chez Gandi, vous devez modifier les paramètres DNS du votre site que je nommerais pour l’exemple “domain.tld”
Pour modifier les DNS aller sur l’onglet DNS -> DNS Zones puis cliquez sur le domaine domain.tld. Vous allez tomber sur la config DNS du site, cliquez ensuite sur “Enregistrement”

DNS mail de Gandi
DNS mail de Gandi

Ici il nous faudra ajouter quatre enregistrements CNAME et deux MX nécessaires aux DNS mail de GANDI

Ajoutons les quatre enregistrements CNAME

Cliquez sur CNAME, et ajouter les infos suivantes

1er enregistrement CNAME pour le POP
Nom d’hôte : pop
Nom d’hôte cible : access.mail.gandi.net. (Le point final est important)
TTL : 10800

Puis valider

Deuxième enregistrement CNAME pour le Webmail.
Nom d’hôte : webmail
Nom d’hôte cible : agent.mail.gandi.net.
TTL : 10800

Troisième enregistrement CNAME pour le SMTP
Nom d’hôte : smtp
Nom d’hôte cible : relay.mail.gandi.net.
TTL : 10800

Le dernier enregistrement pour le imap
Nom d’hôte : imap
Nom d’hôte cible : access.mail.gandi.net.
TTL : 10800

Maintenant les enregistrements MX, et pour que cela fonctionne il faut que ses enregistrements pointent sur GANDI
Il faut donc modifier celui qui est déjà enregistré en cliquant dessus et modifier comme suite:

Nom d’hôte : domain.tld. (votre domaine sans oublier le “.”)
Nom d’hôte du serveur mail : spool.mail.gandi.net.
Priorité : 10
TTL : 10800

Nous y ajoutons un enregistrement MX en cliquant sur +MX avec comme paramètres

Nom d’hôte : domain.tld. (votre domaine sans oublier le “.”)
Nom d’hôte du serveur mail : sfb.mail.gandi.net.
Priorité : 50
TTL : 10800

Et voilà, en ajoutant les DNS mail de GANDI, c’est maintenant ce dernier qui gère vos mails, et non plus votre serveur dédié.

Des résolutions 2014 tenues, pour 2015 les maintenir

Des résolutions 2014 tenues, pour 2015 les maintenir

bonne année 2015
bonne année 2015
Hello les amis,

En ce 1er janvier 2015, je vous souhaite une très bonne et libre année 2015, qu’elle soit totalement chiffrée rien pour pour les faire chier 😛

L’année dernière en ce même jour j’avais émis 5 résolutions pour 2014, alors qu’en est-il aujourd’hui ?
Bah mine de rien, je pense toutes les avoir tenu? oui oui!! et le plus difficile, est de faire en sort des les maintenir pour 2015.
Donc je ne ferais pas d’autre résolution cette année, je vais juste prolonger celle de l’année dernière.

Bonne année et tous!!

Un Cloud maison avec PyDio et Debian 7 (wheezy)

Un Cloud maison avec PyDio et Debian 7 (wheezy)

Hello,

Nous allons voir sur ce tuto comment installer PyDio avec Debian 7 (wheezy).
Pour ceux qui ne connaissent pas Pydio, c’est un Dropbox-LIKE open-source, c’est peut être un peu réducteur de le présenter ainsi, mais c’est, à mon sens, sa fonction première. La différence avec Owncloud, c’est qu’il se concentre principalement sur la gestion des fichiers, et ne prétend pas être dans le même catégorie d’application.

Ce tuto ne sera pas aussi complet que le précédent sur l’installation d’Owncloud et Debian 7, car tous simplement les étapes sont très similaire, notamment pour l’accès depuis l’extérieur.
Et je n’ai pas encore eux le temps de prendre le temps de l’installer pour un test plus complet avec une utilisation au quotidien.

Matos utilisés
Pour ce tuto j’ai utilisé une VM (Machine Virtuelle), avec 1Go de RAM et 8Go de capacité de stockage.
J’utiliserais l’ip 192.168.0.100 et les droits ROOT pour l’installation.

I- Installation de Debian 7
L’installation de Debian 7 est déjà expliqué dans cet article : Système de base d’un serveur sous Debian Wheezy (Debian 7)

II- Installation de Pydio

Après avoir installer votre serveur Debian, comme expliqué Étape I passons à l’installation de Pydio

Dans un premier temps, nous allons installés la clé publique de Pydio

1
cd /tmp
1
wget  http://dl.ajaxplorer.info/repos/charles@ajaxplorer.info.gpg.key
1
apt-key add charles@ajaxplorer.info.gpg.key

Ajoutons maintenant le dépôt Pydio, pour cela, nous allons modifier le fichier /etc/apt/sources.list avec votre éditeur de texte préféré, par habitude j’utilise vi

1
vi /etc/apt/sources.list

Et nous y ajoutons ce qui suit

1
2
3
##Pydio repository add###
deb http://dl.ajaxplorer.info/repos/apt stable main
deb-src http://dl.ajaxplorer.info/repos/apt stable main

Mettons à jour les dépots

1
apt-get update

Puis installons Pydio

1
apt-get install pydio

Après l’installation, copiez le fichier conf de pydio dans le répertoire /etc/apache2/sites-enabled/ comme suit :

1
cp /usr/share/doc/pydio/apache2.sample.conf /etc/apache2/sites-enabled/pydio.conf

Comme toute application Web, Pydio a besoin d’une base de données pour fonctionner.
Pour une question de faciliter j’utilise Mysql, mais il faut savoir que vous pouvez choisir un autre SGBD.

1
apt-get install mysql-server  php5-mysql

Un mot de passe pour la gestion de la base en tant qu’administrateur vous sera demandé

Demande du mot de passe MySQL
Demande du mot de passe MySQL

Confirmer le mot de passe saisie

Confirmation du mot de passe MySQL
Confirmation du mot de passe MySQL

Une fois MySQL installé, il faut créer un base de données et un utilisateur qui aura les droits sur cette base.

Connectez vous à MySQL comme suit:

1
mysql -u root -p

Créez la base de données que nous nommerons tous simplement “pydio”

1
CREATE DATABASE pydio;

Maintenant créez l’utilisateur avec le login userpydio (ou autre login de votre choix) comme suit (attention il faut changer ‘mot2passe’ par le votre)

1
CREATE USER userpydio@localhost IDENTIFIED BY 'mot2passe';

Donnez les droits d’administration de la base “pydio” à cette utilisateur

1
GRANT ALL ON pydio.* TO userpydio@localhost;

Appliquez les changements

1
FLUSH PRIVILEGES;

Sortez de la base proprement

1
exit

Ensuite, confirmer les modification en relançant les différents services

1
php5enmod mcrypt
1
service apache2 restart
1
service mysql restart

Normalement arrivé à cette étape, vous pouvez accéder à Pydio via l’URL http://192.168.0.100/pydio
Mais soyez patient, il nous reste quelques étapes pour optimiser l’accès

III- Sécuriser l’accès avec SSL/TLS

Maintenant, nous allons sécuriser l’accès à Pydio via le protocole SSL/TLS et pouvoir accéder au site avec HTTPS.
Comme vous l’avez certainement vu à plusieurs reprise si vous êtes un lecteur régulier de mon blog, cette étape nécessite la création de certificat auto-signé

Pour créer les certificats créez le répertoire /etc/apache2/CertPydio

1
mkdir -p /etc/apache2/CertPydio

Accéder à ce répertoire

1
cd /etc/apache2/CertPydio

Générons les clés comme suit:

1
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out pydio.pem  -keyout pydio.key

Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: RAS
Locality Name (eg, city) [ ]:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:zenzla
Organizational Unit Name (eg, section) [ ]: Saisissez le nom de votre service ou laissez vide.
Common Name (eg, YOUR name) [ ]: IP de la machine (Attention, le CN est très important, le nom doit correspondre à la façon dont vous allez accéder à votre serveur depuis l’extérieur ).
Email Address []:Appuyez sur Entrez

en listant le contenu de CertPydio vous devriez avoir les deux fichiers suivant :

1
2
-rw-r--r-- 1 root root 1704 déc.  22 13:24 pydio.key
-rw-r--r-- 1 root root 1265 déc.  22 13:24 pydio.pem

Copiez chaque fichier dans le bon répertoire

1
 cp pydio.pem /etc/ssl/certs/
1
 cp pydio.key /etc/ssl/private/

Maintenant il faut créer le site Virtuel (VirtualHost) qui écoute le port par défaut du protocole SSL qui est 443.

1
cd /etc/apache2/sites-available
1
vi pydio.vhost

Ce fichier doit contenir ce qui suit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<VirtualHost *:443>

ServerAdmin admin@domain.com
ServerName ajaxplorer.domain.com

SSLEngine on
SSLCertificateFile /etc/ssl/certs/pydio.pem
SSLCertificateKeyFile /etc/ssl/private/pydio.key

DocumentRoot /usr/share/pydio
<Directory "/usr/share/pydio">
Options FollowSymLinks
AllowOverride Limit FileInfo
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/pydio_error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/pydio_access.log combined
</VirtualHost>

Activer le Rewrite et le SSL

1
a2enmod rewrite
1
a2enmod ssl
1
a2ensite pydio.vhost

Pour améliorer ses performance, Pydio recommande de désactiver la mémoire tampon de sortie de PHP

Dans le fichier /etc/php5/apache2/php.ini trouvez la ligne

1
output_buffering = 4096

Et remplacez “4096” par “off”

1
output_buffering = off

Relancer Apache

1
service apache2 restart

Si vous avez une erreur, assurez vous d’avoir bien suivi les étapes précédentes, et que le contenu de pydio.vhost et correcte.

Enfin, pour ne pas avoir de problème de “Charset” lors du lancement de Pydio, modifier le fichier /usr/share/pydio/conf/bootstrap_conf.php

1
vi /usr/share/pydio/conf/bootstrap_conf.php

trouver les lignes suivantes:

1
2
//define("AJXP_LOCALE", "en_EN.UTF-8");
//define("AJXP_LOCALE", "");

Décommentez la première ligne et remplacez “en_EN.UTF-8” par “fr_FR.UTF-8” comme suite

1
2
define("AJXP_LOCALE", "fr_FR.UTF-8");
//define("AJXP_LOCALE", "");

C’est bon, nous arrivons presque à la fin de l’installation.

Vous pouvez dès à présent lancer Pydio via l’URL sécurisée https://192.168.0.100/pydio

Accueil Pydio
Accueil Pydio

Choisissez la langue que vous souhaitez (le Français pour moi), et cliquez sur “Démarrer l’assistant”, pour avoir le menu de l’assistant d’installation Pydio

Assitant d'installation de Pydio
Assitant d’installation de Pydio

Cliquez sur “Accès administrateur” et créez le compte Administrateur de Pydio, j’ai choisi pour l’exemple “Admin”, mais vous pouvez mettre ce que vous voulez

Création du compte Administareur
Création du compte Administareur

Cliquez sur “Options globales” pour changer la langue par défaut, et le message d’accueil si vous le souhaitez.

Cliquez ensuite, sur “Stockage des configurations”
Dans le menu déroulant “Type de stockage” choisir “Database system …”

Choix de la base de données
Choix de la base de données

Vous accédez à un formulaire qui permet de saisir des informations nécessaires à Pydio pour se connecter à la base de données, renseignez-les comme suit:

Activer les notification : Oui
Database : Mysql
Host : localhost
Database : pydio
User : userpydio
Password : mot de passe de l’utilisateur userpydio

Vous pouvez cliquez sur “Essayer de se connecter à la base de données” pour tester si tous vas bien

configuration accès à la BDD
configuration accès à la BDD

Cliquez maintenant sur “Ajouter des utilisateurs” pour créer un utilisateur, puis cliquez sur “Installer Pydio

création d'un utilisateur Pydio
création d’un utilisateur Pydio

Si vous n’avez pas la main pour cliquer sur “Installer Pydio” c’est qu’il y a quelques chose qui cloche, et Pydio ne vous le dit pas explicitement, c’est à vous de déplier une par une les sections précédentes pour voir ou se trouve le problème (Généralement le champs ou se trouve le problème est rouge)

En cliquant sur “Installer Pydio” vous aller voir un étrange avertissement vous disant que Pydio ne peut pas écrire sur le fichier .htaccess, et qu’il faut copier vous même le contenu qu’il vous donne dans ce fichier, ne le faites-pas

Avertissement htaccess
Avertissement htaccess

En vérifiant le fichier .htaccess, le contenu était bel et bien présent comme le montre la commande cat /usr/share/pydio/.htaccess

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# cat /usr/share/pydio/.htaccess
<IfModule mod_rewrite.c>
# You must set the correct values here if you want
# to enable webDAV sharing. The values assume that your
# Pydio installation is at http://yourdomain/
# and that you want the webDAV shares to be accessible via
# http://yourdomain/shares/repository_id/
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^shares ./dav.php [L]
RewriteRule ^api ./rest.php [L]
RewriteRule ^user ./index.php?get_action=user_access_point [L]
RewriteCond %{REQUEST_URI} !^/index
RewriteCond %{REQUEST_URI} !^/plugins
RewriteCond %{REQUEST_URI} ^/dashboard|^/settings|^/welcome|^/ws-
RewriteRule (.*) index.php [L]

#Following lines seem to be necessary if PHP is working
#with apache as CGI or FCGI. Just remove the #
#See http://doc.tiki.org/WebDAV#Note_about_Apache_with_PHP_as_fcgi_or_cgi

#RewriteCond %{HTTP:Authorization} ^(.*)
#RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
</IfModule>

AddType application/json .jsonroot@monserveur:/usr/share/pydio/conf#

Donc pas la peine de modifier le fichier .htaccess comme le demande l’avertissement.

Actualisez la page pour accéder enfin à l’interface d’accueil de Pydio, qui est en passant magnifique.

Interface d'accueil Pydio
Interface d’accueil Pydio

Il ne vous reste plus qu’a vous connectez, et découvrir cette application qui est puissante, ergonomique et vachement bien foutue.

Comme dit la chanson “Voilààà c’est Finii” 🙂

N’hésitez pas à m’apporter vos remarques et commentaires ou rapportez un bug, même si j’ai effectué plusieurs tests
La réalisation de tel tuto prends du temps, même beaucoup de temps, n’hésitez à m’encourager en laissant un message sur le blog ou via Twitter .

Serveur maison : installer Owncloud sur Debian 7 (Wheezy)

Serveur maison : installer Owncloud sur Debian 7 (Wheezy)

Hello

Nous allons voir aujourd’hui comment installer un serveur maison avec Owncloud sur Debian 7 (Wheezy), les configurations requises pour un accès sécurisé en https et la synchronisation avec un smartphone sous Android.

Le choix d’un serveur maison

Je ne vais pas m’étaler sur la question, mais pour moi, avoir un serveur maison est devenu une évidence pour la protection de mes données personnelles ainsi que ma vie privée, savoir que mes photos et vidéos se sont retrouvées sur les serveurs de Google par un manque de vigilance de ma part, ne m’a pas enchanté.

Matos utilisés

Pour le serveur j’ai utilisé une vieille machine récupérée dans les encombrants il y a quelques années et qui prenait la poussière dans mon débarras.
c’est un HP Pavillon, avec un Athlon 64 X2 (W) 3800+ 2,0 GHz comme processeur, 2Go de RAM et un disque dur de 200Go.

Je suis aussi derrière une Freebox V6 en ADSL (A quand la fibre :'( )

Pré-requis :

Ce tutoriel ne nécessite pas de pré-requis particuliers, même si une connaissance des bases de l’administration système est préférable.
J’utilise aussi un Reverse DNS au lieu de l’adresse IP de ma Freebox, ce service est gratuitement fourni par Free, et le revers fourni est du type http://nom_choisi.hd.free.fr.

Donc pour ce tuto je vais utiliser les données fictives suivantes

  • Revers: monserveur.hd.free.fr
  • Adresse IP de la box 87.65.43.12
  • Adresse locale de ma machine : 192.168.0.100

I- Installation de Debian 7

Un billet sur l’installation d’un serveur de base avec Debian est déjà disponible sur mon blog, je vous recommande de le suivre étape par étape, sauf lors de la partition, je vous recommande de choisir une partition avec un /home séparé.
Voici le lien Système de base d’un serveur sous Debian Wheezy (Debian 7)

II- Installation d’Owncloud

Après avoir terminé l’installation de votre Debian comme démontré dans l’étape précédente, nous passons à l’installation d’Owncloud.

Dans un premier temps, il faut télécharger la clé publique d’Owncloud

1
cd /tmp
1
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
1
apt-key add - &lt; Release.key

Nous pouvons maintenant ajouter le dépôt Owncloud

1
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list

Il ne nous reste plus qu’à mettre à jour le système

1
apt-get update

Et installer Owncloud

1
apt-get install owncloud

Owncloud étant une application Web, il a besoin d’une base de données, pour cela vous pouvez utiliser MySQL, SQLite, PostgreSQL.
Pour mon serveur maison j’ai opté pour MySQL, cela tombe bien, MySQL-server s’installe automatiquement lors de l’installation de la dernière version d’Owncloud

Si lors de l’installation d’Owncloud, Mysql ne s’installe pas, faites-le manuellement

1
apt-get install mysql-server

Un mot de passe robuste est nécessaire pour MySQL

Demande du mot de passe MySQL
Demande du mot de passe MySQL

Confirmer le mot de passe

Confirmation du mot de passe MySQL
Confirmation du mot de passe MySQL

MySQL installé, il est important de savoir que lors de l’installation, un utilisateur “owncloud” est créé avec le mot de passe “database_password”. Par mesure de sécurité, nous allons changer ce mot de passe.

Pour vous connecter à MySQL tapez la commande suivante puis saisissez le mot de passe de MySQL créé précédemment

1
mysql -u root -p

Changeons maintenant le mot de passe (remplacer “nouveau_mdp” par votre mot de passe)

1
UPDATE mysql.user SET password=PASSWORD("nouveau_mdp") where User="owncloud";

Nous appliquons les changements

1
flush privileges;

Nous allons maintenant crée la base de données nécessaire au fonctionnement de Owncloud qui se nommera “owncloud”

1
CREATE DATABASE owncloud;

Il faut maintenant attribuer des privilèges à l’utilisateur “owncloud” sur cette base fraîchement créée pour qu’il puisse gérer les données.(remplacer “motDePasse” par votre mot de passe)

1
GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'motDePasse';

C’est bon, nous avons plus besoin de MySQL, sortons proprement de la base

1
exit

Maintenant vous pouvez accéder à votre Owncloud en saisissant l’adresse IP locale de la machine suivi d’un /owncloud, dans notre cas cela donne 192.168.0.100/owncloud

Accueil configuration Owncloud
Accueil configuration Owncloud

Arrivé à cette interface, il est demander de créer un compte administrateur Onwcloud, renseignez les champs “Nom d’utilisateur” et “mot de passe” comme bon vous semble..
Pour l’exemple j’ai pris comme login “Admin” et comme mot de passe “mdp”.
Je vous rappelle qu’il vous faut un mot de passe robuste, ceci n’est qu’un exemple (Lire mon billet Comment gérer ses phrases de passe ou mots de passe? )

Ensuite, cliquez sur Support de stockage & base de données et choisissez MySQL/MariaDB comme base de données, puis saisissez comme login “owncloud”, et son mot de passe Mysql (vous savez, le mot de passe que vous avez changer), et comme base de données mettez “owncloud”
Puis cliquer sur “Terminer l’installation”

Admin et base de données Owncloud
Admin et base de données Owncloud

Félicitation, vous avez votre serveur maison tout neuf, enfin presque

Arborescence du Cloud
Arborescence du Cloud

et vous pouvez commencer à vous familiariser avec cette petite merveille.

Bienvenue su ownCloud
Bienvenue su ownCloud

III- Accès depuis l’extérieur

Bon, bah c’est bon, nous avons notre Owncloud installé sur la machine locale et l’accès se fait via l’url http://192.168.0.100/owncloud
Mais l’accès est possible qu’à partir des machines du même réseau, pour avoir un accès depuis l’extérieur, il faut ouvrir les ports via la console de la Box et les rediriger vers les ports de notre machine locale!!

Mais, comme vous le savez certainement, pour sécuriser les échanges de données il faut une connexion sécurisée via HTTPS, et donc il nous faut créer un certificat auto-signé.

HOO, je vois vos gros yeux qui disent “MAIS KESKIDI CE TYPE ??” — mais pas de panique, c’est moins compliqué que cela ne paraît.

Le port par défaut des connexions sécurisées SSL/TLS est le 443, mais par mesure de sécurité, nous l’utiliserons pas, vous pouvez choisir le port que vous voulez à condition qu’il soit libre, pour l’exemple je vais prendre le port 4433.

Nous allons créer un Vhost Apache (ou si vous préférez un site virtuel) qui écoute le port 4433, pour un accès sécurisé via l’url https://192.168.0.100:4433/owncloud
Pour cela allez dans le répertoire /etc/apache2/sites-available” et créez le fichier du site virtuel owncloud.conf comme suit

1
cd /etc/apache2/sites-available
1
vi owncloud.conf

Ce fichier doit contenir ce qui suit

1
2
3
4
5
6
7
8
9
10
Listen 4433 https
# Hôte virtuel qui écoute sur le port HTTPS 4433

DocumentRoot /var/www/owncloud/
# Nous activation le SSL
SSLEngine On
SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
# indiquer le chemin des certificat
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key

Il faut maintenant activer le SSL, ainsi que le nouveau site dans Apache

1
2
3
a2enmod ssl
a2ensite default-ssl
a2ensite owncloud.conf

Nous pouvons maintenant générer le nouveau certificat TLS

Pour cela créez le répertoire CertOwnCloud comme suit

1
mkdir -p /etc/apache2/CertOwnCloud

Accéder à ce répertoire

1
cd /etc/apache2/CertOwnCloud

Générons les clés comme suit:

1
2
openssl genrsa -out owncloud.key 2048
openssl req -new -days 3650 -key owncloud.key -out owncloud.pem

Country Name (2 letter code) [AU]: FR
State or Province Name (full name) [Some-State]: RAS
Locality Name (eg, city) [ ]:Paris
Organization Name (eg, company) [Internet Widgits Pty Ltd]:zenzla
Organizational Unit Name (eg, section) [ ]: Saisissez le nom de votre service ou laissez vide.
Common Name (eg, YOUR name) [ ]: monserveur.hd.free.fr OU IP de la box (Attention, le CN est très important, le nom doit correspondre à la façon dont vous allez accéder à votre serveur depuis l’extérieur ).
Email Address []:Appuyez sur Entrez

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:Appuyez sur Entrez
An optional company name []:Appuyez sur Entrez

Créer le fichier android_options.txt comme suit :

1
echo "basicConstraints=CA:true" > android_options.txt

Il ne reste plus qu’à générer les certificats

1
openssl x509 -req -days 3650 -in owncloud.pem -signkey owncloud.key -extfile ./android_options.txt -out owncloud.crt
1
openssl x509 -inform PEM -outform DER -in owncloud.crt -out owncloud.der.crt

En listant le répertoire CertOwnCloud vous devez avoir les fichiers suivants:

1
2
3
4
5
6
7
ls -l /etc/apache2/CertOwnCloud/
total 20
-rw-r--r-- 1 root root 25 déc. 9 09:30 android_options.txt
-rw-r--r-- 1 root root 1180 déc. 9 09:30 owncloud.crt
-rw-r--r-- 1 root root 829 déc. 9 09:30 owncloud.der.crt
-rw-r--r-- 1 root root 1679 déc. 9 09:30 owncloud.key
-rw-r--r-- 1 root root 976 déc. 9 09:30 owncloud.pem

Le certificat owncloud.der.crt nous servira pour synchroniser notre serveur maison avec le smartphone.

Maintenant il faut recopier les certificats dans les bons répertoires

1
cp owncloud.crt /etc/ssl/certs
1
cp owncloud.key /etc/ssl/private

ATTENTION Comme nous avons demander avec “a2ensite default-ssl” d’utiliser les certificats par défaut de Debian certificats (snakeoil),
Il faut absolument modifier le fichier /etc/apache2/sites-available/default-ssl, et forcer l’utilisation des certificats que nous venons de générer.

Par mesure de sécurité il est toujours recommandé de sauvegarder les fichiers originaux du système si vous les modifiez

1
cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/default-ssl.ori

Ouvrir le fichier /etc/apache2/sites-available/default-ssl

1
vi /etc/apache2/sites-available/default-ssl

Commenter les lignes suivantes

1
2
3
# SSLCertificateFile directive is needed.
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

Et ajouter au dessous les clés que nous venons de générer

1
2
SSLCertificateFile /etc/ssl/certs/owncloud.crt
SSLCertificateKeyFile /etc/ssl/private/owncloud.key

Vérifions maintenant le bon fonctionnement de notre site virtuel

1
apachectl configtest

Si vous avez une erreur, vérifiez les étapes précédentes.

Puis relancez apache

1
service apache2 restart

Par défaut, les nouvelles versions de ownCloud, interdisent l’accès au serveur aux URLs externes non autorisées.
De ce fait, nous devons modifier le fichier de configuration d’OwnCloud pour ne pas avoir de problème de connexion.

1
vi /var/www/owncloud/config/config.php

Dans la partie “trusted_domains”, nous ajoutons les adresses utilisées pour se connecter au serveur, avec le port 4433
Et nous il faut aussi forcer l’utilisation du HTTPS en ajoutant ‘forcessl’ => true, à la fin, comme le démontre ce qui suit.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!--?php $CONFIG = array ( 'instanceid' => 'oc614654hvev',&lt;br ?--> 'passwordsalt' => 'mjbnczo5654ef4z65fv4r64cdfjb994854',
'trusted_domains' =>
array (
0 => '192.168.0.100:4433', # adresse IP de la machine locale
1 => '87.65.43.12:4433', # adresse IP de la box
2 => 'monserveur.hd.free.fr:4433', # revers Free associé à IP de la box
),
'datadirectory' => '/var/www/owncloud/data',
'dbtype' => 'mysql',
'version' => '7.0.3.4',
'dbname' => 'owncloud',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'owncloud',
'dbpassword' => 'mdpMysql',
'installed' => true,
'forcessl' => true,);

Redirection des ports

Maintenant vous pouvez accéder au serveur avec du HTTPS, via l’IP de la machine locale https://192.168.0.100:4433/owncloud/.
Il est normal d’avoir un avertissement du navigateur, car le certificat utilisé est auto-signé, et donc non reconnu.

Pour pouvoir accéder à votre serveur depuis l’extérieur, il faut ouvrir le port 4433 de la box, et le rediriger vers le port 443 de la machine locale.
Vous pouvez profiter de cette étape; pour ouvrir le port SSH qui peut être très utile si vous voulez administrer vos machine à distance, ou le port FTP.

Pour la Freebox V6, par exemple, il faut se connecter à la console d’administration de la Freebox -> paramètres de la Freebox -> Mode avancé -> gestion des ports

Dans l’onglet redirections des ports, ajouter une redirection

Redirection de port Freebox
Redirection de port Freebox

Et normalement maintenant, vous pouvez avoir accès à votre machine depuis l’extérieur via le revers https://monserveur.hd.free.fr:4433/owncloud ou l’adresse IP de la box https://87.65.43.12:4433/owncloud.

Activation du Firewall

Pour ne pas à chaque reboot de la machine se taper les règles d’iptable, installer le module iptables-persistent qui est moins amnésique.

1
apt-get install iptables-persistent

Je vous rappelle que vous avez changé le port par défaut de SSH lors de l’installation de Debian, c’est plus le 22 mais celui que vous avez choisi, dans le TUTO c’est le 7070

installation des règles et sauvegarde

1
service iptables-persistent flush
1
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
1
iptables -A INPUT -p tcp --dport 7070 -j ACCEPT
1
iptables -A INPUT -p tcp --dport 4433 -j ACCEPT
1
service iptables-persistent save

Pour vérifier les règles

1
cat /etc/iptables/rules.v4

Installation de Fail2ban

Alors, sans entrer dans le détail, Fail2ban est une excellente application qui nous sert à bannir les intrusions ou les tentatives d’authentification infructueuses.

Dans un premier temps, nous allons mettre des règles pour Owncloud. Les règles pour le SSH (Et FTP si vous avez ouvert le port) sont paramétrées par défaut.

Installer Fail2ban

1
apt-get install -yr fail2ban

On va modifier de nouveau le fichier de configuration Owncloud, pour que la journalisation se fasse dans /var/log/owncloud.log

1
vi /var/www/owncloud/config/config.php

Et ajouter les lignes suivantes

1
2
3
4
'logtimezone' => 'Europe/Paris',
'logfile' => '/var/log/owncloud.log',
'loglevel' => '2',
'log_authfailip' => true,

Maintenant, ça doit normalement ressembler à ce qui suit

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!--?php
$CONFIG = array (
'instanceid' => 'oc614654hvev',
'passwordsalt' => 'mjbnczo5654ef4z65fv4r64cdfjb994854',
'trusted_domains' =>
array (
0 => '192.168.0.100:4433',
1 => '87.65.43.12:4433',
2 => 'monserveur.hd.free.fr:4433',
),
'datadirectory' => '/var/www/owncloud/data',
'dbtype' => 'mysql',
'version' => '7.0.3.4',
'dbname' => 'owncloud',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',
'dbuser' => 'owncloud',
'dbpassword' => 'mdpMysql',
'installed' => true,
'forcessl' => true,
'logtimezone' => 'Europe/Paris',
'logfile' => '/var/log/owncloud.log',
'loglevel' => '2',
'log_authfailip' => true, );

Maintenant il faut créer le fichier de log en question

1
touch /var/log/owncloud.log

Changer les droits pour permettre à Owncloud d’écrire sur le fichier

1
chown www-data:www-data /var/log/owncloud.log

Aller dans le répertoire /etc/fail2ban/filter.d/

1
cd /etc/fail2ban/filter.d/

et créer le fichier owncloud.conf

1
vi owncloud.conf

Son contenu doit être comme suit.
Editer le 9/09/2015
Owncloud a la fâcheuse tendance à modifier ses messages de log à chaque nouvelle version, donc la ligne ci-dessous est correcte à la date du 09/09/2015 avec owncloud 8.1, mais cela ne le restera pas longtemps.

1
2
[Definition]
failregex={"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: '<HOST>\)","level":2,"time":".*"}

créez le fichier /etc/fail2ban/jail.local

1
vi /etc/fail2ban/jail.local

copiez-y le contenu suivant

1
2
3
4
5
6
7
[owncloud]
enabled = true
filter = owncloud
bantime = 600
port = https,http
logpath = /var/log/owncloud.log
maxretry = 3

relancer Fail2ban

1
/etc/init.d/fail2ban restart

Synchronisation du serveur maison avec le Smartphone Android

DAVdroid
DAVdroid

Pour la synchronisation des fichiers de votre smartphone avec votre serveur maison, installer l’application native d’OwnCloud que vous pouvez trouver sur GooglePlay ou F-Droid.
Pour synchroniser vos contacts et votre agenda, nous allons utiliser l’excellente application libre DAVdroid que vous pouvez aussi trouver sur GooglePlay ou F-Droid.

Dans un premier temps, il faut copier le certificat owncloud.der.crt généré précédemment sur votre téléphone, puis l’ajouter aux certificats de confiance comme suit:

Paramètres -> Sécurité -> installer depuis la carte SD -> parcourir arborescence pour récupérer votre certificat.

Importation du certificat
Importation du certificat

Le certificat ajouté aux certificats de confiance, nous allons ajouter un compte DAVdroid pour la synchronisation des contacts et un autre compte DAVdroid pour la synchronisation de l’agenda

1- Synchronisation de l’agenda

Paramètres -> Ajouter un compte -> Choisir Davdroid

Ajout d'un compte DAVdroid
Ajout d’un compte DAVdroid

Sélectionner “Login with URL and user name” puis appuyer sur suivant (flèche en haut)

DAVdroid- Authentification
DAVdroid- Authentification

Dans la fenêtre suivante il faut saisir les informations nécessaires pour accéder à votre agenda

Informations d'authentification
Informations d’authentification

Votre Webhoste est : monserveur.hd.free.fr:4433/owncloud/remote.php/caldav/calendars/admin/personnel
Utilisateur : votre login administrateur OwnCloud, dans notre cas c’est Admin
Mot de passe : mot de passe de l’administrateur Owncloud

Appuyer sur suivant puis sélectionner votre agenda.

2 – Synchronisation des contacts

Ce sont les mêmes étapes que précédemment, ajouter une compte DAVdroid, choisir “Login with URL and user name”
Puis ajouter l’URL de vos contacts
Votre Webhost est : monserveur.hd.free.fr:4433/owncloud/remote.php/carddav/addressbooks/admin/contacts

Problème de connexion DavDroid à votre serveur maison

– Pour que DAVdroid puisse se connecter à votre serveur maison, les certificats doivent être correctement générés, notamment la partie CN (Common Name). Il faut obligatoirement que celui-ci corresponde à l’URL que vous allez utiliser pour accéder à votre serveur, dans notre cas c’est monserveur.hd.free.fr.

Il existe une petite application “CAdroid” qui permet de vérifier si le certificat de votre serveur maison est compatible avec DAVdroid, si celui-ci est correct, il vous l’importera automatiquement sur votre téléphone, si celui-ci n’est pas compatible DAVdroid, il vous indiquera où se trouve le problème.

Voilà nous arrivons à la fin de ce tuto, en espérant que votre serveur maison est maintenant opérationnel.
Si vous avez des informations complémentaires, de sécurité, de configuration, n’hésitez pas à me contacter, je les intégrerai si c’est pertinent
N’hésitez pas si vous avez des questions, j’y réponds toujours, pas forcement le jour même, mais le plus rapidement possible (sur le site ou sur Twitter)
Excusez les coquilles qui se sont glissées dans le texte, l’orthographe n’est pas mon fort :P.

Un GROS merci à Falconerita qui a eu la gentillesse de corriger les innombrables fautes que j’ai honteusement faites.

Sources
Un serveur parfait sous Debian Wheezy (Debian 7) et nginx
howtoforge.com
Tuto de Sksbir sur le forum Owncloud
Sécurisation ownCloud avec Fail2ban

Des alternatives à TrueCrypt

Des alternatives à TrueCrypt

Hier soir, une petite info à fait l’effet d’une bombe ! Le site de TrueCrypt c’est fait piraté ! Un étrange message propose d’installer Bitlocker, qui est une solution propriétaire uniquement disponible sur Windows  (La blague!!)

Le site propose aussi la version 7.2 de TrueCrypt qui déchiffre uniquement, mais ne permet pas de créer un conteneur chiffré, cette version est vérolée, a ne pas installer.
A l’heure actuelle, nous ne savons rien !! il n’y a eux aucune explication de la part de l’équipe de développeur.
Donc en attendant, je vous propose quelques alternatives.

Les alternatives.

Il existe des alternatives à TrueCrypt, tout aussi efficaces, et compatible, mais nettement moins souples et ergonomiques pour l’utilisateur lambda.

EncFS
Nous avons vu il y a quelques semaines l’utilisation de EncFS, qui est une solution simple à prendre en main, même si elle est en ligne de commande. Il ya a quelques difficultés d’installation dans les version Ubuntu > 13.04 car il n’est plus disponible dans le dépôt.
Une interface graphique est disponible pour PC : Cryptkeeper
Il existe aussi une interface pour mobile : Cryptonite

eCryptfs
Équivalent à EncFS, mais un poil plus rapide lors du chiffrement de conteneurs volumineux, mais il ne possède pas d’interface graphique.

LUKS
LUKS est la solution qui permet de chiffrer entièrement ou partiellement son disque dur, il est disponible sous Ubuntu en installant cryptsetup et utilise dm-crypt pour le chiffrement.

RealCrypt
RealCrypt est un clone de TrueCrypt, et donc un alternatif sérieux, mais le problème c’est qu’il est uniquement en paquet « rmp » est donc compatible uniquement pour les RedhatLike et non les DebianLike.
Donc, il faut patienté pour une portage en .deb.

Tcplay
Comme RealCrypt, Tcplay est une alternative sérieuse à TrueCrypt, il est disponible pour les DebianLike, il est 100 % compatible avec les conteneurs TrueCrypt.
ZuluCrypt étant sont interface graphique

Voici une petit tableau qui compare quelques outils de chiffrement

https://wiki.archlinux.org/index.php/Disk_Encryption#Comparison_table

Nous sommes tous des agents de la NSA

Nous sommes tous des agents de la NSA

Oui, Ok le titre est un peu racoleur !! Voir très provocateur, mais néanmoins réel.

Nous allons parler aujourd’hui d’un geste anodin, nous le faisons plus au moins tous, sans réfléchir à ses conséquences.
Quand je dis que nous sommes tous des agents de la NSA, c’est que nous participons, sans le vouloir, à l’alimentation d’une base de données à l’échelle planétaire.
En effet, en ajoutant un nouveau contact sur votre smartphone, tous les renseignements que vous y mettez seront automatiquement synchronisés avec votre compte Android ou ITunes. Et comme nous le savons, les grandes firmes américaines comme Google, Facebook, Apple, Amazon (Mais pas qu’eux) sont avares de ces renseignements.

Certes, c’est pratique, car quand vous allez changer de téléphone, plus la peine de copier les innombrables numéros de téléphone de l’ancien mobile, comme ce fut le cas il y a quelques années avec notre Nokia 3310, mais tous se fait automatiquement, et vous avez un seul répertoire qui fait office de contacts téléphonique et contact mail, et tous ce petit monde se synchronise automatiquement comme par magie.

Mais cette magie a ses revers, ce qu’il faut savoir c’est que vous participez à un fichage à une échelle mondiale, et quand je dis fichage, c’est une vraie fiche que vous fournissez à Google, Appel & Co. Il suffit de regarder les champs proposés lors d’un ajout de contact, plus vous êtes précis, plus votre fiche est complète.

Screenshot ajout contact
Screenshot ajout contact

Lors d’un ajout d’un nouveau contact

  • Vous renseignez un nom, prénom et numéro de téléphone portable (jusqu’à là tout vas bien, heuuu enfin tout vas mal)
  • Ensuite vous avez la possibilité de mettre tous les numéros de téléphone de la personne, bureau, maison etc.. (Cela devient un peu intrusif)
  • Vous pouvez aussi renseigner l’e-mail perso et pro (De plus en plus intrusif)
  • Ensuite, parce que c’est fun, la photo de la personne, pour que lorsqu‘elle appel sa photo apparait (là c’est un cadeau divin que vous leur donnez)
  • Ce n’est pas fini, le grâle c’est quand vous y enregistrez la date d’anniversaire, et là c’est le summum qui est atteint

Félicitation, votre fiche de renseignement est complète ! Et les BigBrothers vous remercient infiniment !!

C’est un peu une caricature, car tous les champs ne sont pas renseignés automatiquement lorsque vous ajoutez un contact. Mais cette personne que vous ajoutez, se trouve certainement sur plusieurs répertoires, et donc les renseignements que vous avez omis de mettre d’autres le feront, et avec un simple croisement de données, la fiche se complète.
Il faut savoir que le numéro de téléphone portable ou le mail, sont des données précieuses, car elles sont uniques par personne. Par exemple, si de mon côté je veux ajouter Madame Michu (hé oui je la connais !!) à mes contacts, et que je fais attention aux renseignements que je mets. Mieux, si au lieu de mettre son nom je mets un pseudo : Machachou (c’est un exemple hein 😛 )
Donc dans mon répertoire j’ajoute

  • Nom : Machachou
  • Prénom : (vide)
  • N° tel portable : 0712345678

Seulement Madame Michu connait d’autres personnes qui mettent son vrai nom, prénom dans leurs répertoires, en plus de son numéro de téléphone.
Les efforts que j’ai faits pour protéger l’anonymat de Madame Michu n’ont servis à rien, car le numéro de téléphone portable étant lié en générale à une seule personne, le croisement de données devient un jeu d’enfant.

Continuons, car c’est loin d’être fini.

Les applications que nous installons sur nos smartphones, peuvent avoir accès à nos répertoires, et de ce fait nous fournissons en renseignement plus uniquement Google & co mais Facebook, Twitter etc.. etc..

Prenons l’exemple de l’application Facebook, qui demande l’accès à votre répertoire lors de son installation et que vous acceptez sans vous posez de question.

Une personne qui ne veut pas être sur Facebook ou autre, se retrouve malgré elle dans la base de données de Monsieur Zuckerberg, même si elle ne s’est pas inscrite.
Et si un de vos contact se trouve aussi sur Facebook (ce qui est très probable), imaginez-vous alors la quantité d’information que possède cette firme sur cette personne, c’est-à-dire la fiche de votre répertoire, en plus des informations mises sur le site Facebook, c’est-à-dire les amis, la famille, les photos, vos hobbies, vos préférences etc…etc.. etc..

Franchement, je n’ai même pas envie de l’imaginer, tellement cela ruine le moral et me donne la nausée.

En résumé, vous avez beau envi de vous protéger, protéger votre vie privée et préserver votre anonymat, vous en avez plus la possibilité car le tous connectés ne nous laisse plus le choix.
D’où l’urgence aujourd’hui d’une prise de conscience généralisée, et la mise en place de formation de sensibilisation dès le plus jeune âge mais aussi à tous les niveaux de la société.

« Pour que les données personnelles d’aujourd’hui, ne deviennent pas le pétrole de demain».