Je dois vérifier qu'un serveur OpenVPN (UDP) est opérationnel et accessible sur un hôte donné: port.
Je n'ai qu'un ordinateur Windows XP standard sans client OpenVPN (et aucune chance de l'installer) et aucune clé n'est nécessaire pour se connecter au serveur. Seuls des outils de ligne de commande WinXP courants, un navigateur et PuTTY sont à ma disposition.
Si je testais quelque chose comme un serveur SMTP ou POP3, j'utiliserais telnet pour voir s'il répond, mais comment faire cela avec OpenVPN (UDP)?
tls-auth
option de configuration (recommandée) , il est alors IMPOSSIBLE (Si vous n'avez pas au moins la clé enveloppe extérieure)! Tout paquet avec une signature HMAC incorrecte sera supprimé sans réponse du serveur.Réponses:
Voici un shell one-liner:
s'il y a un openvpn à l'autre bout la sortie sera
sinon, le son sera muet et expirera au bout de 10 secondes ou affichera quelque chose de différent.
REMARQUE: cela ne fonctionne que si l'
tls-auth
option de configuration n'est pas active, sinon le serveur rejette les messages avec HMAC incorrect.la source
tls-auth
option config pour supprimer les paquets contenant un signal HMAC incorrect.od -x -N 14
plutôt que ce quicat -v
est beaucoup plus utile car vous pouvez a) voir le contenu binaire actuel plutôt que les ordures ASCII et b) recevoir instantanément chaque ligne de sortie lorsque le serveur envoie chaque paquet de négociation et l'arrête immédiatement après la première.-N 14
parce que le paquet de négociation a une longueur de 14 octets et se répète.Désolé si je suis un peu en retard avec ma réponse;)
Envoyez un paquet UDP avec le contenu suivant:
$ 38 $ 01 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $ 00 $
Le serveur doit répondre à quelque chose.
Vous pouvez forger des paquets UDP avec Python comme ceci:
la source
tls-auth
.Vous pouvez essayer de lancer ce qui suit sur la CLI
Cela devrait lister tous les processus en cours d'écoute sur votre serveur / système. Grep pour le numéro de port que vous voulez
la source
Pour tous ceux qui essaient de contrôler un serveur
tls-auth
activé, vous pouvez utiliser le script python ici: https://github.com/liquidat/nagios-icinga- openvpnLa sortie est formatée pour être utilisée dans Nagios ou Icinga, mais elle peut être exécutée par tout le monde, à condition que vous ayez le fichier python et le fichier de clés tls disponible.
Par exemple, si vous utilisez
SHA256
comme résumé, vous utiliseriez quelque chose comme:python check-openvpn.py -p 1194 --tls-auth ta.key --digest SHA256 vpn-server.example.com
Remarque: vous devrez peut-être ajouter en
--tls-auth-inverse
fonction de lakey-direction
valeur du serveur .la source
Si vous pouvez obtenir un pcap d'interaction valide entre un client OpenVPN et un serveur OpenVPN, vous pouvez modéliser le jeu initial de paquets avec quelque chose comme netcat, comme suggéré par TiZon.
Fondamentalement, vous voulez avoir suffisamment d’un premier paquet valide pour que le serveur réponde avec au moins un message d’erreur, afin qu’il ne soit pas nécessairement parfait, mais suffisant.
J'ai essayé d'aller sur http://pcapr.net , mais je n'ai pas vu d'exemple OpenVPN. Peut-être que si quelqu'un prétend que le service est en service, vous pourriez le faire saisir par un tiers de la transaction.
la source
si vous avez installé OpenVPN sur un TCP écouter alors c'est aussi simple que
en supposant que 1194 est le port sur lequel vous l'écoutez
cela devrait vous donner une réponse pour montrer que le serveur openvpn est à l'écoute
la source