您好,登錄后才能下訂單哦!
一、配置文件參考樣例
1、Easy-***配置范例
1). easy-*** 證書認證 ***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-*** 證書認證 ***client的配置如下:
[root@slave2 open***]# grep -P -v "^(;|#|$)" client.conf
client
dev tap
proto udp
remote ***.example.com 1194 #此FQDN必須對應***server外網網卡的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-*** 用戶名密碼認證 ***server的配置如下:
[root@master open***]# grep -P -v "^(;|#|$)" server.conf
auth-user-pass-verify /etc/open***/checkpsw.sh via-env
client-cert-not-required #本行表示不需要驗證客戶端證書,如果沒有本行客戶端必須提供證書
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
說明:以下兩個文件的屬主、屬組必須是nobody; psw-file文件的權限必須是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-*** 用戶名密碼認證 ***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
2、Site-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必須對應***server外網網卡的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
二、配置文件參數說明
# 號和;號開頭的都是注釋
local 202.102.1.1 # 設置監聽 IP,默認是監聽所有 IP
port 2194 #Open*** 服務器監聽端口
;proto tcp
proto udp # 設置用 TCP 還是 UDP 協議?
dev tun # 設置創建 tun 的路由 IP 通道,還是創建 tap 的以太網通道;
#路由 IP 容易控制,所以推薦使用它;但如果如 IPX 等必須;
#使用第二層才能通過的通訊,則可以用 tap 方式,tap 也就是以太網橋接
server 10.9.0.0 255.255.255.0 # 配置 *** 使用的網段,Open*** 會自動提供基于該網段的 DHCP
# 服務,但不能和任何一方的局域網段重復,保證唯一
# server 端 ip 默認會設為.1 的地址。
push "route 172.18.2.0 255.255.255.0" # 為客戶端創建對應的路由,以令其通達公司網內部服務器
# 但記住,公司網內部服務器也需要有可用路由返回到客戶端
ifconfig-pool-persist /usr/local/etc/ipp.txt # 維持一個客戶端和 virtual IP 的對應表,以方便客戶端重新
# 連接可以獲得同樣的 IP
push "dhcp-option DNS 172.18.2.23" # 用 Open*** 的 DHCP 功能為客戶端提供DNS、WINS 等
push "dhcp-option DNS 202.96.128.86"
# 這里是重點,必須指定 SSL/TLS root certificate (ca),
# certificate(cert), and private key (key)
# ca 文件是服務端和客戶端都必須使用的,但不需要 ca.key
# 服務端和客戶端指定各自的.crt 和.key
# 請注意路徑,可以使用以配置文件開始為根的相對路徑,
# 也可以使用絕對路徑
# 請小心存放.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 #用于吊銷客戶證書
#增強安全性
# 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
# 設置服務端檢測的間隔和超時時間 每 10 秒 ping 一次,如果 120 秒沒有回應則認為對方已經 down
keepalive 10 120
comp-lzo # 使用 lzo 壓縮的通訊,服務端和客戶端都必須配置
status /var/log/open***-status.log # 輸出短日志,每分鐘刷新一次,以顯示當前的客戶端
#設置日志要記錄的級別。
#0 只記錄錯誤信息。
#4 能記錄普通的信息。
#5 和 6 在連接出現問題時能幫助調試
#9 是極端的,所有信息都會顯示,甚至連包頭等信息都顯示(像 tcpdump)
verb 4
mute 20 #相同信息的數量,如果連續出現 20 條相同的信息,將不記錄到日志中。
# 讓 Open*** 以 nobody 用戶和組來運行(安全)
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.
# 重啟時仍保留一些狀態
persist-key
persist-tun
其他參數說明:
# 為特定的客戶端指定 IP 或指定路由,該路由通常是客戶端后面的
# 內網網段,而不是服務端連接的網段
# 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
# 若客戶端希望所有的流量都通過 *** 傳輸,則可以使用該語句
# 其會自動改變客戶端的網關為 *** 服務器,推薦關閉
# 一旦設置,請小心服務端的 DHCP 設置問題
;push "redirect-gateway"
# 如果您希望有相同 Common Name 的客戶端都可以登陸
# 也可以注釋下面的語句,推薦每個客戶端都使用不用的 Common Name
# 常用于測試
;duplicate-cn
# 設置最大用戶數
#max-clients 3
# 打開管理界面,可以定義監控的 IP 和端口
management localhost 7505
# 缺省日志會記錄在系統日志中,但也可以導向到其他地方
# 建議調試的使用先不要設置,調試完成后再定義
;log /var/log/open***/open***.log
;log-append /var/log/open***/open***.log
# 配置為以太網橋模式,但需要使用系統的橋接功能
# 這里不需要使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
#記錄日志,每次重新啟動 open*** 后刪除原有的 log 信息
log /var/log/open***.log
#和 log 一致,每次重新啟動 open*** 后保留原有的 log 信息,新信息追加到文件最后
;log-append open***.log
#定義運行 open*** 的用戶
user nobody
group nobody
#Run script or shell command cmd to validate client
#virtual addresses or routes. 具體查看 manual
;learn-address ./script
#其它的一些需要 PUSH 給 Client
#用于記錄某個 Client 獲得的 IP 地址,類似于 dhcpd.lease 文件,
#防止 open*** 重新啟動后“忘記”Client 曾經使用過的 IP 地址
ifconfig-pool-persist ipp.txt
#Bridge 狀態下類似 DHCPD 的配置,為客戶分配地址,由于這里工作在路由模式,所以不使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
# 隨機選擇一個 Server 連接,否則按照順序從上到下依次連接
;remote-random
# 始終重新解析 Server 的 IP 地址(如果 remote 后面跟的是域名) ,
# 保證 Server IP 地址是動態的使用 DDNS 動態更新 DNS 后,Client 在自動重新連接時重新解析 Server 的
IP 地址
# 這樣無需人為重新啟動,即可重新接入 ***
resolv-retry infinite
# 在本機不邦定任何端口監聽 incoming 數據,Client 無需此操作,除非一對一的 *** 有必要
nobind
# 如果你使用 HTTP 代理連接 *** Server,把 Proxy 的 IP 地址和端口寫到下面
# 如果代理需要驗證,使用 http-proxy server port [authfile] [auth-method]
# 其中 authfile 是一個 2 行的文本文件,用戶名和密碼各占一行,auth-method 可以省略,詳
細信息查看 Manual
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
# Server 使用 build-key-server 腳本什成的,在 x509 v3 擴展中加入了 ns-cert-type 選項
# 防止 *** client 使用他們的 keys + DNS hack 欺騙 *** client 連接他們假冒的 *** Server
# 因為他們的 CA 里沒有這個擴展
ns-cert-type server
a.定義 tun 為使用路由方式的 ***
b.小心處理證書的路徑,.key 文件要保存好,特別是 ca.key。
(ca.key 不需要在 Open*** 中用到,可以另外保存)
注意,每個虛擬 tun 網卡都是成對的,只有 inet addr 標識的才是用于 *** 通訊。并且必須在/30 網段
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。