Monter son serveur d’anonymisation (VPN+Proxy)

Un tutoriel pour les utilisateurs avancés qui vous guident dans la création d’un serveur VPN et Proxy personnel pour anonymisation.
Le but est d’avoir un serveur relais avec un VPN et Proxy qui vous permettra de se cacher derrière.
Dans ce tuto, nous verrons donc comment mettre en ligne un OpenVPN et Squid Proxy.

L’installation n’est pas très complexe, si vous êtes à l’aise avec Linux.

anonymat_openvpn_squidproxy_logo

Introduction

Dans ce tuto, le serveur utilisé est un Kimsufi sur Debian.

Si vous utilisez une autre distribution Linux, ce tutoriel peut tout de même être utilisé. Le chemin de configuration d’OpenVPN / Squid peut être différents.
Le mode d’installation aussi, selon le gestionnaire de packages qui correspond à votre distribution Linux.

Chez OVH, vous pouvez faire l’acquisition d’un VPS pour environ 2 euros par mois chez OVH, ce qui peut vous permettre de mettre en place un serveur VPN + Proxy pour votre trafic WEB à travers ces derniers.
Cela ne vous permet pas de vous cacher, dans le sens passer inaperçu, puisque vous aurez une IP fixe, il est donc tout à fait possible de vous reconnaître, voire éventuellement de vous pister.
Pour brouiller les pistes, il vaut mieux utiliser un VPN payant qui possède des centaines d’IPs qui sont partagés avec des milliers d’utilisateurs ou Tor.
Vous pouvez bien entendu créer plusieurs accès par utilisateur.

L’intérêt ici, c’est surtout de pouvoir son adresse IP réelle mais aussi, dans le cas d’utilisation de connexion publique (Wifi publique), de pouvoir sécuriser un peu plus les transferts à travers le tunnel VPN.
Bref, si vous avez un ordinateur portable, et que vous vous connectez un peu de n’importe où… ce tuto vous ait plutôt destiné.

Le but étant donc de se connecter à votre serveur à travers un VPN et de forcer la connexion de vos navigateurs WEB à travers un Proxy que vous aurez configuré.

Nous utiliserons OpenVPN et SquidProxy, il existe d’ailleurs des centaines et des centaines de tutos sur le net pour ces programmes très courants.
Côté client, je vous donnerai des exemples de conf pour un client en Windows et Linux.

Installation côté serveur

Installer OpenVpn

OpenVPN est donc un serveur VPN libre, qui fonctionne en client/serveur.
Côté serveur, vous devez donc installer le programme et générer les certificats qui seront à installer sur le poste client.
La connexion et l’authentification se font donc à travers des certificats.

Pour installer openvpn :

apt-get install openvpn easy-rsa

Le fichier de configuration server est /etc/openvpn/server.conf
Sur Debian, vous avez un exemple de fichier de configuration serveur sur /usr/share/doc/openvpn/examples
Dans l’exemple, le serveur est en TCP port 1194 avec une interface tap.

Note rapide sur la différence TCP VS UDP.
TCP : correction d’erreur et suivi de connexion, c’est la connexion la plus sûr.
UDP : plus rapide car aucune vérification, les paquets sont plus légers. Mais cela peut ne pas fonctionner, par exemple, dans le cas où la sortie se fait sur plusieurs connexions internet différente. Si aucun suivi, un coup vous sortirez par une IP publique, un coup par une autre. De ce fait, la connexion ne fonctionnera pas.
En outre, TCP permet aussi de jouer sur les blocages FW. Exemple, vous configurez votre serveur VPN sur le port 443, initialement configuré pour du HTTPs.
Avec un Firewall « simple », qui vérifie que les connexions de ports, cela fonctionnera sans problème.

Voici un autre exemple d’un fichier /etc/openvpn/server.conf :

mode server
proto tcp
port 1194
dev tap

# Cles et certificats
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#tls-auth ta.key 1
key-direction 0
#cipher AES-256-CBC
cipher BF-CBC

# Reseau
server 10.8.0.0 255.255.255.0
push "route 10.0.0.0 255.0.0.0 10.8.0.1"
#push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120

# Securite
user nobody
group nogroup
persist-key
persist-tun
comp-lzo

# Log
verb 3
mute 20
status openvpn-status.log
log-append /var/log/openvpn.log

Les commandes push permettent de forcer des routes sur les postes clients.
En outre, on créé une route 10.8.0.1 afin de faire sortir tout le traffic en 10.X par le VPN.

ca, cert et key sont les certificats serveurs qu’il ne faut générer.

Création des certificats

On utilise pour cela easy-rsa.
On se rend dans le dossier easy-rsa :

cd /etc/openvpn/easy-rsa
vi vars

Modifiez les variables suivants à la fin pour renseigner vos informations.

export KEY_COUNTRY="FR"
export KEY_PROVINCE="FR"
export KEY_CITY="Paris"
export KEY_ORG="malekal.com"
export KEY_EMAIL="mailling@malekal.com"

Pour générer le certificat maître et les clés  (le . avant ./vars n’est pas une erreur) :

. ./vars
./clean-all
./build-ca
./build-key-server server

Les clés sont générées, il ne reste plus qu’à copier ce qui va bien dans le dossier /etc/openvpn

cd /etc/openvpn/easy-rsa/keys
cp ca.crt server.crt server.key dh1024.pem /etc/openvpn

et on redémarre le service openvpn :

 /etc/init.d/openvpn restart

Si tout se passe bien, vous devez avoir une interface tap0 qui s’est montée, on peut vérifier avec ifconfig :

openvpn_tuto_interface_tap0

Sinon vérifier les logs et les éventuelles erreurs : dmesg, /var/log/daemon.log ou encore /var/log/openvpn.log

Squid

OpenVpn côté serveur est prêt, on peut s’attaquer à Squid.
Pas très compliqué non plus, pour installer Squid :

apt-get install squid

et un exemple de /etc/squid/squid.conf.
J’ai divisé celui-ci en trois parties :

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl all src all

#acl manager proto cache_object
#acl localhost src 127.0.0.1/32
#acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
#acl SSL_ports port 443 # https
#acl SSL_ports port 563 # snews
#acl SSL_ports port 873 # rsync
#acl Safe_ports port 80 # http
#acl Safe_ports port 21 # ftp
#acl Safe_ports port 443 # https
#acl Safe_ports port 70 # gopher
#acl Safe_ports port 210 # wais
#acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280 # http-mgmt
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
#acl Safe_ports port 631 # cups
#acl Safe_ports port 873 # rsync
#acl Safe_ports port 901 # SWAT
#acl purge method PURGE
acl Users proxy_auth REQUIRED
#acl CONNECT method CONNECT
http_access allow Users
#http_access allow manager localhost
#http_access deny manager
#http_access allow purge localhost
#http_access deny purge
#http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#http_access allow localhost
#icp_access allow localnet
http_access deny all

icp_access deny all
http_port 10.8.0.1:3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid

forwarded_for off
header_access Allow allow all
header_access Authorization allow all
header_access WWW-Authenticate allow all
header_access Proxy-Authorization allow all
header_access Proxy-Authenticate allow all
header_access Cache-Control allow all
header_access Content-Encoding allow all
header_access Content-Length allow all
header_access Content-Type allow all
header_access Date allow all
header_access Expires allow all
header_access Host allow all
header_access If-Modified-Since allow all
header_access Last-Modified allow all
header_access Location allow all
header_access Pragma allow all
header_access Accept allow all
header_access Accept-Charset allow all
header_access Accept-Encoding allow all
header_access Accept-Language allow all
header_access Content-Language allow all
header_access Mime-Version allow all
header_access Retry-After allow all
header_access Title allow all
header_access Connection allow all
header_access Proxy-Connection allow all
header_access User-Agent allow all
header_access Cookie allow all
header_replace User-Agent Nutscrape/1.0 (CP/M; 8-bit)
#header_access All deny all

Quelques remarques et points importants.
La variable http_port est à configurer correctement.
Le but étant de faire écouter squid que sur l’adresse IP du lien VPN et ne pas avoir le Proxy ouvert à tout bout de champs, surtout pas sur internet ou le réseau OVH (enfin celui de votre hébergeur).
Sinon, il y a de fortes chance qu’il se retrouve dans des lists de Proxys ouverts, pour en faire un mauvais usage.
Ici, le Proxy écoute sur le port 3128, vous pouvez mettre le port par défaut, si besoin : 3128

Un coup de netstat pour vérifier que squid écoute bien sur l’interface VPN :

squid_tuto_anonymisation

Second point, nous allons créer des utilisateurs histoires de filtrer un peu (ce n’est bien entendu pas obligatoire).
Le paramètre suivant indique le fichier de configuration contenant la liste des utilisateurs :

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/users

Pour créer un user (Remplacez UnUtilisateur par le nom d’utilisateur.) :

htpasswd -c /etc/squid/users unUTILISATEUR

La dernière partie header_access modifie les header et forwarded_for envoyés par squid afin de retirer certaines informations.

Iptables

Si iptables est présent, il faut autoriser la policy FOWARD et le transfert de paquets entre interfaces réseaux :

sysctl -w net.ipv4.ip_forward=1

et pour iptables :

iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Remplacez eth0 par votre interface réseau qui permet de sortir, notamment s’il s’agit d’un VPS, vous aurez une interface virtuel

Exemple de script iptables plus complet pour les serveurs OVH en 91.121 (partie spécial OVH).
Pour les ouvertures de pare-feu chez OVH, quels serveurs vous devez laisser passer, se reporter au guide : http://guide.ovh.com/firewall

Attention le script est très restrictif, il bloque tout et ouvre vraiment ce qui est nécessaire.
Si vous ne savez pas maîtriser iptables, vous pouvez bloquer entièrement l’accès à votre serveur.
Donc faites bien attention et lisez bien le contenu.
En outre, corrigez bien les variables des interfaces.
Vous pouvez tester votre règles iptables pendant 120s en passant la commande suivante : /etc/init.d/firewall.sh ; sleep 120 ; iptables -P INPUT ACCEPT ; iptables -P OUTPUT ACCEPT ; iptables -P FORWARD ACCEPT ; iptables -F

#!/bin/bash
# Definition des interfaces
local=eth0 # cote local
localip=91.121.xxxx

vpn=tap0
vpnip=10.8.0.1

# on remet la police par debut A ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# On remet les polices par debut pour la table NAT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

# On vide (flush) toutes les regles existantes
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X

# initialisation log
iptables -N LOG_DROP
iptables -A LOG_DROP -j LOG --log-level info --log-prefix '[IPTABLES DROP] : '
iptables -A LOG_DROP -j DROP

#iptables -N LOG_ACCEPT
#iptables -A LOG_ACCEPT -j LOG --log-level info --log-prefix '[IPTABLES ACCEPT] : '
#iptables -A LOG_ACCEPT -j ACCEPT

iptables -N LOG_FORWARD
iptables -A LOG_FORWARD -j LOG --log-level info --log-prefix '[IPTABLES FORWARD] : '
iptables -A LOG_FORWARD -j DROP

# Politique de refus
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Je veux pas de spoofing
if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]
then
for filtre in /proc/sys/net/ipv4/conf/*/rp_filter
do
echo 1 > $filtre
done
fi

# Enable broadcast echo Protection
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done

# Enable TCP SYN Cookie Protection
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

# Disable ICMP Redirect Acceptance
for f in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $f
done

# Don't send Redirect Messages
for f in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo 0 > $f
done

# Drop Spoofed Packets coming in on an interface, which if replied to,
# would result in the reply going out a different interface.
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done

# Log packets with impossible addresses.
for f in /proc/sys/net/ipv4/conf/*/log_martians; do
echo 1 > $f
done

# pas de icmp
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# On accepte tout en local
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# ------- Stealth Scans and TCP State Flags ------------

# All of the bits are cleared
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

# SYN and FIN are both set
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

# SYN and RST are both set
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

# FIN and RST are both set
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j DROP

# FIN is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j DROP

# PSH is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j DROP

# URG is the only bit set, without the expected accompanying ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j DROP

#=== ouvertures ====

# SSH en serveur...
/sbin/iptables -A INPUT -i $local -d $localip -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state ESTABLISHED,RELATED -p tcp --sport 22 -j ACCEPT

# DNS
/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -p tcp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 53 -j ACCEPT
/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -p udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 53 -j ACCEPT

# ntp
/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -p tcp --sport 123 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 123 -j ACCEPT

/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -p udp --sport 123 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 123 -j ACCEPT

#VPN
/sbin/iptables -A INPUT -i $local -d $localip -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 1194 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state ESTABLISHED,RELATED -p tcp --sport 1194 -j ACCEPT

# Squid pour le VPN
/sbin/iptables -A INPUT -i $vpn -d $vpnip -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 3128 -j ACCEPT
/sbin/iptables -A OUTPUT -o $vpn -s $vpnip -m state --state ESTABLISHED,RELATED -p tcp --sport 3128 -j ACCEPT

# Squid pour le surf
/sbin/iptables -A FORWARD -o $vpn -i $local -m multiport -p tcp --dport 80,443 -j ACCEPT
/sbin/iptables -A FORWARD -i $vpn -o $local -m multiport -p tcp --sport 80,443 -j ACCEPT

/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -m multiport -p tcp --sport 80,443 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -m multiport -p tcp --dport 80,443 -j ACCEPT

# filtrage limit ICMP
iptables -A INPUT -i eth0 -p icmp --icmp-type 0 -m limit --limit 1/second -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp --icmp-type 0 -m limit --limit 1/second -j ACCEPT

iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -m limit --limit 1/second -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp --icmp-type 8 -m limit --limit 1/second -j ACCEPT

iptables -A INPUT -i eth0 -p icmp --icmp-type 3 -m limit --limit 1/second -j ACCEPT
iptables -A OUTPUT -o eth0 -p icmp --icmp-type 3 -m limit --limit 1/second -j ACCEPT

# special OVH
/sbin/iptables -A INPUT -i eth0 -p icmp --source proxy.ovh.net -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --source proxy.p19.ovh.net -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --source proxy.rbx.ovh.net -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --source ping.ovh.net -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 --source cache.ovh.net -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p tcp --source 91.121.191.16 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp --source sla-rbx-26.ovh.net -j ACCEPT

# ----------- MASQUERADE / FORWARD DE PORT -----------------

# On active le forward d'interface
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

# Logs des paquets refuses
echo "4 4 1 7"> /proc/sys/kernel/printk # Pour ne pas que les logs arrivent sur la console
iptables -A INPUT -j LOG_DROP
iptables -A OUTPUT -j LOG_DROP
iptables -A INPUT -p udp -j LOG_DROP
iptables -A OUTPUT -p udp -j LOG_DROP
iptables -A FORWARD -j LOG_FORWARD

La partie intéressante étant :

# Squid pour le surf
/sbin/iptables -A FORWARD -o $vpn -i $local -m multiport -p tcp --dport 80,443 -j ACCEPT
/sbin/iptables -A FORWARD -i $vpn -o $local -m multiport -p tcp --sport 80,443 -j ACCEPT

/sbin/iptables -A INPUT -i $local -d $localip -m state --state ESTABLISHED,RELATED -m multiport -p tcp --sport 80,443 -j ACCEPT
/sbin/iptables -A OUTPUT -o $local -s $localip -m state --state NEW,ESTABLISHED,RELATED -m multiport -p tcp --dport 80,443 -j ACCEPT

où autorise donc le forward entre l’interface VPN et eth0 ainsi que les connexions sortantes vers les ports 80,443 pour Squid.

Installation côté client

Voici comment installer OpenVPN et utiliser le Proxy côté client.
Avec un exemple pour Windows et Linux.

Dans un premier temps, il faut créer les certificats du client, ceci est commun aux deux OS.
Sur le serveur OpenVPN, remplacez client par le nom du client, par exemple son nom ou pseudo :

cd /etc/openvpn/easy-rsa
. ./vars
./build-key client


squid_tuto_openvpn_anonymisation

squid_tuto_openvpn_anonymisation_2

Windows

Vous devez ensuite récupérer les fichiers suivants, de manière confidentiel, du serveur vers le poste client.
Par exemple avec WinScp, ou à travers un fichier zip avec un mot de passe :

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
où client est le nom utilisé pour identifier votre client.

Ensuite, installez OpenVPN à partir de ce lien : https://openvpn.net/index.php/open-source/downloads.html

Le programme se présente avec une icône dans le systray et une icône OpenVPN GUI.

tutoriel_openvpn_windows_anonymisation Placez les fichiers du client dans C:\Program Files\OpenVPN\config
Créez un fichier client.opvn où pseudo est le nom du client que vous utilisez pour identifier votre client.

Voici le contenu de client.opvn correspondant à la configuration du serveur OpenVPN :

client
dev tap
proto tcp
remote adresseduserveurVPN 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3

Corrigez la ligne remote en mettant l’adresse de votre serveur OpenVPN.
Corrigez aussi les cert et key avec les noms du client utilisé.
tutoriel_openvpn_windows_anonymisation_2

Fermez et relancez OpenVPN GUI.
En effectuant un clic droit sur l’icône du systray, un bouton Connecter et maintenant présent.
Lancez la connexion en cliquant sur Connecter.
tutoriel_openvpn_windows_anonymisation_3Le logs de la connexion apparaît (sinon via le bouton Afficher Statut).

tutoriel_openvpn_windows_anonymisation_4Un coup d’ipconfig /all à partir d’une invite de commandes montre l’interface TAP avec les paramètres de notre VPN.
tutoriel_openvpn_windows_anonymisation_6
Si tout va bien, L’icône OpenVPN GUI apparaît alors en vert.
A partir de là, la connexion VPN est établie avec le serveur OpenVPN.
Jaune indique que vous êtes déconnectés et que le client OpenVPN tente de se reconnecter au serveur.

Linux

L’installation est assez similaire à celle du serveur.
Le fichier de configuration est différent.

Vous devez ensuite récupérer les fichiers suivants, de manière confidentiel, du serveur vers le poste client.
Par exemple avec scp, ou à travers un fichier zip avec un mot de passe :

/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key
où client est le nom utilisé pour identifier votre client.

Vous pouvez placer les fichiers dans /etc/openvpn/

Voici le contenu de client.opvn correspondant à la configuration du serveur OpenVPN :

client
dev tap
proto tcp
remote adresseduserveurVPN 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
comp-lzo
verb 3

Corrigez la ligne remote en mettant l’adresse de votre serveur OpenVPN.
Corrigez aussi les cert et key avec les noms du client utilisé.

Pour démarrer le client openvpn en root :

/etc/init.d/openvpn restart

Pour que le client s’établisse au démarrage de Linux, sur une Debian.
Modifiez le /etc/default/openvpn

AUTOSTART="all"

Une interface tap0 avec l’adresse IP du client VPN apparaît.tutoriel_openvpn_linux_anonymisation

Sur les navigateurs WEB

Il suffit ensuite de configurer les navigateurs WEB pour utiliser le Proxy Squid qui se trouve sur notre serveur VPN.
Ceci à travers le tunnel VPN, il faut donc indiquer l’adresse 10.8.0.1:3128

Comme vous risquez de devoir jongler entre cette connexion et une connexion direct.
Je vous propose d’utiliser des extensions proxy qui permettent de passer d’une configuration proxy à une autre.
Il existe beaucoup d’extensions différentes pour cela, les extensions données sont donc à titre exemple.

Firefox

Dans le cas de Firefox,  vous pouvez utiliser Foxy Proxy.
Dans les options, on configure les accès au proxy, avec l’adresse IP/Port et le nom d’utilisateur / mot de passe.

tutoriel_openvpn_windows_anonymisation_7
On donne un joli nom à notre proxy avec une couleur distinctif.
tutoriel_openvpn_windows_anonymisation_8
Nous avons donc la configuration par défaut, celle du navigateur WEB et notre proxy que l’on vient d’ajouter.
tutoriel_openvpn_windows_anonymisation_9
On peut ensuite passer de l’un à l’autre.
tutoriel_openvpn_windows_anonymisation_10
L’adresse IP retournée est celle du proxy.
tutoriel_openvpn_windows_anonymisation_11

Google Chrome

Dans notre exemple de configuration de proxy avec Google Chrome, on utilise : Proxy SwitchySharp
On configure l’accès 10.8.0.1 port 3128
tutoriel_openvpn_windows_anonymisation_13


En sélectionnant ce dernier, on passe par le proxy à travers le tunnel VPN.tutoriel_openvpn_windows_anonymisation_12

 

Print Friendly, PDF & Email
(Visité 1 224 fois, 4 visites ce jour)

Vous pouvez aussi lire...

Les Tags : #Windows10 - #Windows - #Tutoriel - #Virus - #Antivirus - #navigateurs WEB - #Securité - #Réseau - #Internet