Open×××允许参与建立×××的单点使用共享金钥,电子证书,或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1 协议函式库。Open×××能在Solaris、Linux、OpenBSD、FreeBSD、NetBSD、Mac OS X与Windows 2000/XP/Vista上运行,并包含了许多安全性的功能。它并不是一个基于Web的×××软件,也不与IPsec及其他×××软件包兼容。
二)环境
***:CentOS release 6.5 (Final)
客户端:win8(其他客户端安装方法,请见博文最后)
三)安装
安装基础包
yum install openssl-devel pam-devel gcc -y1.
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar xvfz openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config --prefix=/usr/local
make && make installs1.2.3.4.5.6.7.8.9.
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
tar zxvf lzo-2.06.tar.gz
cd lzo-2.06
./configure --prefix=/usr/local
make && make install1.2.3.4.5.6.7.8.9.10.
ln -s openssl-1.0.0.cnf openssl.cnf
. vars
./clean-all
./build-ca server
./build-key-server server
./build-key client
./build-dh
4.配置服务端
vim /etc/open***/server.conf1.
local # 设置监听端口,必须要对应的在防火墙里面打开port 1194# 设置用TCP还是UDP协议?;proto tcp
proto tcp# 设置创建tun的路由IP通道,还是创建tap的以太网通道路由IP容易控制,所以推荐使用它;# 但如果如IPX等必须使用第二层才能通过的通讯,则可以用tap方式,tap也就是以太网桥接;dev tap
dev tun# 这里是重点,必须指定SSL/TLS root certificate (ca),# certificate(cert), and private key (key)# ca文件是服务端和客户端都必须使用的,但不需要ca.key# 服务端和客户端指定各自的.crt和.key# 请注意路径,可以使用以配置文件开始为根的相对路径,# 也可以使用绝对路径# 请小心存放.key密钥文件
# 指定Diffie hellman parameters.dh /etc/open***/easy-rsa/2.0/keys/dh1024.pem# 配置×××使用的网段,Open×××会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复,保证唯一# 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP#ifconfig-pool-persist ipp.txt# 为客户端创建对应的路由,以另其通达公司网内部服务器# 但记住,公司网内部服务器也需要有可用路由返回到客户端;push "route 192.168.20.0 255.255.255.0"#push "route 10.6.0.0 255.255.0.0"# 若客户端希望所有的流量都通过×××传输,则可以使用该语句# 其会自动改变客户端的网关为×××服务器,推荐关闭# 一旦设置,请小心服务端的DHCP设置问题# 用Open×××的DHCP功能为客户端提供指定的DNS、WINS等push "dhcp-option DNS 8.8.8.8"#push "dhcp-option WINS 10.8.0.1"# 默认客户端之间是不能直接通讯的,除非把下面的语句注释掉# 下面是一些对安全性增强的措施# For extra security beyond that provided by SSL/TLS, create an "HMAC firewall"# to help block DoS attacks and UDP port flooding.## 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 ta.key 0 # This file is secret# 使用lzo压缩的通讯,服务端和客户端都必须配置# 输出短日志,每分钟刷新一次,以显示当前的客户端status /var/log/open***/open***-status.log# 缺省日志会记录在系统日志中,但也可以导向到其他地方# 建议调试的使用先不要设置,调试完成后再定义log /var/log/open***.log#log-append /var/log/open***/open***.log# 设置日志的级别## 0 is silent, except for fatal errors# 4 is reasonable for general usage# 5 and 6 can help to debug connection problems# 9 is extremely verbose1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.
5.打开服务器路由转发功能
vim /etc/sysctl.conf1.
修改以下内容
net.ipv4.ip_forward = 1 # 然后使内核参数生效:
sysctl -p1.
路由转发#iptables-t nat -A POSTROUTING -s 172.1.1.0/24 -o eth1 -j MASQUERADE #添加NAT 172.1.1.0/24是OPEN×××的地址 10.161.xxx.xxx是阿里ECS的内网地址(ifconfig eth0)
iptables -tnat -A POSTROUTING -s 172.1.1.0/24 -j SNAT --to-source 10.161.XXX.XXX
#保存iptables
service iptables save1.2.3.4.5.6.7.8.9.