68 votes

La façon la plus simple de configurer Ubuntu comme serveur VPN

Je sais qu'il existe de nombreux tutoriels sur le net pour configurer un client et un serveur VPN.

Si vous en trouvez un qui est simple/court Je ne suis intéressé que par la partie serveur.

Pour le client, je vais utiliser OS X, donc je préfère une solution qui utilise L2TP over IPsec ou PPTP parce que je suppose que Cisco IPsec coûterait quelque chose.

Je ne veux pas passer trop d'heures à l'installer. Vous savez, peut-être que quelqu'un a déjà fait une configuration script :)

Note : J'utilise une micro instance EC2 sur laquelle fonctionne Ubuntu 12.04.

85voto

Joe the Person Points 5090

AVERTISSEMENT : PPTP EST UN PROTOCOLE NON SÉCURISÉ ! Non seulement le cryptage a été violé, mais il envoie votre authentification en texte clair et est facilement intercepté. Il a été estimé que le temps nécessaire pour forcer le mot de passe est à peu près équivalent au temps nécessaire pour forcer une seule clé DES. Envisagez d'utiliser OpenVPN ou une autre architecture VPN au lieu du PPTP !

J'ai utilisé ce guide pour mettre en place un serveur VPN PPTP sur mon serveur Ubuntu 12.04.


Pour résumer les principaux points du lien, cependant :

1 : Installer pptpd y ufw . iptables peut être utilisé à la place de ufw, mais pour des raisons de facilité, ufw est mieux si vous ne savez pas iptables .

sudo apt-get install pptpd ufw

2 : Ouvrez les ports nécessaires. Le guide suggère 22 (SSH) et 1723 pour le pptp vpn.

sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable

3 : Editer /etc/ppp/pptpd-options . Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/ppp/pptpd-options ), et mettez en commentaire ces lignes en mettant un # avant eux, si vous voulez que cela fonctionne universellement sur tous les systèmes d'exploitation :

refuse-pap
refuse-chap
refuse-mschap

Vous pouvez commenter cette ligne si vous souhaitez désactiver le cryptage : require-mppe-128

4 : Pendant l'édition /etc/ppp/pptpd-options ajouter des serveurs DNS pour le VPN. Cet exemple utilise les serveurs OpenDNS :

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5 : Editer /etc/pptpd.conf . Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/pptpd.conf ). Vous devez ajouter les IP du VPN local pour le système, donc ajouter :

localip 10.99.99.99
remoteip 10.99.99.100-199

Si votre système est un VPS, utilisez l'IP publique pour "localip". S'il ne l'est pas et se trouve sur un réseau local, utilisez l'IP réseau de votre ordinateur. Utilisez des IP et des plages différentes si ces IP existent sur votre sous-réseau ! Si vous ne connaissez pas l'IP publique de votre VPS, trouvez-la en exécutant dig +short myip.opendns.com @resolver1.opendns.com

6 : Edit /etc/ppp/chap-secrets . Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/ppp/chap-secrets ), et ajoutez les données d'authentification.
Le format pour /etc/ppp/chap-secrets est :

\[Username\] \[Service\] \[Password\] \[Allowed IP Address\]

Un exemple serait : sampleuser pptpd samplepassword *

7 : Redémarrez pptpd. Exécutez cette commande dans le terminal : sudo /etc/init.d/pptpd restart

8 : Editer /etc/sysctl.conf . Ouvrez le fichier avec votre éditeur préféré (le mien est nano, donc la commande pour moi est sudo nano /etc/sysctl.conf ). Décommentez la ligne suivante (en supprimant l'élément # au début de celui-ci) dans /etc/sysctl.conf : net.ipv4.ip_forward=1
Rechargez la configuration : sudo sysctl -p

9 : Cette étape suppose que vous avez ufw.
Editar /etc/default/ufw et changez l'option DEFAULT_FORWARD_POLICY de DROP a ACCEPT

10 : Cette étape suppose que vous avez ufw.
Editar /etc/ufw/before.rules et ajoutez le texte suivant au début de l'élément /etc/ufw/before.rules ou juste avant le *filter règles (recommandé) :

\# NAT table rules
\*nat

:POSTROUTING ACCEPT \[0:0\]
# Allow forward traffic to eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Process the NAT table rules
COMMIT

Si vous avez un noyau version 3.18 et plus récent (vous pouvez vérifier cela en exécutant uname -r ), ajoutez également les lignes suivantes avant l'élément # drop INVALID packets ... ligne :

-A ufw-before-input -p 47 -j ACCEPT

11 : Redémarrez le pare-feu, afin de rafraîchir les ensembles de règles et d'appliquer les règles que nous avons ajoutées à l'ensemble de règles. /etc/ufw/*.rules des fichiers : sudo ufw disable && sudo ufw enable

Attention : Si vous avez d'autres ports que vous devez ouvrir, par exemple pour HTTPS si votre serveur héberge un site web, vous devez ajouter individuellement ces ports à la liste des ports autorisés à l'aide de la touche sudo ufw allow <PORT>

23voto

UPDATE : Depuis Sierra, macOS ne prend plus en charge le vpn PPTP. Cette réponse n'est pas valable pour les clients macOS Sierra et au-delà.

PPTP via PoPToP est facile

  1. apt-get install pptpd
  2. modifier /etc/pptpd.conf et définissez l'option remoteip sur une plage de votre réseau qui n'est PAS desservie par votre serveur DHCP.
  3. modifier /etc/ppp/chap-secrets et ajouter un nom d'utilisateur et un mot de passe

par exemple

vpnuser pptpd vpnpassword *

C'est tout ce qu'il faut pour configurer pptp. Maintenant, testez-le avec votre client OS X.

18voto

Qasim Points 21792

Exemple de VPN PPTP sur Ubuntu 12.04

Voici un tutoriel rapide pour configurer un serveur VPN PPTP de base sur Ubuntu 12.04.

Installer les paquets nécessaires

                          sudo apt-get install ppp pptpd

Configurer les plages IP du PPTP sur le serveur

                          sudo nano /etc/pptpd.conf

Ajouter les lignes suivantes à la fin

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Ceci configure le serveur PPTP pour qu'il utilise l'IP 10.89.64.1 tout en distribuant la plage d'IP 10.89.64.100 à 10.89.64.150 aux clients PPTP. Modifiez-les comme vous le souhaitez, tant qu'il s'agit d'adresses IP privées et qu'elles n'entrent pas en conflit avec des adresses IP déjà utilisées par votre serveur.

Configurer les serveurs DNS à utiliser lorsque les clients se connectent à ce serveur PPTP.

                          sudo nano /etc/ppp/pptpd-options

Modifier OU Ajouter les lignes suivantes à la fin

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Créer un utilisateur PPTP

                          sudo nano /etc/ppp/chap-secrets

Ajoutez une ligne en bas de page pour que votre fichier ressemble à quelque chose comme ça :

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Configurer le NAT pour les connexions PPTP

Sans cette étape, vous pourrez vous connecter mais votre connexion ne sera pas en mesure de charger une connexion web à partir de ce serveur.

                          sudo nano /etc/rc.local

Ajoutez ce qui suit en bas, juste avant la ligne "exit 0" :

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

En supposant que eth0, vous pouvez utiliser ifconfig pour vérifier le nom du réseau.

Activez le passage à gué IPv4 :

                          sudo nano /etc/sysctl.conf

Décommentez la ligne suivante :

                          net.ipv4.ip_forward=1

Rechargez ensuite la configuration :

                          sudo sysctl -p

Redémarrez votre VPS et tout devrait fonctionner parfaitement à partir de n'importe quel client PPTP.


Configuration côté client

Pour Mac, assurez-vous que vous avez ajouté la connexion VPN PPTP. En outre, il vous suffit de configurer l'adresse du serveur, le nom du compte et le mot de passe dans les paramètres d'authentification. Pas de problème ici.

Pour Linux, NetworkManager pour ajouter des connexions VPN. Assurez-vous que vous avez ajouté la connexion VPN PPTP. Et la configuration que j'utilise est ici :

Comment déboguer et réparer une connexion client PPTP/VPN

enter image description here

Et pour Windows

enter image description here

8voto

Nick Woodhams Points 501

Les autres réponses sur ce fil n'étaient que des réponses partielles dans mon cas. Voici ce qui a fonctionné pour moi sur Ubuntu 12.04.3

sudo apt-get install pptpd

Ajoutez ce qui suit au fichier /etc/pptpd.conf (l'adresse IP n'a pas d'importance, il s'agit uniquement des adresses IP de votre interface ppp0).

localip 10.0.0.1
remoteip 10.0.0.100-200

Ajouter les serveurs DNS à /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Activer le transfert d'IP

sudo vim /etc/sysctl.conf

Décommentez cette ligne

net.ipv4.ip_forward=1

Sauvegarder les changements

sudo sysctl -p /etc/sysctl.conf

Editez /etc/ppp/chap-secrets, ajoutez un utilisateur VPN dans ce format :

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

Redémarrer PPTP

service pptpd restart

Exécuter ifconfig et trouvez votre interface par défaut, dans mon cas c'était br0 (Je l'ai modifié pour permettre aux machines virtuelles de ma machine physique de partager l'interface. Le vôtre sera probablement en0 )

enter image description here

Sauvegarde d'iptables

iptables-save > ~/iptables.save

Maintenant, faites vos changements iptables en utilisant votre interface par défaut comme révélé par ifconfig.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

Pour qu'il soit persistant lorsque votre système redémarre ;

sudo apt-get install iptables-persistent

Ajouter le VPN sur l'ordinateur client (Mac)

Préférences système > Réseau > [+] > VPN

enter image description here

enter image description here

Choisissez ensuite Paramètres d'authentification > Mot de passe, puis saisissez votre mot de passe ici.

enter image description here

7voto

HappyCoder86 Points 171

Voici un projet assez sympa qui scripts la douleur d'OpenVPN :

https://github.com/Nyr/openvpn-install

Exécutez-le et il installera l'open vpn et le configurera. A la fin, il sortira un fichier client.ovpn que vous pourrez utiliser pour configurer votre client. Cela semble fonctionner assez bien.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X