Ubuntu 服务器安装与配置 OpenVPN 服务

安装 OpenVPN

sudo apt-get install openvpn

配置 OpenVPN
1. 证书生成

sudo cp -a /usr/share/doc/openvpn/examples/easy-rsa/2.0/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa/
sudo ln -s easy-rsa/keys /etc/openvpn/keys
sudo mkdir /var/lib/openvpn/
sudo vim vars  # 编辑 vars
export KEY_COUNTRY=""
export KEY_PROVINCE=""
export KEY_CITY=""
export KEY_ORG=""
export KEY_EMAIL=""

注意:KEY_COUNTRY 和 KEY_PROVINCE 都以两个大写字母表示。

source ./vars
./clean-all
./build-ca
./build-key-server server
./build-key client
./build-dh

注意:./build-key-server 与 ./build-key 使用默认选项即可。
2. 服务器配置

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gunzip server.conf.gz
sudo vim server.conf # 编辑 server.conf,修改下面的部分
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
 
dh keys/dh1024.pem
 
ifconfig-pool-persist /var/lib/openvpn/ipp.txt
 
push "redirect-gateway def1"
 
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
 
status /var/lib/openvpn/status.log
 
user user
group group

3. 启动OpenVPN服务

sudo service openvpn start

配置 NAT

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source xxx.xxx.xxx.xxx # 公网IP
sudo sysctl net.ipv4.ip_forward=1
sudo vim /etc/sysctl.d/10-ip-forward.conf
net.ipv4.ip_forward=1

导出客户端证书

sudo cp /etc/openvpn/keys/{ca.crt,client.crt,client.key} ~  # 将这三个文件打包下载到客户端即可

Over!

9 thoughts on “Ubuntu 服务器安装与配置 OpenVPN 服务”

  1. 启动OpenVPN服务 在那个位置执行?怎么启动的命令各有各样?(找了很多资料)请问所使用版本,最近小弟也着重研究中!!

  2. @RWQ 不同的操作系统使用不同的管理方式,如果是 Ubuntu 系统且是从源里安装的 OpenVPN,只要配置文件OK,执行 sudo service openvpn start 即可启动。

  3. 首先十分感谢你的回答!!
    小弟对Linux噶认知实在不太深(都怪WINDOWS,以下简称WIN),所以也首选了Ubuntu 这个较为易用且人性化点的Linux版本,现时使用的版本为Ubuntu 10.04。瞎弄了大半个月的时间,网上找了很多资料文章,不过最后还是照着你的文章弄成功了,真是那个激动吖!!(YY一下…..),你给我说的这个启动方法可行的,不过奇怪的是我第一此执行的时候是提示失败的,后来我找到了这条[openvpn /etc/openvpn/server.conf]就可以运行,然后我停止这条后后再运行你说的那条命令后就提示服务开启成功。不过虽是成功了,但还是有些问题要提问一下;
    一、进行到[配置 NAT]这一步的时候,输入 [sudo iptables -A POSTROUTING -s 10.8.0.0/24 -j SNAT –to-source xxx.xxx.xxx.xxx # 公网IP] 提示:[iptables: No chain/target/match by that name],不知甚解,于是用了另一篇文章的这句[sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE]然后貌似成功。
    二、配置好客户端(WIN)后,成功进行连接后,PING服务器上网均没发现问题,但奇怪是WIN的连接状态却一直显示及滚动在连接中,不知那里出了问题。
    三、另外如果我想每个客户端在进行连接的时候的都输入密码,是不是在配置客户端进行到[A challenge password []:]时候输入呢?
    还请指教~!

  4. 关于那个第二问题现在已经没事了,可能是系统问题,再等一会就显示连接成功。
    哦~我说的那个是;客户再进行连接的时候提示需要输入用户密码才能进行连接这个意思,希望多多少少增加点安全性吧。

Leave a Reply

Your email address will not be published. Required fields are marked *