Hide.me CLI é um cliente VPN para uso com o serviço Eventure Ltd. Hide.me VPN com base no protocolo Wireguard. Os recursos do cliente incluem:
PENDÊNCIA:
Você pode clonar este repositório e executar:
go build -o hide.me
Como alternativa, faça o download da versão mais recente da seção de lançamentos.
As liberações de árvore de origem e binários contêm scripts simples de instalação e desinstalação. Hide.me CLI é instalado no diretório /opt/hide.me. Além de copiar arquivos HEDE.ME para /opt/hide.me, não há modificações no sistema.
Quando a distribuição baseada no SystemD é detectada, o instalador vincula um arquivo de unidade de modelo que pode ser usado para instanciar conexões.
Você pode construir o pacote usando o pkgbuild fornecido em embalagens/archlinux/(requer git clone --recurse-submodules ) ou em https://aur.archlinex.org/packages/hide-client/
Para construir:
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
Observe que o pacote Archlinux altera os locais padrão dos arquivos instalados para /usr/bin/hide.me para o binário, /etc/hide.me/accessToken.txt para o accessToken, /usr/share/hide.me/CA.pem para o certificado e /usr/lib/systemd/system/hide.me@service para a unidade Systemd.
O Wireguard é uma das soluções de tunelamento VPN mais seguras e mais seguras do setor. É fácil configurar e usar, desde que não seja necessária troca de teclas públicas de Wireguard em um meio inseguro (como a Internet). Qualquer tipo de troca de chave pública de Wireguard está fora do escopo da especificação Wireguard.
A tarefa complicada de troca de chave pública e a negociação -chave secreta sobre um meio inseguro é, geralmente, sendo tratado por:
A implementação Hide.me de Wireguard aproveita HTTPS (TLS) para a troca de:
A autenticação para todas as operações requer o uso de um TOKen de acesso. Um token de acesso é apenas uma bolha binária que está criptograficamente ligada a uma conta Hide.me.
A conexão com um servidor VPN Hide.me é estabelecido nessas etapas:
Em contraste com muitas outras soluções, o HEDE.ME CLI não usa nenhum tipo de tecnologia de firewalling linux (iptables, nftables ou EBPF). Em vez de confiar nas estruturas de filtragem IP Linux'es, o HEDE.ME CLI rotula seletivamente o tráfego, configurando uma tabela de roteamento especial e um conjunto de regras de banco de dados de política de roteamento. As rotas Blackhole na tabela de roteamento acima mencionadas soltam todo o tráfego, a menos que atenda a uma das seguintes condições:
Esse modo de operação possibilita que os usuários estabeleçam suas próprias políticas de firewall com as quais o Hide.me CLI não interferirá.
As instruções de uso podem ser impressas executando Hide.me CLI sem parâmetros.
Usage:
./hide.me [options...] <command> [host]
...
A interface de usuário Hide.me CLI é bastante simples. Existem apenas três comandos disponíveis:
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 se conectar a um servidor VPN, um token de acesso deve ser solicitado de um servidor VPN. Uma solicitação de TOKKN é emitida pelo comando token . Um token de acesso emitido por qualquer servidor pode ser usado, para fins de autenticação, com qualquer outro servidor VPN Hide.Me. Quando um servidor emite um token de acesso que o token deve ser armazenado em um arquivo. O nome do arquivo padrão para um TOKen de acesso é "AccessToken.txt".
Depois que um token de acesso está em vigor, ele pode ser usado para solicitações de conexão . Tokens de acesso obsoleto são atualizados automaticamente.
Hide.me CLI não precisa necessariamente ser invocado com vários parâmetros da linha de comando. Em vez disso, um arquivo de configuração formatado YAML pode ser usado para especificar todas as opções. Para gerar esse arquivo de configuração, o comando conf pode ser usado.
Para os fins da filtragem DNS (SmartGuard), uma lista de categorias de filtragem pode ser obtida com o comando de categorias
hide.me CLI pode ser executado no modo de serviço . Quando iniciado no modo de serviço, Hide.me CLI apenas expõe uma interface de repouso para controle. O controlador é responsável pela configuração de conexões, ativação da troca de matar ou qualquer outra operação. REST Interface Listen Endereço é configurável através da opção -caddr.
Observe que existem algumas opções configuráveis apenas através do arquivo de configuração. Tais opções são:
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
O nome do host de um ponto de extremidade Hide.me Rest pode ser especificado como um nome de domínio totalmente qualificado (nl.hide.me), nome curto (NL) ou um endereço IP. Não há garantia de que o endpoint restante corresponda a um ponto de extremidade do Wireguard.
-4 Use IPv4 tunneling only
Limite todas as operações do protocolo IP ao IPv4. Embora o servidor forneça apenas endereços IPv4 IPv4 e IPv6, as regras IPv4 e as rotas IPv4 são instaladas. A proteção contra vazamentos/troca de matar funciona apenas para tráfego IPv4. O fluxo de tráfego IPv6 permanece sem segurança.
Aviso : esta opção degrada a segurança e deve ser usada apenas quando for seguro fazê -lo, por exemplo, quando a máquina cliente tiver sua pilha IPv6 desativada. Por favor, não use -o de outra forma porque os vazamentos de IPv6 podem acontecer.
-6 Use IPv6 tunneling only
Limite todas as operações do protocolo IP ao IPv6. Embora o servidor forneça apenas endereços IPv6 IPv4 e IPv6, as regras IPv6 e as rotas IPv6 são instaladas. A proteção contra vazamentos/troca de matar funciona apenas para tráfego IPv6. O fluxo de tráfego IPv4 permanece sem segurança.
AVISO : Esta opção degrada a segurança e não deve ser usada, a menos que o cliente deseje encantar apenas o tráfego IPv6.
-b filename
resolv.conf backup filename (default "")
Hide.me CLI mantém um backup de /etc/resolv.conf na memória. Além disso, o backup hide.me cli pode fazer backup /etc/resolv.conf para um arquivo especificado por esta opção.
-c filename
Configuration filename
Use um arquivo de configuração chamado "nome do arquivo".
-ca string
CA certificate bundle (default "CA.pem")
Durante a negociação do TLS, o certificado do servidor VPN precisa ser verificado. Esta opção possibilita especificar um arquivo de pacote de certificado CA alternativo.
-caddr address
Control interface listen address (default "@hide.me")
Defina o endereço da interface de controle do modo de serviço. Hide.me CLI, por padrão, ouve um abstrato unix soket hide.me
-ccert certificate
Control interface certificate file
Defina a interface de controle do modo de serviço x509 Certificado em formato PEM
-ckey key
Control interface key file
Defina a chave privada da interface de controle do modo de serviço no 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")
Por padrão, o hide.me CLI usa os servidores DNS operados por Hide.me para resolver os nomes do servidor VPN ao solicitar um token ou durante as solicitações de conexão. O conjunto de servidores DNS usados para esses fins pode ser personalizado com esta opção.
-dpd duration
DPD timeout (default 1m0s)
Para detectar se uma conexão parou, geralmente devido a problemas de rede, o HEDE.ME CLI verifica periodicamente o estado de conexão. O período de verificação pode ser alterado com esta opção, mas não pode ser superior a um minuto.
-i interface
network interface name (default "vpn")
Use esta opção para especificar o nome da interface de rede para criar ou usar.
-l port
listen port
Especifique uma porta de escuta para o tráfego criptografado do Wireguard.
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
Defina o Firewall Mark O módulo Wireguard Kernel marcará seus pacotes.
-p port
remote port (default 432)
A porta do ponto de extremidade REST remota pode ser alterada com esta opção.
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
O avanço dinâmico da porta é, por padrão, desativado. Use esta opção para ativá -la para uma tentativa de conexão específica. Como alternativa, o avanço da porta pode ser ativado adicionando um sufixo @pf ao nome de usuário ao solicitar um token. Tais tokens ativam a porta de antecedentes em cada tentativa de conexão, e você não deve usar essa opção ao usá-los.
-r table
routing table to use (default 55555)
Defina a tabela de roteamento a ser usada para o mecanismo geral de tráfego e proteção contra vazamentos.
-R priority
RPDB rule priority (default 10)
Defina a prioridade das regras RPDB instaladas. Hide.me CLI aproveita o roteamento de políticas instalando uma regra RPDB (um protocolo por IP), a fim de direcionar o tráfego para uma tabela de roteamento escolhida e garantir a proteção contra vazamentos de IP.
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
Lista de redes de ajuste dividido, ou seja, as redes para as quais o tráfego não deve ser túnel sobre a VPN.
-t string
access token filename (default "accessToken.txt")
Nome do arquivo que contém um token de acesso.
-u username
hide.me username
Defina o nome de usuário Hide.me.
Hide.me CLI suporta filtragem baseada em DNS (SmartGuard). As seguintes opções controlam a filtragem DNS:
-forceDns
force tunneled DNS handling on hide.me servers
Ative o redirecionamento de DNS em um servidor VPN Hide.me, de modo que cada solicitação UDP ou TCP DNS seja tratada por esse servidor VPN HEDE.ME
-whitelist dns names
comma separated list of allowed dns names
Sufixos DNS que ignoram qualquer mecanismo de filtragem (curingas aceitas)
-blacklist dns names
comma separated list of filtered dns names
Nomes de DNS que serão filtrados
-noAds
filter ads
Ativa a filtragem de anúncios baseada em Smartguard
-noCategories categories
comma separated list of filtered content categories
Ativa a filtragem de Smartguard de grão fino. Fetch Category List With Categories Command
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
Ativa a filtragem grossa de conteúdo ilegal, warez, spyware e material protegido por direitos autorais
-noMalicious
filter malicious destinations
Ativa a filtragem de hosts, sites ou domínios maliciosos
-noMalware
filter malware
Ativa um filtro de malware. Qualquer site de hospedagem ou distribuição de malware deve ser filtrado
-noRisk level
filter content according to risk level (possible, medium, high)
Ativa um filtro de risco
-noTrackers
filter trackers
Ativa um filtro de rastreamento
-pg age
apply a parental guidance style age filter (12, 18)
Ativa um filtro de estilo de orientação dos pais de acordo com o determinado limite de idade. Conteúdo inadequado será filtrado
-safeSearch
force safe search with search engines
Aplica o modo de pesquisa com segurança com os mecanismos de pesquisa suportados (Google, Bing)
Hide.me CLI pode ser usado independente ou como um serviço Systemd. O uso do Hide.me CLI como serviço Systemd permite aproveitar a resolução de dependência do SystemD, o monitoramento e vários recursos de endurecimento.
O script do instalador vincula um arquivo de unidade de modelo [email protected] para você ou você pode vincular manualmente o arquivo da unidade de modelo executando:
systemctl link hide.me@service
Para gerenciar conexões, os seguintes comandos podem ser usados:
| Operação | Comando |
|---|---|
| Criar uma conexão | SystemCtl Habille Hide.me@server |
| Inicie uma conexão | Systemctl Start hide.me@server |
| Pare uma conexão | Systemctl Stop hide.me@server |
| Remova uma conexão | systemctl desabille hide.me@server |
O servidor é o nome do servidor, o nome do grupo ou um endereço IP.
As opções de comando adicionais para o comando hide.me connect executadas pelo serviço Systemd podem ser colocadas na variável OPTIONS= configuração em /opt/hide.me/config .
A inicialização do serviço é considerada bem -sucedida quando uma conexão para ocultar.me servidor é completamente estabelecida.
O Hide.me CLI é a melhor opção para PCs de mesa, mas pode ser inadequado para roteadores ou dispositivos incorporados. Para esses pequenos dispositivos, desenvolvemos um conjunto de scripts de cinzas (nos scripts/ diretório):
No cabeçalho de cada script, você encontrará exemplos de uso.
A funcionalidade desses scripts é básica, ou seja, eles o conectarão/desconectarão, mas não monitorarão sua conexão. Um conjunto de recursos tão limitado pode ser o suficiente para usar o Hide.me com roteadores que possuem suas próprias técnicas de monitoramento e falha.
Cada script foi verificado nos roteadores baseados em OpenWrt com o mais recente firmware estável (19.07.7) e suporte de wireguard. Os pré-requisitos, que devem ser instalados no OPKG, são:
Se você deseja contribuir com este projeto, leia o guia de contribuição.