亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

企業(yè)內(nèi)網(wǎng)神器OpenVPN

 

VPN詳解

一、VPN介紹

  1. 什么是vpn?

# VPN是虛擬專(zhuān)用網(wǎng)絡(luò)的縮寫(xiě),它是兩個(gè)或多個(gè)物理網(wǎng)絡(luò)(或設(shè)備)之間溝通互聯(lián)網(wǎng)/公共網(wǎng)絡(luò)創(chuàng)建的虛擬網(wǎng)絡(luò),可以為企業(yè)之間或者個(gè)人與企業(yè)之間提供安全(加密)的數(shù)據(jù)傳輸隧道服務(wù)。

  1. vpn的作用是什么?

# vpn的功能主要就是幫助不在公司內(nèi)部局域網(wǎng)內(nèi)的人員可以通過(guò)數(shù)據(jù)加密的方式遠(yuǎn)程訪問(wèn)公司內(nèi)部資源

  1. 兩種基本的vpn類(lèi)型
1. 遠(yuǎn)程訪問(wèn)vpn
 允許用戶遠(yuǎn)程連接到專(zhuān)用網(wǎng)絡(luò),通過(guò)完全安全的internet連接進(jìn)行連接
2. 站點(diǎn)到站點(diǎn)vpn
 最常用的為公司與公司之間使用vpn,即可實(shí)現(xiàn)設(shè)在不同地點(diǎn)的公司之間進(jìn)行數(shù)據(jù)共享
  1. 常見(jiàn)的vpn協(xié)議

PPTP(點(diǎn)對(duì)點(diǎn)隧道協(xié)議)
優(yōu):windows自帶,無(wú)需安裝,網(wǎng)絡(luò)連接較為穩(wěn)定
缺:安全性低,可以被防火墻阻止(不建議用于公司或商業(yè)用途)
L2TP/IPsec------PPTP升級(jí)版
優(yōu):安全性較之pptp高,windows自帶,無(wú)需安裝,可用于具有相同vpn配置的多個(gè)設(shè)備
缺:速度較慢(加密算法導(dǎo)致),不建議用于cpu性能較低的計(jì)算機(jī)。
IKEv2/IPsec
優(yōu):速度加快;安全性較高;重連速度較快;與手機(jī)兼容性也較強(qiáng)(較適合用于手機(jī))
缺:搭建較為困難,暫時(shí)支持的平臺(tái)不是很多
OpenVPN
優(yōu):安全性較高;可配置性較強(qiáng);可以繞過(guò)防火墻
缺:需要安裝第三方軟件;安裝過(guò)程較為復(fù)雜;移動(dòng)端支持較差(手機(jī))

二、VPN部署

實(shí)驗(yàn)環(huán)境如下

公網(wǎng)IP:192.168.5.3

內(nèi)網(wǎng)IP:172.16.5.3

主機(jī)名:server

---------------------------'openvpn安裝'-------------------------------
# 下載安裝OpenVPN以及證書(shū)管理工具
[root@server ~]# yum -y install openvpn
[root@server ~]# yum -y install easy-rsa


---------------------------'準(zhǔn)備相關(guān)配置文件'-------------------------------
# 生成服務(wù)器配置文件
[root@server ~]# cp /usr/share/doc/openvpn-2.4.11/sample/sample-config-files/server.conf /etc/openvpn/

# 準(zhǔn)備證書(shū)簽發(fā)相關(guān)文件
[root@server ~]# cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-server

# 準(zhǔn)備簽發(fā)證書(shū)相關(guān)變量的配置文件
[root@server ~]# cp /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa-server/vars

# 注意默認(rèn)ca證書(shū)以及服務(wù)器證書(shū)有效期分別為3650天以及825天,可修改以下文件
# ca證書(shū)修改
    #set_var EASYRSA_CA_EXPIRE     3650
    set_var EASYRSA_CA_EXPIRE      36500
# 服務(wù)器證書(shū)修改
 #set_var EASYRSA_CERT_EXPIRE   825 
 set_var EASYRSA_CERT_EXPIRE    3650
 
 
---------------------------'初始化PKI并生成PKi相關(guān)目錄和文件'-------------------------------
[root@server ~]# cd /etc/openvpn/easy-rsa-server/3
[root@server 3]# ./easyrsa init-pki



---------------------------'生成CA證書(shū)'-------------------------------
[root@server 3]# pwd
/etc/openvpn/easy-rsa-server/3
# nopass代表不加密私鑰,主要方便后面導(dǎo)出公鑰與頒發(fā)服務(wù)器證書(shū)
# 此步驟做完即在/etc/openvpn/easy-rsa-server/3/pki下生成了ca.crt證書(shū)
[root@server 3]# ./easyrsa build-ca nopass

# openssl x509主要用于輸出證書(shū)信息,也能簽署證書(shū)請(qǐng)求文件、自簽署、轉(zhuǎn)換證書(shū)格式等
# -in 指定證書(shū)輸入文件
# -noount 默認(rèn)out選項(xiàng)為指定輸出文件,noout為默認(rèn)不輸出到文件
# -text 以text格式輸出證書(shū)內(nèi)容,即以最全格式輸出
# 所以此項(xiàng)的內(nèi)容為 格式化輸出證書(shū)內(nèi)容..
[root@server 3]# openssl x509 -in pki/ca.crt -noout -text


---------------------------'創(chuàng)建服務(wù)端證書(shū)申請(qǐng)'-------------------------------
[root@server 3]# ./easyrsa gen-req server nopass
'會(huì)有以下輸出'
Common Name (eg: your user, host, or server name) [server]:  # 直接回車(chē)
req: /etc/openvpn/easy-rsa-server/3/pki/reqs/server.req # 生成請(qǐng)求文件
key: /etc/openvpn/easy-rsa-server/3/pki/private/server.key # 生成私鑰文件



---------------------------'簽發(fā)服務(wù)端證書(shū)'-------------------------------
[root@server 3]# ./easyrsa sign server server
'會(huì)有以下輸出'
Confirm request details:   # 輸入yes回車(chē)
# 生成服務(wù)器證書(shū)文件(server.crt)
Certificate created at: /etc/openvpn/easy-rsa-server/3/pki/issued/server.crt

[root@server 3]# diff pki/certs_by_serial/C27FBCEF83E7E2370D5E923F48618049.pem pki/issued/server.crt 


---------------------------'創(chuàng)建Diffie-Hellman密鑰'-------------------------------
'以下方法二選一'
方法一:
[root@server 3]# pwd
/etc/openvpn/easy-rsa-server/3
# 此命令會(huì)生成/etc/openvpn/easy-rsa-server/3/pki/dh.pem文件
[root@server 3]# ./easyrsa gen-dh


方法二:
# 此命令會(huì)生成/etc/openvpn/dh2048.pem文件
[root@server 3]# openssl dhparam -out /etc/openvpn/dh2048.pem 2048



---------------------------'客戶端證書(shū)環(huán)境'-------------------------------
[root@server pki]# cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa-client
[root@server pki]# cp /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa-client/3/varsa
[root@server pki]# cd /etc/openvpn/easy-rsa-client/3

# 初始化證書(shū)目錄----client環(huán)境下
[root@server 3]# pwd
/etc/openvpn/easy-rsa-client/3
[root@server 3]# ./easyrsa init-pki

# 生成證書(shū)
# 生成用戶shilin的req以及key文件
[root@server 3]# ./easyrsa gen-req shilin nopass
'會(huì)有以下輸出'
Common Name (eg: your user, host, or server name) [shilin]: # 直接默認(rèn)回車(chē)即可
req: /etc/openvpn/easy-rsa-client/3/pki/reqs/shilin.req # 生成shilin.req文件
key: /etc/openvpn/easy-rsa-client/3/pki/private/shilin.key # 生成shilin.key文件



# 將客戶端證書(shū)請(qǐng)求文件復(fù)制到CA的工作目錄
[root@server 3]# cd /etc/openvpn/easy-rsa-server/3
[root@server 3]# ./easyrsa import-req /etc/openvpn/easy-rsa-client/3/pki/reqs/shilin.req shilin


[root@server 3]# pwd
/etc/openvpn/easy-rsa-server/3
# 簽發(fā)客戶端證書(shū),會(huì)生成/etc/openvpn/easy-rsa-server/3/pki/issued/shilin.crt文件,需輸入yes
[root@server 3]# ./easyrsa sign client shilin



---------------------------'將ca和服務(wù)器證書(shū)相關(guān)文件復(fù)制到服務(wù)器響應(yīng)目錄'-------------------------------
[root@server 3]# mkdir /etc/openvpn/certs
[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/ca.crt /etc/openvpn/certs/
[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/issued/server.crt /etc/openvpn/certs/
[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/private/server.key /etc/openvpn/certs/
[root@server 3]# cp /etc/openvpn/easy-rsa-server/3/pki/dh.pem /etc/openvpn/certs/
[root@server 3]# ls /etc/openvpn/certs/
ca.crt  dh.pem  server.crt  server.key



---------------------------'將客戶端私鑰與證書(shū)相關(guān)文件復(fù)制到服務(wù)器相關(guān)的目錄'-------------------------------
[root@server 3]# mkdir /etc/openvpn/client/shilin
[root@server 3]# find /etc/openvpn/ ( -name "shilin.key" -o -name "shilin.crt" -o -name ca.crt ) -exec cp {} /etc/openvpn/client/shilin ;
[root@server 3]# cd /etc/openvpn/client/shilin/
[root@server shilin]# ls
ca.crt  shilin.crt  shilin.key

三、OpenVPN服務(wù)端配置文件

以下為默認(rèn)配置文件說(shuō)明信息

#server.conf文件中以#或;開(kāi)頭的行都為注釋
[root@server ~]# grep -Ev "^#|^$" /etc/openvpn/server.conf
;local a.b.c.d  #本機(jī)監(jiān)聽(tīng)I(yíng)P,默認(rèn)為本機(jī)所有IP
port 1194       #端口
;proto tcp      #協(xié)議,生產(chǎn)推薦使用TCP
proto udp #默認(rèn)協(xié)議
;dev tap   #創(chuàng)建一個(gè)以太網(wǎng)隧道,以太網(wǎng)使用tap,一個(gè)tap設(shè)備允許完整的以太網(wǎng)幀通過(guò)Openvpn隧道,可提供非ip協(xié)議的支持,比如IPX協(xié)議和AppleTalk協(xié)議,tap等同于一個(gè)以太網(wǎng)設(shè)備,它操作第二層數(shù)據(jù)包如以太網(wǎng)數(shù)據(jù)幀。
dev tun    #創(chuàng)建一個(gè)路由IP隧道,生產(chǎn)推存使用tun.互聯(lián)網(wǎng)使用tun,一個(gè)tun設(shè)備大多時(shí)候,被用于基于IP協(xié)議的通訊。tun模擬了網(wǎng)絡(luò)層設(shè)備,操作第三層數(shù)據(jù)包比如IP數(shù)據(jù)封包。
;dev-node MyTap  #TAP-Win32適配器。非windows不需要配置
ca ca.crt       #ca證書(shū)文件
cert server.crt  #服務(wù)器證書(shū)文件
key server.key   #服務(wù)器私鑰文件
dh dh2048.pem    #dh參數(shù)文件
;topology subnet
server 10.8.0.0 255.255.255.0  #客戶端連接后分配IP的地址池,服務(wù)器默認(rèn)會(huì)占用第一個(gè)IP 10.8.0.1將做為客戶端的網(wǎng)關(guān)
ifconfig-pool-persist ipp.txt  #為客戶端分配固定IP,不需要配置,建議注釋
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100  #配置網(wǎng)橋模式,不需要配置,建議注釋
;server-bridge
;push "route 192.168.10.0 255.255.255.0"  #給客戶端生成的到達(dá)服務(wù)器后面網(wǎng)段的靜態(tài)路由,下一跳為openvpn服務(wù)器的10.8.0.1
;push "route 192.168.20.0 255.255.255.0"  #推送路由信息到客戶端,以允許客戶端能夠連接到服務(wù)器背后的其它私有子網(wǎng)
;client-config-dir ccd #為指定的客戶端添加路由,此路由通常是客戶端后面的內(nèi)網(wǎng)網(wǎng)段而不是服務(wù)端的,也不需要設(shè)置
;route 192.168.40.128 255.255.255.248 
;client-config-dir ccd    
;route 10.9.0.0 255.255.255.252
;learn-address ./script                #運(yùn)行外部腳本,創(chuàng)建不同組的iptables規(guī)則,無(wú)需配置
;push "redirect-gateway def1 bypass-dhcp" #啟用后,客戶端所有流量都將通過(guò)VPN服務(wù)器,因此生產(chǎn)一般無(wú)需配置此項(xiàng)
;push "dhcp-option DNS 208.67.222.222"   #推送DNS服務(wù)器,不需要配置
;push "dhcp-option DNS 208.67.220.220"
;client-to-client                       #允許不同的client直接通信,不安全,生產(chǎn)環(huán)境一般無(wú)需要配置
;duplicate-cn                           #多個(gè)用戶共用一個(gè)證書(shū),一般用于測(cè)試環(huán)境,生產(chǎn)環(huán)境都是一個(gè)用戶一個(gè)證書(shū),無(wú)需開(kāi)啟
keepalive 10 120         #設(shè)置服務(wù)端檢測(cè)的間隔和超時(shí)時(shí)間,默認(rèn)為每10秒ping一次,如果 120 秒沒(méi)有回應(yīng)則認(rèn)為對(duì)方已經(jīng)down
tls-auth ta.key 0 #訪止DoS等攻擊的安全增強(qiáng)配置,可以使用以下命令來(lái)生成:openvpn --
genkey --secret ta.key #服務(wù)器和每個(gè)客戶端都需要擁有該密鑰的一個(gè)拷貝。第二個(gè)參數(shù)在服務(wù)器端應(yīng)該為’0’,在客戶端應(yīng)該為’1’
cipher AES-256-CBC  #加密算法
;compress lz4-v2    #啟用Openvpn2.4.X新版壓縮算法
;push "compress lz4-v2"   #推送客戶端使用新版壓縮算法,和下面的comp-lzo不要同時(shí)使用
;comp-lzo          #舊戶端兼容的壓縮配置,需要客戶端配置開(kāi)啟壓縮,openvpn2.4.X等新版可以不用開(kāi)啟
;max-clients 100   #最大客戶端數(shù)
;user nobody         #運(yùn)行openvpn服務(wù)的用戶和組
;group nobody
persist-key          #重啟VPN服務(wù)時(shí)默認(rèn)會(huì)重新讀取key文件,開(kāi)啟此配置后保留使用第一次的key文件,生產(chǎn)環(huán)境無(wú)需開(kāi)啟
persist-tun          #啟用此配置后,當(dāng)重啟vpn服務(wù)時(shí),一直保持tun或者tap設(shè)備是up的,否則會(huì)先down然后再u(mài)p,生產(chǎn)環(huán)境無(wú)需開(kāi)啟
status openvpn-status.log #openVPN狀態(tài)記錄文件,每分鐘會(huì)記錄一次
;log         openvpn.log   #第一種日志記錄方式,并指定日志路徑,log會(huì)在openvpn啟動(dòng)的時(shí)候清空日志文件,不建議使用
;log-append openvpn.log   #第二種日志記錄方式,并指定日志路徑,重啟openvpn后在之前的日志后面追加新的日志,生產(chǎn)環(huán)境建議使用
verb 3                   #設(shè)置日志級(jí)別,0-9,級(jí)別越高記錄的內(nèi)容越詳細(xì),0 表示靜默運(yùn)行,只記錄致命錯(cuò)誤,4 表示合理的常規(guī)用法,5 和 6 可以幫助調(diào)試連接錯(cuò)誤。9 表示極度冗余,輸出非常詳細(xì)的日志信息
;mute 20                 #相同類(lèi)別的信息只有前20條會(huì)輸出到日志文件中
explicit-exit-notify 1   #通知客戶端,在服務(wù)端重啟后自動(dòng)重新連接,僅能用于udp模式,tcp模式不需要配置即可實(shí)現(xiàn)斷開(kāi)重新連接,且開(kāi)啟此項(xiàng)后tcp配置后將導(dǎo)致openvpn服務(wù)無(wú)法啟動(dòng),所以tcp時(shí)必須不能開(kāi)啟此項(xiàng)

以下為實(shí)驗(yàn)環(huán)境配置文件信息

[root@server ~]# cat /etc/openvpn/server.conf
# 指定默認(rèn)端口號(hào)
port 1194
# 指定vpn使用的協(xié)議為tcp,生產(chǎn)環(huán)境推薦使用
proto tcp
# 創(chuàng)建一個(gè)路由IP隧道,生產(chǎn)環(huán)境推薦使用tun
dev tun
# 指定證書(shū)文件
ca  /etc/openvpn/certs/ca.crt
# 指定服務(wù)器證書(shū)文件
cert  /etc/openvpn/certs/server.crt
# 指定服務(wù)器私鑰文件
key  /etc/openvpn/certs/server.key
# 指定dh參數(shù)文件
dh  /etc/openvpn/certs/dh.pem
# 指定客戶端連接后分配ip的地址池,服務(wù)器默認(rèn)會(huì)占用第一個(gè)ip作為網(wǎng)關(guān)
server 10.8.0.0 255.255.255.0
# 推送路由信息到客戶端,以允許客戶端能夠連接到服務(wù)器背后的其他私有子網(wǎng)
push "route 172.30.0.0 255.255.255.0"
# 設(shè)置服務(wù)端檢測(cè)的間隔和超時(shí)時(shí)間,10秒ping一次,120秒沒(méi)回應(yīng)則認(rèn)為對(duì)方down
keepalive 10 120
# 加密算法
cipher AES-256-CBC
# 啟用openvpn新版壓縮算法
compress lz4-v2
# 推送客戶端使用新版壓縮算法,不能和comp-lzo同時(shí)使用
push "compress lz4-v2"
# 最大客戶端數(shù)
max-clients 2048
# 運(yùn)行openvpn服務(wù)的用戶和組
user openvpn
group openvpn
# openvpn狀態(tài)記錄文件,每分鐘記錄一次
status  /var/log/openvpn/openvpn-status.log
# 指定日志路徑,生產(chǎn)環(huán)境建議使用
log-append   /var/log/openvpn/openvpn.log
# 設(shè)置日志級(jí)別,數(shù)字越大記錄的內(nèi)容越詳細(xì)
verb 3
# 相同類(lèi)別信息只有前20條會(huì)輸出到日志文件中
mute 20

--------------------------'以上為server.conf配置'-----------------------------
[root@server ~]# getent passwd openvpn
[root@server ~]# mkdir -p /var/log/openvpn/
[root@server ~]# chown openvpn.openvpn /var/log/openvpn

四、服務(wù)器端其他配置

# 修改內(nèi)核參數(shù)
[root@server ~]# cat /etc/sysctl.conf 
 net.ipv4.ip_forward = 1
[root@server ~]# sysctl -p

# 安裝防火墻
[root@server ~]# yum -y install iptables-services
# 清空防火墻默認(rèn)規(guī)則
[root@server ~]# iptables -F
# 關(guān)閉firewalld防火墻
[root@server ~]# systemctl disable --now firewalld
# 啟動(dòng)iptables防火墻
[root@server ~]# systemctl start iptables

# 添加vpn網(wǎng)絡(luò)轉(zhuǎn)發(fā)規(guī)則
[root@server ~]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
# 查看iptables規(guī)則
[root@server ~]# iptables -nvL -t nat


------------------------------'啟動(dòng)openvn'---------------------------------
[root@server ~]# systemctl daemon-reload
# 啟動(dòng)openvpn并設(shè)置開(kāi)機(jī)自啟
[root@server certs]# systemctl enable --now openvpn@server

五、OpenVPN客戶端配置文件

[root@server ~]# cat > /etc/openvpn/client/shilin/client.ovpn <<EOF
    client
    dev tun
    proto tcp
    remote 192.168.5.3 1194
    resolv-retry infinite
    nobind
    # persist-key
    # persist-tun
    ca ca.crt
    cert shilin.crt
    key shilin.key
    remote-cert-tls server
    # tls-auth ta.key 1
    cipher AES-256-CBC
    verb 3
    compress lz4-v2
EOF

六、 客戶端安裝使用OpenVPN

1. # 將此目錄下的四個(gè)文件傳輸?shù)絯indows客戶端
[root@server ~]# ls /etc/openvpn/client/shilin/
ca.crt  client.ovpn  shilin.crt  shilin.key


2. # windows客戶端安裝openvpn軟件
3. # 將從服務(wù)器傳輸下來(lái)的四個(gè)文件copy到windows下  %USERPROFILE%/openvpn/config 目錄下(默認(rèn)安裝)
4. # 啟動(dòng)客戶端

七、排錯(cuò)方法

1. 服務(wù)器openvpn啟動(dòng)異常
server:
 cat /etc/openvpn/server.conf  # 查看此文件內(nèi)的指定的路徑文件是否存在

2. windows客戶端軟件鏈接異常
client:
 查看client.ovpn文件中ip地址、端口、以及文件名是否正常 并與服務(wù)端的server.conf進(jìn)行比對(duì)
 查看client.ovpn文件之中是否有空格,可能會(huì)導(dǎo)致(管理接口)這種報(bào)錯(cuò)
server:
 (1)  netstat -lntp # 查看端口(服務(wù))是否開(kāi)啟
 (2) cat /etc/sysctl.conf # 查看路由轉(zhuǎn)發(fā)功能是否開(kāi)啟
  net.ipv4.ip_forward = 1
 (3) iptables -nvL -t nat # 查看iptables是否放行規(guī)則

..............

分享到:
標(biāo)簽:OpenVPN
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定