Ubuntu14.04 LTS安装openvpn

本文的主要目标为:在墙外的服务器安装openvpn来达到访问互联网的目的,前提是你应该至少有一台墙外服务器,付费或者免费均可。

以下为正文

1、安装openvpn及证书制作工具easy-rsa

sudo apt-get install openvpn easy-rsa

为了方便起见,以下在root用户下进行,使用sudo -i来切换至root用户

mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/

2、修改vars文件(减少生成key时的信息填充)

vim ./vars
export KEY_COUNTRY="SP"
export KEY_PROVINCE="NC"
export KEY_CITY="SP"
export KEY_ORG="rzx Company"
export KEY_EMAIL="xxx@xxx.com"
export KEY_CN=liu
export KEY_NAME=liu
export KEY_OU=liu
export KEY_ALTNAMES="liu"

使修改在当前shell下生效

source ./vars

3、生成ca及服务端证书,以下标粗部分可自定义,若修改则需要更改server.conf相应属性

./clean-all
./build-ca
./build-key-server server
./build-dh
openvpn --genkey --secret keys/ta.key
cd keys/
cp server.crt server.key ca.crt dh2048.pem ta.key /etc/openvpn/

4、生成客户端证书

cd /etc/openvpn/easy-rsa/
./build-key client1
cd keys
将client1.crt client1.key ca.crt ta.key文件复制到客户机上

5、配置server.conf文件:

openvpn 复制配置文件模板:

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
gzip -d /etc/openvpn/server.conf.gz
vim /etc/openvpn/server.conf
  • push “redirect-gateway def1 bypass-dhcp”
  • 解除tls-auth的注释
  • 解除push “dhcp-option DNS 8.8.8.8″注释,并将dns修改为8.8.8.8
  • 决定是否修改port及proto,注意若修改,则至少要保证防火墙及客户端配置一致
  • 根据情况修改dh dh1024.pem为dh dh2048.pem

6、打开ip转发功能(若能连接到openvpn服务器且网络稳定,但不能通过openvpn访问互联网则检查此项)

vim /etc/sysctl.conf
net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

7、修改启动脚本,配置iptables

vim /etc/rc.local
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

将启动脚本修改完毕后将上述内容直接在shell中运行以使内容生效(重启也可)

8、启动openvpn

service openvpn start
service openvpn status
#若启动不成功,请查看/var/log/syslog文件

 

至此服务端配置完成,下面配置客户端,只介绍windows下的配置过程:

  • 下载OpenVpn GUI(注意此网站已经屏蔽,需要自己想办法进行下载)并安装
  • 将之前生成的a.key client1.crt client1.key ca.crt文件复制到客户机上(在/etc/openvpn/easy-rsa/keys/目录下)
  • 将/usr/share/doc/openvpn/examples/sample-config-files/目录下的client.conf文件复制到客户机上
  • 将client.conf文件放入OpenVpn GUI安装目录下的confIg目录下
  • 修改client.conf文件将ca cert key对应关系修改为上述相应文件,解除tls-auth的注释
  • 修改client.conf的remote属性,改为你的服务器的ip或域名,端口信息视服务端情况而定

注意:

1、默认情况下一个客户端证书只能支持一个客户端连接,如果有多个客户端(手机、平板、PC等)需要再执行生成客户端证书过程。
2、如果持续的连接不上服务端,请检查防火墙配置是否正确,必要时请关闭。
3、如果连接上后过1分钟就断开,或者日志中有tls错误,不用怀疑,是GFW的功劳,目前很难解决。

发表评论

邮箱地址不会被公开。 必填项已用*标注