Planet

Récemment une célèbre FAI en France à mis a jours sa box pour nous offrir la possibilité de pouvoir établir des connexion VPN depuis notre box.
Cette initiative m’a permis d’utiliser mon VPN sur mon serveur distant afin de pouvoir naviguer sur le net (ou tout autre activité…) sans que l’IP de mon domicile soit visible.

Ce qui est intéressant avec cette fonction c’est que le flux réseau est directement envoyé via le VPN et ce de manière transparente pour l’utilisateur.
C’est donc pourquoi aujourd’hui nous allons voir comment créer un serveur VPN sur Ubuntu Server 14.04 et comment l’utilisé depuis un poste client.

1) Prérequis

- Une machine Linux (Ubuntu/Debian) connecter au net. (Si possible dans un datacentrer c’est nettement mieux au niveau débit.)

- Un accès SSH à la machine afin de pouvoir réaliser les manipulation suivantes.

- 10 minutes de votre vie pour la mise en place :)

2) Installation et configuration du serveur VPN

Le tutoriel suivant est réalisé sous Ubuntu 14.04 si vous utilisez une distribution différente il faudra surement adapter les commandes mais elles seront certainement du même acabit.

Dans un premier temps nous allons installer le logiciel nécessaire pour mettre en place notre VPN.

sudo apt-get install pptpd

Une fois le logiciel installer nous allons modifier 3 fichiers de configuration:

/etc/pptpd.conf (configuration globale du service VPN)
/etc/ppp/pptpd-options (Configuration pour le tunnel VPN)
/etc/ppp/chap-secrets (Configuration des utilisateurs)

Nous allons commencé par le fichier /etc/pptpd.conf
Tout d’abord sauvegardé le fichier d’origine puis créer en un nouveau

sudo mv /etc/pptpd.conf /etc/pptpd.conf.bak && sudo touch /etc/pptpd.conf

Maintenant que vous avez un  nouveau fichier vide vous pouvez y insérer la configuration suivante:

# Configuration réseau dans le tunnel VPN localip 10.0.0.1 remoteip 10.0.0.10-20 # Options pour le protocole PPP option /etc/ppp/pptpd-options # Activation des logs logwtmp

localeip est l’adresse IP qui sera attribuée a votre serveur VPN dans le réseau VPN
remoteip est la plage d’adresse IP qui sera distribuée au clients de votre serveur

Nous allons maintenant nous interresser au fichier /etc/ppp/pptpd-options
Comme précédement nous allons sauvegarder le fichier d’origine pour en créer un nouveau

sudo mv /etc/ppp/pptpd-options /etc/ppp/pptpd-options.bak && sudo touch /etc/ppp/pptpd-options

Editez le votre nouveau fichier et insérer la configuration suivante:

# Source d'authentification name pptpd # Configuration des protocoles de chiffrements refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 # Définition des serveurs DNS ms-dns 208.67.222.222 ms-dns 208.67.220.220 proxyarp nodefaultroute lock nobsdcomp novj novjccomp nologfd

Enfin nous allons définir les utilisateurs qui seront authorisés a se connecter a votre serveur VPN.
Pour cela éditez le fichier /etc/ppp/chap-secrets de la manière suivante:

# Secrets for authentication using CHAP # client server secret IP addresses utilisateur pptpd mot-de-passe *

Cette configuration permet de définir le nom de l’utilisateur et sont mot de passe

Voila il ne nous reste plus qu’à redémarer le service VPN pour qu’il prenne en compte nos modifications

service pptpd restart

Si vous n’avez pas d’erreur particulière votre nouveau serveur VPN est près à accueillir des clients.

2) Configuration d’un client VPN Windows

Pour vous connectez a votre VPN en utilisant Windows  procédé comme ceci:

Démarrer => Panneau de configuration => Centre Réseau et partage

Sélectionner ensuite « Configurer une nouvelle connexion ou un nouveau réseau »

vpnclient1

 

 Puis sélectionner « Connexion à votre espace de travail »

vpnclient2

Cliquer sur « Utiliser ma connexion internet »

Dans la nouvelle fenêtre qui vient d’apparaître remplissez comme ceci:

Adresse  Internet: Votre adresse IP publique de votre serveur

Nom de la connexion: Le nom que vous souhaitez

Cliquez sur « suivant ».

Dans la nouvelle fenêtre qui vient d’apparaître remplissez comme ceci:

Nom d’utilisateur: le nom de l’utilisateur définit dans le fichier /etc/ppp/chap-secrets

Mot de passe: le mot de passe de l’utilisateur définit dans le fichier /etc/ppp/chap-secrets

Cliquer sur « suivant ».

Voila vous êtes connectez à  votre serveur VPN

vpnclient4

4) Configuration pour utiliser la connexion internet du serveur distant

Actuellement vous pouvez vous connectez au serveur VPN mais vous n’avez pas d’accès internet l’orsque vous êtes connectez dessus.
Pour corriger ce problème procédez comme ceci:

Sur votre serveur éditez le fichier /etc/sysctl.conf et rechercher la ligne suivante:

net.ipv4.ip_forward = 0

et modifier la comme ceci

net.ipv4.ip_forward = 1

Enfin pour terminer il  faut configurer le pare-feu pour qu’il vous redirige le traffic internet dans le VPN.
Pour ce faire entrez les commandes suivantes:

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT iptables -A INPUT -p gre -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j SNAT --to IP-DU-SERVEUR

Pour sauvegarder vos modification dans le pare-feu entrez la commande suivante:

iptables-save > /etc/default/iptables

Puis éditer le fichier /etc/network/interfaces et ajouté la ligne suivante à la fin du fichier:

pre-up iptables-restore < /etc/default/iptables

Voila vous pouvez maintenant utiliser la connexion internet de votre serveur.
Vous pouvez maintenant connecter tous les périphériques permettant de gérer le protocole PPTP a votre serveur. :)

Sur XUbuntu 14.04 avec laptop_mode_tools, les périphériques USB qui ne sont pas utilisés pendant quelques secondes sont automatiquement éteints. C'est le cas des souris par exemple, ce qui est très génant. Il est cependant possible de modifier la configuration de laptop_mode_tools pour désactiver ce comportement.

On modifie le fichier /etc/laptop-mode/conf.d/usb-autosuspend.conf pour lui demander de blacklister du processus d'extinction plusieurs types de périphériques USB. Dans mon cas, les souris et les clés USB.

$ grep 'AUTOSUSPEND_USBTYPE_BLACKLIST' /etc/laptop-mode/conf.d/usb-autosuspend.conf AUTOSUSPEND_USBTYPE_BLACKLIST="usbhid usb-storage"

La modification est effective après sauvegarde du fichier.

Via AskUbuntu

Sur XUbuntu 14.04 avec laptop_mode_tools, les périphériques USB qui ne sont pas utilisés pendant quelques secondes sont automatiquement éteints. C'est le cas des souris par exemple, ce qui est très génant. Il est cependant possible de modifier la configuration de laptop_mode_tools pour désactiver ce comportement.

On modifie le fichier /etc/laptop-mode/conf.d/usb-autosuspend.conf pour lui demander de blacklister du processus d'extinction plusieurs types de périphériques USB. Dans mon cas, les souris et les clés USB.

$ grep 'AUTOSUSPEND_USBTYPE_BLACKLIST' /etc/laptop-mode/conf.d/usb-autosuspend.conf AUTOSUSPEND_USBTYPE_BLACKLIST="usbhid usb-storage"

La modification est effective après sauvegarde du fichier.

Via AskUbuntu

30 Juin 2014 à 19:36

Migration de comptes mails IMAP via Quack1

Depuis l'affaire Snowden, tout le monde nous rebat les oreilles à coup de « GMail c'est nul », « bouh, Microsoft vole votre vie privée » et autres joyeusetés. Méticuleux comme vous êtes, vous avez donc changé de provider de mails pour un service plus respectueux de la vie privée ou — mieux — pour votre propre serveur de mails.

Sauf qu'en changeant de service, vous perdez également tout vos anciens mails présents sur le précédent serveur. Mais il existe un outil, imapcopy qui permet de récupérér vos mails !

Il va se connecter à votre ancien serveur, récupérer tous les mails, puis les resynchroniser sur le nouveau serveur.

 

Sur toutes les bonnes distribs (ici Debian/Ubuntu), ça s'installe simplement.

sudo apt-get install imapcopy

On crée ensuite un fichier de configuration comme celui donné ci-dessous.

$ cat imapcopy.cfg SourceServer source.tld SourcePort 143 DestServer dest.tld DestPort 143 # SourceUser SourcePassword DestinationUser DestinationPassword Copy "user@source.tld" "password" "user@dest.tld" "password2" Copy "user2@source.tld" "PASSWORD" "user2@dest.tld" "PASSWORD2"

Il est donc possible de migrer, d'un seul coup, les mails de plusieurs comptes sur le même serveur. Pour lancer la migration, on lance imapcopy qui va récupérer le fichier de conf. dans le répertoire courant.

imapcopy

 

Attention, tous les échanges se font ici en clair (et pas de façon chiffrée). Pour cela, vous pouvez utiliser un tunnel ssh (si vous avez la main sur la machine distante) ou bien l'utilitaire stunnel.

sudo apt-get install stunnel

On lance ensuite la création des tunnels :

stunnel -c -f -d 1143 -r source.tld:993 -P '' stunnel -c -f -d 1144 -r dest.tld:993 -P ''

Et on n'oublie pas de modifier le fichier de configuration pour utiliser ces nouveaux ports :

$ cat imapcopy.cfg SourceServer 127.0.0.1 SourcePort 1143 DestServer 127.0.0.1 DestPort 1144

 

Vous pouvez également tester votre configuration avec un imapcopy -t.

 

_Cet article est une traduction libre et adaptée de l'article d'Emmanuel Revah. L'article source est distribué sous licence CC-BY-NC-SA.

30 Juin 2014 à 19:36

Migration de comptes mails IMAP via Quack1

Depuis l'affaire Snowden, tout le monde nous rebat les oreilles à coup de « GMail c'est nul », « bouh, Microsoft vole votre vie privée » et autres joyeusetés. Méticuleux comme vous êtes, vous avez donc changé de provider de mails pour un service plus respectueux de la vie privée ou — mieux — pour votre propre serveur de mails.

Sauf qu'en changeant de service, vous perdez également tout vos anciens mails présents sur le précédent serveur. Mais il existe un outil, imapcopy qui permet de récupérér vos mails !

Il va se connecter à votre ancien serveur, récupérer tous les mails, puis les resynchroniser sur le nouveau serveur.

 

Sur toutes les bonnes distribs (ici Debian/Ubuntu), ça s'installe simplement.

sudo apt-get install imapcopy

On crée ensuite un fichier de configuration comme celui donné ci-dessous.

$ cat imapcopy.cfg SourceServer source.tld SourcePort 143 DestServer dest.tld DestPort 143 # SourceUser SourcePassword DestinationUser DestinationPassword Copy "user@source.tld" "password" "user@dest.tld" "password2" Copy "user2@source.tld" "PASSWORD" "user2@dest.tld" "PASSWORD2"

Il est donc possible de migrer, d'un seul coup, les mails de plusieurs comptes sur le même serveur. Pour lancer la migration, on lance imapcopy qui va récupérer le fichier de conf. dans le répertoire courant.

imapcopy

 

Attention, tous les échanges se font ici en clair (et pas de façon chiffrée). Pour cela, vous pouvez utiliser un tunnel ssh (si vous avez la main sur la machine distante) ou bien l'utilitaire stunnel.

sudo apt-get install stunnel

On lance ensuite la création des tunnels :

stunnel -c -f -d 1143 -r source.tld:993 -P '' stunnel -c -f -d 1144 -r dest.tld:993 -P ''

Et on n'oublie pas de modifier le fichier de configuration pour utiliser ces nouveaux ports :

$ cat imapcopy.cfg SourceServer 127.0.0.1 SourcePort 1143 DestServer 127.0.0.1 DestPort 1144

 

Vous pouvez également tester votre configuration avec un imapcopy -t.

 

_Cet article est une traduction libre et adaptée de l'article d'Emmanuel Revah. L'article source est distribué sous licence CC-BY-NC-SA.

Depuis que j'ai mis en place mon serveur perso, dans mon salon, je graphe pas mal de choses grâce à Munin. Par exemple, la température de 2 villes (voir sur mon article de présentation). Je voulais, depuis longtemps, grapher la température à l'intérieur de mon appart (pour pas cher, bien évidemment). C'est désormais chose faite pour moins de 6€. Voici ce que j'ai fait (j'ai fait les manips sur mon serveur perso, une Debian, tout est donc identique pour le faire sur une Ubuntu ou un Raspberry Pi).

thermo.png

I. Le matériel

Après quelques recherches, j'ai trouvé le thermomètre USB TEMPer. Les prix peuvent varier entre 5 et 20€, je pense avoir trouvé le moins cher sur ebay, pour 5,37€ frais de ports gratuits. Je passe donc commande et je reçois le joujou 2 semaines plus tard.

temper.jpg

II. Les logiciels

Une fois reçu le thermomètre, je le branche sur le port USB de mon serveur. Voici le résultat de la commande dmesg (ou dans /var/log/messages) :

kernel: [4850586.280542] usb 2-1: new low speed USB device using uhci_hcd and address 4
kernel: [4850586.455191] usb 2-1: New USB device found, idVendor=0c45, idProduct=7401
kernel: [4850586.455200] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
kernel: [4850586.455207] usb 2-1: Product: TEMPerV1.4
kernel: [4850586.455211] usb 2-1: Manufacturer: RDing
kernel: [4850586.455421] usb 2-1: configuration #1 chosen from 1 choice
kernel: [4850586.474046] input: RDing TEMPerV1.4 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input11
kernel: [4850586.474331] generic-usb 0003:0C45:7401.0007: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-0000:00:1d.0-1/input0
kernel: [4850586.489026] generic-usb 0003:0C45:7401.0008: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-0000:00:1d.0-1/input1

Et le résultat de la commande lsusb :

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 004: ID 0c45:7401 Microdia
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 046d:0992 Logitech, Inc. QuickCam Communicate Deluxe
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Le TEMPer c'est la ligne "0c45:7404 Microdia". En tapant cette recherche dans votre moteur de recherche, vous tombez sur pas mal de docs. J'ai donc dû installer le binaire me permettant de relever la température. J'ai choisi temperv14 de dev-random.net.

Voici le détail les commandes :

sudo su
apt-get install libusb-dev libusb-1.0-0-dev unzip
cd /tmp/
wget http://dev-random.net/wp-content/uploads/2013/08/temperv14.zip
#ou un miroir
wget http://www.generation-linux.fr/public/juin14/temperv14.zip
unzip temperv14.zip
cd temperv14/
make


Si tout se passe correctement, vous obtenez un binaire temperv14 (dans le répertoire dans lequel vous vous trouvez, ici, /tmp/temperv14). Il ne reste plus qu'à le déplacer dans /usr/local/bin/ :

mv temperv14 /usr/local/bin

Vous pouvez désormais utiliser la commande suivante pour obtenir la température via le TEMPer :
temperv14 -c 

Une dernière chose, dans l'état, le binaire temperv14 n'est utilisable que par l'utilisateur root. Comme je compte grapher ces valeurs dans munin, il faut faire en sorte que tout le monde (dont l'utilisateur munin) puisse exécuter cette commande. Je lance donc cette commande :

chmod +s /usr/local/bin/temperv14

III. Monitoring dans munin

Voici le code que j'ai utilisé dans munin et le rendu obtenu :

Le code

#!/bin/sh
# Where is pcsensor located?
PCSENSOR="/usr/local/bin/temperv14"

if [ ! -e ${PCSENSOR} ]; then
        echo "Cannot find pcsensor executable" >&2
        exit -1
fi

case $1 in
   config)
        echo "graph_title Temperature Appart
graph_vlabel Celsius
graph_info Graph la temperature de mon appart avec temperv14
graph_category sensors
graph_args --base 1000 -l 0
graph_vlabel temp in C
temp.label temp"
        exit 0;;
esac

echo -n "temp.value "
${PCSENSOR} -c

Le rendu

temp_appart-day.png

Voila, c'est pas plus compliqué :)

Chères lectrices, chers lecteurs,

Nous avons mis les bouchées doubles pour sortir ce n°81 de janvier 2014, en un peu moins de 3 semaines après le n°80 ! Notre objectif est clair : combler un peu le retard pris par rapport à la version anglaise originale.

Pour autant, ce retard n’ôte en rien l'intérêt des différents articles contenus dans le magazine Full Circle, édition francophone. Ce numéro de 54 pages est disponible à l'adresse habituelle ou en cliquant directement sur la vignette ci-dessous.

issue81fr.png

Au sommaire de ce numéro 81 intitulé « Sécurisez votre PC » :

  • un tutoriel sur Lynis, un outil qui va effectuer un audit de sécurité sur votre machine,
  • la deuxième partie de « RAID à domicile »,
  • une critique de la distribution Linux LXLE,
  • un comparatif sur les lanceurs d'applications,
  • les jeux « Limbo » et « Joe Danger 2 The Movie », étudiés à la loupe,
  • un exercice de style avec la commande sed,

ainsi que pleins d'autres surprises, sans oublier les rubriques et tutoriels habituels, Programmez en Python – LibreOffice – Inkscape...

Toute l'équipe du FCMfr et plus particulièrement Bab notre scribeur, AuntieE, Deuchnord, Ekel, Frangi, Fredphil91, Gsxfred se joignent à moi pour vous souhaiter une très bonne lecture !

A bientôt pour le prochain numéro où l'on parlera de monnaie virtuelle et de périphériques iOS...mais chuuuut....ne le criez pas sur tous les toits !

LeCastillan.

15 Juin 2014 à 15:30

SSHFS inversé (rsshfs) via Rom1

sshfs

SSHFS permet de monter un répertoire d’une machine distance dans l’arborescence locale en utilisant SSH :

sshfs serveur:/répertoire/distant /répertoire/local

Mais comment monter un répertoire local sur une machine distante ?

Une solution simple serait de se connecter en SSH sur la machine distante et d’exécuter la commande sshfs classique.

Mais d’abord, ce n’est pas toujours directement possible : la machine locale peut ne pas être accessible (non adressable) depuis la machine distante. Ça se contourne en créant un tunnel SSH utilisant la redirection de port distante (option -R).

Et surtout, ce n’est pas toujours souhaitable : cela nécessite que la clé privée autorisée sur la machine locale soit connue de la machine distante. Or, dans certains cas, nous ne voulons pas qu’une machine esclave puisse se connecter à notre machine maître.

Reverse SSHFS

En me basant la commande donnée en exemple, j’ai donc écrit un petit script Bash (rsshfs, licence GPLv3) qui permet le reverse SSHFS :

git clone http://git.rom1v.com/rsshfs.git cd rsshfs sudo install rsshfs /usr/local/bin

(disponible également sur github)

Les paquets sshfs et fuse doivent être installés sur la machine distante (et l’utilisateur doit appartenir au groupe fuse). Le paquet vde2 (pour la commande dpipe) doit être installé sur la machine locale.

Son utilisation se veut similaire à celle de sshfs :

rsshfs /répertoire/local serveur:/répertoire/distant

Comme avec sshfs, /répertoire/distant doit exister sur serveur et doit être vide.

Il est également possible de monter le répertoire en lecture seule :

rsshfs /répertoire/local serveur:/répertoire/distant -o ro

Attention. L’option « lecture seule » est demandée à la machine distante, par un paramètre sshfs. Par conséquent, une version modifiée de sshfs pourrait ignorer la demande de lecture seule. Vous devez donc faire confiance à la machine distante.

Contairement à sshfs, étant donné que rsshfs agit comme un serveur, cette commande ne retourne pas tant que le répertoire distant n’est pas démonté.

Pour démonter, dans un autre terminal :

rsshfs -u serveur:/répertoire/distant

TODO

J’ai choisi la facilité en écrivant un script indépendant qui appelle la commande qui-va-bien.

L’idéal serait d’ajouter cette fonctionnalité à sshfs directement.

09 Juin 2014 à 14:42

Festival des sciences à Monastir via Nizarus

FestivalDesSciences2014

Notre association CLibre participera au Festival des Sciences de Monastir qui se déroulera du 13 au 15 juin 2014 au Palais des Sciences de Monastir. Le programme complet du festival est disponible ici : Programme.

CLibre sera présente tout au long du festival avec un stand permanent et une exposition des photos du concours Wiki Loves Monuments 2013. De plus CLibre assurera 3 ateliers :

  1. Présentation Wikimedia Commons, le samedi 14 juin de 14h00 à 16h00, par Habib M’henni.
  2. Édition Wikipédia, le samedi 14 juin de 16h00 à 18h00, par Yamen Bousrih.
  3. Ubuntu et les logiciels libres, le dimanche 15 juin de 09h00 à 11h00, par Nizar Kerkeni.

Soyez au rendez-vous…

21centrobot

Imaginez un robot humanoïde open source dont vous pouvez imprimer sur une imprimante 3D les pièces. C’est un peu le postulat de base du Jimmy, lle petit robot que Intel a récemment présenté.

Le Jimmy a été créé sous la supervision Brian David Johnson de dans le cadre du projet 21 century Robot. Sa plateforme est open source et il est d’ors et déjà capable d’interagir avec un humain mais aussi de twitter, parler, etc. (Next step me servir une bière) Actuellement, c’est sur sa dimension « ouverte » que le Jimmy est unique. Par exemple, si Nao de Aldebaran fait déjà beaucoup (même plus) de ce que fait Jimmy, Jimmy lui peut être assemblé par n’importe qui! Ses pièces pourront être imprimées avec une imprimante 3D (où commandable pour être ensuite assemblé). A priori, seules les parties électronique et moteur devront être nécessairement achetées auprès de Intel. Du Ikea en mieux!

jimmy1 jimmy2 jimmy3

Je n’ai pas trouvé beaucoup d’éléments précis liés au software embarqué dans la machine (bien qu’il semblerai qu’il tourne sous Ubuntu et utilise la plateforme DARwIn OP dédiée à la recherche et à l’éducation) si ce n’est la certitude que celui-ci aussi sera open source et donc modifiable à souhait.

Disponibles depuis Mai dans une dizaine d’université, les fichiers pour l’impression et le software seront bientôt accessibles au grand publique et permettront de créer son propre robot pour environ 1600$ selon son créateur.

Voilà une petite vidéo de présentation (en anglais) du bébé :

Je trouve l’idée superbement intéressante et Intel montre encore ici qu’il a comme souvent une longueur d’avance. Quand je vous disais que les droïdes recherchés par l’empire étaient sous Linux!

Pages