# 用frp+OpenConnect Server搭建遠程訪問內網NAS服務

# 前言

frp是常見的內網穿透工具,用來把內網服務端口暴露在公網上,來進行遠程訪問內網,這種方式通常不怎麼安全,很容易被壞人掃描到並進行暴力破解。

俺在疫情期間通過各種折騰遠程訪問家裡NAS實踐,最終發現在內網搭建一套vpn服務,然後把vpn服務端口通過frp暴露到公網上,可以很安全的實現遠程訪問內網NAS服務。

目前該方案穩定運行2年。

# 網絡架構原理

# 安裝環境需求

  1. 一台公網linux服務器

  2. 內網linux環境,安裝docker

# 配置步驟

# 公網服務器frp服務端配置

進入公網服務器,下載frp

下載地址:https://github.com/fatedier/frp/releases (opens new window)

選擇當前對應的版本,解壓後進入frp目錄,修改frps.ini為:

[common]
bind_port = 7000
#token,最好為uuid越長越好
token = 1234567890abcdefg!@#$%

啟動frps服務端

nohup ./frps -c ./frps.ini > /tmp/frps.log &

# 配置內網服務器frp客戶端

進入內網服務器,下載frp到內網服務器

解壓後進入frp目錄,修改frpc.ini為:

[common]
server_addr = <公網服務器ip地址>
server_port = 7000
#跟服務端的token相同
token = 1234567890abcdefg!@#$%

#openconnect服務的udp端口映射
[vpnudp]
type = udp
local_ip = 127.0.0.1
local_port = 4430
remote_port = 4430

#openconnect服務的tcp端口映射
[vpntcp]
type = tcp
local_ip = 127.0.0.1
local_port = 4430
remote_port = 4430

啟動frp客戶端

nohup ./frpc -c ./frpc.ini > /tmp/frpc.log &

如無問題/tmp/frpc.log會顯示:

login to server sucess

# 配置openconnect server

先安裝docker環境

安裝指南:

https://docs.docker.com/engine/install/

拉取openconnect鏡像

docker run --name ocserv --privileged -p 127.0.0.1:4430:443 -p 127.0.0.1:4430:443/udp -e SRV_CN=example.com -e SRV_ORG="exmple.com" -e SRV_DAYS=3650 -d --restart=always   tommylau/ocserv

清除測試賬號:

docker exec -it ocserv sh -c "echo '' > /etc/ocserv/ocpasswd"

設置路由地址為內網網段,這樣可以在撥號成功後,只有該網段的流量會進入VPN,例如你的內網地址是192.168.3.0網段,可設置為:

docker exec -it ocserv sh -c "echo \"route=192.168.3.0/255.255.255.0\" > /etc/ocserv/config-per-group/Route"

進入容器,複製容器內的ocserv.conf配置到宿主機

docker cp ocserv:/etc/ocserv/ocserv.conf ./

編輯ocserv.conf末尾4行修改為:

default-select-group = Route[vpn]
#select-group = All[全局代理 All Proxy]
auto-select-group = false
config-per-group = /etc/ocserv/config-per-group

保存後,複製到容器中:

docker cp  ./ocserv.conf ocserv:/etc/ocserv/ocserv.conf

重啟容器:

 docker restart ocserv

添加新用戶username:

docker exec -it ocserv ocpasswd -c /etc/ocserv/ocpasswd -g "Route" username

輸入用戶密碼,完成用戶創建。

# 遠程連接

完成上述工作後,就可以用vpn客戶端進行撥號了,目前openconnect vpn server支持的客戶端有如下:

OpenConnect GUI配置說明:

下載後安裝,啟動,點擊New profile:

Name:輸入vpn

Gateway:輸入你公網服務器的ip地址如:https://<ip地址>:4430

Username:輸入你創建的vpn用戶名

完成後點擊save

點擊connect開始撥號

彈出密碼提示,輸入vpn用戶密碼

綠色鎖為連接成功

Last Updated: 4/24/2023, 9:26:46 PM