1 背景
原來根據(jù)網(wǎng)上的資料在Cent7上配置過OpenVPN艾凯,主要目的是給不在公司的用戶通過Internet連接到公司網(wǎng)絡(luò)來訪問公司的共享文檔和ERP系統(tǒng)。
由于之前一直是少數(shù)用戶訪問,所以沒有采取用戶名密碼的驗(yàn)證簇爆,而是采用最復(fù)雜的客戶端證書驗(yàn)證在孝,需要每次在系統(tǒng)里給用戶建一個(gè)證書文檔,然后在用戶需要使用的設(shè)備上配置相關(guān)的文檔才能使用浆竭,安全性是大大提高,但是IT人員管理相當(dāng)不方便惨寿。隨著用戶需求越來越多邦泄,準(zhǔn)備根據(jù)網(wǎng)上不多的資料配置一下OpenVPN+AD來進(jìn)行賬號(hào)密碼登錄。
近期由于CentOS的全面不支持裂垦,導(dǎo)致使用配置源相當(dāng)不方便顺囊,所以果斷放棄,轉(zhuǎn)向Ubuntu蕉拢。關(guān)于Ubuntu版本方面特碳,由于測(cè)試時(shí)間是2022年五月份诚亚,這時(shí)22.04 LTS版已經(jīng)正式發(fā)布。但在測(cè)試了近一個(gè)月后午乓,發(fā)現(xiàn)由于各種不兼容站宗,根本無法進(jìn)行后期配置,所以轉(zhuǎn)向了次一級(jí)的20.04 LTS版益愈。
2 安裝Ubuntu
下載了20.04.4 LTS Server版梢灭,準(zhǔn)備在Hyper-V上進(jìn)行虛擬化安裝,由于OpenVPN不需要太高的性能蒸其,所以僅分配了一個(gè)CPU敏释,2G內(nèi)存,20G硬盤枣接。從光驅(qū)啟動(dòng)颂暇,一開始的界面和22.04的版本不同的是先選擇語(yǔ)言,這里選擇了中文(簡(jiǎn)體)但惶。
然后開始選擇安裝Ubuntu還是其他耳鸯,這里直接回車選擇。
開始進(jìn)行初始化安裝膀曾,看著即可县爬,不用干預(yù)。
之后又會(huì)出現(xiàn)選擇語(yǔ)言的界面添谊,這里應(yīng)該是系統(tǒng)的語(yǔ)言(由于屬于命令符界面财喳,所以一般都選擇英文,沒有非拉丁文選項(xiàng))斩狱。
選擇鍵盤布局耳高,建議選擇English(US),或者你也可以選擇Identify Keyboard所踊,根據(jù)讓你輸入的字符來自適應(yīng)適配泌枪。
配置網(wǎng)絡(luò)連接,由于我的服務(wù)器區(qū)域是不支持DHCP的秕岛,需要給這臺(tái)服務(wù)器指定一個(gè)靜態(tài)IP地址碌燕,第一行subnet,需要寫網(wǎng)段/掩碼的格式继薛。
配置代理修壕,這里如果沒有代理上網(wǎng)的話,就是可以直接跳過遏考。
配置Ubuntu的檔案鏡像地址慈鸠,默認(rèn)是http://cn.archive.ubuntu.com/ubuntu ,由于默認(rèn)地址不一定快灌具,所以我們可以改成阿里的檔案鏡像源地址http://mirrors.aliyun.com/ubuntu/ 這里修改好之后青团,就可以不用再在3.3修改更新源了像棘。
可用的安裝管理器升級(jí),是否需要把更新安裝器升級(jí)壶冒,建議選擇Update to the newinstaller .
開始下載更新。
存儲(chǔ)配置截歉,默認(rèn)即可胖腾。
存儲(chǔ)分區(qū)配置,默認(rèn)即可瘪松,懂的人可以按自己要求修改咸作。繼續(xù)后會(huì)確認(rèn)該操作。
設(shè)置一個(gè)賬號(hào)宵睦,第一個(gè)是全名记罚,顯示用,第二個(gè)是給服務(wù)器起名壳嚎,第三個(gè)是登錄名桐智,后面兩個(gè)是密碼。
SSH設(shè)置烟馅,這里選擇Install OpenSSH server说庭,主要為了裝好以后遠(yuǎn)程訪問,下面選擇按默認(rèn)即可郑趁。
組件服務(wù)器快照刊驴,這里是一些現(xiàn)在時(shí)髦的組件模塊,除非有必要寡润,否則不用選擇捆憎。
繼續(xù)安裝系統(tǒng)∷笪疲可以選擇下面的View full log躲惰,查看安裝的日志。
安裝完成栗柒,選擇最下面的Reboot Now重啟礁扮。
3 安裝Ubuntu完成后的準(zhǔn)備
3.1 給系統(tǒng)設(shè)置管理員密碼
安裝完成后,系統(tǒng)可以通過設(shè)置的用戶名和密碼登錄瞬沦,由于每次重啟root的密碼都會(huì)重置太伊,這時(shí)需要設(shè)置一個(gè)固定的root密碼。
sudo passwd
這時(shí)需要你先輸入你現(xiàn)在登錄用戶的密碼逛钻,然后會(huì)告知你設(shè)置一個(gè)root的密碼僚焦,重復(fù)輸入一下后設(shè)置完成。
3.2 實(shí)現(xiàn)遠(yuǎn)程管理
這時(shí)準(zhǔn)備使用超級(jí)好用的遠(yuǎn)程ssh軟件FinalShell連接服務(wù)器(具體介紹可以參看https://zond.top/finalshell/)曙痘,這時(shí)發(fā)現(xiàn)root賬號(hào)不能連接,只能通過設(shè)置的普通用戶登錄富稻,檢查發(fā)現(xiàn)是Ubuntu禁止root通過各種shell客戶端訪問服務(wù)器彻况,可以通過修改ssh的配置文件實(shí)現(xiàn)。
vim /etc/ssh/sshd_config
修改的內(nèi)容如下圖谅年,保留其他不變,添加一行PermitRootLogin?? yes
修改完成以后肮韧,需要重啟服務(wù)融蹂。重啟之后就可以用遠(yuǎn)程軟件通過ssh協(xié)議連上服務(wù)器了。
systemctl restart sshd
3.3 更新系統(tǒng)檔案庫(kù)
由于安裝時(shí)候已經(jīng)修改了檔案庫(kù)源弄企,就可以直接更新庫(kù)超燃。如果沒有修改可以修改源文件。
vi /etc/apt/sources.list
把其中的http://cn.achrive.ubuntu.com/ubuntu 替換成 http://mirrors.aliyun.com/ubuntu/ 皆可拘领。然后檢查(update)并更新(upgrade)庫(kù)意乓。
apt update
apt upgrade
完成后,會(huì)要求重啟一些服務(wù)约素。
3.4 修改時(shí)區(qū)
由于安裝時(shí)沒有任何選擇時(shí)區(qū)的機(jī)會(huì)届良,所以安裝后,基本時(shí)區(qū)都是格林威治時(shí)間UTC业汰,可以使用日期命令查看伙窃。
date
修改的話,只要運(yùn)行如下命令選擇即可样漆。
tzselect
最后修改/etc/localtime文件即可为障。
cp /usr/share/zoneinfo/Asia/Shanghai?/etc/localtime
4 開始安裝OpenVPN接入服務(wù)器
該部分可以參考https://openvpn.net/vpn-software-packages/ubuntu/ ,第一部分修改時(shí)區(qū)已經(jīng)寫在3.4中放祟。該網(wǎng)站國(guó)內(nèi)不能通過正常方法訪問鳍怨,請(qǐng)自行尋找訪問方式。
4.1 安裝OpenVPN接入服務(wù)器
4.1.1 方法1跪妥,通過庫(kù)來安裝
通過console或者SSH訪問系統(tǒng)鞋喇,添加OpenVPN接入服務(wù)器軟件庫(kù)到我們的操作系統(tǒng)中,然后安裝需要的軟件眉撵,這是一種推薦做法侦香,但根據(jù)添加的軟件庫(kù)的地址可以發(fā)現(xiàn),該地址如同上面參考網(wǎng)址一樣纽疟,國(guó)內(nèi)是無法正常訪問的罐韩,所以利用這種方法國(guó)內(nèi)幾乎不能成功。配置腳本列在下面:
apt update&& apt -y install ca-certificates wget net-tools gnupg
wget -qO -https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -
echo "debhttp://as-repository.openvpn.net/as/debian focalmain">/etc/apt/sources.list.d/openvpn-as-repo.list
apt update&& apt -y install openvpn-as
注意:這些步驟適用于一個(gè)全新的安裝并且進(jìn)行過軟件升級(jí)污朽。
執(zhí)行過這些步驟后散吵,這個(gè)接入服務(wù)器會(huì)被安裝完成并等待配置。
4.1.2 方法2,手動(dòng)下載安裝包(國(guó)內(nèi)推薦)
如上所說矾睦,由于軟件庫(kù)網(wǎng)址國(guó)內(nèi)不能訪問晦款,可以采用把相關(guān)軟件單獨(dú)下載下來進(jìn)行安裝,下載地址https://openvpn.net/downloads/openvpn-as-latest-ubuntu20.amd_64.deb https://openvpn.net/downloads/openvpn-as-bundled-clients-latest.deb 一個(gè)是服務(wù)器的枚冗,一個(gè)是客戶端的缓溅,不過仍然是需要通過一些方式來下載此文件的。軟件一直在維護(hù)中赁温,所以可以通過最開始的鏈接文檔進(jìn)行訪問肛宋。手動(dòng)安裝的腳本如下:
apt update
apt install -ybridge-utils dmidecode iptables iproute2 libc6 libffi7 libgcc-s1 liblz4-1liblzo2-2 libmariadb3 libpcap0.8 libssl1.1 libstdc++6 libsasl2-2 libsqlite3-0net-tools python3-pkg-resources python3-migrate python3-sqlalchemypython3-mysqldb python3-ldap3 sqlite3 zlib1g
dpkg -iopenvpn-as-bundled-clients-25.deb openvpn-as_2.10.3-c47a813c-Ubuntu20_amd64.deb
小提示,如同背景里所說的束世,一開始我是安裝的最新的22.04版,但在安裝到這步時(shí)床玻,提示libssl1.1不能被發(fā)現(xiàn)毁涉,不能安裝,尋找了很多資料說22.04開始使用libssl3的版本了锈死,所以手動(dòng)安裝了libssl3贫堰,但繼續(xù)運(yùn)行這個(gè)腳本時(shí),會(huì)提示這個(gè)OpenVPN-as的版本沒有識(shí)別到libssl1待牵,所以這就證明這個(gè)接入服務(wù)器的安裝時(shí)不支持最新版的Ubuntu的其屏。也許在你看到的時(shí)候,接入服務(wù)器也推出最新支持22.04的版本了缨该。
4.2 如何登錄接入服務(wù)器和概況
在4.1以后偎行,接入服務(wù)器已經(jīng)完成安裝,本段是后期配置步驟贰拿。
4.2.1 接入服務(wù)器的網(wǎng)頁(yè)
如上圖蛤袒,在安裝完成以后,最后列出了接入服務(wù)器的Web訪問地址膨更,上面是管理地址妙真,下面這個(gè)是客戶端訪問地址。并且告知了管理員賬號(hào)“openvpn”和一個(gè)臨時(shí)的密碼荚守。
4.2.2 管理界面的訪問和概述
管理界面一般是用戶界面后面加一個(gè)admin珍德,用Chrom瀏覽器打開該頁(yè)面會(huì)出現(xiàn)如下提示(出現(xiàn)該提示的原因時(shí)由于加密頁(yè)面的證書并不是一個(gè)購(gòu)買或者被國(guó)際認(rèn)證過的證書,所以會(huì)有提示):
點(diǎn)高級(jí)后會(huì)出現(xiàn)下面紅框矗漾,選擇繼續(xù)即可出現(xiàn)登錄界面锈候,輸入openvpn和臨時(shí)密碼登錄,然后會(huì)出現(xiàn)協(xié)議信息缩功,點(diǎn)同意即可進(jìn)入管理界面晴及。
進(jìn)入以后,你將會(huì)看到如下界面:
在這個(gè)界面可以管理配置,證書虑稼,用戶和其他管理員可以操作的內(nèi)容琳钉。在管理復(fù)雜VPN功能時(shí),基于Web的圖形化管理提供了比基于Linux命令符和腳本更為簡(jiǎn)單的管理界面蛛倦。下面這個(gè)動(dòng)圖簡(jiǎn)單描述了部分操作歌懒。
4.3 管理端界面的詳解
該部分將詳細(xì)介紹管理界面各個(gè)分類的詳細(xì)內(nèi)容。
4.3.1 STATUS - 現(xiàn)狀
4.3.1.1 Status Overview - 狀態(tài)概述
這頁(yè)是狀態(tài)概況溯壶,登錄成功后的首頁(yè)及皂。其中包括了VPN服務(wù)的狀態(tài),版本號(hào)且改,服務(wù)器名稱验烧,允許多少連接并發(fā),當(dāng)前有幾個(gè)用戶連接又跛,認(rèn)證用戶方式碍拆,允許VPN客戶端從哪個(gè)網(wǎng)卡或地址接入,VPN客戶端連接服務(wù)器的協(xié)議和端口慨蓝,OSI層的類型感混,客戶端接入私有網(wǎng)段用的是哪種類型,服務(wù)器的內(nèi)部名稱礼烈。這些內(nèi)容大部分都可以在下面重新配置弧满。
4.3.1.2 Current Users - 當(dāng)前連接用戶
該頁(yè)應(yīng)該顯示是連接上的用戶具體信息,包括連接用戶名此熬,連接的IP和端口號(hào)庭呜,VPN服務(wù)器分配地址,收發(fā)字節(jié)數(shù)犀忱,連接時(shí)長(zhǎng)疟赊,中斷連接(Block下面是個(gè)按鈕可以中斷這個(gè)連接)。
4.3.1.3 Log Reports - 日志報(bào)告
該頁(yè)詳細(xì)展示了該接入服務(wù)器的日志峡碉,日志上部的選項(xiàng)左邊是可以選擇時(shí)間或時(shí)間段近哟,右邊是顯示最開始或者最后日志的條數(shù)。另外中間可以下載日志鲫寄。下方即是日志的所有內(nèi)容吉执,左起:服務(wù)器節(jié)點(diǎn)名,用戶名地来,訪問開始時(shí)間戳玫,如果是VPN接入則是接入時(shí)間,訪問服務(wù)類型未斑,訪問端IP地址咕宿,接入服務(wù)器為其分配的內(nèi)部IP地址,訪問的協(xié)議,訪問的內(nèi)部端口號(hào)府阀,輸入字節(jié)數(shù)缆镣,輸出字節(jié)數(shù),錯(cuò)誤描述试浙。
4.3.2 CONFIGURATION - 配置
4.3.2.1 Activation - 激活管理
激活管理就是這個(gè)OpenVPN接入服務(wù)器是免費(fèi)的董瞻,但只提供兩個(gè)并發(fā)連入用戶。如果想要更多的并發(fā)用戶田巴,就需要購(gòu)買了钠糊,購(gòu)買好了以后就可以把購(gòu)買的Key復(fù)制進(jìn)去點(diǎn)激活即可。下面還有離線激活壹哺,是提供給這個(gè)接入服務(wù)器不能連接internet或者不能訪問openvpn的網(wǎng)站使用的抄伍。
4.3.2.2 Cluster - 集群模式
接入服務(wù)器集群就是定義一臺(tái)或者多臺(tái)節(jié)點(diǎn),共享相同的MySQL數(shù)據(jù)庫(kù)并協(xié)同工作管宵,以便VPN客戶端可以使用相同的憑據(jù)并連接到任何可用節(jié)點(diǎn)逝慧,而無需為每個(gè)節(jié)點(diǎn)進(jìn)行特定配置(即一個(gè)配置文件適用于同一集群中的所有節(jié)點(diǎn))。三個(gè)選項(xiàng)分別是不使用集群啄糙,建立一個(gè)新集群,加入一個(gè)存在的集群云稚。
4.3.2.3 TLS Setting - TLS設(shè)置
這里是配置OpenVPN協(xié)議的SSL/TLS選項(xiàng)隧饼,主要目的是保證客戶端連接是加密的。黃色部分是提醒静陈,需要使用2.3.7版本之后的客戶端軟件連接燕雁,否則是不支持的TLS的。另外淺藍(lán)色部分是告知鲸拥,如果是新的操作系統(tǒng)上安裝了接入服務(wù)器拐格,那么系統(tǒng)不允許舊版本的TLS,建議使用1.2即缺省配置刑赶。上面的選項(xiàng)是客戶端連接OpenVPN服務(wù)器的捏浊,下面是訪問接入服務(wù)器Web界面的加密協(xié)議。都選擇缺省即可撞叨。沒什么實(shí)質(zhì)內(nèi)容金踪,就不符圖了。
4.3.2.4 Network Settings - 服務(wù)器網(wǎng)絡(luò)設(shè)置
這個(gè)是接入服務(wù)器設(shè)置的重點(diǎn)牵敷,包括三個(gè)方面:VPN服務(wù)器胡岔;管理員Web服務(wù)器;客戶端Web服務(wù)器枷餐。注意點(diǎn):在這里的配置修改后會(huì)導(dǎo)致現(xiàn)有的客戶端不能訪問靶瘸,需要重新下載配置再訪問。
VPN服務(wù)器:主機(jī)名或者IP地址,這里應(yīng)該是公網(wǎng)的域名或者IP地址怨咪;接口和IP地址屋剑,這里有可能是多個(gè)網(wǎng)卡,選擇偵聽哪個(gè)接口惊暴,或者哪個(gè)IP地址饼丘;選擇訪問的協(xié)議,默認(rèn)是兩種協(xié)議都選擇模式辽话,但我在防火墻開端口時(shí)出現(xiàn)問題肄鸽,不確定是不是我防火墻沒有設(shè)置好導(dǎo)致,所以我就選擇了常用的UDP模式油啤;最后一個(gè)是服務(wù)器對(duì)接的端口號(hào)典徘,默認(rèn)是1194,為了防止端口掃描益咬,我設(shè)置了一個(gè)比較大的隨機(jī)端口號(hào)逮诲。
管理員Web服務(wù)器:接入服務(wù)器的Web管理端配置,這里都選默認(rèn)即可幽告,如果你有多個(gè)網(wǎng)卡或IP地址梅鹦,那么可以設(shè)置與VPN連接的網(wǎng)卡不一樣,端口默認(rèn)是943冗锁,也可以修改齐唆。
客戶端Web服務(wù)器:設(shè)置可以和管理員訪問的相同。
4.3.2.5 VPN Settings - VPN設(shè)置
VPN設(shè)置也是關(guān)鍵性設(shè)置冻河。這部分包括VPN的IP網(wǎng)絡(luò)箍邮,路由,DNS設(shè)置叨叙,DNS解析區(qū)域锭弊,缺省的域后綴。
VPN的IP網(wǎng)絡(luò):主要是指定為VPN客戶端在虛擬網(wǎng)絡(luò)中創(chuàng)建的地址和網(wǎng)絡(luò)掩碼擂错。
????????????Dynamic IP Address Network 動(dòng)態(tài)獲得IP地址
????????????當(dāng)一個(gè)用戶未在“用戶權(quán)限”頁(yè)面上特別設(shè)定VPN的IP地址時(shí)味滞,將會(huì)為該用戶連上的客戶端分配一個(gè)來自以下網(wǎng)段的IP地址。這個(gè)類似DHCP的功能钮呀。
????????????Static IP Address Network 指定靜態(tài)IP地址
????????????在“用戶權(quán)限”頁(yè)面上為特定用戶指定的任何靜態(tài)VPN IP地址都必須位于以下網(wǎng)絡(luò)內(nèi)桃犬。
? ??????????Group Default IP Address Network 為組設(shè)定IP地址
????????????當(dāng)組沒有特定的動(dòng)態(tài) IP 地址池設(shè)置時(shí),將從以下子網(wǎng)列表中分配組的動(dòng)態(tài) IP 地址池行楞。
路由設(shè)置:
?????? VPN接入的客戶端是否能訪問私有網(wǎng)段(服務(wù)器端這邊的非廣域網(wǎng)絡(luò))攒暇?選項(xiàng)有不能(即只能通過VPN網(wǎng)絡(luò)訪問服務(wù)器端這邊的Internet,或者什么都不能訪問子房,如果是這樣真不知道為啥搭建這個(gè)服務(wù)器)形用;可以通過NAT方式訪問就轧;可以通過路由方式訪問。一般選通過NAT訪問田度。
?????? 指定所有連接的客戶端能夠訪問的私有網(wǎng)段(每行一個(gè))妒御。就是如果上面選項(xiàng)選了yes,那么就允許客戶端訪問服務(wù)器端這邊的私有網(wǎng)絡(luò)镇饺,這里是允許訪問的網(wǎng)段乎莉,一行代表一個(gè)允許的網(wǎng)段。
?????? 是否允許客戶端能夠通過VPN線路訪問Internet奸笤?這個(gè)選項(xiàng)對(duì)于那些科學(xué)上網(wǎng)的人特別重要惋啃,懂得都懂。
?????? 是否允許客戶端訪問VPN網(wǎng)關(guān)IP地址上的網(wǎng)絡(luò)服務(wù)监右?可能是能訪問VPN服務(wù)器所在這個(gè)網(wǎng)關(guān)上的一些網(wǎng)絡(luò)服務(wù)边灭。但能有什么服務(wù)我也不知道。
DNS設(shè)置:推送DNS服務(wù)器給客戶端是可選的健盒,除非客戶端的Internet流量是通過VPN路由的绒瘦。
?????? 不用更改客戶端上的DNS服務(wù)器設(shè)置;
?????? 給客戶端設(shè)置與接入服務(wù)器相同的DNS服務(wù)器扣癣;公司里有DNS服務(wù)器需要解析內(nèi)部設(shè)備時(shí)是需要設(shè)置這個(gè)地方為yes的惰帽。
?????? 給客戶端設(shè)置指定的DNS服務(wù)器;該設(shè)置是和第二天相斥的父虑。
DNS解析區(qū)域(可選):
?????? 對(duì)于僅路由私用流量(而不是 Internet 流量)的拆分隧道该酗,請(qǐng)指定客戶端將通過接入服務(wù)器推送的 DNS 服務(wù)器解析的內(nèi)部域輸入下面列表,多個(gè)用逗號(hào)隔開频轿。請(qǐng)注意,某些客戶端(如 Windows)可能只遵循給定的第一個(gè)域烁焙。這個(gè)一般在公司里比較使用航邢,公司的DNS服務(wù)器會(huì)解析多個(gè)內(nèi)部域名,這里就放希望解析的域名骄蝇,有些不希望通過這個(gè)DNS解析的域名不用列在這里膳殷。如果沒有特別要求,就不用列出來九火。
缺省DNS后綴(可選):
?????? 在此處設(shè)置默認(rèn)后綴將使 Windows 客戶端能夠?qū)⒅鳈C(jī)名解析為 FQDN 名稱赚窃。如果您的組織使用 Windows 域或 Active Directory,這尤其有用岔激。此處只能定義一個(gè)默認(rèn)后綴勒极。
4.3.2.6 Advanced VPN - VPN高級(jí)設(shè)置
Inter-Client Communication 客戶端之間的通信
?????? 每個(gè)連到VPN網(wǎng)絡(luò)里的客戶端是否可以相互通信?
?????? 是否允許管理員權(quán)限的VPN用戶能訪問所有接入的VPN客戶端虑鼎?
Multiple Sessions per User 每個(gè)用戶允許多個(gè)連接進(jìn)程
?????? ?允許同一個(gè)用戶可以建立多個(gè)并發(fā)VPN連接(當(dāng)為用戶配置了靜態(tài)的VPN IP地址時(shí)則自動(dòng)禁用)
Default Compression Settings (discouraged) 缺省壓縮設(shè)置(不鼓勵(lì))
?????? 默認(rèn)情況下在客戶端 VPN 連接上是啟用壓縮的辱匿。但現(xiàn)在不鼓勵(lì)啟用該設(shè)置键痛,因?yàn)槭褂眉用苓M(jìn)行壓縮現(xiàn)在并不安全的。它有可能會(huì)引起VORACLE等類似攻擊匾七。有關(guān)詳細(xì)信息絮短,可以參閱 OpenVPN 訪問服務(wù)器文檔站點(diǎn)。原來配置壓縮時(shí)我都會(huì)默認(rèn)選上昨忆,但現(xiàn)在應(yīng)該是出現(xiàn)了不安全的情況丁频,建議不開啟。
TLS Control Channel Security 控制通道安全
?????? 為 VPN 隧道實(shí)現(xiàn)額外的安全層邑贴∠铮“tls-auth”選項(xiàng)實(shí)現(xiàn)用于對(duì)控制通道數(shù)據(jù)包進(jìn)行簽名和驗(yàn)證的預(yù)共享密鑰×《校“tls-crypt”選項(xiàng)實(shí)現(xiàn)用于對(duì)控制通道數(shù)據(jù)包進(jìn)行簽名胁勺、驗(yàn)證和加密的預(yù)共享密鑰。建議使用tls-crypt独旷,但一些較舊的系統(tǒng)可能只與tls-auth兼容署穗,甚至可能根本不支持這一點(diǎn)。請(qǐng)注意嵌洼,更改此選項(xiàng)會(huì)影響所有客戶端案疲,這意味著您必須使用新的配置文件重新預(yù)配 VPN 客戶端。訪問服務(wù)器還支持 tls-cryptv2麻养,它支持較新客戶端的每個(gè)客戶端密鑰褐啡。使用 tls-auth 和 tls-crypt,Access Server 將在混合模式下運(yùn)行鳖昌,該模式同時(shí)接受 tls-cryptv2 和 tls-auth/tls-crypt备畦。使用 tls-cryptv2 選項(xiàng),訪問服務(wù)器將僅允許 tls 加密 v2 客戶端许昨。此處建議選默認(rèn)值懂盐。
Data channel ciphers 數(shù)據(jù)通道密碼算法
?????? 數(shù)據(jù)通道密碼算法能加密網(wǎng)絡(luò)數(shù)據(jù)包。
冒號(hào)分隔列表的內(nèi)容里包含了允許的數(shù)據(jù)通道密碼算法糕档,優(yōu)先級(jí)是遞減莉恼。OpenVPN接入服務(wù)器會(huì)選擇這個(gè)列表中客戶端支持的的第一個(gè)密碼算法。建議這個(gè)列表應(yīng)該總是包括至少AES-128-GCM或者AES-256-GCM速那,以避免兼容性的問題俐银。
有效的密碼算法包括AES-256-GCM, AES-128-GCM, Chacha20-Poly1305,
AES-128-CBC, AES-256-CBC和BF-CBC(已棄用)。AEAD密碼算法(AES-GCM和Chacha20-Poly1305)相對(duì)于速度和安全性來說是首選的比較時(shí)髦的密碼算法端仰。
原來手動(dòng)配置密碼算法的時(shí)候捶惜,最早都用的是AES-128-CBC的,后來變到256荔烧,應(yīng)該是加密位數(shù)更高了售躁。Chacha20-Poly的算法原來在其他科學(xué)上網(wǎng)的加密算法中見過坞淮,速度應(yīng)該非常不錯(cuò)。建議最前面列上時(shí)髦的算法陪捷,最后保底保留AES-256-CBC的回窘。后面的例子已經(jīng)寫的很清楚了。
支持舊客戶端不支持的密碼算法市袖,這僅僅影響帶上—enable-small編譯的OpenVPN 2.3.x客戶端(或更早的版本)啡直。
Windows Networking (Optional) Windows聯(lián)網(wǎng)設(shè)置(可選)
?????? 不要改變客戶端上Windows網(wǎng)絡(luò)設(shè)置。
?????? 不使用客戶端上NetBIOS over TCP/IP協(xié)議苍碟。
?????? 啟用客戶端上NetBIOS over TCP/IP協(xié)議并且能使用這些Windows的網(wǎng)絡(luò)設(shè)置酒觅。
?????? 這三個(gè)選項(xiàng)都是互斥的,還不如做成選項(xiàng)微峰。選擇最后一個(gè)后舷丹,下面會(huì)出現(xiàn)需要設(shè)置WINS服務(wù)器之類的Windows網(wǎng)絡(luò)設(shè)置。沒有強(qiáng)烈的需求蜓肆,可以選擇第一項(xiàng)即可颜凯。
Connection Security Refresh 安全連接刷新時(shí)間
?????? 出于安全方面的考慮,每個(gè)TLS會(huì)話都按指定的時(shí)間間隔重新協(xié)商連接仗扬。默認(rèn)60分鐘症概。
Private Routed Subnets (Optional) 可以路由到專用網(wǎng)絡(luò)的哪些子網(wǎng)(可選)
?????? 專用網(wǎng)絡(luò)的子網(wǎng)列表(每行一條),這些僅僅是能通過路由而不是NAT方式訪問的區(qū)域早芭。
Additional OpenVPN Config Directives(Advanced)? 附加的OpenVPN配置指令(高級(jí))
?????? 你可以指定一些OpenVPN指令添加到客戶端或/和服務(wù)器的配置文件里彼城,在下面的這兩個(gè)文本框里輸入所需的指令,每行一個(gè)退个。
?????? 注:如果某一行以減號(hào)開頭募壕,則該指令將從配置中刪除。星號(hào)可用作通配符以匹配 0 個(gè)或多個(gè)字符语盈。例如舱馅,此配置指令刪除 'duplicate-cn' 指令:-duplicate-cn
4.3.2.7 Web Server Configuration – Web服務(wù)器配置
該頁(yè)面通常用于配置接入服務(wù)器的證書/密匙。
Active Certificate 激活的證書
該部分顯示的是已經(jīng)配置好的Web服務(wù)器的證書的信息黎烈,這里包括證書新人警告习柠,證書的主題匀谣,證書頒發(fā)者照棋,證書的DNS名稱,證書的SHA256指紋武翎,生效時(shí)間烈炭,失效時(shí)間。
是否想要改變這個(gè)Web服務(wù)器的證書宝恶?
自簽名證書或者用戶自己提供的證書符隙。
如果選擇后者趴捅,會(huì)要求提供用戶驗(yàn)證Web服務(wù)器證書的CA證書的串聯(lián)列表,提供web的證書文件霹疫,提供web證書私鑰文件拱绑。
4.3.2.8 CWS Settings – CWS設(shè)置
此頁(yè)通常用于配置客戶端Web服務(wù)器的設(shè)置。
Configure CWS Access 配置CWS接入
限制客戶端Web服務(wù)器對(duì)服務(wù)器管理員的訪問丽蝎。
注意:即使選中這個(gè)框也不會(huì)阻止用戶使用XML-RPC/REST API來訪問客戶端配置猎拨。當(dāng)然使用下面的選項(xiàng)也可以禁止此功能。
Configure XML-RPC/REST API 配置XML-RPC/REST API
?????? 禁用API; 有限的使用API屠阻;完全能使用API 红省。
?????? 注意:XML-RPC/REST API必須能使用才能支持常規(guī)的客戶端功能。另外注意如果修改此設(shè)置則必須重啟Web服務(wù)器国觉。
Customize Client Web Server UI 自定義客戶端Web服務(wù)器界面
?????? 管理提供給客戶端Web服務(wù)器用戶鏈接的可見內(nèi)容吧恃。
?????? 桌面客戶端,OpenVPN連接v3(新)Windows客戶端麻诀,OpenVPN連接v3(新)Mac OS X客戶端痕寓,OpenVPN連接v2 Windows客戶端,OpenVPN連接v2 Mac OS X客戶端针饥,Linux客戶端厂抽。
?????? 移動(dòng)客戶端,iOS客戶端丁眼,Android客戶端筷凤。
?????? 概要配置,服務(wù)器鎖定苞七,用戶鎖定藐守,自動(dòng)登錄 (該配置及可以通過開關(guān)鎖定服務(wù)器,鎖定登錄用戶蹂风,開啟自動(dòng)登錄功能)卢厂。以上建議都按默認(rèn)配置。
4.3.2.9 Failover Settings – 故障轉(zhuǎn)移設(shè)置
Redundancy Model 冗余模式
?????? 接入服務(wù)器支持使用活動(dòng)/備用故障轉(zhuǎn)移的基于LAN冗余模式惠啄。
?????? 選擇冗余模式類型:
?????? 不冗余慎恒;LAN模式(基于UCARP的故障轉(zhuǎn)移)。
4.3.2.10 CA Management – CA管理
該頁(yè)展示了接入服務(wù)器上的CA撵渡。兩個(gè)標(biāo)簽頁(yè)融柬,一個(gè)是總覽,一個(gè)是創(chuàng)建新CA證書趋距。
創(chuàng)建新CA證書時(shí)粒氧,里面包括創(chuàng)建一個(gè)通用名稱;選擇一個(gè)簽名算法节腐;最后創(chuàng)建一個(gè)CA證書外盯。
4.3.3 USER MANAGEMENT – 用戶管理
4.3.3.1 User Permissions – 用戶權(quán)限
按用戶名/組搜索(使用“%”作為通配符)摘盆。注,這里有個(gè)用戶搜索框饱苟。
下面列出了所有手動(dòng)建好的用戶孩擂,還有利用LDAP之類系統(tǒng)登錄過的賬號(hào)∠浒荆可以設(shè)置管理員權(quán)限肋殴,自動(dòng)登錄權(quán)限,禁止訪問權(quán)限坦弟,刪除賬號(hào)护锤,更多設(shè)置。
更多設(shè)置里包括:認(rèn)證方式配置酿傍,分配內(nèi)部IP地址的類型(可以指定靜態(tài)地址便于后期查看日志)烙懦,接入控制(選擇接入方式,允許訪問到的網(wǎng)絡(luò)赤炒,允許訪問所有服務(wù)器側(cè)的專用網(wǎng)段氯析,允許訪問所有其他接入的VPN客戶端),配置VPN網(wǎng)關(guān)(選擇是的話莺褒,就是允許客戶端側(cè)的網(wǎng)段把連接的客戶端作為VPN網(wǎng)關(guān)訪問)掩缓,DMZ地址設(shè)置(說實(shí)話,這么個(gè)區(qū)域不知道為啥還要設(shè)置DMZ區(qū))遵岩。
4.3.3.2 User Profiles – 用戶配置
此頁(yè)面顯示針對(duì)每個(gè)用戶的用戶配置文件你辣。從 AS-2.9版 開始,每個(gè)用戶可以有多個(gè)配置文件尘执。
點(diǎn)擊下拉箭頭就會(huì)顯示該用戶每一個(gè)下載的配置文件的信息和最后使用的時(shí)間舍哄。
4.3.3.3 Group Permissions – 組權(quán)限
組的權(quán)限設(shè)置內(nèi)容和用戶的基本相同,可以自行建不同類型和需求的組誊锭,然后新建用戶添加到指定權(quán)限的組里即可表悬。內(nèi)容相仿,截圖省略。
4.3.4 AUTHENTICATION – 認(rèn)證
此部分對(duì)于高階用戶認(rèn)證方面是非常重要的,可以實(shí)現(xiàn)多種方式的認(rèn)證主慰,也是我選擇搭建OpenVPN接入服務(wù)器的終極目標(biāo)。
4.3.4.1 Settings – 用戶認(rèn)證設(shè)置
使用下面三種(外部)身份驗(yàn)證系統(tǒng)中的一種或者利用“用戶權(quán)限“頁(yè)面中進(jìn)行本地用戶配置都是可以用來驗(yàn)證用戶憑證的询吴。RADIUS和LDAP是可選的,但需要外部身份驗(yàn)證系統(tǒng)配合才能使用。對(duì)于我來說LDAP就是我本次配置的重中之重。
重要說明:自動(dòng)登錄類型的連接配置文件僅使用其證書進(jìn)行身份驗(yàn)證但绕,因此將繞過基于憑據(jù)的身份驗(yàn)證救崔。
Default Authentication System – 默認(rèn)的驗(yàn)證系統(tǒng)
用戶將使用默認(rèn)身份驗(yàn)證系統(tǒng)進(jìn)行身份驗(yàn)證惶看,除非已經(jīng)為組或用戶另外進(jìn)行了配置捏顺。灰顯的身份驗(yàn)證系統(tǒng)只有在配置并且啟用后才能被選為默認(rèn)身份驗(yàn)證系統(tǒng)纬黎。而本地和PAM身份驗(yàn)證系統(tǒng)是始終可用的幅骄。
Local User Passwords – 本地用戶密碼策略
通過本地身份驗(yàn)證系統(tǒng)進(jìn)行身份驗(yàn)證的用戶可以通過客戶端Web界面更改自己的密碼。還能啟用密碼強(qiáng)度要求本今。此功能不適用于通過PAM拆座,RADIUS,LDAP進(jìn)行身份驗(yàn)證的用戶冠息。
允許本地用戶修改密碼
密碼修改時(shí)強(qiáng)制使用強(qiáng)密碼
External User Registration – 外部用戶注冊(cè)
?????? 當(dāng)用戶使用設(shè)置為默認(rèn)的外部身份驗(yàn)證系統(tǒng)的憑據(jù)登錄時(shí)挪凑,默認(rèn)情況下,接入服務(wù)器會(huì)自動(dòng)將其添加到“用戶權(quán)限”標(biāo)簽頁(yè)中并授予其基本的訪問權(quán)限逛艰。但如果希望控制允許哪些賬號(hào)在接入服務(wù)器上登錄躏碳,則可以拒絕未在“用戶權(quán)限”標(biāo)簽頁(yè)中列出的用戶。該選項(xiàng)目的就是看你希望在接入服務(wù)器通過用戶權(quán)限列表里設(shè)置還是不在這里設(shè)置散怖,而在外部身份驗(yàn)證系統(tǒng)上設(shè)置菇绵。
拒絕不在缺省列表上的賬戶接入。
TOTP Muti-Factor Authentication – 基于時(shí)間的一次性多因素身份驗(yàn)證
?????? 基于時(shí)間的一次性密碼是一個(gè)額外的身份驗(yàn)證因素镇眷,啟用此設(shè)置將要求用戶在客戶端Web界面上注冊(cè)一次以進(jìn)行多重身份驗(yàn)證咬最,并使用生成的MFA代碼以及用戶憑證進(jìn)行后續(xù)登錄。多因素身份驗(yàn)證文檔可在網(wǎng)站上找到欠动。這個(gè)功能相當(dāng)好永乌,可以仔細(xì)研究一下文檔。
啟用基于時(shí)間的一次性多因素身份驗(yàn)證具伍。
Password Lockout Policy – 密碼鎖定策略
?????? 為了防止暴力破解铆遭,訪問服務(wù)器強(qiáng)制實(shí)施密碼鎖定策略。這將暫時(shí)鎖定太多身份驗(yàn)證失敗的用戶賬戶沿猜。密碼鎖定策略文檔可以在網(wǎng)站上找到枚荣。
多少次錯(cuò)誤以后鎖定用戶。默認(rèn)5次
鎖定的用戶再多少秒之后釋放啼肩。默認(rèn)900秒
4.3.4.2 RADIUS Authentication – RADIUS認(rèn)證
用現(xiàn)有的RADIUS系統(tǒng)來做接入服務(wù)器的用戶認(rèn)證橄妆,你必須首先配置并啟用它。然后RADIUS認(rèn)證通常需要設(shè)置成缺省的認(rèn)證系統(tǒng)祈坠,或者僅僅提供給特殊的組或用戶使用害碾。
RADIUS Settings - RADIUS設(shè)置
啟用RADIUS認(rèn)證
啟用RADIUS賬戶報(bào)告
賬戶名區(qū)分大小寫
RADIUS Server – RADIUS服務(wù)器
在下面可以設(shè)定RADIUS服務(wù)器的連接細(xì)節(jié)。包括主機(jī)名或IP地址赦拘,共享密碼慌随,認(rèn)證端口,Accounting Port(說實(shí)話,這個(gè)不知道如何翻譯阁猜,反正1812和1813就是RADIUS服務(wù)器標(biāo)準(zhǔn)對(duì)外端口)丸逸。
RADIUS Authentication Method – RADIUS驗(yàn)證方法
?????? 與RADIUS服務(wù)器連接時(shí)需要采取以下方法中的一種進(jìn)行身份驗(yàn)證。包括PAP剃袍,CHAP和MS-CHAPv2.
4.3.4.3 LDAP Authentication – LDAP認(rèn)證
用現(xiàn)有的LDAP系統(tǒng)來做接入服務(wù)器的用戶認(rèn)證黄刚,你必須首先配置并啟用它。然后LDAP認(rèn)證通常需要設(shè)置成缺省的認(rèn)證系統(tǒng)民效,或者僅僅提供給特殊的組或用戶使用憔维。這里是我本次配置最關(guān)心的地方,由于我使用Microsoft AD域(屬于LDAP的一種)認(rèn)證畏邢,是由于公司整體實(shí)施了AD域管理业扒,密碼認(rèn)證準(zhǔn)備全部使用AD作為統(tǒng)一的身份驗(yàn)證平臺(tái),用戶將不用使用其他密碼舒萎。
LDAP Settings – LDAP設(shè)置
啟用LDAP認(rèn)證
與LDAP服務(wù)器連接使用SSL(AD域好像不支持)
賬戶名區(qū)分大小寫(AD域不區(qū)分大小寫)
重新驗(yàn)證連接時(shí)自動(dòng)登錄用戶凶赁。
LDAP Server – LDAP服務(wù)器設(shè)置
在下面可以指定LDAP服務(wù)器連接細(xì)節(jié)。首選服務(wù)器逆甜,備選服務(wù)器虱肄,此處IP地址或內(nèi)部主機(jī)名。
初始化綁定的憑據(jù)方法:匿名綁定交煞,使用下面的綁定方法綁定咏窿。兩種方法互斥。選擇用下面的綁定方法綁定素征,下面會(huì)有初始化綁定賬戶和相應(yīng)密碼集嵌。這里簡(jiǎn)單說一下AD域的綁定賬戶請(qǐng)選擇一個(gè)能只讀你所要驗(yàn)證區(qū)域的用戶權(quán)限才行。
在Bind DN里既可以輸入該用戶的登錄賬號(hào)御毅,也可以輸入登錄賬號(hào)的全路徑根欧。
有效用戶的區(qū)域:這里要相當(dāng)注意,需要填寫一個(gè)你登錄賬號(hào)所屬的范圍端蛆,如果登錄賬號(hào)在這個(gè)范圍外凤粗,將不能正常登錄,哪怕組在這個(gè)范圍內(nèi)今豆,用戶在這個(gè)范圍外也不行嫌拣。這是我之前反復(fù)不能成功的坑。建議因?yàn)橛泻竺娴暮Y選機(jī)制呆躲,所以這里可以寫域最大的范圍异逐。
用戶名屬性:AD默認(rèn)使用sAMAccountName, 用戶名屬性通常在通用LDAP服務(wù)器里使用uid,而對(duì)于AD的LDAP服務(wù)器使用sAMAccountName插掂。
LDAP篩選器(可選):該處可以填寫哪個(gè)組的用戶可以登錄灰瞻,這個(gè)組的AD全路徑腥例。此附加要求使用LDAP查詢語(yǔ)法,例如酝润,如果只能是屬于特定LDAP組的成員燎竖,可以使用下面這個(gè)過濾器:memberOf=CN=VPNUsers,CN=Users,DC=example,DC=net? 這里就是先列出組名VPN Users,memberOf表示屬于哪個(gè)組袍祖,CN不是中國(guó)簡(jiǎn)稱,而是LDAP中的單位標(biāo)識(shí)谢揪,后面這個(gè)Users也是AD里的特定單位蕉陋,當(dāng)然你也可以建到一個(gè)不同的OU,這個(gè)OU名稱前面也需要用CN=拨扶,最后這兩個(gè)DC是表示AD建立時(shí)的虛擬域名凳鬓,比如你建了一個(gè)虛擬域名為xyz.local ,那么這兩個(gè)DC應(yīng)該寫成DC=xyz,DC=local? .
4.3.5 TOOLS – 工具
4.3.5.1 Configuration Profiles – 描述文件配置
配置描述文件用于在訪問服務(wù)器的不同設(shè)置集之間進(jìn)行選擇患民。你可以在正在運(yùn)行的服務(wù)器使用另外一個(gè)配置文件時(shí)編輯一個(gè)配置文件(因此當(dāng)前用戶不會(huì)受到正在進(jìn)行的編輯更改的影響)缩举。
激活描述文件
活動(dòng)描述文件的設(shè)置由正在運(yùn)行的接入服務(wù)器使用。
選擇一個(gè)描述文件進(jìn)行編輯
編輯描述文件就是你在此Web界面上編輯設(shè)置的描述文件匹颤。
創(chuàng)建一個(gè)新的配置描述文件
將現(xiàn)有描述文件復(fù)制成一個(gè)新的描述文件仅孩。
刪除一個(gè)描述文件
注:不能刪除當(dāng)前活動(dòng)的描述文件或者當(dāng)前編輯的描述文件(必須先選擇其他描述文件)。
4.3.5.2 DB Convert – 數(shù)據(jù)庫(kù)轉(zhuǎn)換
此頁(yè)用于將接入服務(wù)器的sqlite數(shù)據(jù)庫(kù)轉(zhuǎn)換為MySQL數(shù)據(jù)庫(kù)印蓖。
信息:接入服務(wù)器檢測(cè)到當(dāng)前正在使用默認(rèn)的sqlite后端辽慕。
某些接入服務(wù)器功能,如創(chuàng)建新的接入服務(wù)器群集或使用 RDS赦肃,需要 MySQL 或與 MySQL 兼容的數(shù)據(jù)庫(kù)后端溅蛉。此工具將您現(xiàn)有的 sqlite 數(shù)據(jù)庫(kù)轉(zhuǎn)換為 MySQL。MySQL服務(wù)器可以駐留在本地他宛,也可以駐留在遠(yuǎn)程計(jì)算機(jī)上船侧。無論哪種方式,請(qǐng)確保首先安裝好MySQL服務(wù)器厅各。
配置內(nèi)容包括镜撩,MySQL所在的主機(jī)名或IP地址,MySQL訪問端口队塘,訪問MySQL的用戶名和密碼琐鲁。
注意:按了“轉(zhuǎn)換數(shù)據(jù)庫(kù)”的按鈕將覆蓋此MySQL服務(wù)器上存在的任何現(xiàn)有接入服務(wù)器的數(shù)據(jù)庫(kù)內(nèi)容。
4.3.6 DOCUMENTATION – 文檔
點(diǎn)擊DOCUMENTATION自動(dòng)鏈接到了openvpn的官方網(wǎng)站文檔庫(kù) https://openvpn.net/static-links/documentation 該網(wǎng)站國(guó)內(nèi)直接不能訪問人灼。
4.3.7 SUPPORT – 支持
點(diǎn)擊SUPPORT自動(dòng)鏈接到openvpn的官方技術(shù)支持中心围段。
該網(wǎng)站的左邊導(dǎo)航欄的最后是Logout,登出按鈕投放,當(dāng)管理退出時(shí)奈泪,可以點(diǎn)擊此處。
4.4 客戶端界面
客戶端的網(wǎng)站如果沒有在4.3.2.4里特殊設(shè)置的話,那就是管理端網(wǎng)站后面把a(bǔ)dmin去掉即可涝桅。使用符合要求的賬戶登錄即可拜姿。登錄以后只有一個(gè)界面,
包括OpenVPN連接推薦在你的設(shè)備上使用鏈接冯遂;OpenVPN所有平臺(tái)的支持的鏈接(平臺(tái)包括Windows蕊肥,Mac OS,Linux蛤肌,Android壁却,iOS),OpenVPN連接程序v3(包括Windows和Mac OS)裸准。
可用的連接描述文件:你的描述文件展东,點(diǎn)擊就可以下載一個(gè)結(jié)尾為ovpn的文件。該文件其實(shí)就是一個(gè)文本文件炒俱,里面是該用戶連接服務(wù)器的描述文件盐肃,原本此文件都是手動(dòng)建立,這里自動(dòng)建立會(huì)包括證書等一堆配置設(shè)置权悟。
描述文件管理:點(diǎn)擊開以后砸王,這里可以創(chuàng)建一個(gè)新的描述文件,可以設(shè)置指定的通用名峦阁;也可以刪除之前的描述文件处硬,這樣以后該用戶就不能使用此描述文件登錄了。
最后就是登出按鈕拇派。