VPN NTP时间同步服务器 PSSH

VPN概述

Virtual Private Network (虚拟专用网络)

在公用网络上建立专用私有网络(建立一条隧道,虚拟网卡),进行加密通讯

偶尔可以用于翻墙



一   GRE

优势:比较简单搭建,不需要添加模块

劣势:服务端跟客户端都得是linux系统,不加密不安全

lsmod                       //查看系统模块列表

modinfo     ip_gre    //查看模块信息

modprobe  ip_gre    //添加模块


两台虚拟机

服务器  vpn:eth3:201.1.2.10                   eth0:192.168.4.5

客户机  client:201.1.2.5

客户端配置:

1~ip tunnel help                                                                                           //查看man帮助

2~ip tunnel add tun0 mode gre remote 201.1.2.5 local 201.1.2.10           //添加通道,会有一个虚拟网卡

3~ip link set up tun0                                                                                      //激活通道

4~ip a a 10.10.10.10/24 dev tun0                                                                //为通道(虚拟网卡)添加ip

5~ip a ls dev tun0                                                                                        //指定设备查看ip


服务器配置

1~ip tunnel help                                                                                          //查看man帮助

2~ip tunnel add tun0 mode gre remote 201.1.2.10 local 201.1.2.5         //添加通道,会有一个虚拟网卡

3~ip link set up tun0                                                                                     //激活通道

4~ip a a 10.10.10.5/24 dev tun0                                                                //为通道(虚拟网卡)添加ip

5~ip a ls dev tun0                                                                                      //指定设备查看ip


[root@client2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0

.............................

[root@client2 ~]# ping 192.168.4.5                                                                 //网络不可达

[root@client2 ~]# route add -net 192.168.4.0/24 gateway 10.10.10.5           //添加一个不同网段的网关

[root@client2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.10.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0
192.168.4.0     10.10.10.5      255.255.255.0   UG    0      0        0 tun0
....................

[root@client2 ~]# ping 192.168.4.5                                                                     //添加网关后可ping通


二  PPTP

点对点隧道

准备环境:两台虚拟机

服务器  vpn:eth3:201.1.2.10                  eth0:192.168.4.5

客户机  windows:201.1.2.20


服务器 vpn 机器上操作

装包

yum -y install pptpd-1.4.0-2.el7.x86_64.rpm

改配置文件

rpm  -qc pptpd                //搜索此包的配置文件   q是查询 c是conf

  1. /etc/ppp/options.pptpd
  2. /etc/pptpd.conf
  3. /etc/sysconfig/pptp

  1. [root@proxy ~]# vim /etc/pptpd.conf              //修改主配置文件
  2. .. ..
  3. localip 201.1.2.5                                           //服务器本地IP
  4. remoteip 192.168.3.1-50                            //分配给客户端的IP池
                
  1. vim /etc/ppp/options.pptpd
  2. require-mppe-128                                        //使用MPPE加密数据
  3. ms-dns 8.8.8.8                                            //DNS服务器

                

                

  1. vim /etc/ppp/chap-secrets                        //修改账户配置文件
  2. jacob         *          123456     *
  3. //用户名    服务器标记    密码    客户端

                sysctl -a | grep 'ip_forward'

                net.ipv4.ip_forward = 1
                net.ipv4.ip_forward_use_pmtu = 0

                echo "1" > /proc/sys/net/ipv4/ip_forward    //开启路由转发  默认是1可以不添加


    启动服务

                 systemctl start pptpd

                systemctl enable pptpd


        netstat -antupl | grep pptp

        tcp        0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN      5070/pptpd                //pptpd占用端口1723   




客户机  windows:201.1.2.20        

        


最后连接网络即可获得ip地址,最后关闭防火墙可以互相ping通


三  L2TP+IPSec VPN

2层隧道协议

准备环境:1 windows主机:网卡桥接public2(201.1.2.20/24)

           2 linux主机 vpn:eth0 --192.168.4.200/24     eth3 --201.1.2.200/24

服务器vpn主机部署IPSec服务

1)安装软件包

yum -y install libreswan

2)新建IPSec密钥验证配置文件

  1. [root@vpn ~]# cat /etc/ipsec.conf                //仅查看一下该主配置文件
  2. include /etc/ipsec.d/*.conf                          //加载该目录下的所有配置文件 不用修改主配置文件
  3. [root@vpn ~]# vim /etc/ipsec.d/myipsec.conf            
  4. //新建该文件,参考lnmp_soft/vpn/myipsec.conf
  5. ..............                                                         //left为服务器的,right为客户   
  6. left=201.1.2.200                                            //此位置填写服务器ip

         3)创建IPSec预定义共享密钥

                

  1. root@vpn ~]# vim /etc/ipsec.d/mypass.secrets        //新建该文件  文件名无要求,后缀名一定得是secrets
  2. 201.1.2.200 %any: PSK "randpass"             //randpass为密码随意设置后续客户端需要使用          %any为任何客户端
  3.                                                 //201.1.2.200是VPN服务器的IP

              

          4)启动IPSec服务

                systemctl restart ipsec

                netstat  -antupl | grep pluto

       

    部署XL2TP服务

            1)安装软件包(软件包参考lnmp_soft)

           yum -y install xl2tpd-1.3.8-2.el7.x86_64.rpm

            2) 修改xl2tp配置文件(修改3个配置文件的内容

            vim  /etc/xl2tpd/xl2tpd.conf                    //修改主配置文件    

                   .............     

                            [lns default]

                            ip range = 192.168.3.128-192.168.3.254
                            local ip = 201.1.2.200
                            require chap = yes

                            refuse pap = yes         

                    .................

          vim  /etc/ppp/options.xl2tpd                    //认证配置

                    ...............

                    #crtscts                                                //注释这行或者删除

                    ...............

                    #lock                                                    //注释或者删除

                    ..............

                    require-mschap-v2                            //取消注释顶行        强制要求认证

                    ..............

          vim  /etc/ppp/chap-secrets                        //修改帐号密码文件

        # Secrets for authentication using CHAP
        # client        server  secret                  IP addresses

            test               *     123456                  *       

    3)启动服务

        systemctl  start  xl2tpd

        netstat -antupl | grep xl2tpd

        udp        0      0 0.0.0.0:1701            0.0.0.0:*                           5189/xl2tpd            //确定已启动占用1701端口


客户端操作

            

启动一台Windows虚拟机,将虚拟机网卡桥接到public2,配置IP地址为201.1.2.20。

新建网络连接(参考上个客户端操作),输入VPN服务器账户与密码(参考上面客户端操作)。

设置Windows注册表(不修改注册表,连接VPN默认会报789错误),具体操作如下:

  • 单击"开始",单击"运行",键入"regedit",然后单击"确定"
  • 找到下面的注册表子项,然后单击它:
  • HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Rasman\Parameters
  • 在"编辑"菜单上,单击"新建"->"DWORD值"
  • 在"名称"框中,键入"ProhibitIpSec"
  • 在"数值数据"框中,键入"1",然后单击"确定"
  • 退出注册表编辑器,然后重新启动计算机

设置VPN连接的属性,预共享密钥是IPSec配置文件中填写的randpass,具体操作如图所示



NTP(时间同步服务器)

环境:Client(客户机)eth0---192.168.4.100

          Proxy(服务器)eth0---192.168.4.5

步骤一:部署NTP服务Proxy

1)安装软件包

                yum  -y install  chrony

                rpm  -qc  chrony

                /etc/chrony.conf

                /etc/chrony.keys

                ............

        2)修改配置文件

                vim  /etc/chrony.conf

                ..............

  1. server 0.centos.pool.ntp.org iburst //server用户客户端指向上层NTP服务器  
  2.                                     //这里是从网络中的时间同步服务器同步,然后作为服务器最多可以有十层
  3. allow 192.168.4.0/24                        //允许那个IP或网络访问NTP
  4. #deny 192.168.4.1                        //拒绝那个IP或网络访问NTP
  5. local stratum 10                            //设置NTP服务器的层数量
  6. .. ..

        3)启动NTP服务

            systemctl restart chronyd



步骤二:配置客户端Client

1)安装软件包

        yum -y install chrony

2) 修改配置文件

                vim  /etc/chrony.conf

        server  192.168.4.5  iburst                //设置与哪台时间服务器同步数据  iburst参数设置重启服务后尽快同步时间

        3) 将客户端时间修改为错误的时间

                date  -s  "12:12"

                date 

                2018年 05月 12日 星期六 12:12:00 CST

        4) 重启chrony与服务器同步时间

                systemctl  restart  chronyd

        5) 确认时间是否已经同步

                date

                2018年 05月 12日 星期六 17:11:16 CST


PSSH提供了一套并发openssh工具

        准备环境:主机名                 ip地址

                          client             eth0--192.168.4.100

                          proxy             eth0--192.168.4.5

                                                eth3--192.168.2.5

                          web1             eth3--192.168.2.100

                          web2             eth3--192.168.2.200

    1)安装软件包

            [root@proxy ~]# yum  install pssh-2.3.1-5.el7.noarch.rpm


    2)语法格式

  1. [root@proxy ~]# man pssh                    //通过man帮助查看工具选项的作用
  2. pssh提供并发远程连接功能
  3. -A                使用密码远程其他主机(默认使用密钥)
  4. -i                将输出显示在屏幕
  5. -H                设置需要连接的主机
  6. -h                设置主机列表文件
  7. -p                设置并发数量
  8. -t                设置超时时间
  9. -o dir            设置标准输出信息保存的目录
  10. -e dir            设置错误输出信息保存的目录
  11. -x                传递参数给ssh


            [root@proxy ~]# pssh -A -i -H "192.168.4.5  192.168.4.100"   -x '-o StrictHostKeyChecking=no'  date           

            [1] 09:48:41 [SUCCESS] 192.168.4.100                                        //SUCCESS表示成功
            2018年 05月 14日 星期一 09:48:41 CST                                        //FAILURE表示失败
            [2] 09:48:41 [SUCCESS] 192.168.4.5
            2018年 05月 14日 星期一 09:48:41 CST

                                                                //实现两端都执行一个date命令        最初命令操作

     3)修改[root@proxy ~]# /etc/hosts本地解析文件

            192.168.4.100  client

            192.168.4.5    proxy 

            [root@proxy ~]# pssh -A -i -H "proxy    client"   -x '-o StrictHostKeyChecking=no'  date 

                                                                        //-H是指定ip或者域名都行

      3)创建主机列表文件

            [root@proxy ~]# touch   /root/host.txt

            [root@proxy ~]# cat   /root/host.txt

            proxy

            client

            [root@proxy ~]# pssh -A  -i -h /root/host.txt -x '-o StrictHostKeyChecking=no' date
                                                                          //-h是指定文件里的主机名作为参数

      4)设置登陆不需要确认接收密钥

       [root@proxy ~]# vim  /etc/ssh/ssh_config

        35行  -o StrictHostKeyChecking=no

        [root@proxy ~]# pssh -A  -i -h /root/host.txt  date           //-x是传递参数给ssh

                                                                //改了上面的ssh配置文件可以不需要在远程ssh的时候输入yes/no

       

        4)生成免密钥

        [root@proxy ~]#ssh-keygen                                            //生成免密密钥  实现免密码登陆

        [root@proxy ~]#ssh-copy-id [email protected]         //把公钥传给192.168.4.100

        [root@proxy ~]#pssh -i -h /root/host.txt date

                                                                  //远程不需要密码两端都直接date输出在屏幕上

        5)将执行的输出保存到目录下会生成与主机名对应的文件名

         [root@proxy ~]#pssh -i -h host.txt -o  /opt    date            //将两端执行的date命令输出结果指定存放到/opt下

         [root@proxy ~]#cat  /opt/proxy

        2018年 05月 14日 星期一 10:53:00 CST
         [root@proxy ~]#cat  /opt/client

         2018年 05月 14日 星期一 10:53:01 CST


         6)将本地的etc.tar.gz拷贝到远程的/tmp目录下

        [root@proxy ~]# pscp.pssh   -h host.txt etc.tar.gz /tmp            //前期是有etc.tar.gz

       

        7)将本地的/opt拷贝到远程的/tmp目录下  需要有-r递归选项

        [root@proxy ~]# pscp.pssh  -r -h host.txt /opt  /tmp


        8//将/boot存放在当前目录下proxy(主机名目录)/tmp/ 下

        [root@proxy ~]# pslurp  -r -h host.txt  /boot  /tmp

                                                   

        9将/boot存放在当前目录下/media/proxy(主机名目录)/tmp/  下

        [root@proxy ~]# pslurp  -r -h host.txt  -L   /media   /boot  /tmp

                                                //  -L 指定存放的目录

        10pnuke远程杀死进程

        [root@proxy ~]#pnuke  -h host.txt  sleep            //杀死host.txt 里对应主机名了的 sleep进程,前期是都有sleep进程

猜你喜欢

转载自blog.csdn.net/jon_stark/article/details/80288761