Hide.me CLI est un client VPN à utiliser avec Eventture Ltd. Hide.me VPN Service basé sur le protocole Wireguard. Les fonctionnalités du client comprennent:
FAIRE:
Vous pouvez cloner ce référentiel et exécuter:
go build -o hide.me
Alternativement, téléchargez la dernière version de la section des versions.
L'arbre source et les versions binaires contiennent des scripts d'installation et de désinstallation simples. Hide.me CLI est installé dans /opt/hide.me. Outre la copie des fichiers hide.me à /opt/hide.me, aucune modification du système n'est effectuée.
Lorsque la distribution basée sur SystemD est détectée, l'installateur lie un fichier unitaire de modèle qui peut être utilisé pour instancier des connexions.
Vous pouvez créer le package à l'aide du pkgbuild fourni dans Packaging / Archlinux / (nécessite git clone --recurse-submodules ) ou à partir de https://aur.archlinux.org/packages/hide-cient/
Pour construire:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
Notez que le package Archlinux modifie les emplacements par défaut des fichiers installés sur /usr/bin/hide.me pour le binaire, /etc/hide.me/accessToken.txt pour l'accèstoken, /usr/share/hide.me/CA.pem pour le certificat et /usr/lib/systemd/system/hide.me@service pour l'unité Systemd.
Wireguard est l'une des solutions de tunneling VPN les plus sécurisées et les plus simples de l'industrie. Il est facile à configurer et à utiliser tant qu'aucun échange de clés publics WireGuard sur un support non sécurisé (comme Internet) n'est requis. Toute sorte d'échange de clés publiques de Wireguard est hors de portée de la spécification Wireguard.
La tâche compliquée de l'échange de clés publiques et de la négociation de clés secrètes sur un support précaire est, généralement, d'être géré par:
Mide.Me Implémentation de WireGuard Tivetages HTTPS (TLS) pour l'échange de:
L'authentification pour toutes les opérations nécessite l'utilisation d'un accès. Un accès-token est un juste un blob binaire qui est cryptographiquement lié à un compte Hide.me.
Connexion à un serveur VPN Hide.me est établi dans ces étapes:
Contrairement à de nombreuses autres solutions, Hide.me CLI n'utilise aucune sorte de technologie de pare-feu Linux (iptables, nftables ou EBPF). Au lieu de s'appuyer sur les cadres de filtrage IP Linux'es, Hide.me CLI achemine sélectivement le trafic en configurant une table de routage spéciale et un ensemble de règles de base de données de stratégie de routage. Les routes Blackhole dans la table de routage susmentionnée baissent tout le trafic à moins qu'il ne rencontre l'une des conditions suivantes:
Ce mode de fonctionnement permet aux utilisateurs d'établir leurs propres politiques de pare-feu avec lesquelles Hide.me CLI n'interviendra pas.
Les instructions d'utilisation peuvent être imprimées en exécutant Hide.me CLI sans aucun paramètre.
Usage:
./hide.me [options...] <command> [host]
...
L'interface utilisateur Hide.me CLI est assez simple. Il n'y a que trois commandes disponibles:
command:
token - request an Access-Token (required for connect)
connect - connect to a vpn server
conf - generate a configuration file to be used with the -c option
categories - fetch and dump filtering category list
service - run in remotely controlled service mode
Afin de se connecter à un serveur VPN, un accès doit être demandé à un serveur VPN. Une demande d'accès-token est émise par la commande de jeton . Un accès émis par n'importe quel serveur peut être utilisé, à des fins d'authentification, avec tout autre serveur VPN Hide.me. Lorsqu'un serveur émet un accès, ce jeton doit être stocké dans un fichier. Le nom de fichier par défaut pour un accès-token est "AccessToken.txt".
Une fois qu'un accès est en place, il peut être utilisé pour les demandes de connexion . Les jetons d'accès périmés sont mis à jour automatiquement.
Hide.me CLI ne doit pas nécessairement être invoqué avec un tas de paramètres de ligne de commande. Au lieu de cela, un fichier de configuration formaté YAML peut être utilisé pour spécifier toutes les options. Pour générer un tel fichier de configuration, la commande Conf peut être utilisée.
Aux fins du filtrage DNS (SmartGuard), une liste de catégories de filtrage peut être obtenue avec les catégories Commandement
Hide.me CLI peut être exécuté en mode service . Lorsque démarré en mode service, Hide.me CLI expose simplement une interface de repos pour le contrôle. Le contrôleur est responsable de la configuration des connexions, de l'activation du commutateur de kill ou de toute autre opération. L'adresse d'écoute de l'interface de repos est configurable via l'option -CADDR.
Notez qu'il existe quelques options qui ne sont configurables que via le fichier de configuration. De telles options sont:
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
Le nom d'hôte d'un point de terminaison Hide.me Rest peut être spécifié comme un nom de domaine entièrement qualifié (nl.hide.me), un nom court (NL) ou une adresse IP. Il n'y a aucune garantie que le point de terminaison de reste correspondra à un point de terminaison Wireguard.
-4 Use IPv4 tunneling only
Limitez toutes les opérations du protocole IP à IPv4. Même si le serveur fournira des adresses IPv4 et IPv6 sur les adresses IPv4, les règles IPv4 et les routes IPv4 sont installées. La protection des fuites / le changement de kill fonctionne uniquement pour le trafic IPv4. Le flux de trafic IPv6 reste non garanti.
Avertissement : cette option dégrade la sécurité et ne doit être utilisée que lorsqu'il est sûr de le faire, par exemple lorsque la machine client a sa pile IPv6 désactivée. Veuillez ne pas l'utiliser autrement car les fuites IPv6 peuvent se produire.
-6 Use IPv6 tunneling only
Limitez toutes les opérations du protocole IP à IPv6. Même si le serveur fournira des adresses IPv4 et IPv6 sur les adresses IPv6, les règles IPv6 et les routes IPv6 sont installées. La protection des fuites / le changement de kill fonctionne uniquement pour le trafic IPv6. Le flux de trafic IPv4 reste non garanti.
Avertissement : cette option dégrade la sécurité et ne doit être utilisée que si le client souhaite tuer le trafic IPv6 uniquement.
-b filename
resolv.conf backup filename (default "")
Hide.me CLI conserve une sauvegarde de /etc/resolv.conf en mémoire. En plus de cette sauvegarde Hide.me CLI peut sauvegarder /etc/resolv.conf à un fichier spécifié par cette option.
-c filename
Configuration filename
Utilisez un fichier de configuration nommé "nom de fichier".
-ca string
CA certificate bundle (default "CA.pem")
Pendant la négociation TLS, le certificat du serveur VPN doit être vérifié. Cette option permet de spécifier un autre fichier de bundle de certificat CA.
-caddr address
Control interface listen address (default "@hide.me")
Définissez l'adresse d'écoute de l'interface de contrôle du mode de service. hide.me cli, par défaut, écoute sur une socket Unix abstraite hide.me
-ccert certificate
Control interface certificate file
Définir le certificat de l'interface de contrôle du mode de service x509 au format PEM
-ckey key
Control interface key file
Définissez la clé privée de l'interface de contrôle du mode de service au format PEM
-d DNS servers
comma separated list of DNS servers used for client requests (default "209.250.251.37:53,217.182.206.81:53")
Par défaut, Hide.me CLI utilise les serveurs DNS opérés Hide.ME pour résoudre les noms de serveur VPN lors de la demande d'un jeton ou pendant les demandes de connexion. L'ensemble des serveurs DNS utilisés à ces fins peut être personnalisé avec cette option.
-dpd duration
DPD timeout (default 1m0s)
Afin de détecter si une connexion est bloquée, généralement en raison de problèmes de réseautage, Hide.me CLI vérifie périodiquement l'état de connexion. La période de vérification peut être modifiée avec cette option, mais ne peut pas être supérieure à une minute.
-i interface
network interface name (default "vpn")
Utilisez cette option pour spécifier le nom de l'interface de mise en réseau pour créer ou utiliser.
-l port
listen port
Spécifiez un port d'écoute pour le trafic de fil de fil crypté.
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
Réglez le pare-feu Marquez le module du noyau Wire Gueral avec.
-p port
remote port (default 432)
Le port de point de terminaison à distance peut être modifié avec cette option.
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
Dynamic Port-Forwarding est, par défaut, désactivé. Utilisez cette option pour l'activer pour une tentative de connexion particulière. Alternativement, le port de port peut être activé en ajoutant un suffixe @pf au nom d'utilisateur lors de la demande d'un jeton. Ces jetons activent le port de port sur chaque tentative de connexion, et vous ne devez pas utiliser cette option lorsque vous les utilisez.
-r table
routing table to use (default 55555)
Définissez la table de routage à utiliser pour le trafic général et le mécanisme de protection des fuites.
-R priority
RPDB rule priority (default 10)
Définissez la priorité des règles RPDB installées. Hide.me CLI tire parti du routage des stratégies en installant une règle RPDB (un par protocole IP) afin de générer du trafic vers une table de routage choisie et d'assurer la protection des fuites IP.
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
Liste des réseaux divisés, c'est-à-dire les réseaux pour lesquels le trafic ne doit pas être tunnel sur le VPN.
-t string
access token filename (default "accessToken.txt")
Nom du fichier qui contient un accès.
-u username
hide.me username
Set hide.me nom d'utilisateur.
Hide.me CLI prend en charge le filtrage basé sur DNS (SmartGuard). Les options suivantes contrôlent le filtrage DNS:
-forceDns
force tunneled DNS handling on hide.me servers
Activez la redirection DNS sur un serveur VPN Hide.me de telle sorte que chaque demande DNS UDP ou TCP sera traitée par ce serveur VPN Hide.me
-whitelist dns names
comma separated list of allowed dns names
Suffixes DNS qui contourneront n'importe quel moteur de filtrage (les caractères génériques acceptés)
-blacklist dns names
comma separated list of filtered dns names
Noms DNS qui seront filtrés
-noAds
filter ads
Active le filtrage d'annonces basé sur SmartGuard
-noCategories categories
comma separated list of filtered content categories
Active le filtrage de SmartGuard à grains fins. Réserver la liste des catégories avec les catégories Commande
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
Active le filtrage de niveau grossier du contenu illégal, des entrepôts, des logiciels espions et du matériel protégé
-noMalicious
filter malicious destinations
Active le filtrage des hôtes, des sites Web ou des domaines malveillants
-noMalware
filter malware
Active un filtre de logiciel malveillant. Tout site d'hébergement ou de distribution de logiciels malveillants doit être filtré
-noRisk level
filter content according to risk level (possible, medium, high)
Active un filtre à risque
-noTrackers
filter trackers
Active un filtre de suivi
-pg age
apply a parental guidance style age filter (12, 18)
Active un filtre de style de guidage parental en fonction de la limite d'âge donnée. Un contenu inapproprié sera filtré
-safeSearch
force safe search with search engines
Applique le mode safesearch avec des moteurs de recherche pris en charge (Google, Bing)
Hide.me CLI peut être utilisé autonome ou comme service systemd. L'utilisation de Hide.me CLI en tant que service SystemD vous permet de profiter de la résolution de dépendance de SystemD, de la surveillance et de diverses fonctionnalités de durcissement.
Le script d'installation relie un fichier unitaire de modèle hide.me @ .service pour vous ou vous pouvez lier manuellement le fichier unitaire de modèle en exécutant:
lien systemctl hide.me@service
Pour gérer les connexions, les commandes suivantes peuvent être utilisées:
| Opération | Commande |
|---|---|
| Créer une connexion | systemctl activer hide.me@server |
| Démarrer une connexion | systemctl start hide.me@server |
| Arrêter une connexion | systemctl stop mashing.me@server |
| Supprimer une connexion | Systemctl Disable Hide.me@server |
Le serveur est un nom de serveur, un nom de groupe ou une adresse IP.
Des options de ligne de commande supplémentaires à la commande hide.me connect exécutée par le service systemd peuvent être placées dans la variable OPTIONS= Configuration dans /opt/hide.me/config .
Le démarrage du service est considéré comme un succès lorsqu'une connexion à masquer.me serveur est complètement établie.
Hide.me CLI est le meilleur choix pour les PC de bureau, mais peut être inapproprié pour les routeurs ou les appareils intégrés. Pour les petits appareils, nous avons développé un ensemble de scripts de cendres (dans les scripts / répertoire):
Dans l'en-tête de chaque script, vous trouverez des exemples d'utilisation.
La fonctionnalité de ces scripts est basique, c'est-à-dire qu'ils vous connectent / déconnectés, mais ne surveilleront pas votre connexion. Un ensemble de fonctionnalités aussi limité pourrait être juste suffisant pour utiliser Hide.me avec des routeurs qui ont leurs propres techniques de surveillance et de déchaînement.
Chaque script a été vérifié sur des routeurs basés sur OpenWRT avec le dernier firmware stable (19.07.7) et la prise en charge de Wireguard. Les conditions préalables, qui devraient être installées par OPKG, sont:
Si vous souhaitez contribuer à ce projet, veuillez lire le guide de contribution.