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="test@test.cn"

export KEY_EMAIL=mail@host.domain

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 [mail@host.domain]:


创建Diffie Hellman 参数,Diffie Hellman 用于增强安全性,在Open×××是必须的!

[root@open*** ~]# ./build-dh  


[root@localhost 2.0]# ./build-key-server server (创建服务器证书和密钥!“server"可以自行设定,这里默认为server)

emailAddress          :IA5STRING:'mail@host.domain' (前面选项一路回车,下面两项手动输入”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:'mail@host.domain' (前面选项一路回车,下面两项手动输入”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