OpenConnect Server-ocserv部署

2024年2月6日 27点热度 0人点赞

在虛擬化環境中,有時候常常需要想要連接到內網環境進行配置更改等操作,vpn也成了必不可少的服務,常見的vpn 有很多種,大多數部署起來很麻煩,ocserv(OpenConnect Server) 是一個用於虛擬私人網絡(VPN)連接的開源客戶端軟件。它最初是為了連接到 Cisco AnyConnect VPN 服務器而開發的,但現在已經發展成為一個支持多種 VPN 協議的通用客戶端,包括 Windows、macOS、Linux 和 Android。

OpenConnect 的優點之一是它的靈活性。它可以通過命令行或圖形用戶界面進行配置,並且可以與各種 VPN 服務器兼容,包括 Cisco AnyConnect、Juniper SSL VPN 和 Palo Alto Networks GlobalProtect 等。

經驗證這是一個易部署、穩定的vpn,下面跟大傢介紹一下部署過程

1.配置yum

yum安裝並非最新版本,如果想要最新版本則使用下載源碼包安裝,點我 (opens new window)查看地址

yum installepel-release -y

開啟IP轉發

# vim /etc/sysctl.conf

net.ipv4.ip_forward =1

# 立即生效sysctl-p

2.2 安裝

# 直接yum安裝yum installocserv -y

# 查看安裝版本[root@~]# ocserv --version

#2.3 CA證書配置

ocserv啟動必須配置證書

CA證書我們使用certtool來生成,後面我們會使用該CA證書簽發ocserv所需證書來啟動,首先我們需要安裝該工具包:

yum installgnutls-utils -y

2.3.1創建CA模板

[root@iZuf68sht1z3iphanqf9fkZ ~]# mkdir /opt/ssl

[root@iZuf68sht1z3iphanqf9fkZ ~]# vim /opt/ssl/ca.tmpl

cn ="losinx"

organization ="losinx"

serial =1

expiration_days =3650ca

signing_key

cert_signing_key

crl_signing_key

模板參數說明

cn:通用名稱,用於指定證書的主題(Subject)。它通常是證書的主要標識,可以是域名、服務器名稱等。

organization: 組織名稱,用於指定證書所屬的組織。

serial: 序列號,用於標識證書的唯一性。每個證書必須具有唯一的序列號。

expiration_days: 證書的有效期天數,指定證書從頒發之日起的有效期限。

ca: 表示該證書是一個根證書(Certificate Authority),即證書頒發機構的證書。

signing_key: 表示該證書可用於簽名其他證書。

cert_signing_key: 表示該證書可用於簽名用戶證書。

crl_signing_key: 表示該證書可用於簽名 CRL(證書撤銷列表)。

2.3.2生成CA私鑰

私鑰文件是 CA 在數字證書頒發和管理過程中的關鍵部分,用於加密和簽署證書。

certtool --generate-privkey --outfile/opt/ssl/ca-key.pem

2.3.3 生成CA證書

創建ca證書時,指定私鑰及模板

certtool --generate-self-signed --load-privkey /opt/ssl/ca-key.pem --template/opt/ssl/ca.tmpl --outfile/opt/ssl/ca-cert.pem

2.4 ocserv服務證書生成

這次我們基於上面的CA證書簽發

2.4.1 創建證書模板文件

[root@iZuf68sht1z3iphanqf9fkZ ~]# vim /opt/ssl/ocserv.tmpl

cn ="losinx"

organization ="losinx"

serial =2

expiration_days =3650

tls_www_client

signing_key

證書參數解釋

cn: 證書的通用名稱,即證書的主題。可以根據需要將其修改為實際的名稱。

organization: 證書所屬的組織名稱。可以根據實際情況進行修改。

serial: 證書的序列號。每個證書必須具有唯一的序列號。請將其更改為適當的值。

expiration_days: 證書的有效期天數。可以根據需求進行更改。

tls_www_client: 表示該證書用於 TLS/SSL 客戶端身份驗證。

signing_key: 表示該證書使用之前生成的 CA 私鑰進行簽名。

2.4.2 生成和簽名證書

# 私鑰certtool --generate-privkey
--outfile/opt/ssl/ocserv-key.pem

# 證書certtool --generate-certificate --load-privkey /opt/ssl/ocserv-key.pem --load-ca-certificate /opt/ssl/ca-cert.pem --load-ca-privkey /opt/ssl/ca-key.pem
--template/opt/ssl/ocserv.tmpl
--outfile/opt/ssl/ocserv-cert.pem

參數說明

ca-key.pem: 之前生成的 CA 私鑰文件。

ca-crt.pem :是之前生成的 CA 證書文件。

ocserv.tmpl :是我們創建的ocser證書模板文件。

ocserv-cert.pem :是生成的證書文件的輸出路徑和文件名。

2.5 配置ocserv

yum安裝之後,默認配置文件在/etc/ocserv下的ocserv.conf文件

配置認證模式

# 配置認證模式# ## 同時還支持本地用戶帳戶、LDAP、RADIUS 等,以實現靈活的認證方式auth ="plain[passwd=/etc/ocserv/ocpasswd]"

端口

默認為443端口

tcp-port =9143

udp-port =9143

證書

使用2.4生成的證書

# 配置上面的證書文件和私鑰

server-cert =/opt/ssl/ocserv-cert.pem

server-key =/opt/ssl/ocserv-key.pem

# 這裡我們也可以直接使用ca證書,這樣上面生成ocserv證書就可以省略

server-cert =/opt/ssl/ca-cert.pem

server-key =/opt/ssl/ca-key.pem

1

配置vpn網段

這裡盡量使用一個獨立的網段,不要跟服務器及本地網段有沖突

ipv4-network =10.9.0.0

(此網段需要在交換機配置 靜態路由 ip route-statis 10.9.0.0 255.255.255.0 172.16.X.X)

ipv4-netmask =255.255.255.252

2.6 啟動

# 首次安裝先添加至開機自啟動systemctl enableocserv

# 啟動systemctl restart ocserv

# 查看端口監聽netstat-nlpt|grep9143

1

#三、客戶端

上面部署好之後,如果想要登陸,我們需要下載客戶端進程配置登錄,各種客戶端下載地址(opens new window)

安裝這裡就不再說明,都是圖形化直接點擊下一步下一步完成安裝即可。

#四、賬號管理

在上面我們配置ocserv時,使用 plain 認證方式,並且密碼文件位於 /etc/ocserv/ocpasswd,更多命令管理點擊查看(opens new window)

#4.1 創建用戶

[root@iZuf68sht1z3iphanqf9fkZ ~]# touch /etc/ocserv/ocpasswd

[root@iZuf68sht1z3iphanqf9fkZ ~]# ocpasswd tchuaEnter password:

Re-enter password:

#4.2 客戶端配置

新建配置

參數配置

參數說明

① vpn的名字,可以自定義

② vpn地址,IP 端口(註意需要防火墻放行該端口)

Firewall-cmd --add-masquerade --permanent

Firewall-cmd --add-port=9143/tcp --permanent

Firewall-cmd --add-port=2211/tcp --permanent

③ vpn賬號

④保存配置

連接

參數配置保存後,點擊Connect

密碼

輸入vpn賬號密碼,點擊

連接狀態