Hide.Me CLI es un cliente VPN para su uso con Eventure Ltd. Hide.Me VPN Service basado en el protocolo WireGuard. Las características del cliente incluyen:
HACER:
Puede clonar este repositorio y ejecutar:
go build -o hide.me
Alternativamente, descargue la última compilación de la sección de versiones.
El árbol de origen y las versiones binarias contienen scripts de instalación y desinstalación simples. Hide.me cli se instala en /opt/hide.me directorio. Además de copiar archivos hide.me a /opt/hide.me no se realizan modificaciones al sistema.
Cuando se detecta la distribución basada en Systemd, el instalador enlaza un archivo de unidad de plantilla que puede usarse para instanciar conexiones.
Puede construir el paquete utilizando el PKGBuild proporcionado en Packaging/Archlinux/(requiere git clone --recurse-submodules ) o desde https://aur.archlinux.org/packages/hide-client/
Para construir:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
Tenga en cuenta que el paquete Archlinux cambia las ubicaciones predeterminadas de los archivos instalados a /usr/bin/hide.me para el binario, /etc/hide.me/accessToken.txt para el accesstoken, /usr/share/hide.me/CA.pem para el certificado y /usr/lib/systemd/system/hide.me@service para la unidad Systemd.
WireGuard es una de las soluciones de túnel VPN más seguras y simples de la industria. Es fácil configurar y usar siempre que no se requiera un intercambio de claves públicos de WireGuard sobre un medio inseguro (como Internet). Cualquier tipo de intercambio de claves públicas de WireGuard está fuera del alcance de la especificación de WireGuard.
La complicada tarea del intercambio de claves públicos y la negociación de clave secreta sobre un medio inseguro, generalmente, se maneja por:
hide.me implementación de wireguard aprovecha https (tls) para el intercambio de:
La autenticación para todas las operaciones requiere el uso de un token de acceso. Un token de acceso es solo una mancha binaria que está criptográficamente atada a una cuenta oculta.
Conexión a un servidor Hide.Me VPN se establece en estos pasos:
En contraste con muchas otras soluciones, Hide.Me CLI no utiliza ningún tipo de tecnología de firewalling de Linux (iptables, NFTables o EBPF). En lugar de confiar en los marcos de filtrado de IP de Linux'es, oculte. CLI enruta selectivamente el tráfico configurando una tabla de enrutamiento especial y un conjunto de reglas de la base de datos de políticas de enrutamiento. Las rutas de agujas negras en la tabla de enrutamiento mencionada mencionan todo el tráfico a menos que cumpla con una de las siguientes condiciones:
Este modo de operación hace posible que los usuarios establezcan sus propias políticas de firewalling con las cuales Hide.Me CLI no interferirá.
Las instrucciones de uso se pueden imprimir ejecutando Hide.Me CLI sin ningún parámetro.
Usage:
./hide.me [options...] <command> [host]
...
Hide.Me CLI La interfaz de usuario es bastante simple. Solo hay tres comandos 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
Para conectarse a un servidor VPN, se debe solicitar un acceso de acceso desde un servidor VPN. El comando token emite una solicitud de acceso de acceso. Se puede utilizar un acceso de acceso emitido por cualquier servidor, para fines de autenticación, con cualquier otro servidor Hide.Me VPN. Cuando un servidor emite un token de acceso que debe almacenarse en un archivo. El nombre de archivo predeterminado para un token de acceso es "AccessToken.txt".
Una vez que un token de acceso está en su lugar, puede usarse para solicitudes de conexión . Los tokens de acceso obsoleto se actualizan automáticamente.
Hide.Me CLI no necesariamente tiene que ser invocado con un montón de parámetros de línea de comandos. En su lugar, se puede usar un archivo de configuración formateado YAML para especificar todas las opciones. Para generar dicho archivo de configuración, se puede utilizar el comando conf .
A los efectos del filtrado DNS (SmartGugard), se puede obtener una lista de categorías de filtrado con el comando de categorías
hide.me cli se puede ejecutar en modo de servicio . Cuando se inicia en modo de servicio, Hide.Me CLI simplemente expone una interfaz de descanso para el control. El controlador es responsable de configurar conexiones, activación del interruptor Kill o cualquier otra operación. La dirección de escuchar la interfaz REST es configurable a través de la opción -CADDR.
Tenga en cuenta que hay algunas opciones que son configurables solo a través del archivo de configuración. Tales opciones son:
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
El nombre de host de un punto final Hide.Me REST puede especificarse como un nombre de dominio totalmente calificado (nl.hide.me), nombre corto (NL) o una dirección IP. No hay garantía de que el punto final REST coincida con un punto de finalización de WireGuard.
-4 Use IPv4 tunneling only
Limite todas las operaciones del protocolo IP a IPv4. A pesar de que el servidor proporcionará IPv4 e IPv6 que solo se dirigen a las direcciones IPv4, las reglas IPv4 y las rutas IPv4 se instalan. Protección de fugas/Kill-Switch funciona solo para el tráfico IPv4. El flujo de tráfico IPv6 permanece sin garantía.
Advertencia : esta opción degrada la seguridad y debe usarse solo cuando sea seguro hacerlo, por ejemplo, cuando la máquina del cliente tiene su pila IPv6 deshabilitada. Por favor, no lo use de otra manera porque las filtraciones IPv6 pueden ocurrir.
-6 Use IPv6 tunneling only
Limite todas las operaciones del protocolo IP a IPv6. A pesar de que el servidor proporcionará IPv4 e IPv6 direccionando solo las direcciones IPv6, las reglas IPv6 y las rutas IPv6 se instalan. Protección de fugas/Kill-Switch funciona solo para el tráfico IPv6. El flujo de tráfico IPv4 permanece sin garantía.
Advertencia : esta opción degrada la seguridad y no debe usarse a menos que el cliente desee túnel solo el tráfico IPv6.
-b filename
resolv.conf backup filename (default "")
Hide.me cli mantiene una copia de seguridad de /etc/resolv.conf en la memoria. Además de esa copia de seguridad, Hide.Me CLI puede hacer una copia de seguridad /etc/resolv.conf a un archivo especificado por esta opción.
-c filename
Configuration filename
Use un archivo de configuración llamado "nombre de archivo".
-ca string
CA certificate bundle (default "CA.pem")
Durante la negociación TLS, el certificado del servidor VPN debe ser verificado. Esta opción permite especificar un archivo de paquete de certificado CA alternativo.
-caddr address
Control interface listen address (default "@hide.me")
Establezca la dirección de escuchar la interfaz de control del modo de servicio. Hide.me CLI, de forma predeterminada, escucha en un SCOKE UNIX abstracto Hide.me
-ccert certificate
Control interface certificate file
Establezca el certificado de interfaz de control del modo de servicio X509 en formato PEM
-ckey key
Control interface key file
Establezca la clave privada de la interfaz de control del modo de servicio en formato 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")
De manera predeterminada, Hide.Me CLI usa servidores DNS operados Hide.Me para resolver los nombres de los servidores VPN al solicitar un token o durante las solicitudes de conexión. El conjunto de servidores DNS utilizados para estos fines puede personalizarse con esta opción.
-dpd duration
DPD timeout (default 1m0s)
Para detectar si una conexión se ha estancado, generalmente debido a problemas de red, escondite. CLI verifica periódicamente el estado de conexión. El período de verificación se puede cambiar con esta opción, pero no puede ser más alto de un minuto.
-i interface
network interface name (default "vpn")
Use esta opción para especificar el nombre de la interfaz de red para crear o usar.
-l port
listen port
Especifique un puerto de escucha para el tráfico cifrado de WireGuard.
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
Establezca la marca de firewall, el módulo de núcleo de suguardia de cable marcará sus paquetes.
-p port
remote port (default 432)
El puerto de punto final de descanso remoto se puede cambiar con esta opción.
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
El puerto dinámico que se extiende, por defecto, está deshabilitado. Use esta opción para activarlo para un intento de conexión particular. Alternativamente, el puerto-forparding puede habilitarse agregando un sufijo @PF al nombre de usuario al solicitar un token. Tales tokens activan el puerto delantero en cada intento de conexión, y no debe usar esta opción al usarlos.
-r table
routing table to use (default 55555)
Establezca la tabla de enrutamiento para usar para el mecanismo general de protección de tráfico y fugas.
-R priority
RPDB rule priority (default 10)
Establezca la prioridad de las reglas RPDB instaladas. Hide.Me CLI aprovecha el enrutamiento de políticas al instalar una regla RPDB (una por protocolo IP) para llevar el tráfico a una tabla de enrutamiento elegida y garantizar la protección contra las fugas de IP.
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
Lista de redes con túneles divididos, es decir, las redes para las cuales el tráfico no debe ser túnelado a través de la VPN.
-t string
access token filename (default "accessToken.txt")
Nombre del archivo que contiene un acceso de acceso.
-u username
hide.me username
Establezca Hide.me Nombre de usuario.
Hide.Me CLI admite el filtrado basado en DNS (SmartGuard). Las siguientes opciones controlan el filtrado DNS:
-forceDns
force tunneled DNS handling on hide.me servers
Active la redirección de DNS en un servidor VPN Hide.Me de modo que cada solicitud de DNS UDP o TCP sea manejada por ese servidor Hide.Me VPN
-whitelist dns names
comma separated list of allowed dns names
Sufijos DNS que omitirán cualquier motor de filtrado (comodines aceptados)
-blacklist dns names
comma separated list of filtered dns names
Nombres de DNS que se filtrarán
-noAds
filter ads
Activa el filtrado de anuncios basado en SmartGuard
-noCategories categories
comma separated list of filtered content categories
Activa el filtrado SmartGuard de grano fino. Obtener lista de categorías con el comando de categorías
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
Activa el filtrado de nivel grueso de contenido ilegal, wáz, spyware y material con derechos de autor
-noMalicious
filter malicious destinations
Activa el filtrado de hosts maliciosos, sitios web o dominios
-noMalware
filter malware
Activa un filtro de malware. Cualquier malware de alojamiento o distribución de sitios debe filtrarse
-noRisk level
filter content according to risk level (possible, medium, high)
Activa un filtro de riesgo
-noTrackers
filter trackers
Activa un filtro de seguimiento
-pg age
apply a parental guidance style age filter (12, 18)
Activa un filtro de estilo de guía de los padres de acuerdo con el límite de edad dado. El contenido inapropiado se filtrará
-safeSearch
force safe search with search engines
Haga cumplir el modo SafeSearch con motores de búsqueda compatibles (Google, Bing)
Hide.Me CLI se puede usar independiente o como un servicio Systemd. El uso de Hide.Me CLI como servicio Systemd le permite aprovechar la resolución de dependencia de Systemd, el monitoreo y varias características de endurecimiento.
El script de instalación vincula un archivo de unidad de plantilla [email protected] para usted o puede vincular manualmente el archivo de la unidad de plantilla ejecutando:
SystemCtl Enlace hide.me@service
Para administrar conexiones se pueden usar los siguientes comandos:
| Operación | Dominio |
|---|---|
| Crear una conexión | SystemCTL habilitar hide.me@server |
| Iniciar una conexión | SystemCtl iniciar hide.me@server |
| Detener una conexión | Systemctl Stop Hide.me@server |
| Eliminar una conexión | SystemCtl Disable hide.me@server |
El servidor es un nombre de servidor, nombre de grupo o una dirección IP.
Opciones adicionales de línea de comandos para el comando hide.me connect ejecutado por el servicio SystemD se pueden colocar en la variable de configuración OPTIONS= en /opt/hide.me/config .
El inicio del servicio se considera exitoso cuando una conexión a Hide.Me Server se establece por completo.
Hide.Me CLI es la mejor opción para las PC de escritorio, pero puede ser inapropiada para enrutadores o dispositivos integrados. Para esos pequeños dispositivos desarrollamos un conjunto de scripts de cenizas (en los scripts/ directorio):
En el encabezado de cada script encontrará ejemplos de uso.
La funcionalidad de esos scripts es básica, es decir, lo conectarán/desconectarán, pero no monitorearán su conexión. Un conjunto de características tan limitado puede ser suficiente para usar Hide.me con enrutadores que tienen sus propias técnicas de monitoreo y falla.
Cada script se ha verificado en enrutadores basados en OpenWRT con el último firmware estable (19.07.7) y soporte de control de cable. Los requisitos previos, que deben estar instalados por OPKG, son:
Si desea contribuir a este proyecto, lea la guía de contribución.