热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS下安装Openvpn

原理:OpenVpn的技术核心是虚拟网卡,其次是SSL协议实现这里重点对虚拟网卡及其在OpenVpn的中的工作机理进行介绍:虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用

原理:

OpenVpn的技术核心是虚拟网卡,其次是SSL协议实现这里重点对虚拟网卡及其在OpenVpn的中的工作机理进行介绍:        

虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是OpenVpn能够跨平台一个很重要的理由。

OpenVpn中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN模式)或数据帧(TAP模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过 SOCKET从外网上发送出去,远程服务程序通过SOCKET从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

安装环境 :服务端 RHEL 5.3 (IP 192.168.10.191) 或以上

           客户端:win7

Linux 系统kerner需要支持 tun设备,需要加载iptables模块。

#modinfo tun

OpenVPN如果需要启用 SSL 连接,则需要先安装 OpenSSL

#rpm -qa | grep ssl 

如果没有

#yum install openssl-devel

本次安装用的2.2.2,可在官网上下载

 

通过通过SecureCRT或者XShell等登录到服务器,上传LZOOpenVPNLZO用于数据压缩

安装过程

1.解压并安装lzo

#tar zxvf lzo.2.06.tar.gz

#cd lzo-2.06

#./configure

#make

#make install

2.解压并安装openvpn

#tar zxvf openvpn-2.2.2.tar.gz

#cd openvpn-2.2.2

#configure && make && make install

3.生产证书key

初始化PKI

#mkdir /etc/openvpn (默认没有此目录)

#cd openvpn-2.2.2

#cp -r easy-rsa/2.0 /etc/openvpn/easy-rsa

#cd /etc/openvpn/easy-rsa

#vi vars

        将最下面几行根据需要自己修改,例如:

        

        export KEY_COUNTRY="CN"

        export KEY_PROVINCE="BJ"

        export KEY_CITY="Beijing"

        export KEY_ORG="baidu"

        export KEY_EMAIL="tech@baidu.cn"

        export KEY_EMAIL=tech@baidu.cn

        export KEY_CN=baidu

        export KEY_NAME=baidu

        export KEY_OU=baidu

        export PKCS11_MODULE_PATH=baidu

        export PKCS11_PIN=1q2w3e4r


创建证书

#../vars

NOTE: Ifyou run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys

(只有在第一次生成证书的时候才需要执行)

#./clean-all

#./build-ca (一路回车)

#./build-key-server server (建立 server key)

(一路回车,到提示[y/n],输入y)

#cd /etc/openvpn/easy-rsa/keys 

将生成的证书复制到/etc/openvpn

#cp ca.crt dh1024.pem server.crt server.key /etcp/openvpn

创建server.conf

 #cd /etc/openvpn

#vim server.conf (默认没有此文件)

        local 192.168.10.191

        port 1194

        proto udp

        dev tun

        ca ca.crt

        cert server.crt

        key server.key

        dh dh1024.pem

        server 11.8.0.0 255.255.255.0

        keepalive 10 120

        comp-lzo

        persist-key

        persist-tun

        log    openvpn.log

        log-append openvpn.log

        status openvpn-status.log

        verb 3

启动服务端 

#openvpn --config /etc/openvpn/server.conf --daemon

#ip a

可以看到增加了一个tun0设备,且IP11.8.0.1,  说明启动成功

4.生成客户端key

#cd /etc/openvpn/easy-rsa

#./build-key client1   (以后类似生成 ./build-key client2 ...)

(一路回车,到提示[y/n],输入y)

将生产的客户端key文件 ca.crt client1.crt client1.key拷贝到win7上,

5.win7配置

将ca.crt client1.crt client1.key拷贝到 openvpn的安装目录下的config目录里面

,并创建client.ovpn(默认没有)文件

编辑 client.ovpn ,内容如下

    client

    dev tun

    proto udp

    remote 192.168.10.191 1194

    resolv-retry infinite

    nobind

    user nobody

    group nodody

    persist-key

    persis-tun

    ca ca.crt

    cert client1.crt

    key client1.key

    comp-lzo

    verb 3

    keepalive 10 120

win7使用客户端连接,拨号成功显示自动获取的IP,ping 11.8.0.1通即成功

 

补充linux作为客户端:

linux客户端也要安装lzo和openven(见安装过程1和安装过程2)

并创建/etc/openvpn

把 ca.crt client1.crt client1.key 拷贝到/etc/openvpn 

还要创建client.conf(默认没有此文件)

编辑 client.conf,内容和win7 的config目录下的client.ovpn一样。

启动客户端

#openvpn --config /etc/openvpn/client.conf --daemon

#ip a 

可以看到tun0设备,自动获取了11.8.0段的IP,说明拨号成功,可以ping 11.8.0.1测试。


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ... [详细]
  • Linux 服务器修改用户名
    Linux服务器修改用户名1、编辑名称vimetchostname2、保存编辑并退出wq3、重 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • 本文详细介绍了Vim编辑器中的三种模式(命令模式、末行模式和编辑模式)以及它们之间的操作区别和切换方法。Vim编辑器凭借其多种命令快捷键和高效率的操作方式,得到了广大厂商和用户的认可。对于想要高效操作文本的用户来说,了解这些模式的使用方法是必不可少的。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • UDP千兆以太网FPGA_verilog实现(四、代码前期准备UDP和IP协议构建)
    UDP:userDatagramprotocol用户数据报协议无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC76 ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
author-avatar
沫雅mo_853
这个家伙很懒,什么也没留下!