1.配置安裝環境:
[root@localhost ~]# yum install -y gcc gcc-c++ pam-devel openssl penssl-devel
[root@localhost ~]# yum install -y lrzsz (SecureCRT 上傳下載)
2.關閉SELINUX、清除防火牆設置
[root@localhost ~]#vi /etc/selinx/config
# disabled - No SELinux policy is loaded.
SELINUX=disabled
[root@localhost ~]# iptables -F (清除所有規則)
[root@localhost ~]# iptables -nL
3.開啓路由轉發功能
[root@localhost ~]# echo "net.ipv4.ip_forward = 1" > /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
4.防火牆規則設置
Centos7下:
[root@open*** ~]# systemctl disable firewalld
[root@open*** ~]# systemctl stop firewalld
[root@open*** ~]# yum install iptables-services -y
[root@open*** ~]# iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE
[root@open*** ~]# iptables -A INPUT --dport=3306 -j ACCEPT
[root@open*** ~]# /etc/init.d/iptables save
[root@open*** ~]# service iptables restart
#-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 10.1.50.222 參考設置,筆者沒有添加此項!
4.安裝 LZO 和 open***
下載地址:http://pan.baidu.com/s/1kTxS4AF
提示:安裝的時候注意查看./configure 最後的提示信息!!
[root@localhost ~]# tar -zxf lzo-2.06.tar.gz
[root@localhost ~]# tar -zxf open***-2.2.2.tar.gz
[root@localhost ~]#cd lzo-2.06
[root@localhost lzo-2.06]# ./configure && make && make install
[root@localhost ~]# cd open***-2.2.2
[root@localhost open***-2.2.2]# ls
[root@localhost open***-2.2.2]# ./configure
[root@localhost open***-2.2.2]# make && make install
[root@localhost open***-2.2.2]# cd
(只要沒有提示“Error”的錯誤提示 就證明安裝成功)
5.配置open***
[root@localhost ~]# mkdir /etc/open***
[root@localhost ~]# cp -R open***-2.2.2/easy-rsa/ /etc/open***/
[root@localhost ~]# cd /etc/open***/easy-rsa/2.0/
[root@localhost 2.0]# vi vars (修改下劃線選項即可)
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GD"
export KEY_CITY="SZ"
export KEY_ORG="YJ"
export KEY_EMAIL="[email protected]"
export [email protected]
export KEY_CN=changeme
export KEY_NAME=changeme
export KEY_OU=changeme
export PKCS11_MODULE_PATH=changeme
export PKCS11_PIN=1234
【這一步筆沒有操作,之前測試時有設置過但是證書配置過程中還是指定默認的文件】
到easy-rsa目錄下,拷貝openssl配置文件,並且引用之前修改的文件,使變量生效。
# cd /etc/open***/easy-rsa/
# cp openssl-1.0.0.cnf openssl.cnf
[root@localhost 2.0]# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/open***/easy-rsa/2.0/keys
初始化證書授權中心,創建CA證書,輸出信息中已經引用了之前所設置的變量值,這裏一路回車即可
[root@localhost 2.0]# ./clean-all
[root@localhost 2.0]# ./build-ca (默認,一路回車即可)
Generating a 1024 bit RSA private key
.............++++++
.......................++++++
-----
Country Name (2 letter code) [CN]:
State or Province Name (full name) [GD]:
Locality Name (eg, city) [SZ]:
Organization Name (eg, company) [HF]:
Organizational Unit Name (eg, section) [changeme]:
Common Name (eg, your name or your server's hostname) [changeme]:
Name [changeme]:
Email Address [[email protected]]:
創建Diffie Hellman 參數,Diffie Hellman 用於增強安全性,在Open***是必須的!
[root@open*** ~]# ./build-dh
[root@localhost 2.0]# ./build-key-server server (創建服務器證書和密鑰!“server"可以自行設定,這裏默認爲server)
emailAddress :IA5STRING:'[email protected]' (前面選項一路回車,下面兩項手動輸入”y")
Certificate is to be certified until Jun 13 06:31:17 2025 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[root@localhost 2.0]# ./build-key client (客戶端證書和密鑰,名稱自定義,這裏默認也是client)
emailAddress :IA5STRING:'[email protected]' (前面選項一路回車,下面兩項手動輸入”y")
Certificate is to be certified until Jun 13 06:31:43 2025 GMT (3650 days)
Sign the certificate? [y/n]:y (這兩項都是 “y")
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
至此所需證書及密鑰都已經生成完畢。
複製服務器證書文件到/etc/open***/ 下
[root@localhost keys]# cp dh1024.pem ca.crt server.crt server.key /etc/open***/
[root@localhost keys]# sz ca.crt client.crt client.key (下載到本地,客戶端使用)
複製服務器配置文件到/etc/open***下,並編輯添加配置相關參數:
[root@localhost keys]# cp /root/open***-2.2.2/sample-config-files/server.conf /etc/open***/server.conf
[root@localhost keys]# vi /etc/open***/server.conf
local 10.1.50.222 # ***服務器地址
port 3306 # 端口號
proto udp # 協議類型
dev tun
ca /etc/open***/ca.crt
cert /etc/open***/ltyserver.crt
key /etc/open***/ltyserver.key # This file should be kept secret
dh /etc/open***/dh1024.pem
server 10.8.0.0 255.255.255.0 #***客戶端地址段
ifconfig-pool-persist ipp.txt
push "route 10.1.50.0 255.255.0.0"
push "route 10.1.10.0 255.255.0.0"
push "redirect-gateway" #使客戶端的默認網關指向***,所有連接從***轉發
push "dhcp-option DNS 10.1.254.1"
push "dhcp-option DNS 202.96.134.133"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status open***-status.log
crl-verify /etc/open***/easy-rsa/2.0/keys/crl.pem #吊銷證書參數
verb 3
[root@localhost keys]# open*** --config /etc/open***/server.conf 啓動服務
.....................................................
Tue Jun 16 03:11:17 2015 Initialization Sequence Completed (初始化順序完成)
服務端配置完成,啓動程序,查看是否監聽3306的udp端口
默認爲udp,並且看到多出來一塊網卡tun0,IP爲10.8.0.1
添加開機自啓:
[root@open*** ~]# grep "open***" /etc/rc.d/rc.local
/usr/local/sbin/open*** --daemon --config /etc/open***/server.conf
下載客戶端證書、密鑰(前面已經進行下載)!下載客戶端配置文件
[root@localhost ]#sz open***-2.2.2/sample/sample-config-files/client.conf
剩下的自行安裝配置測試即可!
刪除賬號
註銷用戶證書
1. 進入 Open*** 安裝目錄
[root@open*** ~]# cd /etc/open***/easy-rsa/2.0/
2. 執行 vars 命令
[root@open*** ~]# . ./var
3. 使用 revoke-full 命令,吊銷客戶端證書。命令格式爲:
[root@open*** ~]# ./revoke-full client1
這條命令執行完成之後,會在 keys 目錄下面,生成一個 crl.pem 文件,這個文件中包含了吊銷證書的名單。
成功註銷某個證書之後,可以打開 keys/index.txt 文件,可以看到被註銷的證書前面,已標記爲R.
4. 確保服務端配置文件打開了 crl-verify 選項
在服務端的配置文件 server.conf 中,加入這樣一行:
如果 server.conf 文件和 crl.pem 沒有在同一目錄下面,則 crl.pem 應該寫絕對路徑,例如:
[root@open*** ~]# cat /etc/open***/server.conf
crl-verify /open***-2.0.5/easy-rsa/keys/crl.pem
訪問控制
iptables -A FORWARD -i tun0 -s 10.10.10.0/30 -d 10.10.10.4 -j ACCEPT
意思是隻允許10.10.10.0網段的IP訪問10.10.10.4,如許訪問多個IP,及添加多條命令即可。
Open***的負載均衡和高可用
搭建另一臺open***服務器,將原來的ca.crt ca.key server.key server.crt server.csr 複製到/etc/open*** 目錄下,在客戶端配置文件當中添加3條命令:
remote 192.168.3.96 1195 #open*** 服務器ip
remote-random #開啓遠程隨機服務器
resolv-retry 60 #開啓斷開重連60s