Objectif: je veux pouvoir utiliser Internet en toute sécurité via mon ordinateur personnel pendant que mon ordinateur portable est connecté à un point d'accès / point d'accès ouvert.
Je ne sais que je peux utiliser un tunnel SSH / proxy SOCKS, mais je ne veux pas bricoler avec des applications (les utilisent, si même possible). Je suppose que j'ai besoin d'une configuration OpenVPN, donc je cherche un guide détaillé sur la façon de:
- Installer et configurer le serveur OpenVPN
- Configurer le client OpenVPN (NetworkManager)
Les versions d'Ubuntu sur lesquelles cela devrait fonctionner sont 10.10 et 11.04.
networking
security
network-manager
vpn
openvpn
htorque
la source
la source
Réponses:
J'ai la question exacte il y a quelques mois, mais en plus, je voulais avoir une connexion IPv6 si possible. Vous pourriez être intéressé par mes questions sur Serverfault:
Je n'avais qu'une seule carte réseau ("interface réseau") sur mon serveur pour l'utiliser. Dans ma configuration, NetworkManager n'était pas suffisant car je dois exécuter un script personnalisé pour prendre en charge IPv6. Pour plus de simplicité cependant, je vais utiliser NetworkManager ici et omettre le support IPv6.
Tout d'abord, prenez une décision sur la méthode d'authentification. J'utiliserai la méthode du certificat plus sûr qui fonctionne comme SSL: pendant la prise de contact, un secret commun est choisi qui sera utilisé pour la session. Les autres méthodes sont une clé partagée; un nom d'utilisateur et un mot de passe.
Serveur
1. préparer
Tout d'abord, installez le serveur openvpn. C'est aussi simple que cela
sudo apt-get install openvpn
. La partie difficile est de le configurer. La configuration est présente dans/etc/openvpn
.2. Configurer l'authentification
Le serveur a besoin de certificats pour s'identifier et identifier ses clients. Ces certificats sont récupérés auprès d'une autorité de certification (autorité commune). La création des certificats et des clés privées associées peut être effectuée sur n'importe quelle machine, elle n'a pas à être effectuée sur le serveur. Si vous êtes vraiment paranoïaque, vous devez le faire sur une machine qui n'est pas connectée à un réseau et utiliser une clé USB pour transférer les certificats.
Créer une autorité de certification et des certificats pour le serveur
Cette étape doit être effectuée une fois, sauf si la clé privée de votre autorité de certification a été compromise. Dans ce cas, des certificats valides peuvent être créés qui seront acceptés par le serveur, entraînant une faille de sécurité.
La documentation officielle suggère de faire l'administration en
/etc/openvpn
. Je ne suis pas un grand fan de tout exécuter en tant que root, donc je vais le mettre dans un répertoire différent.Créez le répertoire d'administration et copiez-y les fichiers en exécutant:
vars
selon vos besoins, par exemple en définissantKEY_SIZE=2048
votre position paranoïaque.Chargez les variables et créez le répertoire clé en exécutant:
Si vous obtenez une erreur qui
No ... openssl.cnf file could be found Further invocations will fail
s'exécuteln -s openssl-1.0.0.cnf openssl.cnf
, puis à. vars
nouveau.Si c'est la première fois que vous utilisez cette autorité de certification, préparez l'environnement des clés. N'exécutez pas cette commande si vous souhaitez conserver votre autorité de certification précédemment créée. Pour ce faire, vous devrez déployer un nouveau
ca.crt
../build-ca
. Vous pouvez remplir tous les détails que vous souhaitez, mais notez que ces informations seront visibles dans les fichiers journaux lorsque les clients se connecteront au serveur. Cela va créer les fichiersca.key
etca.crt
dans le sous-dossierkeys
. Gardez leca.key
fichier secret en toutes circonstances . Ne pas le faire permettra à toute personne possédant la clé de se connecter à votre serveur../revoke-full server
. Sinon, vous obtenez une erreur de base de données.Créez le certificat pour le serveur en exécutant:
Lorsqu'on vous demande un mot de passe, laissez-le vide, sauf si vous êtes prêt à entrer le mot de passe à chaque démarrage du serveur (non recommandé). Confirmez en signant le certificat et en le validant. Deux nouveaux fichiers apparaîtront dans le répertoire
keys
:server.key
etserver.crt
.DH et utilisez prepare for tls-auth
Générez des paramètres Diffie-Hellman en utilisant:
Par pointes de durcissement , utilisez
tls-auth
. Pour cela, générez la clé secrète partagée en utilisant:Le fichier résultant (
ta.key
) doit également être distribué aux clients, mais vous ne devez pas le mettre en public.Créer des certificats pour les clients
Pour chaque client, ces étapes doivent être répétées:
Entrez le répertoire dans lequel vous avez créé votre CA et votre certificat de serveur:
Si vous avez ignoré l'étape de création de l'autorité de certification parce que vous en avez déjà une, vous devez d'abord charger les variables:
./revoke-full you
. Sinon, vous obtenez une erreur de base de données.Créez le certificat clients
you.key
et son certificat correspondantyou.crt
:Le
CommonName
devrait être unique. Laissez le mot de passe vide si vous utilisez KDE car il n'est pas encore pris en charge à partir de 10.10. Comme pour la génération de certificats de serveur, confirmez la signature du certificat et la validation des modifications.3. Configurez le service OpenVPN
Par défaut, OpenVPN s'exécute en tant que root lors de l'acceptation des connexions. Ce n'est pas une bonne idée si le service est accessible à partir du mal Internet.
Créez un utilisateur dédié pour OpenVPN, par exemple
openvpn
:Copiez les fichiers
server.key
,server.crt
,ca.crt
etdh1024.pem
(oudh2048.pem
si vous avez changé la taille de clé) à partir du répertoire des clés dans/etc/openvpn
. Une autorisation de 400 (lecture seule pour le propriétaire) est très bien.Copiez également le fichier
ta.key
:Créez le fichier
/etc/openvpn/server.conf
et insérez-y les lignes suivantes:Définissez les autorisations appropriées, il n'a pas besoin d'être secret, mais je préfère ne pas divulguer les détails de configuration:
4. Fin du serveur
Si vous avez créé les certificats sur le serveur, c'est une bonne idée de le chiffrer ou de le déplacer hors du serveur. Dans tous les cas, ne perdez pas le
ca.key
etserver.key
. Dans le premier cas, d'autres pourront se connecter à votre serveur. Dans ce dernier, un MITM est possible.Client
Outre l'adresse IP du serveur, l'administrateur du serveur doit remettre les fichiers suivants:
ca.crt
: pour vérifier les certificatsserver.crt
: pour vérifier le serveur et communiquer avec luita.key
: pour durcir la sécuritéyou.crt
: s'identifier au serveuryou.key
: c'est comme votre mot de passe, les autorisations de fichiers devraient être 400 (lecture seule pour le propriétaire)1. Installation
Installez OpenVPN et le plugin NetworkManager (adapté à KDE et Gnome):
network-manager-openvpn
est dans le référentiel de l'univers.2. Configuration
Dans le panneau de configuration, utilisez les détails suivants:
ca.crt
you.crt
you.key
Chez Advanced :
Spécifiez le chemin d'accès au fichier clé
ta.key
et définissez "Direction clé" sur1
.Si vous ne parvenez pas à faire fonctionner NetworkManager ou si vous ne souhaitez pas l'utiliser, placez les fichiers (
ca.crt
, ...)/etc/openvpn
et créez le fichier/etc/openvpn/client.conf
fichier:Si vous ne souhaitez pas activer ce VPN au démarrage, modifiez
/etc/default/openvpn
et décommentez la ligne suivante en supprimant#
:Pour démarrer cette connexion, exécutez:
client
doit être renommé si votre fichier de configuration n'est pas nomméclient.conf
. Exemple: si vous avez nommé votre fichier de configurationsafe.conf
, vous devez exécutersudo /etc/init.d/openvpn start safe
.Pour arrêter OpenVPN, vous devez exécuter:
la source
man openvpn
). Les versions récentes d'openvpn ont la possibilité d'incorporer des certificats et des fichiers de clés, il est donc peut-être encore plus facile de fournir ce fichier de configuration unique avec des instructions à l'utilisateur.. vars
commande ci-dessus peut générer une erreur indiquant que «le fichier openssl.cnf a pu être trouvé. D'autres invocations échoueront». Vous devezsudo -s; cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/; ln -s openssl-1.0.0.cnf openssl.cnf
, puis exécutez. vars
et les autres commandes.whichopenssl
localise leopenssl-1.0.0.cnf
fichier correctement pour moi (easy-rsa 2.3.2, OpenSSL 1.0.1e)Vous n'avez en fait pas besoin de jouer avec des applications. Cela fonctionne "tout comme le VPN".
Installez d'abord le
tsocks
paquet (chaussettes temporaires):Puis éditez
/etc/tsocks.conf
et entrezMaintenant, ouvrez un terminal et tapez (cela vous connecte):
Exécuter (via un autre terminal ou ALT-F2):
Désormais, Firefox transmet toutes les communications au serveur SOCKS de votre ordinateur créé par SSH. Cela est ensuite acheminé par tunnel vers votre machine domestique, où il va sur le Web. Tout ce dont vous avez besoin sur votre ordinateur personnel est un serveur SSH. Après la première fois, répétez simplement les étapes 3 et 4.
Il fonctionne comme un charme! Hélas, le chrome n'aime pas les tsocks, mais bon, Firefox fonctionne.
la source
La solution de tunnel SSH est plus simple que vous ne le pensez. Un programme comme gSTM démarrera / arrêtera les tunnels pour vous avec une interface graphique. Ensuite, ouvrez simplement Network Proxy et changez-le de Connexion Internet directe à Configuration manuelle de proxy, appuyez sur "Appliquer à l'échelle du système" et toutes vos applications devraient envoyer leurs données dans le tunnel - pas besoin de tripoter chacune individuellement.
la source