Wiki [Tuto] Se connecter à son OpenVPN depuis son LAN et WAN malgré routeur pas compatible hairpinning

0
26
sept.
2017

Sommaire

Introduction

Pour une raison suspicieuse, les box des Fournisseurs d'Accès Internet (FAI) sont régulièrement incompatible avec le hairpinning. Pour outrepasser ce problème, nous allons simplement dupliquer le fichier de conf (.ovpn) afin qu'un soit compatible avec le LAN et un avec internet (WAN). Ensuite nous lancerons un script au démarrage de la machine qui décidera quel fichier de conf (.ovpn) il faut lancer en fonction de si votre serveur est sur le même réseau ou non.
Ce script est compatible avec les tunnels SSH (au choix en local ou en wan ou même les deux ou aucun).

Mise en place sur le client

Note : pour ce tuto je pars du principe que votre OpenVPN est déjà installé et le port ouvert sur le routeur du réseau du serveur (par défaut 1194).

  1. Copiez le fichier de configuration de votre client OpenVPN, nous allons ajouter _LAN dans le titre du nouveau fichier
sudo cp /etc/openvpn/monUser.ovpn cp /etc/openvpn/monUser_LAN.ovpn 
  1. Éditez la copie qui nous servira pour le LAN
sudo nano /etc/openvpn/monUser_LAN.ovpn
  • A la ligne commençant par "remote", rajoutez _LAN dans le nom de domaine (ou remplacez le nom de domaine par l'IP LAN statique de votre serveur OpenVPN).
remote www.server_LAN.com 1194
  1. Ensuite éditez votre fichier /etc/hosts afin d'y indiquer la correspondance entre notre nouveau nom de domaine dédié au LAN et l'adresse IP du serveur OpenVPN.
sudo nano /etc/hosts
  • Ajoutez une ligne du style
192.168.1.42       www.server_LAN.com
  1. Créez le script de lancement /opt/scripts/vpnSwitcher.bash (CTRL+X pour sauver & quitter)
sudo nano /opt/scripts/vpnSwitcher.bash
  1. Puis collez le script suivant et adaptez le à votre config

Note : source du script

#!/bin/bash
# -- vpnSwitcher --
#  -> WTFPL - infos script : https://www.0rion.netlib.re/forum4/viewtopic.php?f=9&t=646&p=1460#p1460
# -> code by voxdemonix <-
# -> V1.11 (2017/09/11) <-
# uncomment next line for debug
#set -x

if [ ! "$SUDO_USER" ]; then
echo "!!! i need root !!!"
exit 0
fi

    #SCRIPTS OPTIONS
LANG="fr" # notification service ; accept : fr, usa (default)
notificationType="notify" # accept : echo; notify, nothing. Notify not work with root user.

    # NETWORK OPTIONS
INTERFACE="tun"
hostnameVpnLAN="192.168.1.69" # (VPN1 hostname) l'adresse IP locale (LAN) de votre serveur OpenVPN
MacVpnLocal="69:69:69:69:69:69" #l'adresse mac de votre serveur OpenVPN (tapez ifconfig dans un terminal sur votre server)

    # VPN OPTIONS
fichierOvpnLAN="/etc/openvpn/myUser_LAN.ovpn" # (VPN1) le PATH de votre fichier de conf .ovpn en LAN
fichierOvpnNotLAN="/etc/openvpn/myUser.ovpn" # (VPN2) le PATH de votre fichier de conf .ovpn pour les connnexions WAN/SSH
openVpn1Param=" " # add options (ex: --route-nopull) for openvpn connexion to server 1 (lan)
openVpn2Param=" " # add options (ex: --route-nopull) for openvpn connexion to server 2 (ssh/tor/wan)

    # SSH OPTIONS
hosnameVpnNotLAN="blablablablablabla.onion" # (VPN2 hostname)
UserLocalForSshTunneling="daenerys" # l'user a utiliser sur votre ordinateur pour le montage du tunnel (celui qui a exporté sa clés)
UserRemoteForSshTunneling="proxy-ssh" # l'user a utiliser côté server ( /!\ n'utilisez jamais root !)
portEntree="1194" # le port sur le pc local, par défaut 1194 (tcp)
portSortie="1194" # le port sur le serveur, par défaut 1194 (tcp)
sshLanEnable=0  # 0 for disable ; 1 for enable : enable or disable the ssh tunneling in LAN
sshNotLanEnable=0 # 0 for disable ; 1 for enable : enable or disable the ssh tunneling in Wan | Tor



            # NOTIFICATION SYSTEM
function vpnNotification {
        # $1 = message ID (watch switch/case);
        # $2 = hostnameVPN
    message=""
    #hostnameVPN=$(cat "$2" | grep "remote " | sed 's/remote //g' | sed 's/ [[:digit:]]\+//g')
    hostnameVPN=$2

    case $LANG in
        fr )
                case $1 in
                    VpnDisabled )
                            message="Connexion VPN fermée ($hostnameVPN)"
                        ;;
                    VpnConnecting )
                            message="Connexion VPN en cours ($hostnameVPN)"
                        ;;
                    VpnEnabled )
                            message="VPN Connecté ! ($hostnameVPN)"
                        ;;
                    SshStop )
                            message="Tunnel SSH STOP ($hostnameVPN)"
                        ;;
                    SshStart )
                            message="Tunnel SSH START ($hostnameVPN)"
                        ;;
                    * )
                            message="message inconnu"
                        ;;
                esac
            ;;
        usa | *)
                case $1 in
                    VpnDisabled )
                            message="VPN Connection Close ($hostnameVPN)"
                        ;;
                    VpnConnecting )
                            message="VPN Connection in progress ($hostnameVPN)"
                        ;;
                    VpnEnabled )
                            message="VPN Connected ! ($hostnameVPN)"
                        ;;
                    SshStop )
                            message="SSH Tunneling STOP ($hostnameVPN)"
                        ;;
                    SshStart )
                            message="SSH Tunneling START ($hostnameVPN)"
                        ;;
                    * )
                            message="unknow message"
                        ;;
                esac
            ;;
    esac


    case $notificationType in
        echo)
                echo "$message"
            ;;
        notify)
                notify-send "$message"
            ;;
        nothing | *)
            ;;
    esac
}

function quitOpenVPN {
        # $1 = ovpn ( $fichierOvpnLAN, $fichierOvpnNotLAN)
        # $2 = hostnameVPN ( $hostnameVpnLAN, $hosnameVpnNotLAN)
        ovpn=$1
        hostVPN=$2
            #stop VPN
        if [ $(pkill -c -f $ovpn) -gt 0 ]; then
        hostnameVPN=$(cat $ovpn | grep "remote " | sed 's/remote //g' | sed 's/ [[:digit:]]\+//g')
        vpnNotification "VpnDisabled" $hostnameVPN
        fi
            #stop ssh
        if [ $(pkill -c -f "autossh.*$UserRemoteForSshTunneling@$hostVPN") -gt 0 ]; then
            vpnNotification "SshStop" $hostVPN
        fi
        sleep 1
}

function startOpenVPN {
        # $1 = hostname VPN ($hostnameVpnLAN, $hosnameVpnNotLAN)
        # $2 = ovpn ($fichierOvpnLAN, $fichierOvpnNotLAN)
        # $3 = ssh enable (1) or not (0) ($sshLanEnable, $sshNotLanEnable)
        # $4 = OpenVpn Param ($openVpn1Param, $openVpn2Param)

        hostVPN=$1
        ovpn=$2
        sshChoice=$3
        openvpnParam=$4

                # SSH TUNNELING
            if [ $sshChoice == 1 ]; then
                    # kill oprevious ssh tunneling
                for pid in `ps -ef | grep "[a]utossh" | grep "$hostVPN" | awk '{print $2}'` ; do kill $pid ; done
                    # creat new ssh tunneling
                su $UserLocalForSshTunneling -c "autossh -M 0 -q -N -o 'ServerAliveInterval 60' -o 'ServerAliveCountMax 3' -L $portEntree:127.0.0.1:$portSortie $UserRemoteForSshTunneling@$hostVPN -f"
                if ps -aux | grep "[a]utossh" | grep "$hostVPN"  | grep -v "grep" >> /dev/null 2>&1; then
                    vpnNotification "SshStart" $hostVPN
                fi
            fi

                # START OpenVPN
            openvpn --daemon $openvpnParam --config $ovpn

                # NOTIFICATIONS
            hostnameVPN=$(cat $ovpn | grep "remote " | sed 's/remote //g' | sed 's/ [[:digit:]]\+//g')
            vpnNotification "VpnConnecting" $hostnameVPN

                # boucle qui permet de verifier si le VPN se connecte bien
        stop=0
        while [ $stop -lt 10 ]
        do       # temps d'attente entre chaque tentative
            if ifconfig | grep -iq $INTERFACE; then
                    vpnNotification "VpnEnabled" $hostnameVPN
                    stop=10
                    exit
            fi
                sleep 5
               stop=$((stop+1))
        done

}



        # boucle qui permet d'attendre que le réseau soit connecté
stop="0"
while [ $stop -lt 1 ]
do
    sleep 3       # temps d'attente entre chaque tentative

    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
            stop=1
    fi
done

if ps -aux | grep "[o]penvpn" >> /dev/null 2>&1; then
    #Connexion VPN active

            # vpn server 1
        quitOpenVPN $fichierOvpnLAN $hostnameVpnLAN
            # vpn server 2
        quitOpenVPN $fichierOvpnNotLAN $hosnameVpnNotLAN


else

        ping $hostnameVpnLAN -c 2 >> /dev/null 2>&1
        macRecover=$(arp -n | grep -i -o $MacVpnLocal)

        if [ "$macRecover" == "$MacVpnLocal" ]; then
        #        echo "local/LAN/First VPN"
            startOpenVPN $hostnameVpnLAN $fichierOvpnLAN $sshLanEnable $openVpn1Param

        else
        #        echo "tor/wan/second VPN"
            startOpenVPN $hosnameVpnNotLAN $fichierOvpnNotLAN $sshNotLanEnable $openVpn2Param

        fi

fi
  • Éditez les valeurs suivantes

    • hostnameVpnLAN="192.168.1.69" => (VPN1 hostname) l'adresse IP locale (LAN) de votre serveur OpenVPN
    • MacVpnLocal="69:69:69:69:69:69" => l'adresse mac de votre serveur OpenVPN (tapez ifconfig dans un terminal sur votre server)
    • fichierOvpnLAN="/etc/openvpn/myUser_LAN.ovpn" => (VPN1) le PATH de votre fichier de conf .ovpn en LAN
    • fichierOvpnNotLAN="/etc/openvpn/myUser.ovpn" => (VPN2) le PATH de votre fichier de conf .ovpn pour les connnexions WAN/SSH
  1. Sauvez et quittez avec CTRL+X, puis rendez votre fichier exécutable
sudo chmod +x /opt/scripts/vpnSwitcher.bash
  1. Lancez ensuite le script afin de le tester
sudo /opt/scripts/vpnSwitcher.bash

S'il fonctionne correctement, ajoutez le au démarrage du client soit via /etc/rc.local soit via cron

sudo crontab -e
  1. Ajoutez enfin la ligne suivante (CTRL+X pour sauver et quitter)
@reboot     /opt/scripts/vpnSwitcher.bash

Wiki [Tuto/HowTo] [Android] synchroniser calendrier via owncloud/nextcloud

1
26
sept.
2017

Note : ce tuto fonctionne autant avec owncloud que nextcloud
Note : L'application Calendar doit être Activée sur le serveur Nextcloud|Owncloud.

Installation

  1. Téléchargez et installez DavDroid via F-Droid (conseillé) ou via Google Play Store.

  2. Lancez DavDroid et cliquez sur Ajouter (le +)

  3. Cochez "Connexion avec une URL et un nom d'utilisateur"

  4. Entrez vos informations :

screenshot-25_08_2016-AndroidDavdroid_AddAccount

screenshot-25_08_2016-owncloudCalDavRecoverURL

  • Nom d'utilisateur => votre pseudo sur owncloud
  • Mot de Passe => votre password sur owncloud
  • Pour terminer cliquez sur Se Connecter
  1. Une fois le compte ajouté, relancez DavDroid et cliquez sur le rectangle concernant votre account puis cochez votre calendrier.

  2. Dans votre calendrier android, dans "Comptes" cochez votre calendrier précédemment ajouté.

Astuces :

  • Lorsque vous ajoutez un évènement l'ajout est directement synchronisé (si vous avez activé la synchro automatique). Par contre si vous supprimez un évènement la suppression sera synchronisé lors de la prochaine synchro automatique (selon vos réglages).

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.

Note : Pour une raison inconnue (Ré-installation d'un des node? Bug après un reboot?), il peut arriver que les certificats TLS expirent. Vous vous retrouverez avec des "State: Peer in Cluster (Disconnected)" lorsque vous lancez la commande "gluster peer status". Dans /var/log/glusterfs/etc-glusterfs-glusterd.vol.log vous trouverez des lignes du style "SSL routines:ssl3_read_bytes:sslv3 alert certificate expired". Reforger les certificats et les clés privées semble régler le problème.

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
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 (que nous considérerons comme le premier) arrêtez mariadb
service mysql stop
Sur ce même node éditez le fichier /etc/mysql/conf.d/galera.cnf
nano /etc/mysql/conf.d/galera.cnf
Commentez ensuite la ligne concernant la liste de vos nodes "wsrep_cluster_address" puis ajoutez la ligne suivante
wsrep_cluster_address="gcomm://"
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 ça fonctionne, replacez la liste de vos nodes dans /etc/mysql/conf.d/galera.cnf sur votre premier node (celui qui a initialisé le cluster) et supprimez "wsrep_cluster_address="gcomm://""
wsrep_cluster_address="gcomm://hostname1,hostname2"
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é

Forum Linux.général [Tuto/HowTo] [Ubuntu/Debian] Load Balancing - redirection vers plusieurs vhost avec HaProxy

Posté par . Licence CC by-sa
4
20
sept.
2017

musique d'ambiance : Les Choristes - Vois Sur Ton Chemin (Paraphonics Remix) LES RAMONEURS DE MENHIRS - Dans An Diaoul
Testé avec succès sur : Ubuntu Minimal 16.04 (ARM)
Difficulté : moyen

Mise en place HaProxy (load balancing)

Installez les pré-requis

apt-get update
apt-get install -y haproxy

Activez HaProxy

sed -i "s/ENABLED=0/ENABLED=1/g" /etc/default/haproxy
sed -i "s/ENABLED=0/ENABLED=1/g" /etc/init.d/haproxy

Créez le dossier qui va accueillir les certificats TLS (exSSL)

mkdir -p /etc/haproxy/certs/

Concaténez chaque certificat (clés publique) et sa clés privé (recommencez (...)

Journal Capteurs météo et graphiques Munin

27
10
sept.
2017

Cher Nal,

Je me suis récemment mis en tête de mesurer la température et l'humidité chez moi de façon à avoir un graphique des mesures sur au moins 24h. Pas convaincu par les stations météo toutes faites, j'ai opté pour des capteurs sans fil avec une base USB et un plugin Munin pour tracer les courbes. Voici un petit tuto/compte-rendu garanti sans soudure.

Il faudra :

  • commander pour 100 € de matériel sur un site en allemand
  • retirer 3 vis et un (...)

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