找回密码
 立即注册
Qt开源社区 门户 查看内容

linux安全(一)——OpenVPN学习

2019-10-2 19:14| 发布者: admin| 查看: 5099| 评论: 0

摘要: 祝福祖国生日快乐!虚拟专用网络(Virtual Private Network)是架设在公网设施上,建立私有和安全的连接,为通信提供安全保护的技术。当然,对个人而言,它还有一个更有用的好处,就不在此赘述了。VPN部署技术主要有3类 ...
祝福祖国生日快乐!
虚拟专用网络(Virtual Private Network)是架设在公网设施上,建立私有和安全的连接,为通信提供安全保护的技术。当然,对个人而言,它还有一个更有用的好处,就不在此赘述了。

VPN部署技术主要有3类

点对点的隧道协议(PPTP): 两个隧道,TCP连接隧道,GRE传输隧道

互联网协议安全(IPSec): 基于IP,加密认证每个IP数据包,技术成熟,配置复杂,典型代表strongSwan和FreeS/WAN。

安全接口层/安全传输层协议(SSL/TLS): 使用证书进行认证,使用非对称算法对数据加密。通过对tun/tap设备实现用户态程序和内核的交互。典型代表OpenVPN。

OpenVPN的特性

对任何网络通过一个UDP或者TCP端口连建立隧道

可架构集群系统,支持上千用户连接

使用openSSL库的任意加密算法,可以选择静态密码或者证书公私钥加密

可以对数据流实时压缩

支持NAT,也提供windows和mac的GUI工具等等

支持对端DHCP

配置简单,学习成本低

点对点的OpenVPN部署

需求:远程数据库的备份等

client(121.22.17.88)<——>Internet<——> server(88.22.17.18)

1.安装

server和client同时执行:

    # lzo库用户压缩,openssl用于加密yum install -y lzo lzo-devel openssl openssl-devel# 需要epel扩展yum install -y openvpn
    2.在server端生成静态密码keke.key,并把该文件传给client(也可以复制key的内容,但注意600权限)
      openvpn --genkey --secret keke.key
      ll keke.key -rw------- 1 root root 637 Oct  1 12:35 keke.key
      3.创建隧道

      server

        openvpn --remote 121.22.17.88 --dev tun0 --ifconfig 10.10.10.110.10.10.2 --secret keke.key --daemon
        client
          openvpn --remote 88.22.17.18 --dev tun0 --ifconfig 10.10.10.2 10.10.10.1 --secret keke.key --daemon
          --ifconfig,指定隧道本端和对端ip地址,注意顺序

          --daemon,指定使用daemon进程模式

          5.验证

          client
            #可以ping通,可以ssh过去说明成功了ping 10.10.10.1ssh 10.10.10.1#openvpn默认会使用udp的1194端口,注意开启ss -tunlpudp   UNCONN   0   0   *:1194    *:*   users:(("openvpn",10386,5))#日志信息在/var/log/messages,可以分析排错
            6.流程



            tun和tap是linux的虚拟网络设备,tun可以理解为点对点的设备,tap可理解为Ethernet设备,tun工作流程如上图所示,接收过程箭头反过来。

            远程访问虚拟专用网络部署




            1. 在服务器生成CA证书,服务器证书,客户端证书(方法不唯一)
              yum install easy-rsa -ycp vars.example /etc/openvpn/easy-rsa/varscp -r /usr/share/easy-rsa/3.0.6/* /etc/openvpn/easy-rsa/cp /usr/share/doc/openvpn-2.4.7/sample/sample-config-files/server.conf /etc/openvpn/cat >> /etc/openvpn/easy-rsa/vars <<EOFexport KEY_COUNTRY="CN"export KEY_PROVINCE="js"export KEY_CITY="hah"export KEY_ORG="ha"export KEY_EMAIL="haha@keke.cn"export KEY_OU="I see you"EOF source ./vars./easyrsa init-pki./easyrsa build-ca./easyrsa gen-req vpnserver./easyrsa sign server vpnserver ./easyrsa gen-req vpnclient./easyrsa sign client vpnclient./easyrsa gen-dh openvpn --genkey --secret ta.key #证书生成过程中,会填写一个common name字段,建议不要乱写
              2.服务端配置openvpn

                cat/etc/openvpn/server.confport1194protoudpdevtun#证书文件的位置按实际ca/etc/openvpn/easy-rsa/pki/ca.crtcert/etc/openvpn/easy-rsa/pki/vpnserver.crtkey /etc/openvpn/easy-rsa/pki/vpnserver.key dh/etc/openvpn/easy-rsa/pki/dh.pemserver 10.10.10.0 255.255.255.0 #分配给客户端的隧道ip池push "route 172.16.88.0 255.255.255.0"  #允许客户端访问内网     route 192.168.0.0 255.255.255.0  #配置服务器增加一条到客户端网络的路由client-to-clientkeepalive 10 120comp-lzo#启用压缩max-clients100usernobodygroupnobodypersist-key #收到SIGUSR1时不重新读取key文件persist-tun#收到SIGUSR1时不关闭tun虚拟网口status /var/log/openvpn-status.log #指定状态日志位置log-append/var/log/openvpn.logverb 4
                启用iptables转发(此步骤当需要直接访问后端服务器时才需要)

                  echo 1 >/proc/sys/net/ipv4/ip_forward#tun0本质还是网卡,所以要配置转发支持iptables -A FORWARD -i tun0 -j ACCEPTiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEiptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE#同时在后端服务器增加一条路由route add -net 192.168.0.0/24 gw 172.16.88.2
                  启动
                    openvpn --daemon --config /etc/openvpn/server.conf
                    3.客户端配置(一般为windows)

                    下载地址:https://files02.tchspt.com/storage2/temp/openvpn-install-2.4.7-I606-Win10.exe

                    安装就不说了,把需要的证书文件及配置文件vpnclient.ovpn放入config即可,配置文件内容如下。

                      clientprotoudpdevtunremote 22.22.22.22 1194#按实际地址修改nobindcaca.crtcertvpnclient.crt keyvpnclient.keyns-cert-typeserverkeepalive10 120comp-lzomax-clients100persist-keypersist-tunverb4log-append /var/log/openvpn.log
                      最后启动连接就行了,如果有问题(应该不会有),请查看日志。



                      部分内容来自网络,如有侵权请联系作者删除。


                      ----------------------------------------------------------------------------------------------------------------------
                      我们尊重原创,也注重分享,文章来源于微信公众号:爱可可的运维笔记,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
                      ----------------------------------------------------------------------------------------------------------------------

                      鲜花

                      握手

                      雷人

                      路过

                      鸡蛋
                      
                      公告
                      可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了