這是Mirageos Unikernel,通過prontend-port上的公共(服務)網絡接口接受TLS連接,並通過專用網絡接口使用TCP代理它們,以向後端IP和後端端口進行TCP。連接到TLSTUNNEL的客戶端必須建立TLS連接,該連接通過TCP轉發到後端服務。
TLSTUNNEL可用於負載平衡 - 使用前端上的多個TLSTUNNEL進行昂貴的加密操作(不對稱的TLS握手和對稱的加密術),並使用單個(或多個)後端服務,這些服務通過平原TCP通信。
在安全方面,只有TLSTUNNEL才需要訪問X.509證書的私鑰。當TLStunnel配置為進行客戶端身份驗證時,只有有效的客戶端才能訪問後端服務,從而大大限制攻擊表面。
執行TLSTUNNEL需要兩個IP地址:一個是一個面向一個的公眾,另一個是在專用網絡上(將TCP連接轉發為TCP連接)。配置可以通過專用網絡上的命令行實用程序完成。 X.509證書應通過DNS獲得(請參閱DNS-primary-Git和dns-letsencrypt-Secardary)。
讓我們考慮您的公共IP地址為1.2.3.4/24(默認網關1.2.3.1)。您將192.168.0.4/24用作您的私人網絡。您的DNS服務器為1.2.3.5,帶有鍵tlstunnel._update.example.org。
開始tlstunnel:
$ truncate -s 1m /var/db/tlstunnel
$ solo5-hvt --net:service=tap0 --net:private=tap10 --block:storage=/var/db/tlstunnel --
tlstunnel/unikernel/dist/tlstunnel.hvt --ipv4=1.2.3.4/24 --ipv4-gateway=1.2.3.1
--private-ipv4=192.168.0.4/24 --domains=example.org
--dns-server=1.2.3.5 --dns-key=tlstunnel._update.example.org:SHA256:m2gls0y3ZMN4DVKx37x/VoKEdll4J2A9qNIl6JIz2z4=
--key-seed=ROkD8o/Xrc4ScDdxM8cV1+4eQiWUEul+3I1twW+I15E=
--key=9Fe92fogykIAPBJZU4FUsmpRsAy6YDajIkdSRs650zM=
現在,一旦TLSTUNNEL設法通過DNS獲得證書,您就可以連接到https://1.2.3.4,並應查看證書:
$ openssl s_client -connect 1.2.3.4:443
$ curl https://1.2.3.4
要配置TLSTUNNEL的轉發,將轉髮指定的主機名中的IP地址和端口對,您必須使用client
端子文件夾中的二進制tlstunnel-client
。使用傳遞給TLSTUNNEL( --key=secret
)的共享秘密對通信進行身份驗證。
配置保存在塊設備中(以魯棒的方式,即更改首先編寫新數據,然後超級屏蔽為更新)。
$ cd tlstunnel/client
$ dune build
# Listing all configured hostnames:
$ _build/install/default/bin/tlstunnel-client list --key=9Fe92fogykIAPBJZU4FUsmpRsAy6YDajIkdSRs650zM= -r 192.168.0.4:1234
# Adding a new forward:
$ _build/install/default/bin/tlstunnel-client add --key=9Fe92fogykIAPBJZU4FUsmpRsAy6YDajIkdSRs650zM= -r 192.168.0.4:1234 test.example.org 192.168.0.42 80
# Removing a foward:
$ _build/install/default/bin/tlstunnel-client remove --key=9Fe92fogykIAPBJZU4FUsmpRsAy6YDajIkdSRs650zM= -r 192.168.0.4:1234 test.example.org
要從源安裝此UNIKERNEL,您需要安裝OPAM(> = 2.0.0)和OCAML(> = 4.08.0)。另外,需要幻影(> = 4.5.0)。請按照安裝說明進行操作。
以下步驟將克隆此GIT存儲庫並編譯Unikernel:
$ git clone https://github.com/robur-coop/tlstunnel.git
$ cd tlstunnel/unikernel && mirage configure -t < your-favourite-target >
$ make depend
$ make build
可在可再現的OPAM構建中獲得二進製文件,請參閱部署二進制Mirageos Unikernels,以及可再現的Mirageos Unikernel構建構建的詳細信息。
如果您有疑問,功能請求或評論,請打開問題。