Comment déverrouiller automatiquement Seahorse dans LinuxMint?

Je tiens à préciser que la manipulation suivante, est selon moi une importante lacune en sécurité. Je partage tout de même la manipulation, au cas où vous avez un besoin spécifique que je n’ai encore pu identifier, qui est logique d’utiliser ce script.

Je tiens également à précisé que ceci fonctionne dans LinuxMint 17.1, donc également dans Ubuntu 14.04 LTS.

Qu’est-ce que Seahorse?

Seahorse est le nom du programme dans Ubuntu et LinuxMint qui gère et conserve tous les mots de passes que vous sauvegardez sur votre ordinateur. C’est l’équivalent du « Trousseau d’accès » ou « Keychain » en anglais sur Mac OS X. Sous LinuxMint, il se nomme « Mots de passe et clés » dans le menu principal.

Puisque ce dernier renferme et protège les mots de passes sauvegardés sur votre ordinateur, ce qui suit est d’un risque important pour la sécurité, puisqu’il vous permettra de déverrouiller automatiquement lors de l’ouverture de session votre trousseau d’accès. Ce qui veut dire que vous n’aurez pas besoin d’entrer le mot de passe de Seahorse pour avoir accès aux mots de passes sauvegardés. Si vous êtes certain de ne jamais vous faire voler votre ordinateur, puis d’être le seul utilisateur de votre ordinateur, que personne ne peut sauter dessus pour fouiller pendant que vous êtes sur le trône, ce qui suit peut vous être utile si vous êtes trop paresseux pour entrer le mot de passe Seahorse pour que les mots de passes sauvegardés soient utilisés.

Créer le script

  1. gedit ~/.unlockseahorse
  2. Entrez le texte suivant et sauvegardez.
    #!/usr/bin/python

    import gnomekeyring
    gnomekeyring.unlock_sync(None, ‘motdepasseseahorse’);


    Remplacez « motdepasseseahorse » par votre mot de passe du trousseau d’accès.
  3. chmod +x ~/.unlockseahorse
  4. Allez dans Paramètres système -> Applications au démarrage.
  5. Cliquez sur le bouton « Ajouter ».
  6. Donnez-lui un nom, cela peut être ce que vous voulez.
  7. Pour la commande, entrez « ~/.unlockseahorse ».
  8. Pas besoin d’ajouter de commentaire ou de délais de démarrage, appuyez sur le bouton « Ajouter ».
  9. C’est fait, nous venons de créer un fichier invisible à l’emplacement ~/ qui s’appelle .unlockseahorse. Ce dernier contient le script. Nous avons ensuite donné les droits d’exécution au fichier, et pour terminé, nous lui avons dit de s’exécuter lors du démarrage à l’ouverture de session.

Comment déverrouiller à distance via SSH, un volume « root » « / » encrypté LUKS dans LinuxMint?

Si votre volume « root » « / » est encrypté avec LUKS, vous êtes invité à chaque démarrage de votre ordinateur à entrer le mot de passe afin de le déverouiller. Ce qui est très embêttant de cette mesure de sécurité, est que vous devez être physiquement sur les lieux avec votre clavier pour entrer votre mot de passe. Donc lorsque vous êtes connecté à distance, et que vous devez redémarrer votre ordinateur, vous devez avoir un esclave à l’emplacement de l’ordinateur pour qu’il entre le mot de passe lors du redémarrage.

Ceci a été testé sur LinuxMint 17.1, basé sur Ubuntu 14.04 LTS La plupart de l’information que j’ai trouvé ici et là sur Internet concernant ce qui suit, datait de 2008 à 2014, mais AUCUN des articles ne fonctionnait. Ce qui suit fonctionne en date du 30 janvier 2015.

Dans cet article, je vais vous expliquer comment faire en sorte que lors du démarrage de votre ordinateur, un serveur SSH se lance, afin que vous puissiez vous y connecter et dévérouiller à distance votre volume « root » « / » pour que le système d’exploitation puisse démarrer.

Pour que cela fonctionne, votre ordinateur doit avoir une adresse IP statique. Ce qui suit prend pour acquis que vous avez une adresse IP statique assignée automatiquement via DHCP à votre machine LinuxMint. Si votre serveur DHCP(probablement votre routeur), ne peut pas assigner des adresses IP statiques en fonction de l’adresse MAC de votre carte réseau, vous aurez besoin de modifier le bootloader (chargeur d’armorçage; crédit Vincent Castonguay-Drouin-Baguette) GRUB pour que ce dernier configure l’adresse IP statique. L’article qui suit ne prend pas en charge l’édition de GRUB, car ça me donne des maux de tête chaque fois que je joue là dedans.

Installer les applications nécessaires

  1. sudo apt-get update
  2. sudo apt-get install busybox dropbear

Dropbear est un petit serveur SSH qui se lance sur votre partition d’initialisation en mémoire vive. Ce dernier fonctionne complètement indépendement de OpenSSH, donc vous n’avez en aucun cas à changer la configuration de votre serveur OpenSSH actuel. Le serveur SSH Dropbear ne sera en fonction que dans le volume d’initialisation se trouvant en mémoire vive lors du démarrage de l’ordinateur, une fois le système d’exploitation lancé ce volume n’existe plus.

Lors de l’installation de Dropbear, une clef public et une clef privée sont générées pour la connexion à SSH. Ces deux clefs se trouvent à l’emplacement « /etc/initramfs-tools/root/.ssh/ » .

Nous allons devoir aller chercher la clef privée et nous en faire une copie sur notre ordinateur client depuis lequel nous nous connecterons à distance. Le fichier que nous voulons copier est /etc/initramfs-tools/root/.ssh/id_rsa .

Transférer la clef privée

Les tutoriels que j’ai vu sur Internet utilisaient tous la commande « scp » pour copier par SSH le fichier depuis le serveur sur leur client. Je n’ai jamais été en mesure de réussir avec cette commande, tant sur LinuxMint, que sur Windows 7 avec PuTTY. Je vous laisse donc choisir votre méthode de transfer de fichier. Dans mon cas, j’ai copié le fichier id_rsa dans un dossier partagé avec samba sur mon serveur LinuxMint, puis j’ai été le chercher ainsi.

Je vous laisse néanmoins la commande pour copier le fichier vers un autre emplacement de votre serveur.

sudo cp /etc/initramfs-tools/root/.ssh/id_rsa /nouvel/emplacement/

Cette commande copiera et collera le fichier vers votre dossier de choix.

Sur votre ordinateur client, vous devez mettre le fichier à l’emplacement suivant.

Sur Linux

/root/.ssh/

Commande pour copier et coller votre clef privée dans ce dossier:
sudo cp /emplacement/de/la/clef/id_rsa /root/.ssh/

Sur Windows avec PuTTY

N’importe où.

Configuration du client SSH

Sur Linux:

Nous allons créer un fichier de configuration.
sudo gedit /root/.ssh/config

La raison pour laquelle nous devons créer ce fichier dans le dossier .ssh/ de « root », est parce que Dropbear n’accepte que l’utilisateur « root », et qu’il n’accepte que l’authentification par clef privée RSA.

Je tiens à vous réconforter tout de suite, tout comme Dropbear est indépendant de OpenSSH, il est également indépendant de la configuration du compte utilisateur « root » du système d’exploitation. En aucun cas vous n’avez à activer cet utilisateur dans Linux, ou de l’autoriser dans OpenSSH pour qu’il se connecte. Dropbear fonctionne indépendement et n’accepte que l’utilisateur « root » avec la clef privée RSA comme authentification.

Donc si on revient à nos moutons, nous étions en train de créer le fichier /root/.ssh/config .

Mettez y le texte suivant, en y changeant bien évidement l’adresse IP pour l’adresse IP de votre serveur LinuxMint.


Host 192.168.0.100
HostName 192.168.0.100
User root
IdentityFile ~/.ssh/id_rsa

La configuraion du client est terminée pour Linux.

Sur Windows avec PuTTY:

PuTTY n’accepte pas les clefs directement de Linux, il faudra donc dans un premier temps, convertir notre clef en format PuTTY. Pour ce faire, vous aurez besoin de puttygen.exe , il est disponible sur le site de PuTTY, ou, si vous avez installé PuTTY, il est déjà dans votre dossier C:\Program Files (x86)\PuTTY\ .

  1. Dans puttygen.exe, cliquez sur « Conversions » dans le menu, puis sur « Import key ».
  2. Sélectionnez le fichier id_rsa que vous avez transféré depuis votre serveur Linux.
  3. Cliquez sur le bouton « Save private key »

Maintenant que nous avons une clef privée en langage que PuTTY peut comprendre, nous pouvons configurer PuTTY.

  1. Dans PuTTY, dans le menu de gauche, sélectionnez Connection -> SSH -> Auth.
  2. Cliquez sur le bouton « Browse » puis sélectionnez le fichier nouvellement créé par puttygen.exe.

Vous venez de configurer PuTTY pour utiliser cette clef privée comme moyen d’authentification. Le reste des paramètres sont les mêmes que vous utilisez d’habitude.

Création d’un script pour déverrouiller le volume

De retour sur le serveur, vous allez créer un script qui nous permettra de vous demander le mot de passe dans SSH pour déverrouiller votre volume « root » LUKS.

Le script suivant, ne désactive pas le clavier physique du serveur, il vous est donc toujours possible de déverrouiller physiquement sur place le serveur, contrairement à d’autres scripts.

  1. sudo gedit /usr/share/initramfs-tools/hooks/crypt_unlock.sh
  2. Copiez-y le texte suivant
    #!/bin/sh

    PREREQ="dropbear"

    prereqs() {
    echo "$PREREQ"
    }

    case "$1" in
    prereqs)
    prereqs
    exit 0
    ;;
    esac

    . "${CONFDIR}/initramfs.conf"
    . /usr/share/initramfs-tools/hook-functions

    if [ "${DROPBEAR}" != "n" ] && [ -r "/etc/crypttab" ] ; then
    cat > "${DESTDIR}/bin/unlock" << EOF
    #!/bin/sh
    if PATH=/lib/unlock:/bin:/sbin /scripts/local-top/cryptroot; then
    kill \`ps | grep cryptroot | grep -v "grep" | awk ‘{print \$1}’\`
    exit 0
    fi
    exit 1
    EOF

    chmod 755 "${DESTDIR}/bin/unlock"

    mkdir -p "${DESTDIR}/lib/unlock"
    cat > "${DESTDIR}/lib/unlock/plymouth" << EOF
    #!/bin/sh
    [ "\$1" == "–ping" ] && exit 1
    /bin/plymouth "\$@"
    EOF

    chmod 755 "${DESTDIR}/lib/unlock/plymouth"

    echo To unlock root-partition run "unlock" >> ${DESTDIR}/etc/motd

    fi

  3. sudo chmod +x /usr/share/initramfs-tools/hooks/crypt_unlock.sh
  4. sudo update-initramfs -u

Maintenant redémarrez votre serveur et laissez-le poiroter en attente du mot de passe pour déverrouiller le volume « root » « / ».

Comment se connecter et déverrouiller le volume LUKS root

Sur votre ordinateur client…

Sur Linux:

  1. sudo su
  2. Ceci est nécessaire puisque seul l’utilisateur « root » peut se connecter à Dropbear, vous devez donc exécuter la prochaine commande en tant que l’utilisateur « root ».
  3. ssh 192.168.0.100
  4. Remplacez l’adresse IP par celle de votre serveur. ceci doit être la même qui est inscrite dans le fichier /root/.ssh/config que nous avons créé plus tôt. Ceci chargera automatiquement ce fichier de configuration et donc utilisera la clef privée pour l’authentification.
  5. unlock
  6. Entrez le mot de passe du volume LUKS.

Et voilà, votre lecteur est déverrouiller et le système d’exploitation se charge. Tapez « exit » pour fermer votre section SSH Dropbear, puis « exit » une seconde fois pour sortir du mode « root » dans Terminal. Vous pouvez maintenant vous connecter normalement avec votre utilisateur à SSH utilisant vos paramètres habituels.

Sur Windows avec PuTTY:

  1. Après avoir sélectionné la clef privée comme nous avons fait plus haut, entrez votre adresse IP et cliquez sur « Open » comme vous le faite normalement.
  2. Utilisez le nom d’utilisation « root » à la demande « Login ». Vous serez automatiquement authentifié grâce à la clef privée.
  3. unlock
  4. Entrez le mot de passe du volume LUKS.

Et voilà, votre lecteur est déverrouiller et le système d’exploitation se charge. Tapez « exit » pour fermer votre section SSH Dropbear. Pour vous connecter à SSH de façon normale, enlevé la clef privée de la configuration de PuTTY, puis utilisez votre nom d’utilisateur plutôt que « root » à la demande « Login: ».

Comment déverouiller automatiquement un volume encrypté LUKS au démarrage de LinuxMint?

Dans un article précédent, je vous ai parlé sur comment faire en sorte qu’un volume LUKS soit monté automatiquement lors du lancement de LinuxMint. Ceci vous permettait d’avoir le mot de passe demandé lors du lancement de LinuxMint, plutôt qu’une fois le système d’exploitation tout initialisé.

L’article présent, vous montrera comment créer un fichier clef, qui sera utilisé au lieu du mot de passe lors du lancement, afin que le volume soit automatiquement déverrouillé.

Ce qui suit ne fonctionne pas pour un volume « root » « / », mais seulement pour des volumes secondaires, tel des disques USB ou SATA de données.

Pourquoi?

La grande question ici est pourquoi!? Après tout, nous avons encrypté notre volume pour le protéger en cas de vol, pour que nos données soient protégées. Il y a quelques raisons que j’ai vu sur Internet, mais laissez-moi vous en donner que deux que j’ai trouvé très bien.

a) Si votre volume se trouve sur un disque USB, il est plus probable que votre disque dur soit volé plus rapidement et facilement, que votre tour d’ordinateur. Si vous êtes confiant de ne jamais vous faire voler votre ordinateur, vous n’avez pas besoin d’un volume « root » « / » encrypté en plus.

b) Si vous avez plusieurs volumes LUKS, ça fait beaucoup de mots de passes à entrer à l’ouverture de l’ordinateur, c’est chiant. C’est ma situation, mon « root » « / » est encrypté, en plus de quelques autres disques durs. Ça fait beaucoup de mots de passes à entrer au démarrage.

Pour ces deux raisons, nous allons créer un fichier clef, un par volume LUKS, qui permettra de déverrouiller ces derniers. Ce fichier clef sera entreposé sur votre disque « root » « / ».

Veuillez noter que la manipulation suivante, ne supprime pas l’option de déverouiller votre volume par un mot de passe. Ce qui veut dire que tant que l’ordinateur détecte le fichier, ou, le mot de passe, votre volume sera décrypté. Si par malheur votre fichier devait être détruit ou perdu, vous pourrez toujours avec le mot de passe déverrouiller votre volume LUKS lors du démarrage.

Création du fichier clef

sudo dd if=/dev/urandom of=/root/clef1 bs=1024 count=4

Ceci vient de créer un fichier de texte mélangé dont la taille est de 4Ko nommé clef1 à l’emplacement /root/.

sudo chmod 0400 /root/clef1

Nous venons de faire en sorte que seule l’utilisateur « root » puisse lire le fichier clef1, et qu’il ne puisse pas le modifier.

Configurer l’utilisation du fichier lors du déverouillage

Nous allons dire à LUKS que ce fichier peut être utilisé à la place du mot de passe pour déverrouiller le volume.

sudo cryptsetup luksAddKey /dev/sdX /root/clef1

Remplacez sdX par la partition correspondante. Dans mon cas, le tout est sur un volume RAID « md127″, j’ai donc écrit /dev/md127.

Enter any LUKS passphrase:

Entrez votre mot de passe LUKS pour ce volume. Le terme « any » porte à confusion, puisqu’ici nous voulons absolument entrer notre mot de passe déjà existant pour déverrouiller ce volume.

Configurer l’utilisation du fichier du montage

Nous allons maintenant aller jouer dans le fichier /etc/crypttab pour dire d’utiliser le fichier clef1 lors du montage.

sudo gedit /etc/crypttab

Remplacez « none » par « /root/clef1 » sur la ligne concernant le volume désiré.

Et voilà c’est terminé! Au prochain redémarrage, vous ne serez pas invité à entrer votre mot de passe pour ce volume LUKS. Cependant, si votre volume « root » « / » est encrypté, vous serez invité à entrer le mot de passe de ce dernier.

Comment installer le client OpenVPN, importer sa configuration VPN et se connecter à son VPN dans LinuxMint?

Installer OpenVPN

sudo apt-get update
sudo apt-get install openvpn
sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome

Importer ses fichiers de configuration

Cela fonctionne autant pour les fichiers .conf que .ovpn .

Nous allons à présent utiliser le GUI, puisque je ne sais pas comment réaliser cela dans Terminal. -_-‘

  1. Ouvrez « Connexions réseau »
  2. Dans Cinnamon, il se trouve dans Préférences -> Connexions réseau.
  3. Cliquez sur le bouton « Ajouter »
  4. Sélectionnez « Importer une configuration VPN enregistrée… » et appuyez sur le bouton « Créer… »
  5. Sélectionnez votre fichier .conf ou .opvn
Le chemin de vos clefs et certificats est relatif à l’emplacement de votre fichier de configuration. Le chemin est configuré dans votre fichier .conf ou .ovpn . Vous pouvez éditer ce dernier à l’aide de votre éditeur préféré tel que nano ou gedit.

C’est fait! Maintenant pour pouvoir vous connecter à votre VPN, vous n’avez qu’à cliquer sur l’icône réseau dans le GUI que vous utilisez, dans mon cas sur Cinnamon, elle est en bas à droite à côté de l’heure. Vous y verrez la liste des réseaux sans-fil si vous avez une carte WiFi, puis juste en dessus, vous y verrez la liste de vos VPN configuré. Vous n’avez qu’à en cliquer un pour vous y connecter.

Par défaut, OpenVPN va envoyer TOUT LE TRAFIC de votre ordinateur dans le tunnel VPN. Si vous voulez continuer à utiliser votre connexion Internet, et n’utiliser que le VPN pour les adresses locales du réseau distant, veuillez faire la manipulation suivante.
  1. Allez dans Paramètres système -> Réseau
  2. Sélectionnez votre VPN dans la liste de gauche, puis cliquez sur le bouton ayant un tourne-vis et une clef en bas à droite de la fenêtre.
  3. Cliquez sur IPv4 et défilez complètement en bas avec la souris.
  4. Cochez la case « N’utiliser cette connexion que pour les ressources sur ce réseau »
  5. Si le réseau distant utilise IPv6, veuillez faire la manipulation dans IPv6.

Comment désactiver l’encryption de Vino-server dans LinuxMint?

J’utilise un client VNC sur Windows pour me connecter à ma machine LinuxMint roulant un serveur vino via un tunnel SSH.

L’encryption activée par défaut de vino-server empêche les clients VNC Windows de se connecter, de plus, puisque je passe déjà par SSH pour VNC, je n’ai nul besoin d’un plugin d’encryption qui ralentira d’avantage le taux de rafraîchissement des images que vino m’enverra.

Pour désactiver l’encryption du serveur vino et donc permettre les clients VNC sous Windows de s’y connecter, entrez la commande suivante dans Terminal:

gsettings set org.gnome.Vino require-encryption false

Comment monter lors du boot un volume LUKS dans LinuxMint?

Cet article vous expliquera comment faire en sorte pour monter automatiquement lors du boot de LinuxMint un volume encrypté avec LUKS.

Veuillez noter que votre mot de passe pour décrypter le volume vous sera demandé lors du boot, ce qui rend les redémarrage à distance impossible.

Je prend pour acquis que vous avez déjà un volume LUKS, cet article ne traitera pas sur comment encrypter un volume.

Votre volume LUKS doit surement être monté présentement dans /media/votrenom/pointdemontage/ puisque LinuxMint monte les volumes LUKS dans /media/votrenom/ . Vous pouvez créer un point de montage différent, tel que dans /mnt/ , mais sachez qu’à ce moment là, même en sudo, vous ne serez pas en mesure de démonter le volume. Du moins, j’ai un paquet d’erreur lorsque je tente la manipulation, donc j’ai finalement décidé de laisser monter mon volume LUKS dans /media/guizmo/Baguette/.

Donc nous savons quel est notre point de montage, maintenant nous devons trouver le nom du volume LUKS. ce nom sera utilisé dans le fichier fstab, puisque le UUID n’est pas une solution avec un volume encrypté.

Allez dans le dossier /dev/mapper/ .

Si vous n’avez qu’un seul disque LUKS, vous devriez n’avoir qu’un seul dossier commençant par luks- . Le chemin complet de ce dossier est ce que nous aurons de besoin d’indiquer dans fstab. Si vous avez plusieurs volume LUKS, ou, si vous n’avez aucun dossier luks- dans /dev/mapper/ , ouvrez chacun des répertoires dans /dev/mapper/ afin de voir le contenu de ces derniers et d’identifier le volume LUKS que vous voulez monter lors du boot.

Nous allons maintenant ajouter une ligne en dessous des autres déjà présentent dans /etc/fstab .

sudo nano /etc/fstab

La ligne à ajouter ressemblera à celle-ci:

/dev/mapper/luks-b9ddd703-8c65-4bbf-z562-4441919c0561c /media/guizmo/Baguette ext4 defaults 0 0

On met au début le chemin complet du volume LUKS, puis on met le point de montage, le système de fichier utilisé sur votre volume, puis le reste sont les options par défaut. Les deux zéros sont important, sans ces derniers, je n’ai jamais réussi à démarrer correctement Linux, même si selon la documentation de fstab, nous ne sommes pas obligé de les mettre. Peut-être un conflit avec LUKS spécifiquement? Qui sait!

Vous pensez que c’est déjà finit? Non pas tout à fait. Puisque le volume est crypté, nous devons également modifier le fichier /etc/crypttab .

sudo nano /etc/crypttab

Vous allez devoir y ajouter une ligne similaire à celle-ci:

luks-b9ddd703-8c65-4bbf-z562-4441919c0561c /dev/disk/by-id/md-name-NAS-Linux:Baguette none luks,discard

Le début est le nom du répertoire où le volume est « mappé » dans /dev/mapper/ . Ensuite, selon la documentation de crypttab, on est supposé inscrire le nom du périphérique exacte. Pour ce faire, vous devrez aller dans /dev/disk/by-id/ et copier le nom du disque dur où votre volume encrypté se trouve. Admettons que votre volume se trouve sur un disque Hitachi HMS5C4040BLE640 ayant un numéro de série de PL1331Baguettos , vous devriez voir le répertoire ata-HGST_HMS5C4040BLE640_PL1331Baguettos/ .

Donc techniquement vous devriez inscrire /dev/disk/by-id/ata-HGST_HMS5C4040BLE640_PL1331Baguettos comme périphérique dans crypttab.

Si vous n’avez pas de disque physique, mais un RAID, comme moi, vous allez devoir alors trouver le répertoire md-* correspondant à votre volume LUKS. Comme pour le « mapper » plus tôt, il vous faudra ouvrir chacun des répertoires afin d’identifier par son contenu le volume qu’il vous faut. Dans mon cas c’était md-name-NAS-Linux:Baguette , donc j’ai dû mettre /dev/disk/by-id/md-name-NAS-Linux:Baguette . Pour le reste, none, précise qu’il n’y a pas de keyfile. Les keyfiles sont utilisés pour déverrouiller les volumes plutôt qu’un mot de passe, mais je ne sais pas trop comment cela fonctionne, et mon but était d’avoir plus de sécurité des données en cas de vol de mon ordinateur, donc ça ne m’intéresse pas du tout qu’un keyfile décrypte mon volume automatiquement. luks,discard précise les options, il est impératif que luks soit précisé.

Comment installer un serveur Seafile sur LinuxMint, utilisant Apache2, SSL et MySQL?

Pour avoir gossé assez longtemps là dessus, laissez-moi vous épargner les heures de plaisirs que j’ai eu en simplifiant le tout dans un seul article.

En date du 20 janvier 2015, 2:00 du matin, l’heure à laquelle j’écris cet article, la version de Seafile Server la plus récente est la 4.0.5.

La documentation de Seafile Server est assez complète sur le site officiel, mais elle manque de clarté si l’on veut plus qu’une simple installation. Pour votre information, la documentation officielle est ici: http://manual.seafile.com/ .

Le tutoriel qui suit prend pour acquis que vous avez déjà Python, MySQL et Apache2 d’installé sur votre serveur Linux. Consultez l’article ici pour savoir comment installer LAMP.

La méthode suivante a été testé avec les versions suivantes:

  • Seafile Server 4.0.5
  • Apache 2.4.7
  • LinuxMint 17.1 (Ubuntu 14.04 LTS)
  • MySQL 5.5.4
  • Python 2.7

Préparation de MySQL

Il vous faudra créer trois bases de données et un utilisateur, puis ajouter ce dernier à ces bases de données. Pour savoir comment créer une base de données, un utilisateur, puis, ajouter un utilisateur à une base de données, cliquez ici.

Utilisateur à créer: seafile
Bases de données à créer: ccnet-db , seafile-db , seahub-db

Installation de Seafile Server

  1. Créez un dossier « seafile » quelque part sur votre serveur où vous souhaitez installer Seafile.
  2. mkdir seafile

    Notez que vous aurez besoin suffisament d’espace disque pour ce répertoire, selon la quantité de donnée que vous allez synchroniser, donc créez le dossier à un emplacement conséquent.

  3. Assurez-vous que votre utilisateur ai les droits d’écriture et de lecture sur le dossier et que les autres puissent lire et exécuter.
  4. chmod 775 seafile/

  5. Allez dans le dossier seafile nouvellement créé.
  6. cd seafile/

  7. Téléchargez la dernière version du serveur Seafile pour Linux dont vous avez besoin (32 ou 64 bits) ici.
  8. wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_4.0.5_x86-64.tar.gz

  9. Décompressez le fichier tar.gz dans le dossier seafile.
  10. tar xzvf seafile-server_4.0.5_x86-64.tar.gz

  11. Allez dans le dossier « seafile-server-4.0.5″.
  12. cd seafile-server-4.0.5/

  13. Lancez le script d’installation.
  14. ./setup-seafile-mysql.sh

  15. Entrez les valeurs désirées lorsque demandé.
  16. [ server name ] est un nom qui ne sera utilisé que dans les logs du client Seafile.

    [ ip or domain ] est l’adresse IP de votre serveur Linux(sur votre réseau local) ou nom de domaine s’il y a lieux.

    Vous pouvez utiliser les paramètres par défaut pour les paramètres [ ccnet server ], [ seafile data ], [ seafile server ] et [ seafile httpserver ].

    [ admin email ] est votre adresse courriel.

    [ admin password ] est le mot de passe désiré pour votre compte admin Seafile.

    [ Please choose a way to initialize seafile databases: ]; choisissez l’option [1] Create new ccnet/seafile/seahub databases.

    [ mysql host ] localhost à moins que votre installation de MySQL Server ne roule sur un autre serveur.

    [ mysql port ] 3306 à moins que votre installation de MySQL Server ne roule sur un autre port.

    [ root password ] est le mot de passe du compte « root » de votre serveur MySQL.

    [ mysql user of seafile ] est le nom d’utilisateur « seafile » que nous avons créé plus tôt.

    [ password for mysql user ] est le mot de passe de l’utilisateur que nous avons créé plus tôt.

    Les trois derniers champs, soit [ ccnet-db ], [ seafile-db ] et [ seahub-db ] sont les valeurs par défaut, puisque nous avons créé ces bases de données plus tôt.

Démarrer Seafile pour la première fois

Cette étape est importante, car elle terminera l’installation de Seafile Server en créant un compte administrateur.

./seafile.sh start
./seahub.sh start

Entrez votre adresse email et mot de passe tel que demandé.

Arrêtez Seafile.

./seahub.sh stop
./seafile.sh stop

 
Créer un service « seafile-server »

  1. Créer un fichier seafile-server dans /etc/init.d/ .
  2. sudo nano /etc/init.d/seafile-server

  3. Y mettre le contenu suivant:

  4. #!/bin/bash

    # Change the value of « user » to your linux user name
    user=guizmo

    # Change the value of « seafile_dir » to your path of seafile installation
    seafile_dir=/emplacement/de/votre/dossier/seafile
    script_path=${seafile_dir}/seafile-server-latest
    seafile_init_log=${seafile_dir}/logs/seafile.init.log
    seahub_init_log=${seafile_dir}/logs/seahub.init.log

    # Change the value of fastcgi to true if fastcgi is to be used
    fastcgi=true
    # Set the port of fastcgi, default is 8000. Change it if you need different.
    fastcgi_port=8000

    case « $1″ in
    start)
    sudo -u ${user} ${script_path}/seafile.sh start >> ${seafile_init_log}
    if [ $fastcgi = true ];
    then
    sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} >> ${seahub_init_log}
    else
    sudo -u ${user} ${script_path}/seahub.sh start >> ${seahub_init_log}
    fi
    ;;
    restart)
    sudo -u ${user} ${script_path}/seafile.sh restart >> ${seafile_init_log}
    if [ $fastcgi = true ];
    then
    sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} >> ${seahub_init_log}
    else
    sudo -u ${user} ${script_path}/seahub.sh restart >> ${seahub_init_log}
    fi
    ;;
    stop)
    sudo -u ${user} ${script_path}/seafile.sh $1 >> ${seafile_init_log}
    sudo -u ${user} ${script_path}/seahub.sh $1 >> ${seahub_init_log}
    ;;
    *)
    echo « Usage: /etc/init.d/seafile {start|stop|restart} »
    exit 1
    ;;
    esac

  5. Changez la valeur user= pour le nom d’utilisateur dont vous avez donné les permissions chmod au tout début de l’installation.
  6. Changez la valeur seafile_dir= pour le chemin d’accès de votre dossier que nous avons créé au tout début de l’installation.
  7. Créez un fichier seafile-server.conf dans /etc/init/ .
  8. sudo nano /etc/init/seafile-server.conf

  9. Y mettre le contenu suivant:

  10. start on (started mysql
    and runlevel [2345])
    stop on (runlevel [016])

    pre-start script
    /etc/init.d/seafile-server start
    end script

    post-stop script
    /etc/init.d/seafile-server stop
    end script

  11. Rendre exécutable le fichier seafile-server dans le dossier /etc/init.d/ .
  12. sudo chmod +x /etc/init.d/seafile-server

Préparation de Apache2

Il faut installer les paquets python-flup et libapache2-mod-fastcgi .

  1. sudo apt-get update
    sudo apt-get install python-flup
    sudo apt-get install libapache2-mod-fastcgi
  2. Maintenant nous allons activer mod_fastcgi, mod_rewrite, et apache proxy.> .

  3. sudo a2enmod rewrite
    sudo a2enmod fastcgi
    sudo a2enmod proxy_http
    sudo a2enmod ssl
    sudo a2ensite default-ssl

    Nous allons maintenant modifier le fichier apache2.conf dans le dossier /etc/apache2/ .

  4. sudo nano /etc/apache2/apache2.conf
  5. À la toute fin, nous allons y ajouter ceci:

    FastCGIExternalServer /var/www/html/seahub.fcgi -host 127.0.0.1:8000

    Nous allons maintenant modifier le fichier default-ssl.conf dans le dossier /etc/apache2/sites-available/ .

  6. sudo nano /etc/apache2/sites-available/default-ssl.conf
  7. Ajouter la ligne suivante sous DocumentRoot :
  8. Alias /media /emplacement/de/votre/dossier/seafile/seafile-server-latest/seahub/media

    Changer /emplacement/de/votre/dossier/seafile/ pour l’emplacement du dossier « seafile » que nous avons créé au tout début.

    Assurez-vous de conserver la partie seafile-server-latest/seahub/media à la fin de cet emplacement.

  9. Descendez à la fin du fichier, et avant </VirtualHost> ajouter ceci:

  10. <Directory /emplacement/de/votre/dossier/seafile>
    Require all granted
    Options FollowSymLinks
    </Directory>

    RewriteEngine On

    #
    # seafile fileserver
    #
    ProxyPass /seafhttp http://127.0.0.1:8082
    ProxyPassReverse /seafhttp http://127.0.0.1:8082
    RewriteRule ^/seafhttp – [QSA,L]

    #
    # seahub
    #
    RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /seahub.fcgi/$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Redémarrer le service Apache2

sudo service apache2 restart

Configuration de Seafile pour le SSL

    Nous allons modifier le fichier « ccnet.conf » dans le dossier /emplacement/de/votre/dossier/seafile/ccnet/ .

  1. Modifiez la ligne SERVICE_URL = http://votre_ip par SERVICE_URL = https://votre_ip .
  2. Nous allons maintenant modifier le fichier « seahub_settings.py » dans le dossier /emplacement/de/votre/dossier/seafile/ .

  3. Ajouter la ligne suivante sous la ligne SECRET_KEY.
  4. FILE_SERVER_ROOT = 'https://votre_ip/seafhttp'

Démarrer le service « seafile-server »

sudo service seafile-server start

Ouvrir les ports dans le pare-feu (firewall)

LinuxMint vient avec le pare-feu ufw par défaut, mais il n’est pas activé. Après avoir eu beaucoup de mal à utiliser les commandes ufw dans Terminal, j’ai finit par installé gufw, un interface GUI pour configurer ufw.

À l’aide de ce dernier, assurez-vous que les ports suivant sont ouvert dans votre pare-feu afin de pouvoir accéder à Seafile.

443, 10001 et 12001.

Inutile d’ouvrir les ports 8000 et 8082 que nous avons configuré lors de l’installation de Seafile, puisque nous utilisons Apache2 en SSL, le tout passe dans le port 443.

C’est terminé, vous devriez être en mesure d’accéder à votre serveur Seafile à l’adresse https://votre_ip ou https://localhost sur la machine directement .

Comment créer une base de donnée, un utilisateur, et ajouter cet utilisateur à la base de donnée MySQL sur Linux?

Cette méthode a été utilisée dans Terminal sur LinuxMint 17.1 avec MySQL 5.5.4.

 

Pour commencer, vous devez ouvrir une session MySQL dans Terminal.
sudo mysql -p

Ceci vous authentifiera en tant que « root » sur votre serveur MySQL. Linux vous demandera votre mot de passe Linux afin de vous permettre d’exécuter la commande « sudo » dans un premier temps. Tout de suite après, vous serez amené à entrer le mot de passe de l’utilisateur « root » de votre serveur MySQL.

Créer une base de donnée:
(nommée « ccnet-db » dans l’exemple ci-dessous)

CREATE DATABASE ccnet-db;

Créer un utilisateur:
(nommé « seafile » avec un mot de passe « baguette » dans l’exemple ci-dessous)

CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'baguette';

Ajouter l’utilisateur à la base de donnée en lui donnant tous les droits:
(l’utilisateur est « seafile », la base de donnée est « ccnet-db » dans l’exemple ci-dessous)

GRANT ALL PRIVILEGES ON ccnet-db . * TO 'seafile'@'localhost';

Appliquer les changements des privilèges immédiatement:

FLUSH PRIVILEGES;

Tapez « exit » pour quitter MySQL.

Seafile

Connaissez-vous Seafile?

seafile-logo

Non?

Parfait, car je vais vous en parler. depuis bientôt 1 mois maintenant, je roule avec Seafile pour synchroniser certains dossier entre mes ordinateurs. Auparavant j’ai utilisé OwnCloud, puis Dropbox.

Ah, Dropbox, vous connaissez! Et bien c’est exactement cela. Seafile est un projet open source (code libre) tout comme OwnCloud, qui sont deux alternatives à Dropbox.

Pourquoi utiliser Seafile ou Owncloud plutôt que Dropbox?

Parce que c’est open source, vous pouvez vous même vous faire un serveur à la maison. Ce qui rend la chose beaucoup plus confidentielle. Faites-vous réellement assez confiance à Dropbox pour protéger vos données sur leurs serveurs? Pensez à ça un peu, iCloud d’Apple a été piraté, des tonnes de photos privés répandues sur Internet. De plus, avec les révélations d’Edward Snowden sur les programmes de surveillances de la NSA (National Security Agency) américaine, vous pouvez parier que vos données sont toute accédée.

Donc en hébergeant vous même à la maison votre serveur, vous avez le plein contrôle sur votre confidentialité et sécurité, c’est simplement à vous de décider de vos paramètres. Pour ma part, je n’ouvre aucun port extérieur sur mon routeur, Seafile ne se synchronisera seulement que lorsque je serai à la maison avec mon portable.

Pourquoi ai-je quitté Dropbox?

Principalement pour de forte questions concernant la confidentialité et la protection de mes données. De plus, quand j’ai su que Condoleezza Rice allait être nommée sur le conseil d’administration de Dropbox, ceci en était trop pour moi. D’ailleurs je n’ai pas été le seul, car un mouvement #DropDropbox a vu le jour. Pour en apprendre d’avantage sur ce mouvement, cliquez ici.

Pourquoi ai-je quitté OwnCloud pour Seafile?

Pour la fiabilité. J’ai utilisé OwnCloud pendant 6 mois, et je devais m’assurer d’avoir toujours des sauvegardes très très très récentes, puisqu’il y a un bogue quelque part, qui fait en sorte que OwnCloud supprime silencieusement des fichiers aléatoirement. Vous n’avez qu’à faire une recherche sur Google pour comprendre que le problème est assez répandu, mais également, loin d’être réglé, puisqu’il semble y avoir énormément de  raisons qui peuvent causer un tel problème, et que, la plupart du temps les dévs ne sont pas en mesure de reproduire le problème, donc ne peuvent pas vraiment travailler pour le régler…

De plus un problème TRÈS agaçant dans l’application Android d’Owncloud faisait que mon cellulaire se remplissait à vue d’oeil! Lorsque la fonction d’upload automatique sur réseau WiFi des photos et vidéos avec votre téléphone est activée, OwnCloud crée une copie des photos et vidéos dans un autre répertoire sur votre téléphone. Vos photos prennent donc le double de l’espace, et, lorsque vous ouvrez l’application « Galerie » ou tout autre application pour afficher vos photos, vous les voyez en double, ça prend donc le double du temps à repérer la photo que vous voulez afficher ou sélectionner sur votre téléphone.

Pour l’instant, après un mois d’utilisation de Seafile, c’est le jour et la nuit à côté de OwnCloud.

Un bémol sur Seafile?

Oui, pour l’instant, l’application Android n’upload seulement que les photos prises par votre téléphone, pas les vidéos. Je n’ai réussi à trouver aucune documentation en ligne sur ce problème, donc je pense que c’est bel et bien de la façon dont l’application est codé. Si je trouve un hack pour faire fonctionner cela, je mettrai à jour cette article pour vous en aviser.

Site officiel: http://www.seafile.com/

LinuxMint

Connaissez-vous LinuxMint?

Et bien pour ceux et celles qui ne connaissent pas, laissez-moi vous en parler, j’ai découvert ce joyaux il y a quelques semaines.

mint

 

LinuxMint est une distribution de Linux, basée sur Debian et Ubuntu, comprenant une panoplie de logiciels pré-installés, incluant des logiciels non libre, tel que Adobe Flash Player par exemple.

Mais LA raison pour laquelle j’adore cette distro, c’est qu’elle vient avec une panoplie de pilotes (drivers) inclus. Contrairement à Ubuntu, où une fois installé, on se fait souvent, si ce n’est pas systématiquement, chier à faire fonctionner notre carte WiFi ou carte Ethernet, sur LinuxMint, tout fonctionne, c’est magique!

Évidement il y a un prix à cela, une fois installé, LinuxMint prend beaucoup plus d’espace disque que Ubuntu, puisqu’il y a une tonne de pilotes que vous n’avez pas de besoin. Voyez LinuxMint comme Windows à ce niveau. Mieux vaut avoir plus de pilotes, que pas assez, ça simplifie énormément les choses.

On peut le télécharger en plusieurs versions au niveau de l’interface graphique.

Cinnamon, l’interface dont je suis tombé en amour littéralement, c’est tellement mieux que le maudit Unity de Ubuntu, ou du vieux Gnome2. ressemble beaucoup à Windows.

MATE, une version similaire à Gnome2, inspiré de Mac OS X, mais avec également une barre des tâches dans le bas de l’écran.

KDE

et Xfce

Site officiel: http://www.linuxmint.com/

Articles plus anciens «

  • RSS
  • Twitter
  • PSN
  • Lodestone