日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

Centos 部署OpenVP* 证书+密码认证

發布時間:2023/12/10 centos 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Centos 部署OpenVP* 证书+密码认证 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、實驗環境

主機 內網IP 外網IP 系統 備注 OpenVPN 10.5.10.202 NAT映射外網訪問 Centos7 OpenVPN服務端 PC1 10.5.10.122 內網用戶 Windows7 x64 客戶端 PC2 10.5.10.123 內網用戶 Windows10 客戶端 PC3 外網用戶 Windows7 x64 客戶端

二、生成證書

1、添加epel yum源

[root@openvpn ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

2、下載證書生成工具easy-rsa

[root@openvpn ~]# yum -y install easy-rsa

3、創建證書環境目錄

[root@openvpn ~]# mkdir -p /opt/easy-rsa [root@openvpn ~]# cp -a /usr/share/easy-rsa/3.0.8/* /opt/easy-rsa/ [root@openvpn ~]# cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example /opt/easy-rsa/vars

4、修改vars配置文件,取消下面配置的注釋

[root@openvpn ~]# vi /opt/easy-rsa/vars set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "CN" set_var EASYRSA_REQ_PROVINCE "GuangDong" set_var EASYRSA_REQ_CITY "GuangZhou" set_var EASYRSA_REQ_ORG "IT" set_var EASYRSA_REQ_EMAIL "IT@qq.com" set_var EASYRSA_NS_SUPPORT "yes"

5、初始化,創建pki目錄用于存儲證書(以下都在/opt/easy-rsa目錄下操作)

[root@openvpn ~]# cd /opt/easy-rsa/ [root@openvpn easy-rsa]# ./easyrsa init-pki

?6、創建根證書,根證書用于ca對之后生成的server和client證書簽名時使用

[root@openvpn easy-rsa]# ./easyrsa build-ca

?7、創建server端證書和密鑰文件(nopass表示不加密密鑰文件,生成過程中直接默認回車)

[root@openvpn easy-rsa]# ./easyrsa gen-req server nopass

8、給server端證書簽名

[root@openvpn easy-rsa]# ./easyrsa sign server server

?9、創建Diffie-Hellman文件,密鑰交換時的Diffie-Hellman算法

[root@openvpn easy-rsa]# ./easyrsa gen-dh

10、創建client端證書和密鑰文件(nopass表示不加密密鑰文件,生成過程中直接默認回車)

[root@openvpn easy-rsa]# ./easyrsa gen-req client nopass

?11、給client端證書簽名

[root@openvpn easy-rsa]# ./easyrsa sign client client

三、OpenVPN服務端部署

1、安裝openvpn

[root@openvpn ~]# yum install -y openvpn

2、創建TLS認證密鑰

[root@openvpn ~]# openvpn --genkey --secret /etc/openvpn/ta.key

3、創建新的配置文件/etc/openvpn/server.conf

[root@openvpn ~]# vi /etc/openvpn/server.conf #監聽本機端口 port 1194 #指定采用的傳輸協議,可選tcp或udp proto tcp #指定創建的通信隧道類型,可選tun或tap dev tun #指定CA證書的文件路徑 ca ca.crt #指定服務器端的證書文件路徑 cert server.crt #指定服務器端的私鑰文件路徑 key server.key #指定迪菲赫爾曼參數的文件路徑,也就是交換證書 dh dh.pem #給客戶端分配地址池,注意:不能和VPN服務器內網網段有相同 server 10.8.0.0 255.255.255.0 #允許客戶端訪問內網網段 push "route 10.5.10.0 255.255.255.0" #服務器自動給客戶端分配IP后,客戶端下次連接時,仍然采用上次的IP地址"第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP" ifconfig-pool-persist ipp.txt #存活時間,10秒ping一次,120如未收到響應則視為斷線 keepalive 10 120 #最多允許100個客戶端連接 max-clients 100 #日志記錄位置 status openvpn-status.log #openvpn版本 verb 3 #允許客戶端與客戶端相連接,默認情況下客戶端只能與服務器相連接 client-to-client #openvpn日志記錄位置 log /var/log/openvpn.log #通過keepalive檢測超時后,重新啟動VPN,不重新讀取keys,保留第一次使用的keys persist-key #檢測超時后,重新啟動VPN,一直保持tun是linkup的.否則網絡會先linkdown然后再linkup persist-tun #開啟TLS-auth,使用ta.key防御攻擊.服務器端的第二個參數值為0,客戶端的為1 tls-auth /etc/openvpn/ta.key 0

4、拷貝證書到openvpn主配置文件目錄下

[root@openvpn ~]# cp -a /opt/easy-rsa/pki/ca.crt /etc/openvpn/ [root@openvpn ~]# cp -a /opt/easy-rsa/pki/issued/server.crt /etc/openvpn/ [root@openvpn ~]# cp -a /opt/easy-rsa/pki/private/server.key /etc/openvpn/ [root@openvpn ~]# cp -a /opt/easy-rsa/pki/dh.pem /etc/openvpn/

5、設置開機啟動,檢查服務端口

[root@openvpn ~]# systemctl start openvpn@server [root@openvpn ~]# systemctl status openvpn@server

四、OpenVPN客戶端部署

1、win7客戶端安裝,默認安裝(openvpn客戶端需要.net支持,網絡正常會自動安裝)

2、win10安裝,默認安裝(openvpn客戶端需要.net支持,網絡正常會自動安裝)

?

3、拷貝服務端生成的證書到openvpn客戶端安裝目錄的config目錄下

/opt/easy-rsa/pki/ca.crt /opt/easy-rsa/pki/issued/client.crt /opt/easy-rsa/pki/private/client.key /etc/openvpn/ta.key

4、在客戶端openvpn安裝目錄的config目錄下,新建一個client.ovpn文件,寫入配置

#指定當前VPN是客戶端 client #使用tun隧道傳輸協議 dev tun #使用udp協議傳輸數據 proto tcp #openvpn服務器IP地址端口號 remote 10.5.10.202 1194 #斷線自動重新連接,在網絡不穩定的情況下非常有用 resolv-retry infinite #不綁定本地特定的端口號 nobind #指定CA證書的文件路徑 ca ca.crt #指定當前客戶端的證書文件路徑 cert client.crt #指定當前客戶端的私鑰文件路徑 key client.key #指定日志文件的記錄詳細級別,可選0-9,等級越高日志內容越詳細 verb 3 #通過keepalive檢測超時后,重新啟動VPN,不重新讀取keys,保留第一次使用的keys persist-key #檢測超時后,重新啟動VPN,一直保持tun是linkup的。否則網絡會先linkdown然后再linkup persist-tun #使用ta.key防御攻擊。服務器端的第二個參數值為0,客戶端的為1 tls-auth ta.key 1

?5、啟動Open VPN客戶端軟件,連接成功OpenVPN的圖標會變成綠色

win7連接成功

?win10連接成功

?OpenVPN會分配一個IP地址給客戶端,客戶端會使用該虛擬網絡IP地址與服務端進行通信。

6、目前客戶端只能ping虛擬網絡的IP,不能跟內網其他主機互通

五、OpenVPN客戶端訪問內網

1、客戶端要想跟內網通訊還需要openvpn服務端開啟內核轉發

[root@openvpn ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf [root@openvpn ~]# sysctl -p net.ipv4.ip_forward = 1

2、方法一:添加路由規則方式訪問內部網絡

在內網主機上添加一條路由規則,讓內網主機有回到OpenVPN客戶端的路由。如果不添加,那內網主機只能接受到來自客戶端的包,但是沒法把響應的包傳回去。

弊端:如果有成白上千臺主機時,每一臺主機都要添加路由規則,這樣任務量是比較大的。

3、方法二:添加防火墻方式訪問內部網絡

在服務端開啟防火墻,放行openvpn服務,并且開啟masquerade

優點:只需在OpenVPN服務端配置防火墻規則,內部網絡主機無需配置

[root@openvpn ~]# systemctl start firewalld [root@openvpn ~]# firewall-cmd --add-masquerade --permanent [root@openvpn ~]# firewall-cmd --add-service=openvpn --permanent [root@openvpn ~]# firewall-cmd --add-port=1194/tcp --permanent [root@openvpn ~]# firewall-cmd --reload

六、證書+密碼認證

1、修改OpenVPN服務端配置文件

#在最后增加以下配置 [root@openvpn ~]# vi /etc/openvpn/server.conf #允許使用自定義腳本 script-security 3 #腳本路徑 auth-user-pass-verify /etc/openvpn/check.sh via-env #用戶密碼登陸方式驗證 username-as-common-name

加上client-cert-not-required則代表只使用用戶名密碼方式驗證登錄,如果不加,則代表需要證書和用戶名密碼雙重驗證登錄

2、添加腳本

[root@openvpn ~]# vi /etc/openvpn/check.sh #!/bin/sh ########################################################### PASSFILE="/etc/openvpn/openvpnpass" LOG_FILE="/var/log/openvpn-password.log" TIME_STAMP=`date "+%Y-%m-%d %T"`if [ ! -r "${PASSFILE}" ]; thenecho "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}exit 1 fiCORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`if [ "${CORRECT_PASSWORD}" = "" ]; thenecho "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}exit 1 fi if [ "${password}" = "${CORRECT_PASSWORD}" ]; thenecho "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}exit 0 fiecho "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE} exit 1

3、增加執行權限

[root@openvpn ~]# chmod +x /etc/openvpn/check.sh

4、增加用戶密碼文件

[root@openvpn ~]# vi /etc/openvpn/openvpnpass openvpn openvpn@123

5、重啟openvpn服務

[root@openvpn ~]# systemctl restart openvpn@server

6、修改客戶端安裝路徑config目錄下的client.opvn配置文件,在最后增加

auth-user-pass

?

七、出口防火墻設置

1、在出口設備配置映射,映射openvpn 1194端口到公網,允許用戶通過對應的公網地址+端口訪問

2、修改客戶端的client.ovpn文件,把遠程地址改為公網IP+端口

#openvpn服務器IP地址端口號 remote 公網IP 1194

3、客戶端退出重新登錄即可

總結

以上是生活随笔為你收集整理的Centos 部署OpenVP* 证书+密码认证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。