阿里云CentOS服务器上搭建openvpn
时间:2015-02-12 02:29 来源:51cto.com 作者:IT
为了能从办公室直接连进ECS(阿里云服务器)进行调试,所以这几天断断续续是研究开源翻墙软件pptp和openvpn,直到今天才成功.(这里很鄙视阿里云的客服和售后工程师,一会说能搭建vpn,一会说又不能,我就*了;同时也很鄙视阿里的路由表,弄的我蛋都碎光了)
吐槽到此为止,接下来进入我们今天的正题:openvpn。
-
安装基础包
yum
install
openssl-devel pam-devel gcc -y
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
installs
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
install
rpm -ivh http:
//apt
.sw.be
/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0
.5.2-2.el5.rf.x86_64.rpm
rpm -ivh http:
//apt
.sw.be
/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0
.5.2-2.el6.rf.x86_64.rpm
yum
install
-y openvpn
cp
-R
/usr/share/doc/openvpn-
*
/easy-rsa
/etc/openvpn
cd
/etc/openvpn/easy-rsa/2
.0
chmod
+x *
配置PKI
/etc/openvpn/easy-rsa/2
.0
vi
/etc/openvpn/easy-rsa/2
.0
/vars
export
KEY_COUNTRY=”US”
export
KEY_PROVINCE=”CA”
export
KEY_CITY=”SanFrancisco”
export
KEY_ORG=”Fort-Funston”
export
KEY_EMAIL=”me@myhost.mydomain“
export
KEY_COUNTRY=”CN”
export
KEY_PROVINCE=”SH”
export
KEY_CITY=”Shanghai”
export
KEY_ORG=”ucloud.cn”
export
KEY_EMAIL=”xxx@xxx.cn“
ln -s openssl-1.0.0.cnf openssl.cnf
. vars
./clean-all
./build-ca server
./build-key-server server
./build-key client
./build-dh
vim
/etc/openvpn/server
.conf
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/openvpn/easy-rsa/2
.0
/keys/dh1024
.pem
# 配置VPN使用的网段,OpenVPN会自动提供基于该网段的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"
# 若客户端希望所有的流量都通过VPN传输,则可以使用该语句
# 其会自动改变客户端的网关为VPN服务器,推荐关闭
# 一旦设置,请小心服务端的DHCP设置问题
# 用OpenVPN的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:
# openvpn --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/openvpn/openvpn-status
.log
# 缺省日志会记录在系统日志中,但也可以导向到其他地方
# 建议调试的使用先不要设置,调试完成后再定义
log
/var/log/openvpn
.log
#log-append /var/log/openvpn/openvpn.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 verbose
vim
/etc/sysctl
.conf
sysctl -p
路由转发
#iptables-t nat -A POSTROUTING -s 172.1.1.0/24 -o eth1 -j MASQUERADE
#添加NAT 172.1.1.0/24是OPENVPN的地址 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 save
chkconfig openvpn on
/etc/init.d/openvpn start
/etc/openvpn/easy-rsa/2
.0
/keys/ca
.crt
#ca证书
/etc/openvpn/easy-rsa/2
.0
/keys/client
.crt
#客户端证书
/etc/openvpn/easy-rsa/2
.0
/keys/client
.key
#客户端私钥
client
dev tun
proto tcp
remote 115.29.xxx.xxx 1194
#阿里云的vpn外网ip和端口
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
#一系列证书位置
cert client.crt
key client.key
comp-lzo
verb 3
ns-cert-
type
server
ip-win32 dynamic 0 28800
#windows
route-method exe
route-delay 3
Mac:
(责任编辑:IT)
为了能从办公室直接连进ECS(阿里云服务器)进行调试,所以这几天断断续续是研究开源翻墙软件pptp和openvpn,直到今天才成功.(这里很鄙视阿里云的客服和售后工程师,一会说能搭建vpn,一会说又不能,我就*了;同时也很鄙视阿里的路由表,弄的我蛋都碎光了) 吐槽到此为止,接下来进入我们今天的正题:openvpn。
配置PKI
ln -s openssl-1.0.0.cnf openssl.cnf . vars ./clean-all ./build-ca server ./build-key-server server ./build-key client ./build-dh
/etc/init.d/openvpn start
Mac:(责任编辑:IT) |