Edit: corrigé à l’époque lorsque le correctif a été déployé avec la configuration add VPN. N'utilisez plus Linux/Ubuntu maintenant.
J'ai installé le gestionnaire de réseau OpenVPN en faisant: Sudo apt-get install network-manager-openvpn
, qui installe également le paquet gnome.
Cela permettait d'importer des configurations sous 13.10, mais lors de ma nouvelle installation, je peux pointer sur les fichiers .conf
, mais après avoir cliqué sur importer, le gestionnaire disparaît tout simplement et aucune connexion n'est ajoutée.
J'ai essayé de le configurer manuellement, ce qui a bien fonctionné, mais ma connexion a été interrompue au bout d'un moment, car je n'avais pas défini manuellement tous les détails de la configuration très détaillée.
Pour vous connecter via le terminal, procédez comme suit: Sudo openvpn --config /path/to/openvpn.conf
m'a demandé un nom d'utilisateur, puis un mot de passe, mais ne se connecte pas.
Que puis-je faire pour résoudre ce problème? J'ai vraiment besoin de mon VPN, toute aide est grandement appréciée.
Edit: C'est un bug/1294899
Pour la file d'attente de réouverture: Quelqu'un a une très bonne solution de contournement et il a utilisé une modification pour l'insérer, mais cela en vaut la peine sa propre réponse: voter pour rouvrir ...
Vous avez raison, c'est un bug du gestionnaire de réseau. Mais moi (et vous aussi) pouvons le contourner en exécutant openvpn à partir de la ligne de commande. Vous avez probablement déjà fait au moins quelques-unes de ces étapes, mais au cas où (et pour le bénéfice des autres), je ferais une étape à la fois complète.
Installez d'abord les paquets requis
Sudo apt-get install network-manager network-manager-openvpn network-manager-openvpn-gnome
Créer des fichiers Ces fichiers doivent être gardés en sécurité et confidentiels à tout moment
<ca>
et </ca>
de client.ovpn dans ce fichier.<cert>
et </cert>
de client.ovpn dans ce fichier.<key>
et </key>
à partir de client.ovpn dans ce fichier.<tls-auth>
et </tls-auth>
à partir de client.ovpn. À ce stade, j'ai un total de 6 fichiers dans mon répertoire openvpn (y compris le fichier de sauvegarde).5-9 Je viens juste de comprendre comment utiliser le script bash. Whoop Copiez le texte suivant dans un fichier texte:
#!/bin/bash
sed '1,/<ca>/d;/<\/ca>/,$d' client.ovpn > ca.crt
sed '1,/<cert>/d;/<\/cert>/,$d' client.ovpn > client.crt
sed '1,/<key>/d;/<\/key>/,$d' client.ovpn > client.key
sed '1,/<tls-auth>/d;/<\/tls-auth>/,$d' client.ovpn > ta.key
J'ai enregistré le fichier en tant que openvpnconvert dans le dossier openvpn avec le fichier client.ovpn. Le rend exécutable avec la commande chmod a + x:
chmod a+x openvpnconvert
Et puis l'a couru:
./openvpnconvert
Modifiez le fichier client.ovpn
Juste avant la ligne ## —–BEGIN RSA SIGNATURE—–, ajoutez les lignes ci-dessous et enregistrez
ca ca.crt
cert client.crt
key client.key
tls-auth ta.key
Enfin, vous devez exécuter openvpn à partir de l'interface de ligne de commande (CLI).
cd dans le dossier openvpn
cd openvpn
Exécutez openvpn, si vous utilisez les noms de fichiers que j'ai spécifiés, voir ci-dessous, sinon utilisez vos noms de fichiers.
Sudo openvpn --client --config ~/openvpn/client.ovpn --ca ~/openvpn/ca.crt
J'utilise actuellement OpenVPN, que j'ai configuré en suivant exactement ces étapes. J'espère que cela fonctionne aussi bien pour les autres.
Sources:
Création de fichiers - http://naveensnayak.wordpress.com/2013/03/04/ubuntu-openvpn-with-ovpn-file/
Exécution de la ligne de commande - http://ubuntuforums.org/showthread.php?t=2206811
Je pensais que l’option manquait à, mais elle a juste déménagé. Choisissez d'abord ajouter une connexion, puis au lieu de choisir OpenVPN (comme je le faisais), faites défiler vers le bas et choisissez la dernière option "importer un vpn enregistré ..."
trouvé la réponse ici - http://torguard.net/knowledgebase.php?action=displayarticle&id=5
Je n'ai jamais essayé d'importer ces données de connexion, mais j'ai utilisé les éléments suivants à différentes occasions:
placez le whatever.conf
avec le fichier .crt
et les informations d'identification dans /etc/openvpn
et démarrez/arrêtez la connexion VPN avec Sudo service openvpn whatever start|stop
créer la connexion VPN via NetworkManager en saisissant les données de connexion manuellement. Le fichier de configuration pour la connexion sera placé à /etc/NetworkManager/system-connections
et pourra être édité ultérieurement.
Script d'extraction:
En réponse à la réponse utile de Tamsyn Michael, j'ai créé un petit programme pour automatiser la tâche d'extraction. Il génère les fichiers appropriés nécessaires à openvpn, puis ajoute ces noms de fichier au fichier de paramètres d'origine.
//woahguy@askubuntu
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int i = 0;
string buffer, filename, ca, cert, key, auth;
struct _tags { const char* first; const char* last; };
const char* files[] = { "ca.crt", "client.crt", "client.key", "ta.key" };
_tags tags[] = {
{ "<ca>", "</ca>" },
{ "<cert>", "</cert>" },
{ "<key>", "</key>" },
{ "<tls-auth>", "</tls-auth>" }
};
string string_between( string str, const string& from, const string& to ) {
size_t first = str.find(from);
size_t last = str.find(to);
return( str.substr ( first+from.size(),last-first-to.size()));
}
int read_file_to_buffer( string filename )
{
char line[12];
FILE* pFile = fopen( filename.c_str(), "r" );
if( pFile != NULL ) {
while( fgets( line, sizeof( line ), pFile ) ) {
buffer.append( line );
}
} else {
return 1;
}
return 0;
}
int write_buffer_to_file( string buffer, string filename )
{
FILE* pFile = fopen( filename.c_str(), "w" );
if( pFile != NULL ) {
fwrite (buffer.c_str(), sizeof(char), buffer.size(), pFile);
fclose(pFile);
} else {
return 1;
}
return 0;
}
int append_found_tags_to_main( int type )
{
FILE* pFile = fopen( filename.c_str(), "a+" );
if( pFile != NULL ) {
if( type == 1 ) {
fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\n",
files[0], files[1], files[2] );
} else {
fprintf( pFile, "\nca %s\r\ncert %s\r\nkey %s\r\ntls-auth %s\r\n",
files[0], files[1], files[2], files[3] );
}
fclose(pFile);
}
return 0;
}
int extract_tags( )
{
while (buffer.find(tags[i].first) != std::string::npos ) {
if( i == 0 ) {
ca = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 1 ) {
cert = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 2 ) {
key = string_between( buffer, tags[i].first, tags[i].last);
} else if( i == 3 ) {
auth = string_between( buffer, tags[i].first, tags[i].last);
} else {
return 1;
}
i++;
}
return 0;
}
int write_tags( )
{
if( !ca.empty() && !cert.empty() && !key.empty() ) {
write_buffer_to_file( ca, files[0] );
write_buffer_to_file( cert, files[1] );
write_buffer_to_file( key, files[2] );
if( !auth.empty() ) {
write_buffer_to_file( auth, files[3] );
append_found_tags_to_main( 0 );
} else {
append_found_tags_to_main( 1 );
return 1;
}
} else {
return 2;
}
}
int main(int argc, char* argv[])
{
if( argv[1] == NULL ) {
printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
return 1;
} else {
if( argv[2] != NULL && argv[3] != NULL && argv[4] != NULL && argv[5] != NULL) {
files[0] = argv[2];
files[1] = argv[3];
files[2] = argv[4];
files[2] = argv[5];
}
filename = argv[1];
}
read_file_to_buffer( argv[1] );
if( buffer.empty()){
printf("certgrabber<: You need to specify a valid filename to extract from.\r\n");
return 2;
}
if( extract_tags() == 0 ) {
int result = write_tags();
if( result == 0 ) {
printf("certgrabber<: All certificates and keys successfully extracted.\r\n");
} else if( result == 1 ) {
printf("certgrabber<: Unable to find a TLS auth key, but this isn't exactly an error.\r\n");
} else if( result == 2 ) {
printf("certgrabber<: Something went totally wrong with the certificate files.\r\n");
}
} else {
printf("certgrabber<: Something went wrong while extracting the tags.\r\n");
return 3;
}
return 0;
}
Compilation et bâtiment:
Vous devrez installer g ++ pour construire ce
Sudo apt-get install g++
Puis du terminal
g++ -c main.cpp -o main.o \ g++ -o certgrabber main.o
Vous aurez maintenant le programme 'certgrabber' dans le dossier.
tilisation du programme:
Extraire les noms de fichiers par défaut (ca.crt, client.crt, client.key, tls-auth.key)
./certgrabber settings.ovpn
Extraire des noms de fichiers personnalisés
./certgrabber settings.ovpn ca-1.crt client-1.crt client-1.key tls-1.key
Le problème avec ADDING un VPN à partir d'un fichier .ovpn enregistré échoue toujours.
Il est possible d’en ajouter un manuellement.
Entrez le PORT (dans le fichier .ovpn, généralement en bas après l'adresse IP dans la position "XX":
à distance ###. ###. ##. ## XX
Si votre VPN est TCP, cochez la case "Utiliser une connexion TCP"
À ce stade, la connexion VPN doit être répertoriée dans le NM AppIndicator en tant qu'option. Sélectionnez et testez votre connexion. J'ai pu ajouter un type de connexion TCP et UDP, mais il en a fallu beaucoup plus que si le fichier enregistré .ovpn importé fonctionnait correctement.
Espérons qu'ils régleront cela rapidement afin que je puisse facilement ajouter une autre connexion ... mais au moins c'est un moyen de contourner le problème qui devrait aider les personnes frustrées comme moi.
J'ai créé un script ici pour automatiser la récupération du mot de passe et des fichiers Zip de plusieurs sites vpn tels que vpnbook.com , en extrayant les noms ca
, cert
et key
, à partir des fichiers ovpn. et mettre à jour les fichiers opvn pour que les certificats soient importés pour vous. Il pourrait facilement être modifié pour une utilisation avec d'autres fournisseurs.