Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

 

Bon alors.. la dernière fois que j’ai écrit un billet dans bloguelinux.ca, c’était le 22 octobre 2011 soit il y a 3 ans et 7 mois. Il faut dire que depuis l’arrivée de notre podcast, j’ai pu communiquer de vive voix ce que je voulais exprimer concernant mes bidouillages techniques. Mais cette fois-ci, considérant la complexité de ce que je veux démontrer, j’ai préféré écrire un billet décrivant la marche à suivre dans ses moindres détails.

Cela faisait littéralement des mois que je procrastinais à accomplir ceci. Jusqu’à il y a quelques jours, dès que mon serveur démarrait, le client OpenVPN démarrait automatiquement avec sa configuration par défaut. L’avantage de faire ceci est que tout le traffic réseau entrant et sortant de mon serveur CentOS est encrypté mais par contre mon serveur devient isolé dû à la connexion OpenVPN. Donc, il n’est pas possible de créer une règle sur mon routeur pour me permettre d’accèder à mon serveur de l’extérieur via SSH ou HTTP (en fait je peux très bien créer la règle mais elle ne permettra pas d’accéder à mon serveur). Et la seule raison pourquoi j’ai configuré OpenVPN ainsi est pour mon client Bittorrent, c’est en fait le seul traffic réseau que je désire voir obligatoirement encrypté.

Il y a tout prêt d’un an, j’ai fait des recherches pour trouver un façon de configurer OpenVPN et Transmission (mon client Bittorrent) pour que seulement le contenu de Transmission passe par OpenVPN, en faisant ceci, mon serveur redeviendrait accessible de l’extérieur. J’ai trouvé plusieurs articles et billets sur divers blog et forums qui expliquaient la marche à suivre mais plusieurs d’entres-eux semblaient se contredire et utilisaient des méthodes relativement différentes (qui sans doute fonctionnaient pour les auteurs). Une autre chose qui m’intimidait est que presque toutes ces méthodes demandaient l’utilisation de Netfilter/iptables. iptables a toujours été intimidant pour moi et je ne crois pas que je serais un jour vraiment à l’aise à utiliser cette commande en toute confiance.

J’abaisse mon chapeau bien bas pour le sérieux coup de pouce que Sandrine m’a donné afin de finalement faire fonctionner ceci. Elle avait déjà trouvé un billet de blog expliquant la marche à suivre, l’a adapté selon ses besoins et l’a fait fonctionner dans son environnement il y a plus de 6 mois. Tout ce que je fais ici est de documenter en détails les étapes que j’ai suivi pour arriver au même résultat que Sandrine (la seule différence étant que j’utilise CentOS et elle Debian).

Quelques détails avant d’entrer dans le vif du sujet. J’utilise les services de Private Internet Access (https://www.privateinternetaccess.com) pour mon accès VPN et je suis satisfait de leurs services depuis que je suis avec eux. Je ne peux que vous les recommander (Patrick en est aussi très satisfait, Sandrine est avec ProXPN, un autre excellent fournisseur de service VPN) . De plus, veuillez prendre note que cette marche à suivre est basée sur CentOS 6.6 (c’est ce que je roule sur mon serveur) que j’ai configuré avec une adresse IP statique. Puisqu’il s’agit de CentOS qui utilise SELinux et qui est activé par défaut, il faut s’assurer de le désactiver pour que cette marche à suivre fonctionne (j’ai passé 4 jours à sacrer avant de réaliser que j’avais oublié de le désactiver). Finalement, il y probablement 87 façons différentes d’arriver au même résultat (j’exagère un peu…) mais c’est de cette façon que je l’ai configuré sur mon serveur.

Une fois votre CentOS démarré et fonctionnel (configuré avec une adresse IP fixe et un compte d’utilisateur autre que root), vous êtes prêt à commencer:

Désactivé SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

Changer « net.ipv4.ip_forward = 0 » pour « net.ipv4.ip_forward = 1 »

sed -i 's/net\.ipv4\.ip_forward = 0/net\.ipv4\.ip_forward = 1/' /etc/sysctl.conf

Ajouter une nouvelle entrée dans le fichier de table de routage « rt_tables »

echo 1 VPN >> /etc/iproute2/rt_tables

Redémarrer CentOS


Créer une nouvelle interface locale avec l’adresse IP 192.168.0.1 Note importante: Si vous utilisez déjà le sous-réseau 192.168.0.x dans votre environnement, changez 192.168.0.1 pour autre chose, par exemple: 10.0.0.1 et remplacez 192.168.0.1 par 10.0.0.1 dans les scripts « up.sh » et « down.sh » que vous verrez plus tard.
Créer un nouveau fichier /etc/sysconfig/network-scripts/ifcfg-lo:1 avec le contenu suivant

DEVICE=lo:1 IPADDR=192.168.0.1 NETMASK=255.255.255.255 ONBOOT=yes NAME=loopback

Installer openvpn

yum install -y openvpn

Télécharger les fichiers de configuration de Private Internet Access

wget https://www.privateinternetaccess.com/openvpn/openvpn.zip

Extraire le fichier openvpn.zip
Déplacer ca.crt et crl.pem dans /etc/openvpn
Créer un répertoire « locations » sous /etc/openvpn

mkdir /etc/openvpn/locations

Déplacer tous les fichiers *.ovpn du fichier openvpn.zip dans /etc/openvpn/locations
Créer un lien symbolique (symlink) du fichier ovpn que vous désirez utiliser pour votre connexion OpenVPN

ln -s /etc/openvpn/locations/France.ovpn /etc/openvpn/client.conf

Voici le contenu du fichier /etc/openvpn/client.conf

client dev tun proto udp # La prochaine ligne sera différente selon le fichier ovpn choisi remote france.privateinternetaccess.com 1194 resolv-retry infinite nobind persist-key persist-tun ca /etc/openvpn/ca.crt tls-client remote-cert-tls server auth-user-pass /etc/openvpn/login.txt auth-nocache comp-lzo verb 1 reneg-sec 0 keepalive 10 60 crl-verify /etc/openvpn/crl.pem # Les lignes qui suivent changent le comportement de OpenVPN script-security 2 up /etc/openvpn/client/up.sh down /etc/openvpn/client/down.sh route-nopull route-method exe route-delay 1 10 route-metric 512 route 0.0.0.0 0.0.0.0

Créer un fichier « login.txt » dans /etc/openvpn avec votre nom d’utilisateur sur la première ligne et votre mot de passe sur la deuxième (Il s’agit ici de votre nom d’utlisateur et mot de passe qui vous a été donné par votre founisseur VPN).

Changer les permissions (mode) du fichier login.txt

chmod 600 /etc/openvpn/login.txt

Créer un répertoire client sous /etc/openvpn

mkdir /etc/openvpn/client

Créer les 3 fichiers suivants dans /etc/openvpn/client
up.sh

#!/bin/sh # This script enables policy routing after the tunnel interface is brought up # Policy routing is used to make sure response packets go through the tunnel interface # This is mandatory when your ISP has setup anti-spoofing filters # Create SERVICES chain in iptables /sbin/iptables -N SERVICES # Add a default route via tun0 into the VPN routing table /sbin/ip route add default dev tun0 table VPN # Pass traffic from lo:1 (192.168.0.1) to the VPN routing table, using policy routing ("ip rule" commands) /sbin/ip rule add from 192.168.0.1/32 table VPN # Pass traffic from tun0 IP address to the VPN routing table /sbin/ip rule add from $4/32 table VPN #On ajoute les règles iptables pour faire le NAT # Source NAT and destination NAT rules to make sure the incoming and ougoing packets on 192.168.0.1 are $ /sbin/iptables -A PREROUTING -t nat -i tun0 -p tcp --dport 1194 -j DNAT --to 192.168.0.1 /sbin/iptables -A PREROUTING -t nat -i tun0 -p udp --dport 1194 -j DNAT --to 192.168.0.1 /sbin/iptables -A POSTROUTING -t nat -o tun0 -j MASQUERADE # Allow session continuation traffic /sbin/iptables -A INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT # Allow Bittorrent traffic via tun0 /sbin/iptables -A SERVICES -p tcp --dport 6061 -j ACCEPT # rTorrent random range /sbin/iptables -A SERVICES -p udp --dport 6061 -j ACCEPT # DHT # Disallow BitTorrent traffic via eth0 - Just to be extra safe... /sbin/iptables -A FORWARD -s 192.168.0.1/32 -o eth0 -j DROP #Démarrage de transmission /sbin/service transmission-daemon restart

down.sh

#!/bin/sh #This script disables policy routing before the tunnel interface is brought down /sbin/service transmission-daemon stop #On efface les règles iptables ajoutées /sbin/iptables -D PREROUTING -t nat -i tun0 -p tcp --dport 1194 -j DNAT --to 192.168.0.1 /sbin/iptables -D PREROUTING -t nat -i tun0 -p udp --dport 1194 -j DNAT --to 192.168.0.1 /sbin/iptables -D POSTROUTING -t nat -o tun0 -j MASQUERADE /sbin/iptables -D INPUT -i tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -D SERVICES -p tcp --dport 6061 -j ACCEPT # rTorrent random range /sbin/iptables -D SERVICES -p udp --dport 6061 -j ACCEPT # DHT /sbin/iptables -D FORWARD -s 192.168.0.1/32 -o eth0 -j DROP # Flush all iptables rules /sbin/iptables -F # Delete SERVICES iptables chain /sbin/iptables -X SERVICES # Remove rule for tun0 IP address /sbin/ip rule del from $4/32 table VPN # Remove rule for the secondary loopback IP address (192.168.0.1) /sbin/ip rule del from 192.168.0.1/32 table VPN # Remove the default route via tun0 from the IPRED routing table /sbin/ip route del default dev tun0 table VPN

watchdog_openvpn.sh (ce script surveille si OpenVPN a cessé de fonctionner et le redémarre au besoin)

#!/bin/bash while [ 1 ] do test1=`ip addr show tun0 | grep inet | awk '{print $2}' | cut -d/ -f1` REGEX="^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" if [[ $test1 =~ $REGEX ]]; then #OK sleep 300 else #Not OK /etc/init.d/openvpn restart 1>>/dev/null 2>>/dev/null sleep 60 fi done

Donner les permissions (mode) rwx—— (700) à ces 3 nouveaux fichiers

chmod 700 /etc/openvpn/client/*

Ajouter la ligne ci-dessous (avant la dernière ligne) au fichier rc.local pour faire démarrer watchdog_openvpn.sh au démarrage

/etc/openvpn/client/watchdog_openvpn.sh&

Afin d’installer le client Bittorrent Transmission à partir de paquet RPM, vous devez activez le repo EPEL

yum install epel-release yum -y upgrade

Si la première de ces 2 dernières commandes vous donne une erreur roulez les commandes suivantes

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh epel-release-6*.rpm yum -y upgrade

Installer Transmission et Transmission Daemon (version avec interface de Web)

yum -y install transmission transmission-daemon

Créer le fichier de configuration « settings.json » pour Transmission Daemon avec le contenu ci-dessous sous /var/lib/transmission/.config/transmission/

{ "alt-speed-down": 50, "alt-speed-enabled": false, "alt-speed-time-begin": 540, "alt-speed-time-day": 127, "alt-speed-time-enabled": false, "alt-speed-time-end": 1020, "alt-speed-up": 50, "bind-address-ipv4": "192.168.0.1", "bind-address-ipv6": "fe80::", "blocklist-enabled": false, "dht-enabled": true, "download-dir": "/home/transmission/downloads", "download-limit": 100, "download-limit-enabled": 0, "encryption": 1, "incomplete-dir": "home/transmission/incomplete", "incomplete-dir-enabled": true, "lazy-bitfield-enabled": true, "lpd-enabled": false, "max-peers-global": 200, "message-level": 2, "open-file-limit": 32, "peer-limit-global": 240, "peer-limit-per-torrent": 60, "peer-port": 6061, "peer-port-random-high": 65535, "peer-port-random-low": 49152, "peer-port-random-on-start": false, "peer-socket-tos": 0, "pex-enabled": true, "port-forwarding-enabled": false, "preallocation": 1, "proxy": "", "proxy-auth-enabled": false, "proxy-auth-password": "", "proxy-auth-username": "", "proxy-enabled": false, "proxy-port": 80, "proxy-type": 0, "ratio-limit": 2.0000, "ratio-limit-enabled": false, "rename-partial-files": true, "rpc-authentication-required": true, "rpc-bind-address": "0.0.0.0", "rpc-enabled": true, "rpc-password": "MOT DE PASSE POUR LE CONTRÔLE DISTANT", "rpc-port": 9091, "rpc-username": "LOGIN POUR LE LOGIN DISTANT", "rpc-whitelist": "127.0.0.1", "rpc-whitelist-enabled": false, "script-torrent-done-enabled": false, "script-torrent-done-filename": "", "speed-limit-down": 100, "speed-limit-down-enabled": false, "speed-limit-up": 100, "speed-limit-up-enabled": false, "start-added-torrents": true, "trash-original-torrent-files": false, "umask": 18, "upload-limit": 100, "upload-limit-enabled": 0, "upload-slots-per-torrent": 14 }

Modifier lignes rpc-password et rpc-username selon vos préférences.

Créer 3 répertoires pour Transmission

mkdir -p /home/transmission/{incomplete,downloads}

Modifier les permissions de ce répertoire tel qu’indiqué

chmod -R 770 /home/transmission

Assigner le groupe « users » à ces répertoires

chgrp -R users /home/transmission

Si ce n’est déjà fait, ajouter le groupe « users » à votre compte d’utilisateur

gpasswd -a "votre nom d'utilisateur" users

Configurer le service openvpn pour qu’il démarre automatiquement lors du démarrage de CentOS

chkconfig openvpn on

Redémarrer CentOS


 

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Un des défis face à l’utilisation de Linux avec un notebook est l’utilisation des connexions à votre serveur de fichiers (Samba) ou d’autres types (FTP, SSH, etc) et plus spécifiquement si vous utilisez votre notebook hors des confins de votre réseau local. Si vous ajoutez vos connexion utilisant un mécanisme permanent, tel que le fichier « fstab » (pour que vos connexions s’effectue de façon automatique lors du démarrage de votre notebook), lorsque vous serez déconnecté de votre réseau local, « fstab » ne réussira pas à trouver votre serveur Samba, vous recevrez donc une erreur et la période de démarrage sera plus longue.

Afin de palier à ce problème agaçant, je vous recommande d’utiliser AutoFS pour gérer vos connexions à des services/serveurs externes puisque ce processus effectuera les connexions seulement que si vous tenter d’accéder au répertoire servant de « mount point ».

Il est vrai que Gnome et KDE (ainsi que d’autres « window managers ») offrent des gestionnaires de fichiers avec un mécanisme nommé « virtual filesystem » (VFS) qui peuvent « monter » à peu près n’importe quoi (SMB, FTP, SSH, et quelques autres). Par contre il s’agit encore d’un processus non-automatisés et sous Gnome par exemple, les « mount points » se retrouvent sous « /home/votre nom d’utilisateur/.gvfs » ce qui n’est pas très intuitif.

De plus, pour ceux qui préfèrent les « window managers » et/ou gestionnaires de fichiers minimalistes n’offrant aucun support pour VFS, AutoFS demeure une excellente solution.

Ils existent bien sûr plusieurs alternatives à AutoFS mais j’ai arrêté mes recherches lorsque j’ai découvert AutoFS à cause de sa simplicité et sa polyvalence (AutoFS est complêtement indépendant du type d’environnements graphiques que vous utilisez et peu bien sûr fonctionner dans le bon vieux « shell »).

Archlinux ont une excellente page wiki decrivant en détail, la marche à suivre pour configurer et utiliser AutoFS, allez y jeter un coup d’oeil…

https://wiki.archlinux.org/index.php/Autofs

Pour ce qui est de la configuration de AutoFS sous Ubuntu, la page wiki semble trop complexe à mon avis, si je réussi à trouver la temps, je vais tenter de configurer AutoFS sur Ubuntu et je vous ferez part de mon expérience dans un autre article.

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Il y a quelques jours, Vincent (un de mes amis et mordu de Linux) a récupéré un vieux Lenovo ThinkPad R60 qui amassait la poussière et lui a installé 2 Go de mémoire additionnelle ainsi qu’un nouveau disque dur plus rapide et plus volumineux (le surprenant Seagate Momentus XT, j’y reviendrai plus tard), Vincent n’étant pas du tout un fervent de l’environnement Gnome ou KDE a toujours préféré les environnements légers et rapides (comme OpenBox).

Comme moi, il a longtemps roulé Archlinux mais voulait passer à un autre distro qui, à ses yeux, lui offrirait un niveau de stabilité qu’Archlinux ne peut offrir (ceci est sujet à discussion mais je respecte l’avis de Vincent), de plus il voulait quelque chose de rapide à configurer et à installer (ça, c’est clair que ce n’est pas la force et le but d’Archlinux) et il recherchait toujours un environnement graphique léger, il a donc décidé de faire l’essai de Lubuntu (http://lubuntu.net). Il s’agit de la fameuse et très populaire distribution Ubuntu mais utilisant l’environnement graphique « LXDE » (http://lxde.org) au lieu de Gnome (ou maintenant Unity).

L’installation s’est déroulé sans problèmes, à part quelques léger irritants avec la carte WiFi qui furent réglé en quelques minutes. À la fin de l’installation et après la première « vrai » connexion (login) une chose qui m’a absolument estomaquée à été affiché à l’écran mais avant de continuer, je dois ici donner un peu de contexte…

Vers la moitié de l’année 2006, plusieurs manufacturiers de notebooks (Dell, HP, Lenovo, Sony et probablement d’autres) on dû faire un rappel pour des millions de piles au Li-Ion utilisés dans la quasi-totalité des notebooks de cette période. Il y a eu des cas extrêmes oû certaines de ces piles on pris feu et on causés beaucoup de dommage matériel et des blessures sérieuses dans certains cas isolés.

Nous retournons maintenant à notre humble Lenovo ThinkPad R60, provenant, vous l’avez sûrement devinez, de cette période. Lorsque Vincent s’est connecté pour la première fois sur ce vieux R60 roulant Lubuntu 11.04, une fenêtre fut immédiatement affichée lui indiquant que la pile au Li-Ion de son notebook était ciblé par un rappel de la compagnie Lenovo… Et si je ne m’abuse (j’aurais tellement dû prendre un « screenshot »), il y avait un numéro pour rejoindre Lenovo ainsi que d’autres informations importantes, tel que le numéro de série de la pile ou du ThinkPad.

Voilà pourquoi après plus de 10 ans d’utilisation de Linux que ce système d’exploitation m’impressionne encore et toujours… Comment se fait-il, qu’une compagnie comme Microsoft avec ses milliards ne puisse faire ce genre de chose (avec Windows 7) et qu’une petite distribution comme Lubuntu, issu d’une compagnie n’ayant pas un millième des ressources financières et humaines de Microsoft, eux trouve moyen de faire une chose semblable? Je n’ai probablement pas besoin de vous dirent à quel point je fus impressionné. Et malheureusement, je ne devrais pas être impressionné, car c’est le genre de chose que nous devrions nous attendre d’un système d’exploitation mais malheureusement nous avons appris à vivre avec la médiocrité.

Le Seagate Momentus XT:

Ce disque dur (dans notre cas, un 320 Go), qui à le vrai dire coûte 2 fois plus cher qu’un disque dur SATA de 2.5 pouces conventionnel (90$ chez NewEgg au lieu 40$) est un étrange petite bête combinant un SSD de 4 Go et un disque dur de 7200 rpm. Pour le prix, je fus très impressionné par ses performances et je vous le recommande. Voici d’ailleurs quelques liens sur le Seagate Momentus XT

http://www.anandtech.com/show/3734/seagates-momentus-xt-review-finally-a-good-hybrid-hdd

http://www.storagereview.com/seagate_momentus_xt_review

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Newrsynclogo.png

Dans un article précédent (http://www.bloguelinux.ca/?p=149), j’explique comment configurer un serveur Samba servant à entreposer tous vos fichiers que vous jugez importants (ou non…). Maintenant que tous vos fichiers sont accessibles à partir d’un seul endroit, qu’arrivera t’il quand le disque dur de votre « serveur » Samba va rendre l’âme (et ce n’est pas une question de savoir si ceci va arriver ou non, mais bien QUAND ça va arriver)…

Afin d’éviter des pertes de données, plusieurs personnes utilisent un serveur avec des disques durs configurés en « RAID » 1 ou « RAID » 5. Dans un environnement « petit réseau à la maison »,  je considère le RAID 1 et RAID 5 un peu inflexible. Dans mon cas, ce que je désire surtout avoir, c’est une copie de sauvegarde de toutes mes données situées sur le disque dur de mon serveur et les copier à intervalle régulier sur un autre disque dur, cette copie pourrait être faite une fois par jour durant la nuit ou plus souvent selon le besoin. Ce qui est intéressant avec ce type de copie de sauvegarde, est qui si je fais une gaffe, je peux aller chercher la copie de sauvegarde sur l’autre disque dur. Puisqu’une configuration en RAID 1 (ou RAID 5) ne permet pas de récupérer l’ancienne version d’un fichier effacé ou modifié par erreur, l’utilisation de cette configuration est préférable selon moi. Croyez-moi quand je vous dis que ceci m’a souvent sorti du pétrin.

Pour ceux qui sont du type à porter la ceinture et les bretelles, il est aussi possible de rouler une configuration avec du RAID 1 et de faire un copie à intervalle régulier avec « rsync ». Donc par exemple, 2 disques durs en RAID 1 et un troisième disque servant de disque de sauvegarde journalière.

Dans mon cas, sur mon serveur Samba, j’ai installé 2 disques durs de 2 To et j’effectue avec la commande « rsync », une copie du disque dur qui sert d’hôte à mon lien de partage Samba vers un autre disque dur inaccessible via Samba (mais accessible directement par le serveur).

Ce qui est très intéressant avec la commande « rsync », c’est qu’elle est capable de reconnaître la différence entre le fichier source et sa copie (s’il existe déjà une copie du fichier original sur la destination) et de copier seulement les changements entre ces 2 fichiers, donc par exemple si vous copiez une nouvelle révision d’un fichier de 500 Ko par dessus le copie de l’ancienne révision et qu’un seul Ko à changé entre le fichier source et sa copie, seulement le contenu du Ko manquant sera copié entre la source et la destination. Imaginez à quel point ceci accélère le processus de copie (dans ce cas-ci). S’il s’agit d’une copie d’un nouveau fichier, un des paramètres que j’utilise avec la commande permet de compresser le fichier lors de la copie (le fichier destination ne sera compressé, ceci ne sert qu’au processus de copie) ce qui accélère de façon significative la copie pour les nouveaux fichiers.

J’ai donc configuré 2 « mount points », un nommé « data » et l’autre nommé « backup » et la commande « rsync » suivante se charge de copier dans son intégralité toutes les données du disque dur « data » vers le disque dur « backup », voici la commande que j’utilise pour effectuer cette copie journalière:

#rsync -avz –delete –exclude=documents/eric/fichiers_inutiles/ –stats /data/ /backup

Les paramètres « -avz » spécifient à « rsync » de copier tous les fichiers (« -a), d’afficher ce que « rsync » copie (« -v ») et de compresser le contenu durant la copie (« -z »).

Le paramètre:

« –delete » efface sur la destination, les fichiers qui n’existent plus sur la source
« –exclude » exclut le répertoire mentionné de la copie
« –stats » donne des données intéressantes à la fin du processus sur ce qui a été copié durant l’exécution de la copie.

Les 2 derniers paramètres sont la source et la destination respectivement, notez la barre oblique (le « slash ») finale pour la source qui est très importante à ne pas oublier.

Avant d’ajouter cette commande dans un crontab pour qu’elle s’exécute de façon automatique, il est bien sûr préférable de la tester à fond. Heureusement, il existe un paramêtre avec la commande « rsync » qui permet de faire exactement ceci, ajoutez le paramêtre « –dry-run » à votre commande et celle-ci vous montrera ce qui serais copié avec les statistiques et tous sans toutefois copier quoi que ce soit. Une fois que vous être satisfait du résultat, vous pouvez ajouter un simple script bash dans le répertoire « /etc/cron.daily », voici le contenu du script en question:

#!/bin/sh
rsync -avz –delete –exclude=documents/esauve/torrents/ –stats /data/ /backup > /var/log/rsync-daily.log 2>&1

Donnez au script un nom descriptif, du genre « rsync-journalier » et lui donner le droit d’exécution avec la commande :

#chmod a+x /etc/cron.daily/rsync-journalier

Maintenant, tous les fichiers (à l’exception de ceux que vous avez exclut) seront synchronisés entre vos disques durs de façon journalière et automatique. L’automatisation est un point crucial car c’est souvent la seule façon d’avoir la certitude que vos copies de sauvegardes seront bel et bien effectués parce qu’il y a peu de choses moins palpitantes que la routine des copies de sauvegardes.

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Samba Logo

Samba est un projet « open source » visant à recréer le protocole SMB (maintenant nommé CIFS) qui est présent sur toutes les versions de Windows depuis Windows for Workgroups 3.11 (et si je ne m’abuse, avant ça puisque SMB à été inventé par 3Com et IBM au début des années 80s).

J’ai vu des dizaines d’articles décrivant l’installation d’un serveur Samba, mais la plupart de ces articles décrivent toujours comment configurer un serveur relativement complexe avec plusieurs utilisateurs (et les mots de passes qui vont avec), avec des imprimantes partagées, le support pour des « login scripts » et même comment configurer votre nouveau serveur Samba un PDC (Primary Domain Controller)… Samba étant très puissant et paramétrable pour quasiment tous les scénarios imaginables, j’ai longtemps cherché une configuration ultra simple, idéal pour un serveur installé à la maison qui pourrait contenir tous vos documents et fichiers et être accédé par n’importe quels de vos ordinateurs et gadgets et ce, sans avoir à maintenir une liste d’utilisateurs et devoir authentifier la connexion (entrer un mot de passe) au lien de partage accessible sur votre serveur Samba.

Comme vous pouvez sûrement le deviner, la configuration que je vais vous décrire ne devrait en aucun cas être utilisé en entreprise parce que le lien de partage (le « share » dans le jargon Windows) sera accessible à tous (mais bien sûr, seulement sur votre réseau local) et ce autant en lecture qu’en écriture.

Personnellement, ce que je trouve pratique. c’est qu’avec un serveur Samba configurer de cette façon, je suis capable d’accéder à tous les fichiers (photos, MP3s, vidéos, documents, fichiers ISOs, etc.) et ce à partir des équipements et gadgets suivants: Linux (à partir du « shell » ou de n’importe quel environnement graphique), mon téléphone Android, les iPods Touch de mon épouse et ma fille, mon Xbox « 180 » roulant XBMC, notre « media player » (Asus O-Play HD1) branché sur notre HDTV et bien sûr sur Windows XP et 7 (si vraiment nécessaire…)

Pour configurer Samba de cette façon, il s’agit d’installer le « package » Samba de votre distribution préféré, voici la marche à suivre sous Archlinux.

# pacman -S samba

Une fois le « package » samba installé, créer un nouveau fichier « smb.conf » dans /etc/samba avec le contenu suivant:

[global]

workgroup = WORKGROUP # Entrez le nom du workgroup que vous désirez
server string = Samba Server # Nom de votre serveur
restrict anonymous = no
security = user
passdb backend = smbpasswd
log file = /var/log/samba/%m.log
max log size = 500
invalid users = root
socket options = TCP_NODELAY
map to guest = bad user
guest account = smbguest
load printers = yes
smb ports = 139

[data]

path = /data
public = yes
guest only = yes
writable = yes
force create mode = 0666
force directory mode = 0777
browseable = yes

Démarrer le « daemon » (service) de Samba avec la commande ci-dessous:

#rc.d start samba (vous devez être logué en tant que « root » pour entrer toute les commandes précédés d’un « # »)

Notez que par la suite, si vous faites des modifications au fichier smb.conf, vous devrez redémarrer ce « daemon » avec  « #rc.d restart samba »

Dans mon exemple, j’utilise le répertoire /data comme point de référence à mon « share » (lien de partage) « Samba », par conséquent, créez un répertoire « data » à la racine de votre serveur Samba et assignez les droits d’accès avec la commande suivante:

#chmod -R a+rwx /data

Vous devez aussi créer, un compte d’utilisateur servant seulement à Samba pour les connections sans mot de passe, dans le fichier « smb.conf » la ligne « guest account = smbguest » nous demande donc de créer un compte nommé… « smbguest » donc entrez la commande « useradd -m smbguest ».

Assigné « smbguest » comme propriétaire au niveau « utilisateur » et au niveau « groupe » du répertoire « /data » avec la commande:

#chown -R smbguest.smbguest /data

Votre « share » Samba est prêt à être utilisé.

Pour le tester rapidement, vous pouvez utiliser GNOME, allez dans nautilus, tapez « CTRL – l » et entrez « smb://{nom de votre serveur}/data » (sans les caractères {} )
Pour ceux qui ont la malchande de devoir utiliser Windows pour effectuer ce test, entrez dans la fenêtre « Exécuter »: « \\{nom du serveur}\data »

J’ai déjà utilisez cette configuration relativement simple de Samba sur plusieurs distributions Linux, celle-ci devrait fonctionner sur la majorité de ceux-ci (et possiblement tous).

Références:

https://wiki.archlinux.org/index.php/Samba

https://help.ubuntu.com/community/Samba

http://samba.org

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit

Ça fait maintenant plus de 10 ans que j’utilise des logiciels de virtualisation, j’ai commencé avec le pionier, VMware, en 1999. Malheureusement ce logiciel, maintenant appelé VMware Workstation (http://www.vmware.com/products/workstation/overview.html), était dispendieux à l’époque (et l’est encore comparé aux produits équivalents de la compétition) et coutait plus de 300$ jusqu’au début des années 2000. Il y a environ 3 ans, j’ai fait l’essai de VirtualBox et je l’utilise depuis ce temps. Ce logiciel est issu d’une petite compagnie allemande nommé Innotek qui fut acheté par Sun Microsystems en février 1998. VirtualBox est un logiciel 100% « open source » (sous la license GPL2) et le « Extension Pack » qui ajoute plusieurs fonctionnalités intéressantes lui, est propriétaire (code fermé) et est distribué sous une license nommé PUEL (Personal Use End-User License, donc pour usage non commercial). VirtualBox est gratuit et même s’il n’est pas aussi puissant que VMware Workstation, il est toutefois presque aussi performant et offre la vaste majorité des fonctionnalités les plus importantes et intéressantes de VMware Workstation.

Suivant l’achat de Sun Microsystems par Oracle en Janvier 2010, je craignais le pire pour VirtualBox, car la réputation d’Oracle face à certain projet « open source » n’est plus à faire (jeter un coup d’oeil à la débacle de OpenOffice qui aussi est issu de Sun) mais à ma grande surprise, Oracle continue d’offrir ce logiciel et continue de le maintenir à jour avec la sortie de nombreuses mise-à-jours importantes depuis l’acquisition de Sun.

Maintenant à quoi peu bien servir un logiciel de virtualisation?

Un logiciel de virtualisation permet de créé un ordinateur virtuel complet sur votre ordinateur actuel. Avec cette VM (virtual machine) vous pouvez installer un autre système d’exploitation et faire tous les essais et tests que vous voulez sans affecter d’aucune façon la stabilité et l’intégrité du système d’exploitation installé sur votre ordinateur « physique ». C’est vraiment un outil extraordinaire pour n’importe quel « geek » de Linux.

Par exemple, pour mon travail, je dois souvent me connecter sur le réseau de mon employeur via une connexion VPN afin de pouvoir effectuer des diagnostiques à distance (et autres tâches) sur nos serveurs critiques. Malheureusement, le logiciel de connection VPN requis pour la connection à distance ne roule que sur Windows… Sur ma bécane principale, qui roule Archlinux, j’ai donc créé une VM, roulant Windows 7 avec juste les outils nécessaires pour faire mon travail. Un autre exemple, j’ai réçemment voulu tester, un concept qui m’intriguais depuis longtemps, AutoFS (un article à ce sujet viendra sous peu), j’ai donc créé une VM roulant une installation de base d’Archlinux sur mon notebook qui lui aussi roule Archlinux « sur le métal » (directement sur le notebook), et j’ai ainsi été capable de tester AutoFS à fond avant d’appliquer mes découvertes sur mon installation « physique » sur mon notebook. Il y aussi beaucoup d’amateurs d’Ubuntu qui testent les versions alphas et bétas de cette distribution dans une machine virtuelle.

De plus, si votre ordinateur à la puissance nécessaire, vous pouvez roulez plus d’une VM à la fois, ce qui permet de faire encore plus de tests et essais hyper intéressants.

http://www.virtualbox.org

https://help.ubuntu.com/community/VirtualBox

https://wiki.archlinux.org/index.php/Virtualbox

Mise à jour (20 juillet 2011): Nouvelle intéressante… Oracle vient de sortir, il y a quelques jours, la version 4.1.0 de VirtualBox et cette nouvelle mouture comporte un bon nombre de nouvelles fonctionnalités, allez l’essayer… c’est gratuit…

Merci de partager...Share on Google+Tweet about this on TwitterShare on FacebookEmail this to someoneShare on Reddit