CentOS 5.7下的OpenVPN配置笔记

2011.11.13 11 Comments 1450 Views

接到任务,写OpenVPN配置教程一篇,于是憋出来

安装包

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

服务配置

cd /etc/openvpn/

cp /usr/share/doc/openvpn-2.2.0/sample-config-files/server.conf .

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

mkdir -p /etc/openvpn/easy-rsa/keys

cd /etc/openvpn/easy-rsa

cp -rf /usr/share/doc/openvpn-2.2.0/easy-rsa/2.0/* .

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

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配置

vi /etc/openvpn/easy-rsa/vars

按page down键往下翻页,找到export KEY_SIZE=这行,用j和k定位行,h和l定位字符,把1024改成2048或者4096,推荐4096,如果没几个人用的话加密强度当然越高越好~

再定位到最后面,会看到类似下面这样的
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保存修改

证书证书

1.CA证书
. ./vars

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

./clean-all

./build-ca

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

2.certificate for the server

./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.为每个客户端生成证书
./build-key WooDragon

WooDragon替换成需要的用户

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

按y回车

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

按y回车

5.编辑服务配置文件
vi /etc/openvpn/server.conf

(1).找到port一行,后面的1194改成53,53是个好端口,当然大家可以根据需要灵活调整

(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.crt和iamwd.key就是前面certificate for the server这一步骤中生成的,那边生成的东西就用在这里

(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"

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

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

启动服务

service openvpn start

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

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

最后执行一行

chkconfig --level 235 openvpn on

将openvpn加入启动项

设置外网访问

vi /etc/sysctl.conf

找到net.ipv4.ip_forward = 0

把0改成1

sysctl -p

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 2.2.2.2

把2.2.2.2替换成你自己VPS的IP

/etc/init.d/iptables save

/etc/init.d/iptables restart

服务器端配置完成

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

以上

参考

http://nkush.blogspot.com/2011/10/installing-openvpn-22-on-centos-57.html

BTW:混蛋,老外写文章也挺不靠谱啊,漏了好多个关键点没写,然后我也没想到,朋友提醒了才发现= =

WooDragon's Blog内容均为原创,转载请注明出处

11 Responses
Comment (11)
Trackback (0)
  • #1
    m :

    大概是第一批的小白鼠路过…恭喜完成 :grin:

    2011.11.14 23:29 Reply
  • #2
    久酷 :

    话说你又转移到日本去了 主机

    2011.11.21 22:26 Reply
    • WooDragon :

      @久酷 : 是啊,刚开始贼快的,现在不慢就谢天谢地了……

      2011.11.21 22:28 Reply
      • 久酷 :

        @WooDragon : 国人们一窝蜂的 全涌过去了 不慢才怪呀,我们中国人多力量大,再好的网络也能撑爆它

        2011.11.21 22:29 Reply
        • WooDragon :

          @久酷 : 的确……后来一度想再整回美国,懒得折腾了,换IP啥的麻烦,就算了……

          2011.11.21 22:32 Reply
  • #3
    Youwei :

    还行日本的挺快的~~估计现在不是抽风时间 :idea:

    2011.11.22 15:11 Reply
    • WooDragon :

      @Youwei : 慢的时候延迟300+ :!:

      2011.11.22 15:15 Reply
  • #4
    kangzj :

    顶一下 :lol:

    2011.12.14 08:48 Reply
  • #5
    Showfom :

    3.生成DH验证文件
    ./build-dh

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

    确实,用Linode日本的居然等了半个多小时了= =

    2012.01.4 15:09 Reply
  • #6
    Showfom :

    还要修改一个

    在 server.conf 里

    dh dh1028.pem

    改成

    dh /etc/openvpn/easy-rsa/keys/dh2048.pem

    2012.01.4 16:15 Reply
  • #7
    Ansen :

    十分感谢,学习了

    2012.01.18 15:42 Reply
  • 还没有Trackback
Leave a Reply
icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif