> Linux服务器 > VPN >

CentOS 5.x 下的 OpenVPN 配置笔记

OpenVPN 是比较实用的虚拟网络软件,加密性强传输速率快,是企业内部加密通讯的好帮手,本文介绍如何在 CentOS 5.x 上配置 OpenVPN 这个神奇的软件。

CentOS 5.x 下的 OpenVPN 配置笔记

一、安装包

1
2
3
4
5
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
 
yum -y update
 
yum -y install openvpn

二、服务器端配置

1
2
3
cd /etc/openvpn/
 
cp /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf .

注意:上面一行最后有个空格再一点儿

1
2
3
4
5
mkdir -p /etc/openvpn/easy-rsa/keys
 
cd /etc/openvpn/easy-rsa
 
cp -rf /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/* .

注意:上面一行最后有个空格再一点儿

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
chmod o+x,g+x clean-all
 
chmod o+x,g+x build-*
 
chmod o+x,g+x vars
 
chmod o+x,g+x whichopensslcnf
 
chmod o+x,g+x pkitool
 
chmod o+x,g+x inherit-inter
 
chmod o+x,g+x list-crl
 
chmod o+x,g+x revoke-full
 
chmod o+x,g+x sign-req

三、编辑 PKI 配置

1
vi /etc/openvpn/easy-rsa/vars

page down 键 往下翻页,找到 export KEY_SIZE= 这行,用 jk 定位行, hl 定位字符,把 1024 改成 2048 或者 4096

再定位到最后面,会看到类似下面这样的

1
2
3
4
5
export KEY_COUNTRY="CN"
export KEY_PROVINCE="ZJ"
export KEY_CITY="HZ"
export KEY_ORG="iamwd.com"
export KEY_EMAIL="w@iamwd.com"

把引号里的东西随便改一下,不改也没啥大不了的

按住shift再按两下z保存修改

四、OpenVPN 证书

1、CA证书

1
. ./vars

注意:前面是点儿空格再点儿

1
2
3
./clean-all
 
./build-ca

狂敲回车即可,也可以随便写点资料

2、服务器端证书

1
./build-key-server iamwd

iamwd 就是服务器名,随便起,但记住,后面要用到

狂敲回车直到 Sign the certificate? [y/n]:

输入 y 然后回车

出来 1 out of 1 certificate requests certified, commit? [y/n]

输入 y 然后回车

3、生成 DH 验证文件

./build-dh

让服务器飞一会儿,前面写 KEY_SIZE=4096 的估计会稍微长一点,但也就一分钟不到肯定好了,主要是 XeHost 的 VPS 比较给力

4、为每个客户端生成证书

1
./build-key WooDragon

WooDragon 替换成需要的用户

一路回车到 Sign the certificate? [y/n]:

y 回车

1 out of 1 certificate requests certified, commit? [y/n]

y 回车

5、编辑服务配置文件

1
vi /etc/openvpn/server.conf
  • (1) 找到 port 一行,后面的 1194 改成 5353 是个好端口,当然大家可以根据需要灵活调整
  • (2) 找到 ca ca.crt 这行, ca.crt 替换为 /etc/openvpn/easy-rsa/keys/ca.crt
  • (3) .cert 这行后面的 server.crt 替换为 /etc/openvpn/easy-rsa/keys/iamwd.crt
  • (4) .key 这行后面的 server.key 替换为 /etc/openvpn/easy-rsa/keys/iamwd.key

    注意上面两行的 iamwd.crtiamwd.key 就是前面服务器端证书这一步骤中生成的,那边生成的东西就用在这里

  • (5) 找到 ;push "redirect-gateway def1 bypass-dhcp"

    去掉最前面的注释符号;

    并且删除 def1 后面的 bypass-dhcp

    也就是将这行替换成

    push "redirect-gateway def1"

  • (6).找到 ;push "dhcp-option DNS 208.67.222.222" 以及 ;push "dhcp-option DNS 208.67.222.220"

    替换为 push "dhcp-option DNS 8.8.8.8" 以及 push "dhcp-option DNS 8.8.4.4"

    同样是去掉前面的注释符号

  • (7).如果用的是 2048 位加密,那么,把 dh dh1028.pem 改成 dh /etc/openvpn/easy-rsa/keys/dh2048.pem

其他默认就可以了,保存配置

五、启动服务

1
service openvpn start

如果遭遇启动失败的情况,可以在配置文件中加上一行 log-append  openvpn.log

再尝试启动,然后到 /etc/openvpn/ 检查 openvpn.log 文件来查看错误发生原因

最后执行一行

chkconfig --level 235 openvpn on

openvpn 加入启动项

六、设置外网访问

1
vi /etc/sysctl.conf

找到 net.ipv4.ip_forward = 0

0 改成 1

1
2
3
sysctl -p
 
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 1.2.3.4

1.2.3.4 替换成你自己服务器或 VPS 的 IP

1
2
3
/etc/init.d/iptables save
 
/etc/init.d/iptables restart

服务器端配置完成

客户端配置非常简单,不再详述

以上参考 Installing OpenVPN 2.2 on Centos 5.7

(责任编辑:IT)