關於Phantun
Phantun是一款功能強大的輕量級UDP轉TCP混淆工具,該工具可以將UDP資料包混淆成TCP連線,旨在以最小的處理和封裝開銷實現最大的效能。該工具通常用於UDP被阻止/限制但TCP被允許透過的環境。
Phantun可以將UDP資料包流轉換成經過模糊/混淆處理的TCP資料包流。Phantun使用的TCP堆疊可以透過大多數L3/L4有狀態/無狀態防火牆/NAT裝置,但無法透過L7代理。
Phantun工具採用了純Rust開發,並且經過了大量的版本迭代和功能最佳化,可以在多核系統上進行快速擴充套件,並且消耗資源也非常少。
工具資料流/架構
工具下載
廣大研究人員可以使用下列命令將該專案原始碼克隆至本地:
git clone https://github。com/dndx/phantun。git
工具使用
對於下面的示例,做如下假設:
假設Phantun伺服器在埠4567(伺服器的——local選項)偵聽傳入的Phantun客戶端連線,並在127。0。0。1:1234(伺服器的——remote選項)將UDP資料包轉發到UDP伺服器。
假設Phantun客戶端在127。0。0。1:1234(客戶端的——local選項)監聽傳入的UDP資料包,並在10。0。0。1:4567(客戶端的——remote選項)連線到Phantun伺服器。
Phantun為客戶端和伺服器建立TUN介面。對於客戶端,Phantun預設為自己分配IP地址192。168。200。2;對於伺服器,它預設為自己分配IP地址192。168。201。2。
使用樣例
1、啟用核心IP轉發
編輯“/etc/sysctl。conf”,新增“net。ipv4。ip_forward=1”,然後執行下列命令:
sudo sysctl -p /etc/sysctl。conf
2、新增所需防火牆規則
客戶端
使用nftable:
table inet nat { chain postrouting { type nat hook postrouting priority srcnat; policy accept; iifname tun0 oif eth0 masquerade }}
使用iptable:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
伺服器端
使用nftable:
table ip nat { chain prerouting { type nat hook prerouting priority dstnat; policy accept; iif eth0 tcp dport 4567 dnat to 192。168。201。2 }}
使用pitable:
iptables -t nat -A PREROUTING -p tcp -i eth0 ——dport 4567 -j DNAT ——to-destination 192。168。201。2
3、執行Phantun程式碼(非root許可權,可選)
以root使用者身份執行面向網路的應用程式是不明智的,因此Phantun 支援以非root使用者許可權執行,並帶有cap_net_admin功能:
sudo setcap cap_net_admin=+pe phantun_serversudo setcap cap_net_admin=+pe phantun_client
4、開啟Phantun守護程序
提示:使用-h引數執行Phantun後可以檢視該工具支援的所有引數選項。
伺服器端
注意:4567是Phantun監聽的TCP埠,然後對應之前指定的DNAT規則。127。0。0。1:1234則是要連線的UDP伺服器:
RUST_LOG=info /usr/local/bin/phantun_server ——local 4567 ——remote 127。0。0。1:1234
或者,使用——remote指定主機名稱:
RUST_LOG=info /usr/local/bin/phantun_server ——local 4567 ——remote example。com:1234
客戶端
注意:127。0。0。1:1234是Phantun需要監聽的UDP地址和埠。10。0。0。1:4567則是要連線的Phantun伺服器 :
RUST_LOG=info /usr/local/bin/phantun_client ——local 127。0。0。1:1234 ——remote 10。0。0。1:4567
或者,使用——remote指定主機名稱:
RUST_LOG=info /usr/local/bin/phantun_client ——local 127。0。0。1:1234 ——remote example。com:4567
許可證協議
本專案的開發與釋出遵循
Apache2。0
開源許可證協議。
最新發布版本
Phantun v0.3.2:https://github.com/dndx/phantun/releases/tag/v0.3.2
專案地址
Phantun:https://github.com/dndx/phantun