热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux下OpenVPN安装和WindowsOpenVPNGUI安装笔记

基于伟大的GFW越来越牛B,网站的正常维护如FTP、popsmtp的邮件收发、在google查技术资料,都经常被GFW强行断开。为了解决这个问题,于是我在自己的国外主机上安装了一个OpenVPN,当时记录了一下安装的经过。今天正好又有一个朋友问及OpenVPN安

基于伟大的 GFW 越来越牛B,网站的正常维护如 FTP、pop & smtp 的邮件收发、在 google 查技术资料,都经常被 GFW 强行断开。为了解决这个问题,于是我在自己的国外主机上安装了一个 OpenVPN,当时记录了一下安装的经过。

今天正好又有一个朋友问及 OpenVPN 安装的事情,于是我重新整理一下这篇Linux 下 OpenVPN 安装和 Windows OpenVPN GUI 安装笔记

希望对大家有所帮助。

  当时在安装 OpenVPN 的时候,得到了 WenZK 的指导帮助。在此表示感谢。

一. OpenVPN 安装环境

 

    Server 端的环境
  1. redhat, kernel版本: 2.4.20-31.9, IP 为 70.8.7.6
  2. kernel 需要支持 tun 设备, 需要加载 iptables 模块.
    检查 tun 是否安装:
    代码:
    root@a [/]# modinfo tun 
    filename:    /lib/modules/2.4.20-31.9/kernel/drivers/net/tun.o 
    description:  
    author:       
    license:     "GPL" 
    
    如果没有 modinfo 命令, 直接找一下, 看看 kernel 里是否有 tun.o 文件:
    代码:
    find -name tun.o 
    ./lib/modules/2.4.20/kernel/drivers/net/tun.o 
    
    检查iptables 模块, 查看是否有下列文件:
    /etc/init.d/iptables
  3. OpenSSL。如果需要启用 SSL 连接,则需要先安装 OpenSSL。安装 OpenSSL 的方法在这里不做介绍,具体可以用 Google 搜索。CentOS 下可以用 yum install:
    yum install openssl
    yum install openssl-devel
  4. 安装的 OpenVPN 的版本: 2.0.5. 现在似乎已经有一个更新的版本了. 可在http://openvpn.net 上下载.

 

 

    Client 端的环境:
  1. Windows XP PRO SP2
  2. OpenVPN GUI For windows 1.0.3 , 可在 openvpn.se 下载
    注意: OpenVPN GUI for windows 的版本要和 OpenVPN Server 的版本配套.
    例如, 服务器装的是 OpenVPN 2.0.5, 那么下载的 OpenVPN GUI fow windows 应该是: openvpn-2.0.5-gui-1.0.3-install.exe
    OpenVPN GUI的所有历史版本: http://openvpn.se/files/install_packages/

 

 

二. OpenVPN 服务端安装过程

http://www.xiaohui.com/dev/server/20070514-install-openvpn.htm

  1. 用 SecureCRT 登录到 host, 进入根目录 代码:
    cd / 
  2. 下载 LZO,解压到lzo-2.02.

     

    地址: http://www.oberhumer.com/opensource/lzo/download/ 代码:

    wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.02.tar.gz
  3. 下载 OpenVPN, 解压到openvpn-2.0.5

     

    地址: http://openvpn.net/download.html 代码:

    wget http://openvpn.net/release/openvpn-2.0.5.tar.gz
  4. 安装 LZO 代码:
    cd /lzo-2.02 
    ./configure 
    make 
    make check 
    make install 
  5. 安装 OpenVPN

     

    代码:

    cd /openvpn-2.0.5
    ./configure 
    # 或用指定dir: (注:下述命令, 应该在一行写完. 为了方便显示, 这里分成了四行)
    # ./configure --with-lzo-headers=/usr/local/include 
    #  --with-lzo-lib=/usr/local/lib 
    #  --with-ssl-headers=/usr/local/include/openssl 
    #  --with-ssl-lib=/usr/local/lib 
    make 
    make install 
    
  6. 生成证书Key

     

    初始化 PKI

    (如果没有 export 命令也可以用 setenv [name] [value] 命令)

    代码:

    cd /openvpn-2.0.5/easy-rsa 
    export D=`pwd` 
    export KEY_COnFIG=$D/openssl.cnf 
    export KEY_DIR=$D/keys 
    export KEY_SIZE=1024 
    export KEY_COUNTRY=CN 
    export KEY_PROVINCE=GD 
    export KEY_CITY=SZ 
    export KEY_ORG="xiaohui.com" 
    export KEY_EMAIL="your-email [at] xiaohui.com" 
    Build:

     

    代码:

    ./clean-all 
    ./build-ca 
    
    Generating a 1024 bit RSA private key 
    ................++++++ 
    ........++++++ 
    writing new private key to \'ca.key\' 
    ----- 
    You are about to be asked to enter information that will be incorporated 
    into your certificate request. 
    What you are about to enter is what is called a Distinguished Name or a DN. 
    There are quite a few fields but you can leave some blank 
    For some fields there will be a default value, 
    If you enter \'.\', the field will be left blank. 
    ----- 
    Country Name (2 letter code) [CN]: 
    State or Province Name (full name) [GD]: 
    Locality Name (eg, city) [SZ]: 
    Organization Name (eg, company) [xiaohui.com]: 
    Organizational Unit Name (eg, section) []:xiaohui.com 
    Common Name (eg, your name or your server\'s hostname) []:server 
    Email Address [your-email [at] xiaohui.com]: 
    # 建立 server key 代码: 代码:
    ./build-key-server server 
    
    Generating a 1024 bit RSA private key 
    ......++++++ 
    ....................++++++ 
    writing new private key to \'server.key\' 
    ----- 
    You are about to be asked to enter information that will be incorporated 
    into your certificate request. 
    What you are about to enter is what is called a Distinguished Name or a DN. 
    There are quite a few fields but you can leave some blank 
    For some fields there will be a default value, 
    If you enter \'.\', the field will be left blank. 
    ----- 
    Country Name (2 letter code) [CN]: 
    State or Province Name (full name) [GD]: 
    Locality Name (eg, city) [SZ]: 
    Organization Name (eg, company) [xiaohui.com]: 
    Organizational Unit Name (eg, section) []:xiaohui.com 
    Common Name (eg, your name or your server\'s hostname) []:server 
    Email Address [your-email [at] xiaohui.com]: 
    
    Please enter the following \'extra\' attributes 
    to be sent with your certificate request 
    A challenge password []:abcd1234 
    An optional company name []:xiaohui.com 
    Using configuration from /openvpn-2.0.5/easy-rsa/openssl.cnf 
    Check that the request matches the signature 
    Signature ok 
    The Subject\'s Distinguished Name is as follows 
    countryName           :PRINTABLE:\'CN\' 
    stateOrProvinceName   :PRINTABLE:\'GD\' 
    localityName          :PRINTABLE:\'SZ\' 
    organizationName      :PRINTABLE:\'xiaohui.com\' 
    organizationalUnitName:PRINTABLE:\'xiaohui.com\' 
    commonName            :PRINTABLE:\'server\' 
    emailAddress          :IA5STRING:\'your-email [at] xiaohui.com\' 
    Certificate is to be certified until Mar 19 08:15:31 2016 GMT (3650 days) 
    Sign the certificate? [y/n]:y 
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y 
    Write out database with 1 new entries 
    Data Base Updated 

     

    #生成客户端 key

    代码:

    ./build-key client1 
    Generating a 1024 bit RSA private key 
    .....++++++ 
    ......++++++ 
    writing new private key to \'client1.key\' 
    ----- 
    You are about to be asked to enter information that will be incorporated 
    into your certificate request. 
    What you are about to enter is what is called a Distinguished Name or a DN. 
    There are quite a few fields but you can leave some blank 
    For some fields there will be a default value, 
    If you enter \'.\', the field will be left blank. 
    ----- 
    Country Name (2 letter code) [CN]: 
    State or Province Name (full name) [GD]: 
    Locality Name (eg, city) [SZ]: 
    Organization Name (eg, company) [xiaohui.com]: 
    Organizational Unit Name (eg, section) []:xiaohui.com 
    Common Name (eg, your name or your server\'s hostname) []:client1    #重要: 每个不同的 client 生成的证书, 名字必须不同. 
    Email Address [your-email [at] xiaohui.com]: 
    
    Please enter the following \'extra\' attributes 
    to be sent with your certificate request 
    A challenge password []:abcd1234 
    An optional company name []:xiaohui.com 
    Using configuration from /openvpn-2.0.5/easy-rsa/openssl.cnf 
    Check that the request matches the signature 
    Signature ok 
    The Subject\'s Distinguished Name is as follows 
    countryName           :PRINTABLE:\'CN\' 
    stateOrProvinceName   :PRINTABLE:\'GD\' 
    localityName          :PRINTABLE:\'SZ\' 
    organizationName      :PRINTABLE:\'xiaohui.com\' 
    organizationalUnitName:PRINTABLE:\'xiaohui.com\' 
    commonName            :PRINTABLE:\'client1\' 
    emailAddress          :IA5STRING:\'your-email [at] xiaohui.com\' 
    Certificate is to be certified until Mar 19 08:22:00 2016 GMT (3650 days) 
    Sign the certificate? [y/n]:y 
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y 
    Write out database with 1 new entries 
    Data Base Updated 

     

    依次类推生成其他客户端证书/key

    代码:

    ./build-key client2 
    ./build-key client3 
    注意在进入 Common Name (eg, your name or your server\'s hostname) []: 的输入时, 每个证书输入的名字必须不同.
  7. 生成 Diffie Hellman 参数 。代码:
    ./build-dh 
  8. 将 keys 下的所有文件打包下载到本地

     

    代码:

    tar -cf mykeys.tar /openvpn-2.0.5/easy-rsa/keys 
    cp mykeys.tar /home/xiaohui.comsys/public_html/mykeys.tar 
    将 mykeys.tar 移到 web public(绝对路径因人而异) 上, 然后用 http://www.a.com/mykeys.tar 方式将其下载到本地保存, 然后将其从server删除: 代码:
    rm /home/xiaohui.comsys/public_html/mykeys.tar 
    也可以用其他方法把 key file搞到本地,例如 ftp.
  9. 创建服务端配置文件

     

    从样例文件创建:

    代码:

    cd $dir/sample-config-files/ # 进入源代码解压目录下的sample-config-files子目录 
    cp server.conf /usr/local/etc  # cp服务器配置文件到/usr/local/etc 
    vi /usr/local/etc/server.conf 
    我建立的server.conf 的内容稍后另附.
  10. 创建客户端配置文件

     

    代码:

    cd $dir/sample-config-files/  #进入源代码解压目录下的sample-config-files子目录 
    cp client.conf /usr/local/etc  #cp客户端配置文件到/usr/local/etc 
    vi /usr/local/etc/client.conf 
    我建立的client.conf 的内容稍后另附.
  11. 启动Openvpn: openvpn [server config file] 代码:
    /usr/local/sbin/openvpn --config /usr/local/etc/server.conf 

 

 

三. OpenVPN GUI For Windows 客户端安装过程

  1. 安装 OpenVPN GUI For Windows, 到 http://openvpn.se 下载. 目前的版本是 1.0.3. 注意: OpenVPN GUI 的版本要和 OpenVPN Server 的版本配套. 详见第一节一. 安装环境中的说明.
推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
author-avatar
木易_迪迪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有