Serveur Vpn + Vidéo surveillance avec un Raspberry Pi

Serveur Vpn + Vidéo surveillance avec un Raspberry Pi

Depuis pas mal de temps je réfléchissais à faire un serveur VPN pour pouvoir passer tous ces filtres (beurk!) qui sont souvent mis en place (dans mon IUT par exemple). De plus, m’étant fait cambriolé récemment, je me suis intéressé au caméra de surveillance que je pourrai laisser à la maison. Voici donc en deux parties mes bidouilles sur mon Raspberry Pi.

 

 

Avant toute chose:

Le matériel nécessaire:
– Un Raspberry Pi (oui sinon on ira pas très loin…)
– Une clé wifi pour ceux qui voudraient avoir un serveur sans fil =P
– Carte SD
– Du temps et de la patience!

Serveur VPN et SSH

PS3-VPN
Mise en place des serveurs

Les premières choses à faire: installer un linux sur le pi. Si vous ne savez pas comment faire voici un bon tuto.

Ensuite il va falloir installer les drivers wifi et configurer les connexions. En effet il est possible de brancher clavier + souris + écran (hdmi) mais c’est assez fastidieux, je préfère de loin la connexion en ssh  (connexion à distance via un autre ordinateur). Voilà comment procéder:

Par ethernet:  vous avez accès à votre box, il vous suffit de brancher le pi dessus. Pour vous connecter en ssh il vous faudra l’adresse ip, trouvable en allant sur votre routeur par navigateur. Je vous conseille de passer le raspberry en adresse fixe (onglet DHCP dans l’administration de votre box).

En ce qui me concerne, j’ai fais un serveur dhcp avec isc-dhcp pour pouvoir connecter le raspberry non pas à ma box mais à mon pc. C’est donc Le raspberry qui donnera une adresse ip à la machine branchée. Pour info voici mon fichier de config /etc/dhcp/dhcpd.conf (Pensez aussi à faire une sauvegarde de votre fichier avant de toucher quoi que ce soit) :

# A slightly different configuration for an internal subnet.
    subnet 10.0.0.0 netmask 255.255.255.252 {
    range 10.0.0.2 10.0.0.2;
    option broadcast-address 10.0.0.3;
    default-lease-time 600;
    max-lease-time 7200;
}

Pour la config des connections, voici mon fichier /etc/network/interfaces:

auto lo
iface lo inet loopback

#Configurqtion de eth0
auto eth0
allow-hotplug eth0
#Mode administrateur ( box --> pc --> raspberry)
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
#Mode client (box --> raspberry)
#iface eth0 inet dhcp

# Ajout du routeur par defaut
up route add default gw 10.0.0.2

Pour vous connecter à votre raspberry pi il suffira de taper: ssh pi@ipRaspberry Astuce sécurité: Il vaut mieux changer le port d’écoute du serveur ssh, et en mettre un supérieur à 1024. Il vous suffit d’éditer le fichier /etc/ssh/sshd_config et de changer la valeur du port. N’oubliez pas de relancer le serveur ssh:

/etc/init.d/ssh restart

Pour vous connecter:

ssh pi@ipRaspberry -p numPort

Par wifi: Au lieu de faire un copier – coller, voici également un très bon tuto.

Configuration du VPN: En ce qui concerne le serveur VPN, j’ai suivi le tuto du blog nicolargo, écrit pour Ubuntu / Debian et fonctionne très bien sur Raspberry.

Pour pouvoir utiliser internet lors de la connexion au serveur, il faut activer le NAT (translation d’adresse ip) avec cette commande (remplacer wlan0 par eth0 pour le partage en ethernet). A n’effectuer que dans le cas où votre pi ne serait pas branché / relié directement à votre box (dans le cas où un ordinateur routeur ferait l’intermédiaire). La commande serait donc à exécuter sur le routeur intermédiaire.

sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Puis indiquer au raspberry qu’il doit router les trames (ip forwarding) ainsi qu’à la machine / routeur intermédiaire si existante (si oui action à faire donc deux fois…). Pour cela il faut modifier le fichier /etc/sysctl.conf et décommenter la ligne

net.ipv4.ip_forward=1

Et enfin prendre en compte les modifications en tapant:

sudo sysctl -p /etc/sysctl.conf

Je vous présente mon petit raspberry pi avec la boîte qui va bien!

IMAG0642
Mon mini serveur maison

Serveur Web Motion + VNC

Pour pouvoir surveiller ma maison tranquillement, j’ai simplement ajouté une webcam et configuré un serveur web avec motion. Pour ce faire j’ai suivi ce (très bon) tutoriel. Je peux maintenant garder un œil dans la maison de n’importe où, il m’a suffit de faire un nom de domaine avec no-ip, d’installer le client no-ip sur le raspberry pi et le tour est joué! Cependant pensez tout de même à changer le port du serveur Web par un nombre peut être moins courant, car si vous y arrivez alors tout le monde peut le faire! ça peut éventuellement devenir embêtant…

J’ai aussi installé un serveur VNC pour pouvoir m’y connecter et avoir un interface graphique. ça peut dépanner dans certains cas, pour cela il suffit de lancer la commande

sudo apt-get install tightvnc

Puis de lancer le daemon avec… sudo tightvnc

Voila Il y a maintenant un serveur SSH, VNC, VPN et Web sur mon petit raspberry. Il me suffit d’ouvrir les ports sur ma box et de rediriger le flux sur l’adresse du pi pour pouvoir y accéder de n’importe où! Si vous voulez que tout se lance au démarrage, modifiez le fichier /etc/rc.local. En exemple voici le mien:

 #!/bin/sh -e
 #
 # rc.local
 #
 # This script is executed at the end of each multiuser runlevel.
 # Make sure that the script will "exit 0" on success or any other
 # value on error.
 #
 # In order to enable or disable this script just change the execution
 # bits.
 #

 # Print the IP address
 _IP=$(hostname -I) || true
 if [ "$_IP" ]; then
     printf "My IP address is %sn" "$_IP"
 fi

 #Démarrage du client no-ip
 sudo /usr/local/bin/noip2
 #Démarrage du serveur vnc
 sudo tightvncserver 
 #Démarrage du serveur web Motion
 sudo motion
 #Activation du partage de connection (translations)
 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE 
 exit 0

Voili voilou les enfants, à vos hacks maintenant!

2 Comments on “Serveur Vpn + Vidéo surveillance avec un Raspberry Pi

    • Merci! C’est vrai que ce n’est pas forcément évident, mais je vais rédiger dans peu de temps un nouvel article pour se monter un VPN ainsi qu’un serveur DNS (via DNSSEC) facilement, et sans prise de tête. Le but étant de donner la possibilité à ceux qui s’y intéressent de garder un minimum d’anonymat (cf prochaine loi sur le renseignement).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.