溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OpenV PN 配置范例及配置文件說明

發(fā)布時(shí)間:2020-07-30 06:11:56 來源:網(wǎng)絡(luò) 閱讀:937 作者:Meteor_hy 欄目:安全技術(shù)

一、配置文件參考樣例

1Easy-***配置范例

1). easy-*** 證書認(rèn)證 ***server的配置如下:

[root@master open***]# grep -P -v "^(#|;|$)" server.conf 

local 202.102.1.1

port 1194

proto udp

dev tap

ca ca.crt

cert ***server.crt

key ***server.key  # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

2). easy-*** 證書認(rèn)證 ***client的配置如下:

[root@slave2 open***]# grep -P -v "^(;|#|$)" client.conf 

client

dev tap

proto udp

remote ***.example.com 1194     #FQDN必須對(duì)應(yīng)***server外網(wǎng)網(wǎng)卡的IP

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

comp-lzo

verb 3


1). easy-*** 用戶名密碼認(rèn)證 ***server的配置如下:

[root@master open***]# grep -P -v "^(;|#|$)" server.conf 

auth-user-pass-verify /etc/open***/checkpsw.sh via-env

client-cert-not-required    #本行表示不需要驗(yàn)證客戶端證書,如果沒有本行客戶端必須提供證書

username-as-common-name

local 202.102.1.1

port 1194

proto udp

dev tap

ca ca.crt

cert ***server.crt

key ***server.key  # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

[root@master open***]# ll checkpsw.sh psw-file 

-rwxr-x--- 1 nobody nobody 1191 9   1 09:57 checkpsw.sh

-r-------- 1 nobody nobody   37 9   1 09:59 psw-file

說明:以下兩個(gè)文件的屬主、屬組必須是nobody; psw-file文件的權(quán)限必須是400

[root@master open***]# cat checkpsw.sh 

#!/bin/sh

########################################################

# checkpsw.sh (C) 2004 Mathias Sundman <mathias@open***.se>

#

# This script will authenticate Open*** users against

# a plain text file. The passfile should simply contain

# one row per user with the username first followed by

# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/open***/psw-file"

LOG_FILE="/var/log/open***-password.log"

TIME_STAMP=`date "+%Y-%m-%d %T"`

########################################################

if [ ! -r "${PASSFILE}" ]; then

  echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}

  exit 1

fi

CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`

if [ "${CORRECT_PASSWORD}" = "" ]; then 

  echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}

  exit 1

fi

if [ "${password}" = "${CORRECT_PASSWORD}" ]; then 

  echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}

  exit 0

fi

echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}

exit 1

[root@master open***]# cat psw-file 

robin123

marry123

#用戶名<tab>密碼


2). easy-*** 用戶名密碼認(rèn)證 ***client的配置如下:

[root@slave2 open***]# grep -P -v "^(#|;|$)" client.conf 

client

auth-user-pass

dev tap

proto udp

remote ***.example.com 1194

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

comp-lzo

verb 3


2Site-to-Site ***配置范例

1). site-to-site ***server 的配置文件如下:

[root@master open***]# grep -P -v "^(;|#|$)" server.conf 

local 202.102.1.1

port 1194

proto udp

dev tun

ca ca.crt

cert ***server.crt

key ***server.key  # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

client-config-dir ccd

route 192.168.2.0 255.255.255.0

client-to-client

keepalive 10 120

tls-auth ta.key 0 # This file is secret

cipher BF-CBC        # Blowfish (default)

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

[root@master open***]#open*** --genkey --secret ta.key

[root@master open***]#mkdir /etc/open***/ccd/

[root@master open***]#echo "iroute 192.168.2.0 255.255.255.0" > /etc/open***/ccd/slave2.example.com

說明:其中/etc/open***/ccd/slave2.example.com的文件名必須是*** client 證書中的common name 。


2). site-to-site ***client 的配置文件如下:

[root@slave2 open***]# grep -P -v "^(;|#|$)" client.conf 

client

dev tun

proto udp

remote ***.example.com 1194     #FQDN必須對(duì)應(yīng)***server外網(wǎng)網(wǎng)卡的IP

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

ns-cert-type server

tls-auth ta.key 1

comp-lzo

verb 3


二、配置文件參數(shù)說明

# 號(hào)和;號(hào)開頭的都是注釋

local 202.102.1.1       # 設(shè)置監(jiān)聽 IP,默認(rèn)是監(jiān)聽所有 IP

port 2194                 #Open*** 服務(wù)器監(jiān)聽端口

;proto tcp

proto udp               # 設(shè)置用 TCP 還是 UDP 協(xié)議?

dev tun                  # 設(shè)置創(chuàng)建 tun 的路由 IP 通道,還是創(chuàng)建 tap 的以太網(wǎng)通道; 

                             #路由 IP 容易控制,所以推薦使用它;但如果如 IPX 等必須;

                              #使用第二層才能通過的通訊,則可以用 tap 方式,tap 也就是以太網(wǎng)橋接

server 10.9.0.0 255.255.255.0     # 配置 *** 使用的網(wǎng)段,Open*** 會(huì)自動(dòng)提供基于該網(wǎng)段的 DHCP

                                                     # 服務(wù),但不能和任何一方的局域網(wǎng)段重復(fù),保證唯一

                                                     # server ip 默認(rèn)會(huì)設(shè)為.1 的地址。


push "route 172.18.2.0 255.255.255.0"   # 為客戶端創(chuàng)建對(duì)應(yīng)的路由,以令其通達(dá)公司網(wǎng)內(nèi)部服務(wù)器

                                                                  # 但記住,公司網(wǎng)內(nèi)部服務(wù)器也需要有可用路由返回到客戶端

ifconfig-pool-persist    /usr/local/etc/ipp.txt     # 維持一個(gè)客戶端和 virtual IP 的對(duì)應(yīng)表,以方便客戶端重新

                                                                       # 連接可以獲得同樣的 IP

push "dhcp-option DNS 172.18.2.23"              # Open*** DHCP 功能為客戶端提供DNSWINS

push "dhcp-option DNS 202.96.128.86"

# 這里是重點(diǎn),必須指定 SSL/TLS root certificate (ca),

# certificate(cert), and private key (key)

# ca 文件是服務(wù)端和客戶端都必須使用的,但不需要 ca.key

# 服務(wù)端和客戶端指定各自的.crt .key

# 請(qǐng)注意路徑,可以使用以配置文件開始為根的相對(duì)路徑,

# 也可以使用絕對(duì)路徑

# 請(qǐng)小心存放.key 密鑰文件

ca /usr/local/etc/keys/ca.crt

cert /usr/local/etc/keys/server.crt

key /usr/local/etc/keys/server.key

# 指定 Diffie hellman parameters.

dh /usr/local/etc/keys/dh2024.pem


crl-verify /usr/local/etc/keys/***crl.pem       #用于吊銷客戶證書


#增強(qiáng)安全性

# Generate with:

# open*** --genkey --secret ta.key

# The server and each client must have

# a copy of this key.

# The second parameter should be 0

# on the server and 1 on the clients.

tls-auth /usr/local/etc/keys/ta.key 0

# 設(shè)置服務(wù)端檢測(cè)的間隔和超時(shí)時(shí)間 10 ping 一次,如果 120 秒沒有回應(yīng)則認(rèn)為對(duì)方已經(jīng) down

keepalive 10 120

comp-lzo        # 使用 lzo 壓縮的通訊,服務(wù)端和客戶端都必須配置

status /var/log/open***-status.log      # 輸出短日志,每分鐘刷新一次,以顯示當(dāng)前的客戶端

#設(shè)置日志要記錄的級(jí)別。

#0 只記錄錯(cuò)誤信息。

#4 能記錄普通的信息。

#5 6 在連接出現(xiàn)問題時(shí)能幫助調(diào)試

#9 是極端的,所有信息都會(huì)顯示,甚至連包頭等信息都顯示(像 tcpdump

verb 4

mute 20         #相同信息的數(shù)量,如果連續(xù)出現(xiàn) 20 條相同的信息,將不記錄到日志中。

# Open*** nobody 用戶和組來運(yùn)行(安全)

user nobody

group nobody

# The persist options will try to avoid

# accessing certain resources on restart

# that may no longer be accessible because

# of the privilege downgrade.

# 重啟時(shí)仍保留一些狀態(tài)

persist-key

persist-tun

 

其他參數(shù)說明:

# 為特定的客戶端指定 IP 或指定路由,該路由通常是客戶端后面的

# 內(nèi)網(wǎng)網(wǎng)段,而不是服務(wù)端連接的網(wǎng)段

# ccd /etc/open*** 下的目錄,其中建有希望限制的客戶端 Common

# Name 為文件名的文件,并通過下面的命令寫入固定 IP 地址

# 例如 Common Name client1,則在/etc/open***/ccd/client1 寫有:

# ifconfig-push 10.9.0.1 10.9.0.2

client-config-dir /usr/local/etc/ccd

# 若客戶端希望所有的流量都通過 *** 傳輸,則可以使用該語句

# 其會(huì)自動(dòng)改變客戶端的網(wǎng)關(guān)為 *** 服務(wù)器,推薦關(guān)閉

# 一旦設(shè)置,請(qǐng)小心服務(wù)端的 DHCP 設(shè)置問題

;push "redirect-gateway"

# 如果您希望有相同 Common Name 的客戶端都可以登陸

# 也可以注釋下面的語句,推薦每個(gè)客戶端都使用不用的 Common Name

# 常用于測(cè)試

;duplicate-cn

# 設(shè)置最大用戶數(shù)

#max-clients 3

# 打開管理界面,可以定義監(jiān)控的 IP 和端口

management localhost 7505

# 缺省日志會(huì)記錄在系統(tǒng)日志中,但也可以導(dǎo)向到其他地方

# 建議調(diào)試的使用先不要設(shè)置,調(diào)試完成后再定義

;log /var/log/open***/open***.log

;log-append /var/log/open***/open***.log

# 配置為以太網(wǎng)橋模式,但需要使用系統(tǒng)的橋接功能

# 這里不需要使用

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

#記錄日志,每次重新啟動(dòng) open*** 后刪除原有的 log 信息

log /var/log/open***.log

# log 一致,每次重新啟動(dòng) open*** 后保留原有的 log 信息,新信息追加到文件最后

;log-append open***.log

#定義運(yùn)行 open*** 的用戶

user nobody

group nobody

#Run script or shell command cmd to validate client

#virtual addresses or routes. 具體查看 manual

;learn-address ./script

#其它的一些需要 PUSH Client

#用于記錄某個(gè) Client 獲得的 IP 地址,類似于 dhcpd.lease 文件,

#防止 open*** 重新啟動(dòng)后忘記”Client 曾經(jīng)使用過的 IP 地址

ifconfig-pool-persist ipp.txt

#Bridge 狀態(tài)下類似 DHCPD 的配置,為客戶分配地址,由于這里工作在路由模式,所以不使用

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# 隨機(jī)選擇一個(gè) Server 連接,否則按照順序從上到下依次連接

;remote-random

# 始終重新解析 Server IP 地址(如果 remote 后面跟的是域名)                

# 保證 Server IP 地址是動(dòng)態(tài)的使用 DDNS 動(dòng)態(tài)更新 DNS 后,Client 在自動(dòng)重新連接時(shí)重新解析 Server

IP 地址

# 這樣無需人為重新啟動(dòng),即可重新接入 ***

resolv-retry infinite

# 在本機(jī)不邦定任何端口監(jiān)聽 incoming 數(shù)據(jù),Client 無需此操作,除非一對(duì)一的 *** 有必要

nobind

# 如果你使用 HTTP 代理連接 *** Server,把 Proxy IP 地址和端口寫到下面

# 如果代理需要驗(yàn)證,使用 http-proxy server port [authfile] [auth-method]

# 其中 authfile 是一個(gè) 2 行的文本文件,用戶名和密碼各占一行,auth-method 可以省略,詳

細(xì)信息查看 Manual

;http-proxy-retry # retry on connection failures

;http-proxy [proxy server] [proxy port #]

# Server 使用 build-key-server 腳本什成的,在 x509 v3 擴(kuò)展中加入了 ns-cert-type 選項(xiàng)

# 防止 *** client 使用他們的 keys DNS hack 欺騙 *** client 連接他們假冒的 *** Server

# 因?yàn)樗麄兊?span > CA 里沒有這個(gè)擴(kuò)展

ns-cert-type server

a.定義 tun 為使用路由方式的 ***

b.小心處理證書的路徑,.key 文件要保存好,特別是 ca.key。

ca.key 不需要在 Open*** 中用到,可以另外保存)

注意,每個(gè)虛擬 tun 網(wǎng)卡都是成對(duì)的,只有 inet addr 標(biāo)識(shí)的才是用于 *** 通訊。并且必須在/30 網(wǎng)段

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI