阿里云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) |