Imago's Blog

Yet another personal blog…

VPN ou comment passer outre une connexion limitée

Si vous êtes dans le cas où la connexion qui est à votre disposition ne vous permet d’accéder à certains services (ports fermés), tout n’est pas perdu!

Vous pourrez jouer à votre jeu préféré en vous servant de votre connexion personnelle en créant un réseau virtuel privé (VPN) et ainsi pouvoir taper du mob au bureau ^^

vpn

Pour celà, il faut installer sur vos 2 machines le paquet Openvpn, rediriger les ports 443 tcp et udp de votre box, puis faire les manip suivantes:

Côté serveur:

Créez les fichiers suivants:

Fichier /etc/openvpn/vpn.conf:

up vpn.sh
script-security 2

dev tun0
port 443
proto tcp-server
ifconfig 192.168.10.1 192.168.10.2

comp-lzo
secret /etc/openvpn/vpn.key

user nobody
group nogroup

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

log /var/log/openvpn.log
verb 3

Fichier /etc/openvpn/vpn.sh:

#!/bin/sh
sysctl net.ipv4.conf.all.forwarding=1
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d ! 192.168.10.0/24
-j
MASQUERADE

Puis faites

openvpn –genkey –secret /etc/openvpn/vpn.key

/etc/init.d/openvpn restart

Côté client:

Créez les fichiers suivants:

Fichier vpn.conf:

dev tun0

remote 88.164.242.235
proto tcp-client
port 443

ifconfig 192.168.10.2 192.168.10.1

comp-lzo
secret /etc/openvpn/vpn.key

user nobody
group nogroup

keepalive 10 60
ping-timer-rem
persist-tun
persist-key

log /var/log/openvpn.log
verb 3

# pour utiliser le vpn comme route par defaut
#redirect-gateway
redirect-gateway def1

Copiez le fichier vpn.key dans le répertoire /etc/openvpn de votre client par ssh puis faites

/etc/init.d/openvpn restart

Ça y est, vous utilisez votre connexion personnelle et plus la connexion bridée!

Dès que vous voudrez utiliser votre tunnel (à condition que votre ordinateur distant soit allumé bien sûr), vous devrez lancer Openvpn sur votre client (il est désactivé par défaut) avec la commande /etc/init.d/openvpn start.

Explications (paste du mail de Geb):


Le principal:

On ecoute sur 443/tcp, c’est discutable (tcp over tcp), mais ça marche
partout (port d’https). On peut aussi envisager le 53/udp (dns).
Openvpn ecoute par défaut sur 1194/udp.

Le serveur a l’ip 192.168.10.1 , le client 192.168.10.2 (on ecrit ifconfig $addr_local $addr_distante).

Le serveur lance un .sh a la connection, qui:

1) active la redirirection (il devient un routeur)

2) fait du nat, « reecrit tout ce qui vient de 192.168.10.0/24 et qui
n’est pas a destination de 192.168.10.0/24 avec mon adresse ip »)

Le serveur et le client partagent un .key qu’ils utilisent pour
s’authentifier mutuelement. Ce .key est à génerer avec openvpn –genkey
(ou –keygen je sais jamais).

redirect-gateway def1 est important, il va creer deux nouvelles routes pour sortir via le serveur, Chez moi:

0.0.0.0         172.25.1.1      128.0.0.0       UG    0      0        0 tap0

128.0.0.0       172.25.1.1      128.0.0.0       UG    0      0        0 tap0

Pourquoi 2 routes ? On evite de redefinir 0.0.0.0/0 (route par defaut),
si on met 2 routes plus precises, elles seront choisies par l’os pour
sortir. Si jamais on coupe le vpn la route par défaut sera préservée
(ça evite de relancer dhcp quand on coupe le vpn !)

L’optionel:

comp_lzo active la compression a va vollee

user, group, persist-key, persist-tun servent a dropper les privileges
(le persist-key/tun evite de se retrouver dans l’impossibilité de lire
la clef)

keepalive 10 60 et , ping-timer-rem, servent a tester regulierement la connextion pour la relancer si elle semble coupée.

Je passe sur les logs, c’est explicite, on peut utiliser log-append, et mute (man openvpn).

Pour utiliser ces fichiers:

– Les placer dans /etc/openvpn/$foo.conf pour qu’ils soient lancés au
démérrage par /etc/init.d/openvpn (avec quelques options automatiques
comme le fait d’être lancés en daemon).

– On peut lancer/relancer le vpn via /etc/init.d/openvpn start|stop|restart [$foo]

– Si on veut le relance à chaque fois qu’on se connecte / reconnecte:
echo /etc/init.d/openvpn restart >> /etc/network/if-up.d/openvpn

– On peut check les logs et tcpdump l’interface (ici tun0) pour debugger.

Précédent

Ce week end…

Suivant

Debian + e17 + wifi = problèmes…

  1. MCMic

    Mouaif, encore faut-il avoir un PC dispo avec les ports ouverts.
    Et puis j’ai pas qu’un soucis de port, ma bande passante est aussi limitée.

    j’adapterais p-e pour avoir le port pour IMAP.

  2. ZaZo0o

    Bien sur, le but étant d’utiliser sa propre connection internet pour faire une redirection de port… Après, pour la bande passante j’en sais trop rien, je ne suis pas experte dans ce domaine ^^ »

  3. MCMic

    bah disons que je suis loin d’avoir assez de bande passant pour jouer à regnum online, port ouverts ou pas. (je suis en résidence étudiante, beaucoup de ports sont bloqués)

    Merci quand même pour l’astuce, ça pourra me servir pour d’autres ports.

  4. ZaZo0o

    Pour ma part, j’ai vécu 4ans en cité U avec la connection de chez Wifirst. Les ports étaient ouvert, donc pas de problème de ce côté, parcontre niveau bande passante c’était raisonnable, tout dépendait de l’heure en fait, genre entre 18 et 20h c’était assez caothique.
    Le jeu ne réclame pas tant que ça de bande passante, c’est au niveau du pc que ça coince souvent.

  5. Bon ben ça marche pas XD

  6. Elle est belle la jeunesse !
    Jouer au lieu de s’instruire … :p

  7. ZaZo0o

    Mais je m’instruis Monsieur! Je révise mon espagnol et mon anglais! Jeu argentin oblige!

Laisser un commentaire

Fièrement propulsé par WordPress & Thème par Anders Norén