Wiki [Tuto/HowTo] [Android] Synchroniser ses Notes sur Nextcloud ou Owncloud

0
25
sept.
2017

Note : ce tuto fonctionne autant avec nextcloud que owncloud, n'hésitez pas a énoncer toutes différences entre les deux ;)
Note : l'application Note doit être Activée sur Nextcloud|Owncloud

  1. Installez l'application android Nextcloud Note soit via F-Droid, YalpStore ou au pire Playstore
    screenshot-2017_09_25-android-F_Droid-Nextcloud_Note

  2. Cliquez sur le bouton de Menu (trois points horizontaux) en haut à droite puis sur Paramètres
    screenshot-2017_09_25-android-Nextcloud_Note-Menu

  3. Entrez l'adresse web (URL) pour joindre votre cloud, votre login et le password (n'oubliez pas d'en générez sur votre cloud dans Personnel -> Sécurité -> Créer un nouveau mot de passe de l'application, ceci afin d'augmenter la sécurité en cas de vol). Enfin cliquez sur SE CONNECTER et attendez que le logiciel vous renvoi sur sa page principale.
    screenshot-2017_09_25-android-Nextcloud_Note-Paramètres
    screenshot-2017_09_25-android-Nextcloud_Note

Wiki [Tuto/HowTo] [Ubuntu/Debian] Chiffrer ses volumes Glusterfs

0
25
sept.
2017

Introduction

Par défaut les communications de glusterfs-server et de glusterfs-client ne sont pas chiffrées. Glusterfs peut néanmoins utiliser TLS (ex SLL) pour chiffrer les communications et casser ainsi toute tentative de MITM.
Ensemble, nous allons voir comment.

Les fichiers dont à besoin glusterfs pour le chiffrement via TLS

  • /etc/ssl/glusterfs.pem => Votre certificat. Ce fichier unique doit être sur chaque noeud et ne doit pas être partagé.
  • /etc/ssl/glusterfs.key => Votre clés privée. Elle doit être disponible sur chacun des Noeuds et clients.
  • /etc/ssl/glusterfs.ca => Ce fichier doit être à l'identique sur toutes les machines du cluster, autant client que serveur.
  • /var/lib/glusterd/secure-access => Fichier vide dont l'existence permet à glusterfs de savoir qu'il doit activer TLS. Doit être présent sur toutes les machines du cluster.

Mise en place

Installer le module de chiffrement

  • On se rend dans le dossier /etc/ssl
cd /etc/ssl/
  • Création des clés
sudo openssl genrsa -out glusterfs.key 2048
  • Création des certificats, remplacez hostnameNode par vos valeus - à répéter pour chaque node (server & client)
sudo openssl req -new -x509 -key glusterfs.key -subj "/CN=hostnameNODE" -out glusterfs_hostnameNode.pem
  • Concaténation des certificats (client & server), pour les serveurs
cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_server.ca
  • Concaténation des certificats (server), pour les clients
cat glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem glusterfs_hostnameNode.pem > glusterfs_client.ca

**Note :* autant utiliser directement celle juste ci-haut

  • On prépare l'export
mkdir /tmp/gluster
cp /etc/ssl/gluster* /tmp/gluster/
chmod 777 -R /tmp/gluster/
  • Envoyez sur chaque Noeuds sa clés privé (.key) et son certificat (.pem)
    • Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_hostnameNode.pem /etc/ssl/
  • On exporte maintenant le certificat concaténé sur tout les serveurs
    • Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_server.ca /etc/ssl/glusterfs_server.ca
  • On exporte maintenant le certificat concaténé sur tout les clients
    • Exemple en lançant la commande depuis un client
scp monUser@machineQuiAGenereLesCertif:/tmp/gluster/glusterfs_client.ca /etc/ssl/glusterfs_client.ca
  • Activer le chiffrement côté serveur (à reproduire sur chaque serveur)
sudo touch /var/lib/glusterd/secure-access
service glusterfs-server restart
  • Activer le chiffrement côté client (à reproduire sur chaque client)
sudo touch /var/lib/glusterd/secure-access

Activer le chiffrement des communications d'un volume

Note : il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients.

gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl on
gluster volume set VOLNAME client.ssl on
gluster volume start VOLNAME

Désactiver le chiffrement des communications d'un volume

Note : il est conseillé de démonter (umount) les dossiers glusterfs déjà monté sur les clients.

gluster volume stop VOLNAME
gluster volume set VOLNAME server.ssl off
gluster volume set VOLNAME client.ssl off
gluster volume start VOLNAME

Wiki [Tuto/HowTo] [Debian/Ubuntu] Clusteriser vos bases de données MariaDB avec Galera Cluster et HaProxy

0
21
sept.
2017

Sommaire

Présentation

Un Cluster de base de données est un ensemble de serveurs reliés entre eux via réseau afin de créer un ensemble virtuel utilisant la réplication des données pour protéger les bases de données contre une éventuelle panne (machine, réseau).

HaProxy va servir de pont (proxy) entre les clients et les serveurs du cluster de base de données. C'est un répartiteur de charge (load balancer) qui va choisir le serveur le plus facilement accessible (le moins occupés) lorsqu'un client veut effectuer une action sur les BDD. Il n'est pas obligatoire au bon fonctionnement du cluster, juste une belle optimisation.

Galera Cluster quant à lui permet de créer/gérer le cluster mariaDB. Il va aussi s'occuper de la redondance des données (leur multiplication dans la grappe).

Un serveur peut tout à fait cumuler répartiteur de charge HaProxy et serveur de base de données Galera Cluster.

Attention : Si vous devez reboot une machine du cluster, vous devrez probablement lancer cette commande sur un des Noeuds et relancer les autres.

sed -ie '/safe_to/c\safe_to_bootstrap: 1' /var/lib/mysql/grastate.dat
mysqld_safe --wsrep-new-cluster

Limitations

source : MariaDB Galera Cluster : la réplication multi maitres

Mise en place de Galera Cluster + mariadb

Passez en administrateur (root)
  • Sur Ubuntu / Raspbian
sudo su
  • Sur Debian / Ubuntu Minimal
su
Ajoutez clés et dépôts pour la dernière version (10.2.x)
  • Sur Ubuntu 16.xx
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.cu.be/repo/10.2/ubuntu xenial main'
  • Sur Debian 8 (Jessie) / Raspbian Jessie
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.mirror.nucleus.be/repo/10.2/debian jessie main'
  • Sur Debian 9 (stretch)
sudo apt-get install software-properties-common dirmngr
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mariadb.mirror.nucleus.be/repo/10.2/debian stretch main'
Installez la dernière version de mariadb-server et galera
apt-get update
apt-get install -y mariadb-server galera-3

éventuellement l'Arbitrator (attention, ne réplique PAS les base de données mais reçoit autant de requête)

apt-get install galera-arbitrator-3
Créez /etc/mysql/conf.d/galera.cnf
nano /etc/mysql/conf.d/galera.cnf
  • Ensuite ajoutez dedans
[mysqld]
#mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
query_cache_size=0
query_cache_type=0
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=256M
bind-address=10.8.1.42

#Galera settings
wsrep_provider=/usr/lib/libgalera_smm.so
#SSL for Galera
#wsrep_provider_options="socket.ssl_key=/etc/mysql/ssl/server-key.pem;socket.ssl_cert=/etc/mysql/ssl/server-cert.pem;socket.ssl_ca=/etc/mysql/ssl/ca-cert.pem"
wsrep_cluster_name="monSuperCluster"
wsrep_cluster_address="gcomm://10.8.1.42,10.8.1.43,10.8.1.44"
wsrep_sst_method=rsync
wsrep_on=ON
wsrep_node_address="10.8.1.42"
wsrep_node_name="monJoliNom"
  • Ajoutez à wsrep_cluster_address= les hostnames de vos machines séparés par des virgules par exemple
wsrep_cluster_address="hostnameMachine1,hostnameMachine2,hostnameMachine3"

Note : il est déconseillé de spécifier des adresses IP, privilégiez plus tôt des noms de domaines dont vous ferez la correspondance soit dans votre serveur DNS, soit dans vos fichiers /etc/hosts.

  • Vérifiez à default_storage_engine= qu'InnoDB est bien le moteur par défaut (vous pouvez éventuellement le remplacer par un autre moteur tant qu'il est compatible avec galera)
default_storage_engine=InnoDB
  • Spécifiez éventuellement à innodb_buffer_pool_size= combien mémoire (RAM et Swap) InnoDB peut consommer
innodb_buffer_pool_size=256M

Note : la doc conseille de prendre la valeur qu'on utilise sur un serveur lambda et de réduire l'utilisation mémoire de 5% afin de ne pas subir une augmentation dû a l'utilisation du cluster.

  • Le nom du cluster (doit obligatoirement être identique sur chaque Node)
wsrep_cluster_name="monSuperCluster"
  • L'adresse du Node
wsrep_node_address="10.8.1.42"
  • Le nom du Node
wsrep_node_name="monJoliNom"
  • Le provider du Node (paramètre wsrep_provider)
wsrep_provider=/usr/lib/libgalera_smm.so
  • Au choix /usr/lib/libgalera_smm.so ou /usr/lib/galera/libgalera_smm.so
Autoriser dans AppArmor le cluster à utiliser des ports non root (source)
sudo ln -s /etc/apparmor.d/usr /etc/apparmor.d/disable/.sbin.mysqld
sudo service apparmor restart
Sur certaines machines le fichier /etc/mysql/my.cnf n'existe pas. Si c'est le cas, créez le en copiant le contenu suivant
[a vérifier] Si vous partez d'une base de données mysql/mariadb déjà existante, vous devez l'upgrade vers galera (source)
Sur un des nodes arrêtez mariadb
service mysql stop
Ensuite initialisez le cluster
sudo /usr/bin/galera_new_cluster
Relancez mariadb sur tout les Nodes
service mysql restart
Testez si ça fonctionne
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"
Si vous avez l'erreur "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded", sur tout les nodes, resetez les password admin :
service mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
use mysql;
update user set password=PASSWORD("MY_NEW_PASSWORD_HERE") where User='root';
update user set plugin="mysql_native_password";
quit;
/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start

Installation d'un répartiteur de charge HaProxy pour Galera Cluster

Note : vous pouvez le ou les installer sur des machines dédiés, ou sur un ou plusieurs de vos serveurs de bases de données (dans ce dernier cas, veillez à écouter sur des ports différents si non conflit). Vous pouvez aussi directement l'installer sur un client.

Installez les pré-requis
apt-get update
apt-get install haproxy
Éditez la valeur ENABLED=0 à ENABLED=1 dans les fichiers /etc/default/haproxy et /etc/init.d/haproxy
sed -i "s/ENABLED=0/ENABLED=1/g" /etc/default/haproxy
sed -i "s/ENABLED=0/ENABLED=1/g" /etc/init.d/haproxy
Éditez /etc/haproxy/haproxy.cfg
sudo nano /etc/haproxy/haproxy.cfg
Adaptez puis ajoutez
# Load Balancing for Galera Cluster
listen galera
bind 10.8.0.66:3306
balance leastconn
mode tcp
option tcpka
option mysql-check user haproxy
server hostnameNode1 10.8.1.42:3306 check weight 1
server hostnameNode2 10.8.1.43:3306 check weight 1
server hostnameNode3 10.8.1.44:3306 check weight 1
  • listen galera => Format "listen numUnique". Identifie notre bloc de configuration.
  • bind 10.8.0.66:3306 => adresseIP:port sur quelle adresse le serveur HaProxy doit-il écouter (si vous passez par des tunnels SSH, choisissez 127.0.0.1). Si votre répartiteur est sur la même machine que le cluster de Base De Données, pensez à lui attribuer un port différent. (qu'il faudra mentionner aux clients) Le caractère magique * est autorisé.
  • mode tcp => choisissez tcp
  • balance leastconn => l’algorithme de répartition de charge (load balancing). Accepte : roundrobin , leastconn, source. (informations) option mysql-check user haproxy => on demande a HaProxy de tenter de se connecter à la base de données du cluster
  • stats => configurer la WEBUI pour administrer HaProxy depuis votre navigateur

    • listen stats 127.0.0.1:8080 => adresseIP:port sur quelle adresse le serveur Web doit écouter/répondre pour la WEBUI (si vous passez par tunnels SSH ou Tor Hidden Service indiquez 127.0.0.1 comme IP et prenez un port inutilisé (peu importe lequel tant que vos ne l’oubliez pas)
    • stats enable|disable => activer|désactiver la WEBUI
Commentez option httplog puis sauvez et quittez avec CTRL+X
Sur le cluster Galera, créez l'utilisateur dédié à HaProxy
mysql -u root -p -e "CREATE USER 'haproxy'@'10.8.1.%';"
  • 10.8.1.% => ici on autorise les connexions entrantes depuis les adresses IP allant de 10.8.1.0 à 10.8.1.255, remplacez par une seule adresse si vous le souhaitez (déconseilez si vous souhaitez pouvoir utiliser plusieurs répartiteur de charge)
Démarrez HaProxy
service haproxy restart

Ajouter un serveur à Galera Cluster

Installez votre serveur en suivant la procédure ci-haut.
Sur chacun de vos Nodes éditez le fichier /etc/mysql/conf.d/galera.cnf afin d'ajouter l'hostname de votre nouveau serveur. La valeur à éditer est wsrep_cluster_address (CTRL+W pour chercher), comme suit
wsrep_cluster_address="gcomm://hostnameServer1,hostnameServer2,hostnameServer3"
Sur chacun de vos Nodes éditez le fichier /etc/hosts afin d'ajouter la correspondance entre adresse IP et nom de domaine pour votre nouveau serveur. Par exemple
10.8.0.42 penséeprofonde
10.8.0.43 server1
10.8.0.44 server2
  • Note : A moins d'avoir spécifié "bind 0.0.0.0" (= écoute sur toutes les IP) sur vos différents Noeuds, il est primordiale de joindre les ip que vous avez spécifiez en écoute. Si par exemple sur server1 vous avez spécifiez "bind 10.8.0.43" (= écoute uniquement sur 10.8.0.43) alors il faut obligatoirement joindre ce serveur sur cette adresse (même 127.0.0.1 et localhost ne fonctionneront pas!).

Connecter un client au Cluster Galera

Installez le client mysql/mariadb

apt-get install -y mariadb-client

Si vous souhaitez pouvoir 'l'utiliser depuis php, installez le module php-mysql

apt-get install php-mysql

Pour vous connecter à vos Bases De Données, spécifiez comme host au choix votre Répartiteur de charge HaProxy ou directement un de vos serveurs Galera. N'oubliez pas de bien joindre les IP que vous avez spécifiez en écoute à moins d'avoir choisis "bind 0.0.0.0".

Du point de vue client le cluster va se comporter comme un simple serveur mysql/mariadb. N'oubliez pas néanmoins de toujours utiliser des clés primaires dans vos tables de données.


Quelques commandes

Afficher des infos à propos du cluster (toutes les variables "wsrep_").
mysql -u root -p -e "show status like 'wsrep%';"
Afficher des infos à propos des utilisateurs de vos Base de Données.
mysql -u root -p -e "select host, user, password from mysql.user;"
Créer un utilisateur et sa Base de Données
mysql -u root -p -e "CREATE DATABASE MA_BASE; GRANT ALL PRIVILEGES ON MA_BASE.* TO 'monUSER'@'10.8.1.%' identified by 'monPass'; FLUSH PRIVILEGES;"
  • Traduction : Créer la base de données intitulée MA_BASE. Ensuite donner accès à MA_BASE à l'utilisateur monUSER depuis n'importe quelle adresse du réseau 10.8.1.x et dont le mot de passe est monPass (en claire).
Changer mot de passe utilisateur
mysql -uroot -p -e "UPDATE mysql.user SET Password=PASSWORD('monNouveauPASS') WHERE USER='monUSER';"
Changer Host accepté pour un utilisateur
mysql -uroot -p -e "UPDATE mysql.user SET Host='%.%.%.%' WHERE USER='monUser';"
  • Dans l'exemple ici on autorise toutes les IP sources pour l'utilisateur monUser.
Checker combien de Nœuds sont connecté.
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size';"
  • Cette commande est très utile pour vérifier qu'une machine est bien connectée au cluster.

screenshot-2017_08_22-Commade_Galera_Cluster_mariadb_Status_Cluster

Supprimer une Base de Données.
mysql -uroot -p -e "DROP DATABASE maBaseDeDonnées;"
Supprimer un utilisateur
mysql -uroot -p -e "DROP USER ‘identifiant’@’serveur’;"

Wiki [Tuto/HowTo] [Ubuntu/Debian] Créer un JBOD (raid0 non strip) avec btrfs

0
21
sept.
2017

Introduction

Parmi toutes les méthodes que j'ai testé (entre autre : mdadm, zfs, glusterfs, mhddfs), btrfs offre la méthode la plus simple de mise en place.
Voyons ensemble comment créer un JBOD avec btrfs.
Pour rappel un JBOD est un agrégat (une addition) de plusieurs disques. Btrfs accepte de commencer avec un seul disque et d'en ajouter par la suite.
Les méta-données sont dupliquées sur chaque disque, les données ne sont ni découpées (strip) ni dupliquées (mirror).
Le côté dommage est qu'au niveau du montage il y a un point of failure. En effet dans votre fichier /etc/fstab pour effectuer le montage vous devrez indiquer un seul des disques de la partition JBOD. Si ce disque plante la partition ne sera plus montable sans modifier le fichier /etc/fstab. (ndlr: initramfs ?)
En cas de défaillance d'un espace mémoire, les données présentes sur les autres espaces mémoire sont toujours accessible. Par contre les données sur le disque cassé sont bien entendu perdues.

Mise en place

Note : toutes les commandes suivantes sont à exécuter en tant que root.

Installez les pré-requis

apt install -y btrfs-tools

Listez les disques

fdisk -l
  • Récupérez les chemins de vos disques (par exemple /dev/sdb et /dev/sdc).

Créez la "partition" btrfs sur un ou plusieurs disques (vous pourrez en ajouter par la suite)

mkfs.btrfs -d single /dev/sdb /dev/sdc
  • l'option -d single indique que l'on ne veut pas dupliquer les datas

screenshot-2017_08_11-Tuto-BTRFS-Creation_JBOD_01

Création du point de montage

mkdir /media/mountPoint

Montez la "partition" btrfs (vous pouvez choisir n'importe quel disque de la "partition")

mount /dev/sdb /media/mountPoint

Récupérez l'UID de n'importe lequel de vos disques participant à "la grappe"

blkid | grep "btrfs" | grep -E " UUID=\"([0-9a-z]{1,}[\-]{0,}){0,}\""

Éditez le fichier /etc/fstab

nano /etc/fstab

Adaptez puis ajoutez la ligne suivante

UUID=blablabla-uid-de-votre-disque-blablabla /media/mountPoint           btrfs   defaults,rw      0  0

Suppléments

Ajouter un disque

Lancez la commande suivante

btrfs device add /dev/sdc /media/mountPoint
  • Note : le volume doit être monté

Retirer un disque

Lancez la commande suivante

btrfs device delete /dev/sdc /media/mountPoint
  • Note : le volume doit être monté

Wiki XMPP_et_Matrix

Licence CC by-sa
Tags : aucun
1
21
juil.
2017

Quelle est la différence entre Matrix et XMPP?

L'équipe Matrix a utilisé XMPP (Openfire, ejabberd, spectrum, asmack, XMPPFramework) pour sa messagerie instantanée (IM) avant de commencer à expérimenter avec open HTTP APIs comme alternative vers 2012. Les principaux soucis XMPP qui nous ont dirigés vers cette direction sont:

  • Pas particulièrement web-friendly - il est difficile de parler XMPP à partir d'un navigateur web. (N.B. de nos jours des options comme XMPP-FTW et Stanza.io peuvent aider les navigateurs à parler XMPP).
  • Un seul serveur logique par MUC est un point unique de contrôle et de disponibilité. (les MUCs peuvent être répartis sur plusieurs serveurs physiques, mais ils se placent quand même derrière un point unique logique JID et domaine). FMUC améliore ce point avec une approche similaire à Matrix, mais au jour d'octobre 2015, il n'y a pas d'implémentation libre)
  • La synchronisation de l'historique n'est pas une fonctionnalité principale
  • Les passerelles vers les autres protocoles et la défragmentation des réseaux et applications de communication existantes ne sont pas une fonctionnalité principale
  • Les Stanzas ne sont pas encadrés ou délivrés de manière fiable sans extensions (voir wiki.xmpp pour l'avis de XMPP sur cela)
  • Le support des appareils multiples est limité (apparemment Carbons et MAM aident sur ce point)
  • Les fonctionnalités de base sont tellement minimales que la fragmentations des fonctionnalités entre clients et serveurs deviennent courantes, particulièrement depuis que les profils d'interopérabilités pour les fonctionnalités sont à la traîne (à la date de juillet 2015)
  • Pas de système d'identité fort (i.e. pas de standard E2E PKI, à moins que que l'on compte les certificats X.509, ce qui est questionable).
  • Pas particulièrement bien conçu pour les cas d'utilisation de mobiles : push, transport avec optimisation de la bande passante (depuis que cet article a été écrit, un Push XEP est apparu, et wiki.xmpp.org prétend que XMPP marche bien sur un connexion à 9600bps + 30s de latence).

Le sujet XMPP vs Matrix semble faire ressortir le mauvais côté des gens. Plutôt que de se disputer sur quel standard de communication libre et interopérable marche le mieux, on devrait collaborer et tout relier ensemble. Plus il y a de fédération et d'interopérabilité, mieux c'est.

On pense que Matrix et XMPP sont assez différents ; dans son principe, Matrix peut être vu comme une base de données JSON, à terme cohérente, avec une API HTTP et une sémantique pubsub, alors que XMPP peut être vu comme un protocole de transmission de messages. Vous pouvez utiliser les deux pour construire un système de chat ; vous pouvez utiliser les deux pour construire un système de pubsub ; chacun possède des avantages et des inconvénients. Matrix a délibérément choisi une approche « kitchen sink » pour ses fonctionnalités de base. XMPP a choisi délibérément des fonctionnalités de base minimaux. Si XMPP répond à votre besoin, alors nous sommes sincèrement content pour vous :)
En attendant, plutôt que d'être en compétition, une passerelle XMPP comme xmpptrix beta de Skaverat ou matrix-xmpp-bridge de jfred ou le propre purple-matrix de Matrix.org a le potentiel de laisser les deux environnements coexister et de tirer le meilleur de chacun.

Wiki [Tuto/HowTo] Installation de Retroshare sur FreeBSD

0
7
juil.
2017

retroshare logo

====== EN COURS DE RÉDACTION ======

Introduction

Retroshare est un réseau social utilisant les technologies F2F. Il permet, entre autre, la discutions instantanée, le partage de fichiers, la création de forum, blog, la création de chaîne multimédia, l’utilisation d'API (permettant la création de bridge), des émails (à l'intérieur du réseau), l'utilisation de liens magnet propre à RetroShare.
Après avoir ajouté quelques contacts, Retroshare vous permettra de profiter d'un catalogue de fichiers mis en partage par vos contacts et par les contacts de vos contacts.
Retroshare peut-être configuré afin de faire tourner des nœuds dédiés (permettant par exemple aux contacts commun du Nœud de se retrouver plus rapidement en IP dynamique), que se soit aux relais entre les contacts communs ou à la sauvegarde et partage d'informations (forum, fichiers, etc).
Sur le réseau Retroshare (comme sur tout internet), l'information (message, fichiers, etc) persiste tant qu'un Nœud/Peers dispose de l'information et la laisse en partage aux autres. De ce fait, censurer une information n'est possible qu'en s'attaquant à l'ensemble des Nœuds disposant de l'infos.
Retroshare fonctionne sans problème sur FreeBSD.
Note : Ce tuto ne s'occupe que de la partie installation/désinstallation. Pour la partie utilisation voyez à suivre

EDIT : la personne qui devait m'aider à rédiger ce tuto ne donne plus aucun signe de vie. Ce tuto est donc en attente d'un(e) BSDist pour adapter le tuto depuis ubuntu/debian vers FreeBSD. N'hésitez pas à participer ;)

_


_

Screenshot

demo1-screenshot-2017_06_28-Retroshare-Tuto
demo2-screenshot-2017_06_28-Retroshare-Tuto
demo3-screenshot-2017_06_28-Retroshare-Tuto
demo4-screenshot-2017_06_28-Retroshare-Tuto
demo5-screenshot-2017_06_28-Retroshare-Tuto
demo6-screenshot-2017_06_28-Retroshare-Tuto

Wiki [Tuto/HowTo] Retroshare configurer i2p sur ubuntu/debian

0
5
juil.
2017

logo retroshare

Introduction

La technologie i2p est un réseau d'anonymisation permettant de faire communiquer des machines entre elles à travers un ensemble de proxy. Les données à l'intérieur de ce réseau sont chiffrées et, comme pour Tor, la source ne connaît pas l'adresse IP destinataire.
Ce mécanisme peut-être utilisé afin de passer à travers le NAT sans se casser la nenettte à le configurer.
Installer i2P est nécessaire si vous souhaitez pouvoir communiquer avec les nœuds RetroShare utilisant ce mécanisme.

Mise en place d'i2p sur Ubuntu/Debian

  • Ouvrez un terminal de commande

  • Passez en administrateur (root)

    • Sur Ubuntu sudo su
    • Sur Debian/Ubuntu-Minimal su
  • Installez le pré-requis

apt-get install software-properties-common
  • Ajoutez le dépôts d'i2p
add-apt-repository ppa:i2p-maintainers/i2p
  • Mettez à jours la liste des paquets
apt-get update
  • Lancez l'installation
apt-get install -y i2p
  • Lancez la configuration d'i2p (choisissez de démarrer au boot avec un utilisateur sans droit, laissez le reste pas défaut).
dpkg-reconfigure -plow i2p
  • Lancez RetroShare puis allez dans Préférences => Réseau => Configuration Service caché => i2p indiquez comme port pour "i2p sortie" : 4444 (si le voyant ne se met pas au vert, rendez-vous avez votre navigateur à l'adresse http://127.0.0.1:7657 et cliquez sur Tunnel Local puis récupérez le port à HTTP Proxy)

Wiki [Tuto/HowTo] Retroshare sur Ubuntu/Debian passer de la version stable à unstable (up-to-date)

0
4
juil.
2017

logo retroshare

Introduction

  • Si vous tombez sur ce topic, c'est que vous souhaitez passer de la version dite "stable" à la version "unstable" (up-to-date) de RetroShare. C'est se que vous conseil csoler le développeur principal de Retroshare. Vous avez donc bien raison.

Mise en place

  • Ouvrez un terminal de commande

  • Passez en administrateur (root)

    • Sur Ubuntu
sudo su
  • Sur Debian
su
  • Désinstallez RetroShare
apt-get remove retroshare06
  • Supprimez les dépôts de la version "stable"
rm /etc/apt/sources.list.d/retroshare-ubuntu-stable*
  • Ajoutez le dépôt retroshare/unstable
add-apt-repository ppa:retroshare/unstable
  • Mettez à jours la liste des paquets
apt-get update
  • Lancez l'installation
apt-get install -y retroshare06 tor
  • C'est terminé

Wiki [Tuto/HowTo] Installation de Retroshare sur ubuntu

3
28
juin
2017

Sommaire

retroshare logo

Introduction

Retroshare est un réseau social utilisant les technologies F2F. Il permet, entre autre, la discutions instantanée, le partage de fichiers, la création de forum, blog, la création de chaîne multimédia, l’utilisation d'API (permettant la création de bridge), des émails (à l'intérieur du réseau), l'utilisation de liens magnet propre à RetroShare.
Après avoir ajouté quelques contacts, Retroshare vous permettra de profiter d'un catalogue de fichiers mis en partage par vos contacts et par les contacts de vos contacts.
Retroshare peut-être configuré afin de faire tourner des nœuds dédiés (permettant par exemple aux contacts commun du Nœud de se retrouver plus rapidement en IP dynamique), que se soit aux relais entre les contacts communs ou à la sauvegarde et partage d'informations (forum, fichiers, etc).
Sur le réseau Retroshare (comme sur tout internet), l'information (message, fichiers, etc) persiste tant qu'un Nœud/Peers dispose de l'information et la laisse en partage aux autres. De ce fait, censurer une information n'est possible qu'en s'attaquant à l'ensemble des Nœuds disposant de l'infos.
Note : Ce tuto ne s'occupe que de la partie installation/désinstallation. Pour la partie utilisation voyez à suivre
Note Bis : il semble y avoir un bug sur Xubuntu, n'envoyez pas Retroshare dans la barre de Notification ;)

Désinstaller Retroshare sur Ubuntu

Ouvrez un terminal de commande

Lancez la désinstallation

sudo apt-get remove -y retroshare06
sudo apt-get autoclean
rm -rf /home/*/.retroshare

_


_

Installer Retroshare sur Ubuntu

1) Ouvrez un terminal de commande

2) Passez en administrateur (root)

sudo su
  • Installez le pré-requis
apt-get install software-properties-common

3) Ajoutez le dépôts officiel de Retroshare et celui de i2p pour Ubuntu

add-apt-repository ppa:retroshare/unstable
add-apt-repository  ppa:i2p-maintainers/i2p

Note : la version disponible via add-apt-repository ppa:retroshare/stable est déconseillée par les Devs car elle est trop rarement mise à jours. La version "unstable" est considérée comme une up-to-date et conseillée d'utilisation par l'équipe de Dev.

4) Mettez à jours la liste des paquets

apt-get update

5) Lancez l'installation

apt-get install -y retroshare06 tor i2p

Note : même si vous n'utilisez pas d'Hidden Service il est nécessaire d'installer tor afin de pouvoir communiquer avec ceux qui sont derrière un Hidden Service.

6) Lancez la configuration d'i2p

dpkg-reconfigure -plow i2p

Note : Choisissez de démarrer au boot avec un utilisateur sans droit (pas root!). Ensuite plus tard quand vous aurez créé votre compte RetroShare allez dans Préférences => Réseau => Configuration Service caché => i2p indiquez comme port pour "i2p sortie" : 4444 (si le voyant ne se met pas au vert, rendez-vous avez votre navigateur à l'adresse http://127.0.0.1:7657 et cliquez sur Tunnel Local puis récupérez le port a HTTP Proxy)

7) Dans votre menu cherchez retroshare et lancez le, vous allez tomber sur la fenêtre suivante qu'il vous faut remplir

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_first_lunch

8) Cliquez sur "Options avancées". Pour "Longueur de la clés PGP" choisissez la plus grosse et à "Type d'emplacement" laissez "Emplacement standard".

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_first_lunch_advanced

9) Faites bouger votre souris de façon le plus imprédictible possible jusqu'à se que "Données aléatoire" soit à 100%.

10) Cliquez enfin sur "Générer un nouveau profil et nœud". Retroshare devrait ensuite se lancer :)

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_Fin

_


_

Installer Retroshare avec Hidden Service Tor sur Ubuntu

Note : via cette méthode vous n'aurez PAS accès à la DHT, seulement au mode découverte ou DarkNet.

1) Ouvrez un terminal de commande

2) Passez en administrateur (root)

sudo su
  • Installez le pré-requis (facultatif sur ubuntu)
apt-get install software-properties-common

3) Ajoutez le dépôts officiel de Retroshare pour Ubuntu

add-apt-repository ppa:retroshare/unstable

Note : la version disponible via add-apt-repository ppa:retroshare/stable est déconseillée par les Devs car elle est trop rarement mise à jours. La version "unstable" est considérée comme une up-to-date et conseillée d'utilisation par l'équipe de Dev.

4) Mettez à jours la liste des paquets

apt-get update

5) Lancez l'installation

apt-get install -y retroshare06 tor i2p
mkdir -p /var/lib/tor/hidden_service/retroshare
echo "# Hidden Service Retroshare" >> /etc/tor/torrc
echo "HiddenServiceDir /var/lib/tor/hidden_service/retroshare" >> /etc/tor/torrc
echo "HiddenServicePort 7812 127.0.0.1:7812" >> /etc/tor/torrc
chown debian-tor:root -R /var/lib/tor/hidden_service/
chmod 700 -R /var/lib/tor/hidden_service/
service tor restart

Note : le port par défaut est 7812, pour une meilleure sécurité vous pouvez éventuellement le changer (choisissez dans la plage 2000 à 60000). Si vous voulez changer de port éditez la commande echo "HiddenServicePort 7812 127.0.0.1:7812" >> /etc/tor/torrc

6) Affichez l'hidden service associé à retroshare


cat /var/lib/tor/hidden_service/retroshare/hostname

screenshot-2017_06_28-Tuto-Retroshare-Afficher_Adresse_Hidden_Service

Note : Si vous créez plusieurs Nœuds/Utilisateurs vous pouvez leur spécifier un hidden service différent mais cela n'est que facultatif tant que vous ne faites pas tourner plusieurs utilisateurs en même temps.

Si vous souhaitez Reset l'adresse de l'hidden service
rm -f /var/lib/tor/hidden_service/retroshare/*
service tor restart
cat /var/lib/tor/hidden_service/retroshare/hostname

7) Lancez la configuration d'i2p

dpkg-reconfigure -plow i2p

Note : Choisissez de démarrer au boot avec un utilisateur sans droit (pas root!). Ensuite plus tard quand vous aurez créé votre compte RetroShare allez dans Préférences => Réseau => Configuration Service caché => i2p indiquez comme port pour "i2p sortie" : 4444 (si le voyant ne se met pas au vert, rendez-vous avez votre navigateur à l'adresse http://127.0.0.1:7657 et cliquez sur Tunnel Local puis récupérez le port a HTTP Proxy)

8) Dans votre menu cherchez retroshare et lancez le, vous allez tomber sur la fenêtre suivante qu'il vous faut remplir

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_first_lunch

9) Cliquez sur "Options avancées". Pour "Longueur de la clés PGP" choisissez la plus grosse et à "Type d'emplacement" choisissez "Emplacement cachés TOR/I2P" et entrez l'hostname.onion créé précédemment. Si vous avez changez le port par défaut n'oubliez pas de l'indiquer.

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_first_lunch_advanced_tor

10) Faites bouger votre souris de façon le plus imprédictible possible jusqu'à se que "Données aléatoire" soit à 100%.

11) Cliquez enfin sur "Générer un nouveau profil et nœud". Une fenêtre de vérification va faire une apparition temporaire.

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_first_lunch_verification

12) Enfin Retroshare devrait se lancer seul :)

screenshot-2017_06_28-Tutoriel-Retroshare_Installation_Fin

13) Rendez-vous dans "Préférences" => "Réseau" => "Configuration de service caché" et vérifiez que les ports correspondent à ce que vous avez spécifié lors de l’installation. Ensuite cliquez sur "Test" afin de vérifier la connectivité. Un point noir devrait passer au vert juste à côté de "Tor entrant OK"

screenshot-2017_06_29-Tutoriel-Retroshare_Installation_Configuration_Reseau_Tor

_


_

_


_

Screenshot

demo1-screenshot-2017_06_28-Retroshare-Tuto
demo2-screenshot-2017_06_28-Retroshare-Tuto
demo3-screenshot-2017_06_28-Retroshare-Tuto
demo4-screenshot-2017_06_28-Retroshare-Tuto
demo5-screenshot-2017_06_28-Retroshare-Tuto
demo6-screenshot-2017_06_28-Retroshare-Tuto

Wiki Présentation Odroid XU4 et installation Ubuntu 16.04

1
27
juin
2017

Sommaire

Introduction

Présentation

Le Odroid XU4 est un mini ordinateur ayant des capacités supérieurs aux Raspberry Pi 1,2 et 3. Entre autre un processeur octacore, 2Go de Ram DDR3, carte réseau Gigabit. Les diodes lumineuses sont de sacrément bonne qualité (belle teinte, forte luminescence), dommage qu'on ne puisse pas les régler :) Côté bémols citons l'absence d'un petit ressort afin de pouvoir sortir facilement la carte microSD via une légère pression comme sur Raspberry Pi (si, comme pour moi, votre chat arrive à péter la carte microSD dans l'Odroid XU4, vous êtes parti pour 15 minutes de galère :D )
Je vous conseil de prendre la version sans le ventilateur mais avec un plus gros refroidisseur passif, puis d'utiliser un gros ventilateur d'ordinateur branché sur une alim récupérée. En effet avec un mouvement d'air ces refroidisseurs évacuent super bien la chaleur, et en utilisant un ventilateur de PC vous éviterez le boucan de la version avec un petit ventilo. (un gros ventilo qui tourne lentement fais moins de bruit qu'un petit ventilo qui tourne vite)
Néanmoins les processeurs font un bruit strident lorsqu'ils boulottent.
Notes : quand il travail il produit énormément de chaleur. Il ne possède pas de capteur de température pouvant être récupéré via la commande sensors.
Attention : c'est un processeur ARM non compatible 64bit, vérifiez la compatibilité avec ARM des logiciels que vous souhaitez utiliser dessus et ce avant d'en acheter un ;)

  • Prix via l'eshop de hardkernel (via paypal) : 64.5$ (+30$ si vous voulez passer par virement bancaire)
  • Frais de port vers Belgique : 19,87 $
  • Frais de douane : sur une commande de 2 XU4 j'ai payé 40,43€ de douane
  • Pays d'origine : Corée du Sud

Composants

Samsung Exynos 5422 Cortex™-A15 2Ghz and Cortex™-A7 Octa-core CPUs
Mali-T628 MP6 (OpenGL ES 3.0/2.0/1.1 et OpenCL 1.1 Full profile)
2GB LPDDR3 RAM
eMMC5.0 HS400 Flash Storage
2x USB 3.0 Host, 1x USB 2.0 Host
Gigabit Ethernet
HDMI 1.4a
dimension 82 x 58 x 22 mm (refroidisseur passif OU actif inclus)

Fiches techniques

fiche technique carte Odroid XU4
ficher technique ARM Mali T628

Installation de Ubuntu Minimal sur l'Odroid XU4

Note : Cette version est utile pour faire des serveurs et ne dispose pas d'interface graphique. Vous devrez brancher un écran HDMI et un clavier USB à votre XU4 pour son premier lancement/paramétrage. OpenSSH-server est pré-installé mais nécessite la création d'un utilisateur non root pour y accéder.

Téléchargez la dernière version d'Ubuntu pour odroid à cette adresse, décompressez la puis gravez la sur votre carte mémoire (même procédure que pour le Raspberry Pi).

Récupérez l'identifiant de montage de la carte mémoire (par exemple /dev/mmcblk0)
df -h
"Gravez" les fichiers de la distribution sur votre carte mémoire
sudo dd if=/home/monUser/Bureau/ubuntu-16.04.2-minimal-odroid-xu4-20170516.img of=/dev/mmcblk0
  • if=/home/monUser/Bureau/ubuntu-16.04.2-minimal-odroid-xu4-20170516.img la source
  • of=/dev/mmcblk0 la destination

Branchez votre carte mémoire dans le slot de votre Odroid-XU4.

Adaptez le petit bouton sur le flanc de l'appareil près du port HDMI afin de sélectionner SD ou eMMC suivant le type de carte mémoire que vous avez branché.

odroidXu4-tuto_installation

Connectez-vous avec le login root et le mot de passe odroid

Reconfigurez le clavier

dpkg-reconfigure keyboard-configuration

Configuration les options géographiques

dpkg-reconfigure locales
  • Pour Belgique cherchez "fr_BE.UTF-8 UTF-8" et appuyez sur espace pour sélectionner.

On lance la mise à jours

apt-get update
apt-get dist-upgrade -y

Changer le mot de passe de root

passwd

Créez un utilisateur non privilégié (obligatoire pour le contrôle à distance via ssh)

adduser nom-utilisateur

nom-utilisateur le nom de votre utilisateur en minuscule

Configuration d'Ubuntu 16.04 sur Odroid XU4

Fixer l'IP de l'Odroid XU4 sur Ubuntu

Éditez /etc/NetworkManager/NetworkManager.conf

nano /etc/NetworkManager/NetworkManager.conf
  • Passez
[ifupdown]
managed=false

À

[ifupdown]
managed=true

Éditez le fichier /etc/network/interfaces

nano /etc/network/interfaces

Ajoutez dedans les lignes suivantes en les adaptant

auto eth0
iface eth0 inet static
        address 192.168.10.2
        netmask 255.255.255.0
        gateway 192.168.10.1
        dns-nameservers 192.168.10.1
  • eth0 => la carte réseau à paramétrer
  • address 192.168.1.2 => l'adresse IP souhaitée
  • netmask 255.255.255.0 => Le masque de sous réseau. Vous pouvez laisser 255.255.255.0.
  • gateway 192.168.1.1 => L'adresse IP de la passerelle (le routeur). dns-nameservers 192.168.1.1 => L'adresse IP du serveur DNS (par exemple : le routeur (192.168.1.1), ou google (8.8.8.8))

Changer l'hostname de l'Odroid XU4 sur Ubuntu

Passez en admin (root)

su

Éditez le fichier /etc/hosts afin de faire pointer le nouveau nom vers la boucle locale (127.0.0.1)

nano /etc/hosts
  • et insérez à droite de 127.0.0.1 le nouveau nom

Remplacez l'ancien nom dans /etc/hostname par le nouveau

nano /etc/hostname

Redémarrez

reboot

Wiki Monter un volume/répertoire GlusterFS sur Ubuntu/Debian

0
27
juin
2017

Testé sur : Ubuntu 16.04, Raspbian Jessie
Ce wiki traite de la partie client de GlusterFS pour la partie serveur voyez ce wiki : GlusterFS sur Ubuntu/Debian

Introduction

  • On utilise FUSE pour monter un dossier GlusterFS. Ces dossiers sont distribués entre X quantités de serveurs selon se que vous avez configuré et sont assez tolérant face aux pannes. Vous ne pouvez hélas pas configurer le client pour contacter votre grille mais un serveur qui lui sera en contact (bittorent) avec les autres serveurs (via aussi des liens direct (hostname)).

Montage d'un volume GlusterFS

Pré-requis

Passez en admin (root)

Sur Ubuntu/Raspbian

sudo su

Sur Debian/Ubuntu minimal

su

Installez glusterfs-client

apt-get install glusterfs-client

Création du point de montage local

mkdir /media/monNouveauMontage

Montage en ligne de commande d'un répertoire GlusterFS

Adaptez puis entrez cette commande dans votre terminal

mount -t glusterfs HOSTNAME:PORT:/NomVolume /media/monNouveauMontage
  • HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable
  • :PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)
  • :/NomVolume => le nom du volume dans dans la grille GlusterFS
  • /media/monNouveauMontage => mon point de montage local
  • Infos : Manually Mounting Volumes

Monter le répertoire au démarrage/boot via script fait maison

Passez en admin (root)

Sur Ubuntu/Raspbian

sudo su

Sur Debian/Ubuntu minimal

su

Ouvrez votre éditeur de texte en créant votre script /opt/scripts/mountGlusterPartition.sh

nano /opt/scripts/mountGlusterPartition.sh
  • ( CTRL + X => Save&Quit )

Ajoutez dedans les lignes après les avoir adapté à votre config

#!/bin/bash
sleep 10 #req if system is on SSD
sudo mount -t glusterfs 127.0.0.1:/NomVolume /media/monNouveauMontage
  • 127.0.0.1 => votre boucle locale
  • :PORT => votre numero de port (non requis, supprimez aussi le deux points si vous utilisez le port par défaut)
  • :/NomVolume => le nom du volume dans dans la grille GlusterFS
  • /media/monNouveauMontage => mon point de montage local
  • Infos : Manually Mounting Volumes

Rendez votre script exécutable et accordez lui les bons droits d'accès

chmod 551 /opt/scripts/mountGlusterPartition.sh

Ajoutez au fichier /etc/rc.local juste avant exit 0 l'appel de votre script afin de la lancer votre script au démarrage. Pour se faire éditez /etc/rc.local

nano /etc/rc.local

Puis ajoutez donc dedans (en l'adaptant)

/opt/scripts/mountGlusterPartition.sh

Wiki GlusterFS sur Ubuntu/Debian

0
26
juin
2017

Sommaire

Ce wiki traite de la partie serveur de GlusterFS pour la partie client voyez ce wiki : Monter un volume/répertoire GlusterFS sur Ubuntu/Debian

logo glusterfs fourmis qui mange une feuille

Qu'est-ce que GlusterFS ?

GlusterFS permet de créer des volumes/répertoires virtuels agrégeant un nombre X de serveurs. Pour cela GlusterFS crée des volumes (sorte de partition JBOD) à cheval sur les serveurs que vous stipulez lors de la création du volume et dispose d'un mode de redondance (replication) afin de lutter contre les pannes de stockage. Par défaut, sans réplication, gluster fait une sorte de raid0 (si vous uploader 10 fichiers sur un pool contenant deux Servers/Node, vous aurez 5 fichiers par server) (source). Vous pouvez utiliser l'argument stripe nombreDecoupage si vous souhaitez que les fichiers soient découpé avec leur data propre dispersée sur les différents stockages (le but étant d'augmenter les performances en lecture).
En une phrase, il permet de faire un cluster de stockage.

GlusterFS supporte :

Les types de volume/répertoire sont :

  • RAID0 non Strip / JBOD (fichier) (les fichiers sont répartis sur les différentes unités de stockage (bricks), si vous perdez une unité les données sur les autres bricks sont encore valable et accessible)
  • RAID0 Strip (data) (chaque fichier est découpé N fois et ses datas respective distribuées sur N espaces de stockage, en cas de perte d'une unité de stockage TOUTES les données sont perdues; infos)
  • Replication X - Raid1 (les fichiers sont dupliqués X fois à travers les Nodes comme du Raid1, perdre une unité de stockage n'a aucune incidence sur les données)
  • Distributed Replicated (les fichiers sont distribué sur certains nodes et dupliqués sur d'autres comme du Raid10; infos)
  • Distributed Stripped Replicated - RAID10 Strip (chaque fichier est découpé en N morceau répartis sur N Nodes et répliqué X fois sur X Nodes)

La mise en place est simple :

  1. vous installez le serveur sur au moins une machine
  2. vous connectez les serveurs entre eux.
  3. vous créez un volume virtuel
  4. avec un logiciel client vous pouvez accéder à votre volume (qui se comporte comme une partition) en vous connectant à n'importe lequel des deux Serveurs/Nodes.

Note : vous pouvez créer un raid local sur plusieurs disques. Par contre vous ne pouvez hélas pas créer un raid gluster dans un autre raid/jbod gluster.

Fonctionnement

ndlr : simple et si possible imagé

_


_

Installer GlusterFS Server

Passez en admin (root)

Sur Ubuntu/Raspbian

sudo su

Sur Debian/Ubuntu minimal

su

Installez le logiciel glusterfs-server

apt-get install glusterfs-server attr

Note : si vous souhaitez installer une version spécifique de Gluster utilisez l'attribut --version=id_version par exemple :

apt-get install glusterfs-server --version=3.7.15-ubuntu1~xenial1

Pour connaître la version du package installé, entrez dans un terminal

apt-show-versions glusterfs-server

Donner le droits d'accès (rw) au fichiers log

sudo chmod 777 /var/log/glusterfs/*.log

Lancez le démon

service glusterfs-server restart

_


_

Désinstaller glusterfs-server

Passez en admin (root)

Sur Ubuntu/Raspbian

sudo su

Sur Debian/Ubuntu minimal

su

Au choix :

Supprimez gluster sans supprimer les données (volumes, peer, etc)

apt-get remove glusterfs-server

Supprimez gluster ET ses données

apt-get purge --auto-remove glusterfs-server
rm -R /etc/glusterfs
rm -R /var/lib/glusterd

_


_

Création de Raid

Créer un volume type RAID1 avec choix du nombre de réplication

Adaptez puis entrez cette commande dans votre terminal

sudo gluster volume create NomVolume replica 2 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/superPartition force
  • HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster
  • NomVolume => le nom du volume dans dans la grille GlusterFS
  • replica 2 => le nombre de fois que les fichiers doivent être dupliqué
  • transport tcp => on utilise TCP/IP
  • force => ne se met qu'à la fin de la commande, permet d'utiliser le mode root
  • exemple officiel : gluster volume create NEW-VOLNAME [replica COUNT] [transport tcp | rdma | tcp,rdma] NEW-BRICK…

Ensuite démarrez votre volume/répertoire

sudo gluster volume start NomVolume

Note : remplacez start par stop pour arrêter un volume (c'est un umount version gluster)

Créer un volume avec un Arbitrer (replica 3 arbiter 1)

infos : Arbiter volumes and quorum options in gluster
(ndlr : à tester et corriger)
Le Nœud Arbitrer est chargé d'aider à élire un Noeud Maitre après une coupure réseau importante (split brain). Il est choisit automatiquement par GlusterFS parmi les Noeuds, il prend le troisième Nœud (bricks) et il n'est pas possible de le configurer/modifier (source).
Le paramètre replica doit être à 3 pour pouvoir utiliser un Arbitrer. Il faut donc au minimum 3 machines pour ce mécanisme.
Note : en raid1 (replica 2) lorsqu'une machine est absente tout est cassé. Ici (replica 3 arbiter 1) tant qu'au moins deux machines sur 3 de chaque séries sont connectées entre elles (peu importe lesquelles), tout continue de fonctionner.

sudo gluster volume create NomVolume replica 3 arbiter 1 transport tcp HOSTNAME_server1:/media/superPartition HOSTNAME_server2:/media/disque2 HOSTNAME_server3:/media/mon/path force
  • HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster
  • NomVolume => le nom du volume dans dans la grille GlusterFS
  • replica 3 => le nombre de fois que les fichiers doivent être dupliqué
  • transport tcp => on utilise TCP/IP
  • force => ne se met qu'à la fin de la commande, permet d'utiliser le mode root
  • exemple officiel : gluster volume create replica 3 arbiter 1

_


_

_


_

Options & Utilisations

Note : Pour utiliser les commandes suivantes dans un script vous devez ajouter en fin de commande force --mode=script

Ajouter un Noeud/Node (ajouter peer)

sudo gluster peer probe HOSTNAME

HOSTNAME peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des server du cluster
Note : Une fois que le pool est établi, seuls les membres de confiance (trust) peuvent ajouter de nouveaux serveurs au pool. Un nouveau serveur ne peut PAS s'ajouter au pool, il doit être ajouté par le pool. (source)

Retirer un Noeud/peers (supprimer peer)

sudo gluster peer detach HOSTNAME

HOSTNAME peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des serveurs du cluster
Note : Tout les volumes ouvert en commun entre ses pairs (peers) doivent être stoppé AVANT.

Retirer un Noeud/peers et les bricks liés

Récupérez les infos des bricks à supprimer

sudo gluster volume info

Soit on supprime le peer de son bricks

sudo gluster volume remove-brick nomBricks replica 1  HOSTNAME:/media/monDisk/monDossier force

Soit on supprime le bricks

sudo gluster volume delete nomBricks

Lancez enfin la commande pour détachez le Node/peers

sudo gluster peer detach HOSTNAME

HOSTNAME peut valoir l'IP, le nom de domaine ou tout path réseau valable d'un des server du cluster
Note : Tout les volumes ouvert en commun entre ses pairs (peers) doivent être stoppé AVANT.

Ajouter un ou plusieurs serveurs à un volume / augmenter la taille d'un volume

sudo gluster volume add-brick NomVolume HOSTNAME:/media/maPartition

NomVolume => le nom du volume dans dans la grille GlusterFS
HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster
/media/maPartition => le path où stocker les données sur le serveur
Exemple officiel : gluster volume add-brick VOLNAME NEW-BRICK
Source : http://www.gluster.org/community/documentation/index.php/Gluster_3.2:_Expanding_Volumes

Afficher le status des connexions en cours

sudo gluster peer status

Afficher les infos des volumes

sudo gluster volume info

Supprimer un serveur d'un volume en cours en mode répliqué (raid) /diminuer un volume

sudo gluster volume remove-brick monVolume replica 2 HOSTNAME:/media/maPartition

NomVolume => le nom du volume dans dans la grille GlusterFS
replica 2 => le nombre de replication
HOSTNAME => peut valoir l'ip, le nom de domaine ou tout path réseau valable d'un des server du cluster
/media/maPartition => le path où stocker les données sur le serveur
Source : https://support.rackspace.com/how-to/add-and-remove-glusterfs-servers/

Supprimer un volume

sudo gluster volume delete NomVolume

Note : ça ne supprime pas les fichiers.
Le volume doit être stoppé avant via

sudo gluster volume stop NomVolume

Lister les fichiers logs

sudo ls  /var/log/glusterfs/

Restreindre l'accès à une ou plusieurs IP/plage d'IP

sudo gluster volume set nomVolume auth.allow 192.168.1.2,192.168.*.1

nomVolume => le nom identifiant votre volume
192.168.1.2,192.168.*.1 => un exemple d'ip suivis d'un exemple de plage d'ip à autoriser
Note : Fonctionne aussi si le volume est en cours de fonctionnement.

Foire Aux Questions

Que se passe-t-il si on ajoute sur le serveur comme point de montage un dossier dans lequel il y a un ou des fichiers/dossiers?

Réponse : Le ou les fichiers sont ignoré par GlusterFS purement et simplement. Ils sont toujours accessible via le système de fichier du serveur mais pas via un quelconque volume glusterfs.

Que se passe-t-il si on ajoute sur le client comme point de montage un dossier dans lequel il y a un ou plusieurs fichiers/dossiers ?

Réponse : Le ou les fichiers disparaissent jusqu'à ce que le volume soit démonté (umount), il ne semble rien leur arriver de malheureux. Lorsque le volume est démonté en cas d'écriture vers son point de montage, alors les données sont écrites sur le disque dur principal (système), ce qui peut être un problème pour certains usages (motion sur raspberry pi entre autre).

Si un serveur doit lire des données, va-t-il uniquement le lire localement où va-t-il utiliser les autres serveurs afin de compenser la latence des disques dur?

Réponse : les données sont envoyées/reçues vers les différents serveurs en même temps.

Que se passe-t-il si un des bricks/disques dur tombe en panne en cours avec un volume fonctionnement ?

Réponse : Si vous êtes en raid1, il n'y a aucune perte de données et le service continue de fonctionner mode osef. Si vous êtes en JBOD/raid0 non stripping, le point de montage est toujours accessible et seules les datas présentent sur le bricks planté ne sont plus accessible. Il va de soit que si le disque dur en panne était le seul ou le dernier représentant d'un volume, le volume tombe aussi.

Peut-on synchroniser des serveurs en local (malgré un loopback foireux (Hairpinning)

Impossible d'utiliser le nom de domaine depuis l'intérieur du réseau) pour ensuite les disséminer sur d'autres connexions sans changer la configuration ? (et sans utiliser Tor)

Réponse : Une solution est de configurer en utilisant un hostname, puis en modifiant le ficher /etc/hosts (infos) pour indiquer les IP locales des différents Nodes correspondant à chaque nom de domaine. Une fois que les machines quittent votre réseau local vous devez bien entendu allez supprimer les valeurs temporaires.

Quelques filtres d'affichages wireshark pour zieuter tout cela ?

Réponse : Entrez une des valeurs suivantes pour voir se qu'il se passe : glusterfs

Les communications sont-elles chiffrées ?

Réponse : Par défaut Non, mais vous pouvez activer le chiffrement par TLS (ex-ssl) en suivant ce tuto : GlusterFS Security.

Les données stockées sur le(s) serveur(s) sont-elles chiffrées ?

Réponse : Par défaut Non. Une feature/extension (Doc - Features/disk-encryption) est en fin de conception afin de rendre gluster compatible avec le chiffrement côté serveur (disk encryption).

Quels sont les ports utilisés par les serveurs gluster ?

Réponse : 111 (portmap/rpcbind), 24007 (GlusterFS Daemon), 24008 (GlusterFS Management) et un port par volume/répertoire à partir de 49152. Si vous utilisez NFS alors les ports 38465, 38466 et 38467 sont aussi requis.
Source : Get started with GlusterFS - considerations and installation

Si on a un volume répliqué sur deux Nodes/Serveurs ("replicate 2") et que l'un d'eux n'est pas présent au démarrage de l'autre, le volume fonctionne-t-il?

Réponse : Non (!!!) Monter le volume devient impossible même en local (127.0.0.1) !

Quelle est la différence entre le paramètre "replicate" et "geo-replication"?

Réponse : replicate applique les modifications en temps réelle sur tout les Serveurs d'un Volume et lit les données sur X Serveurs en même temps. Geo-replication par contre fait des mises à jours régulières des modifications du système de fichier depuis un serveur Maître vers des serveurs Esclaves et ne lit les données que depuis le serveur Maitre.

Que se passe-t-il si le point de montage tombe en panne en cours de fonctionnement ?

Réponse : Il est automatiquement remplacé par un autre en cas de mirroring.

Que se passe-t-il si on fait un raid local (sur la même machine) et que la carte réseau n'est pas connectée

Réponse : le raid/jbod ne sera pas accessible tant que la machine ne sera pas connectée au réseau et ce même si le raid/jbod est uniquement local.

_


_

Wiki [Tuto/HowTo] Optimiser Zoneminder

0
26
juin
2017

Introduction

ZoneMinder étant un logiciel assez lourd (consommateur de ressources machine et réseau), il peut être intéressant d'optimiser son bon fonctionnement partout où on le peut. Voici quelques clés non-exhaustives afin de diminuer les lags, d'augmenter la durée de vie de certains composants de l’ordinateur, d'améliorer la sécurité, etc…

Optimisations de Zoneminder

Déplacer le dossier Swap de ZoneMinder

Le dossier swap (tampon) est utilisé lorsqu'un client veut visionner des caméras et plus particulièrement lors des retours en arrière et ralentissements. ZoneMinder vous permet de déplacer son dossier swap (défaut : /tmp/zoneminder).
Déplacer le dossier Swap peut vous permettre de diminuer l'usure de votre espace mémoire principal. Recycler un vieux SSD de plus de 5Go, ou une vieille carte SD, est une très bonne idée :) (en cas de défaillance il n'y aura aucune de perte de données et le remplacement est facile)
Pour déplacer le dossier swap de ZoneMinder :

  1. Connectez-vous en administrateur sur l'interface graphique Web (WEBUI) de votre serveur zoneminder.
  2. Cliquez sur "Options" pour rejoindre le panneau d'administration.
  3. Dans "Chemin" modifiez l'encart "PATH_SWAP".

screenshot-2017_06_16-Zoneminder-changer_path_swap

Changer l'emplacement du stockage de zoneminder

On va partir du principe qu'on veut placer les fichiers de zoneminder (photos, vidéos, sons, etc) dans /media/raidSSD/zoneminder. Adaptez le PATH a ce que vous souhaitez. Si vous ne savez pas comment monter vos disques/ressources distantes, voyez la section Operating System => Memory.
Attention : l'utilisateur de votre serveur web (par défaut : www-data) doit avoir accès en lecture+écriture à ce dossier (/media/raidSSD/zoneminder), et accès en lecture à la racine (/media/raidSSD)

  1. On change le PATH et sauvegarde le dossier de zoneminder au cas ou
sudo mv  /var/cache/zoneminder /var/cache/zoneminderOLD
  1. On copie les dossiers et leurs éventuels contenus vers notre montage dédié
sudo cp -R -p -v /var/cache/zoneminderOLD/* /media/raidSSD/zoneminder
  1. On crée le lien symbolique
sudo ln -s /media/raidSSD/zoneminder /var/cache/zoneminder

_


_

Optimisations du serveur Ubuntu/Debian

Mettre en place HTTP2

ATTENTION : ZoneMinder dysfonctionne parfois avec http2 (lecteur streaming ne fonctionnant plus, ni le chargement de la liste des évents).
HTTP2 permet d'économiser de la bande passante, un peu d'électricité et accélérer la navigation pour les clients. HTTP2 n'a pour le moment aucune incidence pour les caméras, il n'améliore la vitesse qu'entre les clients et le serveur en https avec un certificat trusté.
Pour installer HTTP2 sur votre serveur web apache2 :
(ndlr: à tester sur Debian 9, ne fonctionne pas sur Debian 8)

  • Lancez l'installation
apt-get install software-properties-common
add-apt-repository -y ppa:ondrej/apache2
apt-key update
apt-get update
apt-get --only-upgrade install apache2 -y
a2enmod http2
service apache2 restart
  • Ensuite éditez tout vos fichiers VHOST dans le dossier /etc/apache2/sites-enabled/ et ajoutez la ligne suivante (vous pouvez l'ajouter au tout début)
Protocols h2 http/1.1

Supprimer l'accès aux données serveurs

Les serveurs peuvent fournir des informations compromettantes via divers outils de diagnostiques/maintenance incorporé. On citera entre-autre server-status d'apache2 (exemple) qui ouvre un trou de sécurité. Ces informations sont utilisées par les pirates et agences malveillantes afin de dés-anonymiser des serveurs, en vue de les référencer avant d'éventuelles attaques. Il est fortement conseillé de supprimer l'accès à ses informations.

Faire taire server-status d'apache2 :

sudo a2dismod status
sudo service apache2 restart
  • Entrez ensuite l'hostname de votre web service suivis de /server-status. Le serveur doit vous retourner une erreur 404 page not found.

Faire taire serverTokens :

Ajoutez dans /etc/apache2/apache2.conf

ServerTokens Prod

Faire taire ServerSignature :

Ajoutez dans /etc/apache2/apache2.conf

ServerSignature Off

_


_

Optimisations du réseau

Gigabit Ethernet (RJ45)

La norme Ethernet Gigabit (RJ45) permet de faire transiter au moins 1 Go/s de données sur le réseau. Utiliser des périphériques (switch, carte réseau, routeur) compatible Gigabit Ethernet permet, à débit égal, de consommer moins d'énergie que les périphériques non compatible.

_


_

Wiki Tuto/HowTo - Nextcloud activer système de cache (memcache) avec redis

2
29
mar.
2017

Introduction

  • Le système de cache permet de stocker en mémoire RAM (ou en SWAP si trop de RAM utilisée) certaines informations régulièrement sollicitée, évitant ainsi de passer par la base de données (MySQL, PostGreSQL, SQLITE, etc) et augmentant les performances. Note : ce tuto devrait aussi fonctionner avec owncloud (à vérifier)

Mise en place

  1. Installez redis-server
sudo apt-get install redis-server
  1. Éditez le fichier de configuration de nextcloud/owncloud
sudo nano /var/www/html/cloud/config/config.php
  1. Ajoutez les lignes suivantes avant ); qui se situe à la fin du fichier
'memcache.local' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => 'true',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
        array (
                'host' => 'localhost',
                'port' => 6379,
                'timeout' => 0,
                'dbindex' => 0,
                ),

  1. Connectez-vous en tant qu'administrateur sur l'interface web de votre nextcloud/owncloud et rendez-vous dans l'espace d'administration. Si le message suivant n’apparaît pas, c'est que vous avez bien bossé :)
  • Aucun cache mémoire n'est configuré. Si possible, configurez un "memcache" pour améliorer les performances.

Informations supplémentaires

Si vous devez éditer le fichier de configuration de Redis

sudo nano /etc/redis/redis.conf

Afficher le PID de redis-server

sudo cat /var/run/redis/redis-server.pid

Wiki Désinstaller proprement ses paquets sur sa distribution

1
22
mar.
2017

Sommaire

Cette page wiki était à l'origine une dépêche qui avait été rédigée en juin 2016 :
https://linuxfr.org/redaction/news/astuces-pour-desinstaller-proprement

Les auteurs: Oliver H, Yves Bourguignon, rogo, palm123, BAud, Storm et guitou

Tour d'horizon des astuces actuelles (2016) pour supprimer complètement et proprement les applications, et tout autre paquet en général. Cette dépêche ne traite pas du nettoyage en profondeur de sa machine, seulement de la désinstallation.

Avertissement : Vouloir supprimer trop de paquets peut conduire à l'instabilité du système, voire à ne plus pouvoir le redémarrer !

Suppression partielle avec apt remove

Sur une distribution Debian et dérivées, pour supprimer un logiciel nous avons le traditionnel :

sudo apt-get remove <paquet-a-supprimer>

Sur d'autres distributions nous avons les commandes suivantes (liste non exhaustive) :

sudo yum    remove <paquet-a-supprimer>  # Jusqu'à Red Hat 7
sudo dnf    remove <paquet-a-supprimer>  # Remplacement de yum
sudo zypper remove <paquet-a-supprimer>  # OpenSuse
sudo snappy remove <paquet-a-supprimer>  # Ubuntu Core

La suite de cette dépêche se concentre sur les distributions Debian et ses dérivés (comme Ubuntu).

Suppression complète avec apt purge

Mais bien souvent, nous voulons supprimer aussi les fichiers de configuration qui ont également été installés avec le logiciel. Ces fichiers de configuration sont conservés par défaut au cas où ils auraient été personnalisés, bien que la plupart du temps personne ne les modifie. Sauf cas particulier, réinstaller le logiciel va réécrire ces mêmes fichiers de configuration. Donc purge à la place de remove :

sudo apt-get purge <paquet-a-supprimer>

Qui est un raccourci à

sudo apt-get  remove --purge <paquet-a-supprimer>

Les copains de apt-get

Depuis quelques années, nous avons aussi la possibilité d'utiliser la commande apt à la place de apt-get. Et aussi le bon vieux dpkg et l'interface aptitude.

sudo apt-get  purge <paquet-a-supprimer>
sudo apt      purge <paquet-a-supprimer>
sudo dpkg   --purge <paquet-a-supprimer>
sudo aptitude purge <paquet-a-supprimer>

Mais dans tous ces cas, ces actions remove et purge n'enlèvent pas les dépendances, et oui toutes les bibliothèques qui ont été nécessaires pour installer tel ou tel logiciel et dont on ne se souvient plus et qui sont mises à jour inutilement pendant des mois, voire des années après la suppression des logiciels.

Suppression des dépendances avec apt --purge autoremove

Donc pour supprimer un logiciel et ses dépendances (du moins, celles qui ne sont pas utilisées par d'autres logiciels) nous avons apt --purge autoremove (merci à Morphé de l'équipe Ubuntu-Fr pour avoir partagé cette astuce).

sudo apt-get        --purge   autoremove  <paquet-a-supprimer>

ou encore :

sudo apt-get          purge --auto-remove <paquet-a-supprimer>
sudo apt-get remove --purge --auto-remove <paquet-a-supprimer>

aptitude en mode interactif

aptitude peut s'utiliser en ligne de commande, mais cet usage est progressivement supplanté par la commande apt. En mode curses, il permet par contre de nettoyer de façon optimale ses paquets.

Ce chapitre présente la suppression de bibliothèques (librairies) inutiles, puis des fichiers de configuration étant toujours présents malgré la suppression des paquets correspondants.

1. Supprimer les bibliothèques inutiles

  • Lancer aptitude ;
  • Ouvrir les "Preferences" dans le menu ; Comme indiqué à l'écran, on peut utiliser ctrl-t pour ouvrir le menu, ou passer par la souris ;
  • Cocher la case "Remove unused packages automatically" sous "Dependency handling" ;
  • Presser q pour quitter la configuration ;
  • Avec les flèches et entrée, déplier "Installed packages" et se placer sur "libs" ;
  • Appuyer sur M (majuscule-m) pour marquer tous les paquets sous "lib" comme étant automatiquement installé. On peut vérifier sur la page d'aide, accessible par ?, que m est l'action réciproque qui marque les paquets manuellement installés ;
  • aptitude propose alors de désinstaller les bibliothèques qui ont été installées automatiquement mais ne sont plus nécessaires. En haut à droite de la page s'affiche l'espace qui serait gagné. Appuyer sur g (go) pour amorcer cette action ;
  • Sur cette nouvelle vue "Preview" (noter l'onglet en haut de l"écran), les paquets sont regroupés selon de nouvelles catégories, la première étant ici "Packages being removed because they are no longer used". On peut la déplier et vérifier au cas par, en appuyant sur + si on veut annuler la désinstallation ;
  • Si la liste des désinstallations a été modifiée, mieux vaut fermer et réouvrir ce panneau avec q puis g ;
  • Pour purger au lieu de conserver les fichiers de configuration, utiliser _. On peut bien sûr l'appliquer à tout un groupe ;
  • Depuis le panneau de "preview", appuyer à nouveau sur g pour appliquer les modifications listées.

2. Supprimer les configurations de paquets désinstallés

  • Dans aptitude, taper l pour filtrer les paquets selon un motif de recherche. Pour info, la recherche normale est associée à / comme d'habitude, mais elle permet seulement de se déplacer dans la liste des paquets ;
  • Saisir ~c dans la boîte de dialogue, puis entrée ;
  • aptitude affiche alors une liste de tout les paquets dont il ne reste que la configuration. Appuyer sur _ demandera une purge de ce qui est surligné ;
  • Une fois désignées les cibles, g passe dans l'onglet preview et un second g applique les changements.

NB : La syntaxe pour filtrer les paquets n'est pas spécifique à aptitude, elle est définie par la bibliothèque APT. Il y a aussi d'autres paramètres APT qui influencent aptitude, par exemple le fait d'installer automatiquement les paquets recommandés (activé par défaut, désactivable dans la configuration d'aptitude ou en éditant la configuration dans /etc/apt/).

aptitude a encore bien d'autres cordes à son arc, notamment pour gérer les conflits de mises à jour en ajoutant des contraintes (monter la version de A sans désinstaller B ni rétrograder C, etc).

Suppression des dépendances avec debfoster

Mais d'autres outils sont disponibles.

sudo apt-get install debfoster
sudo debfoster <paquet-a-supprimer>-

Notez le signe « tiret du six » '-' collé à la fin du nom du paquet. Sans ce caractère « tiret du six », debfoster installe le paquet. Personnellement, je trouve cela plus pratique que d'avoir à taper install ou purge.

Un autre truc sympa avec debfoster est l'enregistrement en local de tous les paquets à conserver.
Lors de la première utilisation, debfoster demande quels paquets sont à conserver/supprimer.
Les principales réponses :

Français Anglais Explication
'o' 'y' Conserver le paquet (par défaut, appuyer juste sur [Entrée])
'n' 'n' Supprimer le paquet (par défaut c'est un apt-get --purge remove)
'm' 'p' Supprimer le paquet et les paquets qu'il maintient installés
'r' ou '?' 'i' ou '?' Affiche la description du paquet (très utile)
'd' 'u' Annuler la précédente réponse (très utile aussi)

Les auteurs de cette page wiki ne sont pas sûr d'avoir bien compris ce que signifie « Supprimer le paquet et les paquets qu'il maintient installés ». Voici notre compréhension :

  • D'abord, les paquets ont plusieurs marquages possibles. Les paquets sont tous marqués comme installés automatiquement ou manuellement (voir les commandes apt-mark showauto et apt-mark showmanual) ;
  • D'autres marquages sont possibles. Quand un paquet est installé, d'autres paquets sont recommandés/suggérés. Les paquets installés ne dépendent pas forcément de ces paquets recommandés/suggérés, mais ces derniers peuvent être marqués comme installés avec ;
  • C'est aussi le cas quand l'installation d'un paquet installe une dépendance par défaut. Mais le paquet peut fonctionner avec une autre dépendance alternative. La suppression de cette dépendance force l'installation d'une dépendance alternative…

Bon bref, encore une fois, nous ne sommes pas sûrs d'avoir bien pigé mais nous avons l'impression que répondre « Supprimer le paquet et les paquets qu'il maintient installés » (plutôt que seulement « Supprimer le paquet ») permet de virer le maximum de paquets inutiles.

Apparemment, il n'y a pas de moyen élégant pour remettre à zéro la base de donnée des paquets à conserver. Voici deux façons moches de réinitialiser cette liste des paquets :

  1. Supprimer le fichier (selon votre système, le fichier peut se trouver dans une autre arborescence)

    sudo rm -vi /var/lib/debfoster/keepers
  2. Réinstaller debfoster

    sudo debfoster debfoster-
    sudo apt install debfoster

La commande suivante permet de lister les paquets marqués « à conserver » :

debfoster --show-keepers

ou :

debfoster -a

Pour finir, notons que la configuration de debfoster peut être finement paramétrée :

sudo vim /etc/debfoster.conf

Lister les orphelins avec deborphan

À la recherche des paquets orphelins.
Généralement ce sont des bibliothèques oubliées dont aucun logiciel ne dépend.

sudo apt install deborphan
deborphan                  # Liste les bibliothèques orphelines (lib) 
deborphan --guess-all      # Liste aussi les autres dépendances orphelines
deborphan --all-packages   # Liste aussi les exécutables

Pour être sûr que certains paquets ne soit pas listés comme orphelins :

sudo deborphan --add-keep libdvdcss2 ubuntu-desktop ubuntu-restricted-extras ubuntu-minimal ubuntu-standard

Pour la suppression, trois alternatives :

  1. Passer la liste des orphelins à dpkg (ou apt ou …). Ici, c'est la philosophie « chaque petit outil fait son boulot » ;

    deborphan | xargs sudo dpkg --purge
  2. Utiliser l'interface en mode texte fournit avec le paquet deborphan ;

    sudo orphaner --purge [options deborphan]
  3. Utiliser l'interface graphique.

    sudo apt install gtkorphan
    sudo gtkorphan

aptsh

sudo apt install aptsh
sudo aptsh purge <paquet-a-supprimer>

Mais comme son suffixe sh l'indique, c'est à utiliser en mode interactif (shell)

$ sudo aptsh
Generating and mapping caches...
Reading commands history...

aptsh>  # Appuyer sur la touche [Tab] pour la liste des commandes
add              dump             policy           source
autoclean        dump-cfg         purge            stats
build-dep        dumpavail        queue*           toupgrade
changelog        help*            quit             unmet
check            install          rdepends         update
clean            listfiles        remove           upgrade
depends          ls               rls              whatis
dist-upgrade     madison          search           whichpkg
dotty            news             show
dpkg*            orphans*         showpkg
dselect-upgrade  pkgnames         showsrc

aptsh> orphans
libcdaudio1
libgmp-dev
libprocps3
libgstreamer-plugins-bad0.10-0
libboost-dev
libwebkit2gtk-3.0-dev

`wajig`
=======

https://en.wikipedia.org/wiki/Wajig

```bash
$ sudo apt install wajig
$ sudo wajig orphans
libgstreamer-plugins-bad0.10-0:amd64
libcdaudio1:amd64

Mais toute sa puissance se révèle en mode interactif :

$ sudo wajig
wajig> commnads
addcdrom           Add a Debian CD/DVD to APT's list of available sources
addrepo            Add a Launchpad PPA (Personal Package Archive) repository
aptlog             Display APT log file
autoalts           Mark the Alternative to be auto-set (using set priorities)
autoclean          Remove no-longer-downloadable .deb files from the download cache
autodownload       Do an update followed by a download of all updated packages
autoremove         Remove unused dependency packages
build              Get source packages, unpack them, and build binary packages from them.
builddeps          Install build-dependencies for given packages
changelog          Display Debian changelog of a package
clean              Remove all deb files from the download cache
contents           List the contents of a package file (.deb)
dailyupgrade       Perform an update then a dist-upgrade
dependents         Display packages which have some form of dependency on the given package
describe           Display one-line descriptions for the given packages
describenew        Display one-line descriptions of newly-available packages
distupgrade        Comprehensive system upgrade
download           Download one or more packages without installing them
editsources        Edit list of Debian repository locations for packages
extract            Extract the files from a package file to a directory
fixconfigure       Fix an interrupted install
fixinstall         Fix an install interrupted by broken dependencies
fixmissing         Fix and install even though there are missing dependencies
force              Install packages and ignore file overwrites and depends
hold               Place packages on hold (so they will not be upgraded)
info               List the information contained in a package file
init               Initialise or reset wajig archive files
install            Package installer
installsuggested   Install a package and its Suggests dependencies
integrity          Check the integrity of installed packages (through checksums)
large              List size of all large (>10MB) installed packages
lastupdate         Identify when an update was last performed
listall            List one line descriptions for all packages
listalternatives   List the objects that can have alternatives configured
listcache          List the contents of the download cache
listcommands       Display all wajig commands
listdaemons        List the daemons that wajig can start, stop, restart, or reload
listfiles          List the files that are supplied by the named package
listhold           List packages that are on hold (i.e. those that won't be upgraded)
listinstalled      List installed packages
listlog            Display wajig log file
listnames          List all known packages; optionally filter the list with a pattern
listpackages       List the status, version, and description of installed packages
listscripts        List the control scripts of the package of deb file
listsection        List packages that belong to a specific section
listsections       List all available sections
liststatus         Same as list but only prints first two columns, not truncated
localupgrade       Upgrade using only packages that are already downloaded
madison            Runs the madison command of apt-cache
move               Move packages in the download cache to a local Debian mirror
new                Display newly-available packages
newdetail          Display detailed descriptions of newly-available packages
news               Display the NEWS file of a given package
nonfree            List packages that don't meet the Debian Free Software Guidelines
orphans            List libraries not required by any installed package 
policy             From preferences file show priorities/policy (available)
purge              Remove one or more packages and their configuration files
purgeorphans       Purge orphaned libraries (not required by installed packages)
purgeremoved       Purge all packages marked as deinstall
rbuilddeps         Display the packages which build-depend on the given package
readme             Display the README file(s) of a given package
recdownload        Download a package and all its dependencies
recommended        Display packages installed as Recommends and have no dependents
reconfigure        Reconfigure package
reinstall          Reinstall the given packages
reload             Reload system daemons (see LIST-DAEMONS for available daemons)
remove             Remove packages (see also PURGE command)
removeorphans      Remove orphaned libraries
repackage          Generate a .deb file from an installed package
reportbug          Report a bug in a package using Debian BTS (Bug Tracking System)
restart            Restart system daemons (see LIST-DAEMONS for available daemons)
rpm2deb            Convert an .rpm file to a Debian .deb file
rpminstall         Install an .rpm package file
search             Search for package names containing the given pattern
searchapt          Find nearby Debian package repositories
show               Provide a detailed description of package
sizes              Display installed sizes of given packages
snapshot           Generates a list of package=version for all installed packages
source             Retrieve and unpack sources for the named packages
start              Start system daemons (see LIST-DAEMONS for available daemons)
status             Show the version and available versions of packages
statusmatch        Show the version and available versions of matching packages
stop               Stop system daemons (see LISTDAEMONS for available daemons)
tasksel            Run the task selector to install groups of packages
todo               Display the TODO file of a given package
toupgrade          List versions of upgradable packages
tutorial           Display wajig tutorial
unhold             Remove listed packages from hold so they are again upgradeable
unofficial         Search for an unofficial Debian package at apt-get.org
update             Update the list of new and updated packages
updatealternatives Update default alternative for things like x-window-manager
updatepciids       Updates the local list of PCI ids from the internet master list
updateusbids       Updates the local list of USB ids from the internet master list
upgrade            Conservative system upgrade
upgradesecurity    Do a security upgrade
verify             Check package's md5sum
versions           List version and distribution of given packages
whichpackage       Search for files matching a given pattern 

ubuntu-tweak

Pour les heureux possesseurs d'une vieille distribution de type Debian, l’interface graphique ubuntu-tweak est géniale, surtout son onglet « Nettoyage ». Mais bon, son auteur est passé depuis sur MacOS. Et personne n'a repris la maintenance de cette application. Cette application bien pratique n'est donc plus officiellement disponible pour les version récentes de Debian, Ubuntu et autres distributions dérivées. Le code source python ne compile même plus ! Néanmoins, le site getdeb.net propose un paquet tout prêt pour Ubuntu 16.04 (non testé).

Synaptic

Pour ceux qui préfèrent l’interface graphique :

sudo apt install synaptic
gksu synaptic

Cliquer en bas à gauche sur « État ».
Voici les sélections qui apparaissent alors en haut à gauche :

Menu Explication
Installés (locaux ou obsolète) Paquets installés à partir d'un .deb ou conservé d'une version précédente du système…
Installés (manuellement) Paquets installés par l'utilisateur après l'installation du système (voir apt-mark showmanual)
Installés (pouvant être supprimés) Correspond à sudo apt autoremove
Non installés (résidus de configuration) Paquets ayant été supprimés mais pas purgés (différence entre apt remove et apt purge).

Dans les menus de Synaptic, "Sélectionner pour suppression complète" correspond à apt purge.

Synaptic a 14 ans (APT a 17 ans) et utilise les bibliothèques graphiques GTK+, donc pour les environnements Gnome, Unity, XFCE…

Dans le monde GTK+, il y avait aussi GNOME apt remplacé maintenant par
GNOME Software qui se base sur PackageKit. Ce dernier est une abstraction des différents gestionnaire de paquets.

Muon

Et KDE ?
Pour ne pas faire de jaloux, un petit historique des équivalents pour les environnements basés sur Qt :

  • Il y avait adept jusqu'à la fin des années 2010 (pour les nostalgiques qui n'utilisaient pas la ligne de commande à cette époque) ;
  • Puis apper ;
  • Et maintenant, muon prend la relève.

    sudo apt install muon
    kdesu muon

Il y avait aussi KPackage remplacé par Shaman je crois…

Et les autres

Voir aussi

Merci d'apporter votre pierre à l'édifice

Et vous, quelles sont vos astuces pour désinstaller une application, une bibliothèque ou un paquet quelconque ?

Comment faire avec les autres gestionnaires de paquet ?

  • pip
  • npm
  • yum
  • dnf
  • zypper
  • snappy
  • pacman
  • portage/emerge
  • pkgsrc
  • nix