HIME.ME CLI는 Eventure Ltd.와 함께 사용하기위한 VPN 클라이언트입니다. 고객의 기능은 다음과 같습니다.
TODO :
이 저장소를 복제하고 실행할 수 있습니다.
go build -o hide.me
또는 릴리스 섹션에서 최신 빌드를 다운로드하십시오.
소스 트리 및 이진 릴리스에는 간단한 설치 및 제거 스크립트가 포함됩니다. hide.me cli는 /opt/hide.me 디렉토리에 설치됩니다. hide.me 파일을 복사하는 것 외에도 /opt/hide.me 시스템에 대한 수정이 완료되지 않습니다.
SystemD 기반 배포판이 감지되면 설치 프로그램은 연결을 인스턴스화하는 데 사용할 수있는 템플릿 장치 파일을 연결합니다.
Packaging/Archlinux/( git clone --recurse-submodules 가 필요함) 또는 https://aur.archlinux.org/packages/hide-client/에 제공된 Pkgbuild를 사용하여 패키지를 만들 수 있습니다.
구축하려면 :
makepkg && sudo pacman -U hide-client-0.9.1-1-any.pkg.tar.zst
Archlinux 패키지는 설치된 파일의 기본 위치를 AccessToken, /etc/hide.me/accessToken.txt 의 바이너리에 대해 /usr/bin/hide.me 로 변경합니다 /usr/share/hide.me/CA.pem 인증서 및 /usr/lib/systemd/system/hide.me@service systemd 단위.
Wireguard는 업계에서 가장 안전하고 단순한 VPN 터널링 솔루션 중 하나입니다. 불안한 매체 (예 : 인터넷)에 대한 와이어 가드 공개 키 교환이 필요하지 않으면 설정하고 사용하기 쉽습니다. 모든 종류의 Wireguard Public Key Exchange는 Wireguard 사양의 범위를 벗어났습니다.
불안한 매체에 대한 공개 키 교환 및 비밀 키 협상의 복잡한 작업은 일반적으로 다음과 같습니다.
hide.me 와이어 가드 레버리지의 구현 https (tls)의 교환을 위해 :
모든 작업에 대한 인증을 사용하려면 액세스 점을 사용해야합니다. Access-Token은 암호적으로 Hide.me 계정에 묶인 이진 블로브입니다.
Hide.me VPN 서버에 대한 연결은 다음 단계에서 설정됩니다.
다른 많은 솔루션과 달리 Hide.me CLI는 어떤 종류의 Linux 방화대 기술 (iptables, nftables 또는 ebpf)을 사용하지 않습니다. Linux'es IP 필터링 프레임 워크에 의존하는 대신 Hide.me CLI는 특수 라우팅 테이블과 라우팅 정책 데이터베이스 규칙 세트를 설정하여 트래픽을 선택적으로 선정합니다. 앞서 언급 한 라우팅 테이블의 검은 색 경로는 다음 조건 중 하나를 충족하지 않는 한 모든 트래픽을 떨어 뜨립니다.
이 운영 모드를 사용하면 사용자가 Hide.me CLI가 방해하지 않는 자체 방화구 정책을 설정할 수 있습니다.
사용 지침은 매개 변수없이 Hide.me Cli를 실행하여 인쇄 할 수 있습니다.
Usage:
./hide.me [options...] <command> [host]
...
hide.me CLI 사용자 인터페이스는 매우 간단합니다. 사용 가능한 세 가지 명령 만 있습니다.
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
VPN 서버에 연결하려면 VPN 서버에서 Access-Token을 요청해야합니다. Token Command에 의해 액세스 요청이 발행됩니다. 모든 서버에서 발행 한 액세스 인은 인증 목적으로 다른 Hide.me VPN 서버와 함께 사용할 수 있습니다. 서버가 액세스를 발행하는 경우 토큰을 파일에 저장해야합니다. Access-Token의 Default Filename은 "AccessToken.txt"입니다.
액세스 토로가 설치되면 Connect 요청에 사용될 수 있습니다. 오래된 액세스 토큰이 자동으로 업데이트됩니다.
HIME.ME CLI가 반드시 많은 명령 줄 매개 변수로 호출 할 필요는 없습니다. 대신, Yaml 형식 구성 파일을 사용하여 모든 옵션을 지정할 수 있습니다. 이러한 구성 파일을 생성하려면 conf 명령을 사용할 수 있습니다.
DNS 필터링 (SmartGuard)의 목적 상, 카테고리 명령으로 필터링 카테고리 목록을 얻을 수 있습니다.
hide.me cli는 서비스 모드에서 실행할 수 있습니다. 서비스 모드에서 시작되면 HIME.ME CLI는 제어 용 REST 인터페이스를 노출시킵니다. 컨트롤러는 연결 구성, 킬 스위치 활성화 또는 기타 작업을 담당합니다. REST 인터페이스 청취 주소는 -CADDR 옵션을 통해 구성 가능합니다.
구성 파일을 통해서만 구성 할 수있는 몇 가지 옵션이 있습니다. 이러한 옵션은 다음과 같습니다.
host:
fqdn, short name or an IP address of a hide.me server
Required when the configuration file does not contain it
Hide.me REST Endpoint의 호스트 이름은 완전히 자격있는 도메인 이름 (nl.hide.me), 짧은 이름 (NL) 또는 IP 주소로 지정 될 수 있습니다. 나머지 엔드 포인트가 와이어 가드 엔드 포인트와 일치한다는 보장은 없습니다.
-4 Use IPv4 tunneling only
모든 IP 프로토콜 작업을 IPv4로 제한하십시오. 서버가 IPv4 주소 만 주소를 지정하는 IPv4 및 IPv6을 제공하더라도 IPv4 규칙 및 IPv4 경로가 설치됩니다. 누출 보호/킬 스위치는 IPv4 트래픽에만 효과가 있습니다. IPv6 트래픽 흐름은 안전하지 않습니다.
경고 :이 옵션은 보안을 저하시키고 안전한 경우에만 사용해야합니다 (예 : 클라이언트 시스템에 IPv6 스택이 비활성화 된 경우. IPv6 누출이 발생할 수 있으므로 다른 방법으로 사용하지 마십시오.
-6 Use IPv6 tunneling only
모든 IP 프로토콜 작업을 IPv6으로 제한하십시오. 서버가 IPv6 주소 만 해결하는 IPv4 및 IPv6을 제공하더라도 IPv6 규칙 및 IPv6 경로가 설치됩니다. 누출 보호/킬 스위치는 IPv6 트래픽에만 작동합니다. IPv4 트래픽 흐름은 안전하지 않은 상태로 남아 있습니다.
경고 :이 옵션은 보안을 저하시키고 클라이언트가 IPv6 트래픽 만 터널하지 않으면 사용해서는 안됩니다.
-b filename
resolv.conf backup filename (default "")
hide.me cli는 메모리에서 /etc/resolv.conf의 백업을 유지합니다. 해당 백업 hide.me Cli는이 옵션으로 지정된 파일로 /etc/resolv.conf를 백업 할 수 있습니다.
-c filename
Configuration filename
"filename"이라는 구성 파일을 사용하십시오.
-ca string
CA certificate bundle (default "CA.pem")
TLS 협상 중에 VPN 서버의 인증서를 확인해야합니다. 이 옵션을 사용하면 대체 CA 인증서 번들 파일을 지정할 수 있습니다.
-caddr address
Control interface listen address (default "@hide.me")
서비스 모드 컨트롤 인터페이스 청취 주소를 설정하십시오. Hide.me Cli, 기본적으로 초록 Unix 소켓 Hide.me에서 청취합니다.
-ccert certificate
Control interface certificate file
서비스 모드 제어 인터페이스 X509 인증서 설정 PEM 형식으로
-ckey key
Control interface key file
서비스 모드 제어 인터페이스 개인 키를 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")
기본적으로 Hide.me Cli는 Hide.me 작동 DNS 서버를 사용하여 토큰을 요청할 때 또는 연결 요청시 VPN 서버 이름을 해결합니다. 이러한 목적으로 사용되는 DNS 서버 세트는이 옵션으로 사용자 정의 될 수 있습니다.
-dpd duration
DPD timeout (default 1m0s)
연결이 중단되었는지 여부를 감지하려면 일반적으로 네트워킹 문제로 인해 Hide.me CLI가 연결 상태를 정기적으로 확인합니다. 이 옵션으로 확인 기간을 변경할 수 있지만 1 분보다 높을 수는 없습니다.
-i interface
network interface name (default "vpn")
이 옵션을 사용하여 생성 또는 사용할 네트워킹 인터페이스의 이름을 지정하십시오.
-l port
listen port
암호화 된 와이어 가우드 트래픽에 대한 청취 포트를 지정하십시오.
-m mark
firewall mark for wireguard traffic (default 0 - no packet marks)
방화벽 마크 와이어 가드 커널 모듈은 패킷을 표시합니다.
-p port
remote port (default 432)
이 옵션으로 원격 휴식 엔드 포인트 포트가 변경 될 수 있습니다.
-pf
enable dynamic port-forwarding technologies (uPnP and NAT-PMP)
동적 포트 포워드는 기본적으로 비활성화됩니다. 이 옵션을 사용하여 특정 연결 시도를 위해 켜십시오. 또는 토큰을 요청할 때 사용자 이름에 @pf 접미사를 추가하여 포트 포워드를 활성화 할 수 있습니다. 이러한 토큰은 각 연결 시도에서 포트 포워드를 활성화하며 사용할 때는이 옵션을 사용해서는 안됩니다.
-r table
routing table to use (default 55555)
일반 트래픽 및 누출 보호 메커니즘에 사용할 라우팅 테이블을 설정하십시오.
-R priority
RPDB rule priority (default 10)
설치된 RPDB 규칙의 우선 순위를 설정하십시오. HIME.ME CLI는 선택한 라우팅 테이블로 트래픽을 유도하고 IP 누출 보호를 보장하기 위해 RPDB 규칙 (IP 프로토콜 당 하나)을 설치하여 정책 라우팅을 활용합니다.
-s networks
comma separated list of networks (CIDRs) for which to bypass the VPN
분할-튜닝 네트워크 목록, 즉 VPN을 통해 트래픽을 터널링해서는 안되는 네트워크.
-t string
access token filename (default "accessToken.txt")
액세스 토로가 포함 된 파일 이름.
-u username
hide.me username
Hide.me 사용자 이름을 설정하십시오.
HIME.ME CLI는 DNS 기반 필터링 (SmartGuard)을 지원합니다. 다음 옵션은 DNS 필터링을 제어합니다.
-forceDns
force tunneled DNS handling on hide.me servers
각 UDP 또는 TCP DNS 요청이 해당 Hide.me VPN 서버에서 처리되도록 Hide.me VPN 서버에서 DNS 리디렉션 활성화
-whitelist dns names
comma separated list of allowed dns names
필터링 엔진을 우회하는 DNS 접미사 (와일드 카드 허용)
-blacklist dns names
comma separated list of filtered dns names
필터링 될 DNS 이름
-noAds
filter ads
SmartGuard 기반 광고 필터링을 활성화합니다
-noCategories categories
comma separated list of filtered content categories
세밀한 스마트 가드 필터링을 활성화합니다. 카테고리 명령이 포함 된 카테고리 목록을 가져옵니다
-noIllegal kind
filter illegal kind (content, warez, spyware, copyright)
불법 콘텐츠, Warez, Spyware 및 저작권 자료의 거친 수준 필터링 활성화
-noMalicious
filter malicious destinations
악성 호스트, 웹 사이트 또는 도메인의 필터링을 활성화합니다
-noMalware
filter malware
맬웨어 필터를 활성화합니다. 맬웨어를 호스팅하거나 배포하는 모든 사이트를 필터링해야합니다.
-noRisk level
filter content according to risk level (possible, medium, high)
위험 필터를 활성화합니다
-noTrackers
filter trackers
추적 필터를 활성화합니다
-pg age
apply a parental guidance style age filter (12, 18)
주어진 연령 제한에 따라 부모 지침 스타일 필터를 활성화합니다. 부적절한 컨텐츠가 필터링됩니다
-safeSearch
force safe search with search engines
지원되는 검색 엔진 (Google, Bing)으로 Safesearch 모드를 시행합니다.
HIME.ME CLI는 독립형 또는 SystemD 서비스로 사용할 수 있습니다. Hide.me Cli를 SystemD 서비스로 사용하면 SystemD의 종속 해상도, 모니터링 및 다양한 경화 기능을 활용할 수 있습니다.
설치 프로그램 스크립트는 템플릿 단위 파일 [email protected]를 연결하거나 다음을 실행하여 템플릿 장치 파일을 수동으로 연결할 수 있습니다.
SystemCTL 링크 hide.me@service
연결을 관리하려면 다음 명령이 사용될 수 있습니다.
| 작업 | 명령 |
|---|---|
| 연결을 만듭니다 | systemctl hide.me@server를 활성화합니다 |
| 연결을 시작하십시오 | systemctl 시작 hide.me@server |
| 연결을 중지하십시오 | SystemCTL 중지 hide.me@server |
| 연결을 제거하십시오 | SystemCTL hide.me@server를 비활성화합니다 |
서버는 서버 이름, 그룹 이름 또는 IP 주소입니다.
hide.me connect 에 대한 추가 명령 선 옵션은 systemd 서비스에서 실행하는 명령을 /opt/hide.me/config 의 OPTIONS= configuration 변수에 넣을 수 있습니다.
Hide.me 서버에 대한 연결이 완전히 설정되면 서비스 시작은 성공적인 것으로 간주됩니다.
hide.me CLI는 데스크탑 PC에 가장 적합한 선택이지만 라우터 나 임베디드 장치에는 부적절 할 수 있습니다. 이 작은 장치의 경우 스크립트/ 디렉토리에서 Ash 스크립트 세트를 개발했습니다.
각 스크립트의 헤더에는 사용 예제가 있습니다.
해당 스크립트의 기능은 기본적이며, 즉 연결/연결이 끊어 지지만 연결을 모니터링하지는 않습니다. 이러한 제한된 기능 세트는 자체 모니터링 및 실패 기술이있는 라우터와 함께 Hide.me를 사용하기에 충분할 수 있습니다.
각 스크립트는 최신 안정 펌웨어 (19.07.7)와 Wireguard 지원을 갖춘 OpenWrt 기반 라우터에서 확인되었습니다. OPKG에 설치 해야하는 전제 조건은 다음과 같습니다.
이 프로젝트에 기여하려면 기여 가이드를 읽으십시오.