ubuntu 20.04.1验证PPtP

	PPTP(点对点隧道协议):控制包和数据包分开,控制包采用TCP控制,数据包部分封装PPP协议然后封装GREV2协议。由此可见PPTP建立连接前,要求有IP网络。

Ubuntu 20.04.1 上搭建PPtP Server和Client

Server端

  1. 安装ppp

    sudo apt install ppp
    
  2. 安装pptpd

    sudo apt install pptpd
    
  3. 配置pptpd

    pptpd的配置文件为/etc/pptpd.conf,vim编辑它,一下为部分配置选项,详情可阅读配置文件里面的注释。

    # ppp拨号程序路径
    ppp    /usr/sbin/pppd
    
    # ppp配置文件
    option /etc/ppp/pptpd-options
    
    # 开启debug,日志输出到syslog
    debug
    
    # 连接控制的超时时间(秒)
    stimeout 10
    
    # 最大连接数
    connections 100
    
    # 本地端(server)IP
    localip 192.168.0.1
    
    # 远程对端(client)分配IP范围
    remoteip 192.168.0.234-238,192.168.0.245
    

    ​ 其他默认即可,这里主要修改localipremoteip。需要注意的是remoteip可以指定一个范围,或者某一个ip,不同的区域用逗号隔开,中间不能有空格。

  4. 配置pptpd对应的ppp配置文件

    ​ pptpd对应的ppp文件文件在上面的/etc/pptpd.conf文件中已指定,为/etc/ppp/pptpd-options,安装pptpd时也一并安装了。

    ​ 此文件中主要修改ms-dns项,设置为你想要的dns

    #ms-dns 10.0.0.1
    #ms-dns 10.0.0.2
    ms-dns 114.114.114.114
    ms-dns 8.8.8.8
    

    ​ 除此之外,还需要留意这个文件里面对鉴权认证和数据加密相关的设置,默认的为:

    # 留意refuse(拒绝,禁用)选项
    refuse-pap
    refuse-chap
    refuse-mschap
    
    require-mschap-v2
    require-mppe-128
    

    ​ 鉴权大致分为chap和pap,chap又有一些不同分支版本,主要是对安全兼容等方面的加强。

  5. 设置ppp账户密码

    ​ 账号密码配置的文件有2个,一个是/etc/ppp/chap-secrets,一个是/etc/ppp/pap-secrets。选用哪一个取决于上一个步骤使用何种验证方式,因为这里禁用了:

    refuse-pap
    refuse-chap
    refuse-mschap
    

    而启用了:

    require-mschap-v2
    

    所以这里需要在/etc/ppp/chap-secrets配置账户密码

    # Secrets for authentication using CHAP
    # client        server  secret                  IP addresses
    test              *       test                    *
    admin             *       admin                   *
    
  6. 启动服务

    sudo systemctl enable pptpd
    sudo systemctl start pptpd
    

    由于这里不验证client端通过server端上网,所以没讨论如何设置转发和防火墙的设置。

  7. 扩展,设置转发和防火墙

    开启转发

    sudo vim /etc/sysctl.conf
    #找到对应参数,修改成如下:
    net.ipv4.ip_forward=1
    #保存,使配置生效
    sudo sysctl -p
    

    配置防火墙

    sudo iptables -A INPUT -p gre -j ACCEPT 
    sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT   
    sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT
    #NAT转发的这条信息根据自己之前的配置(localip,remoteip网段)修改,注意网卡名设置为你的wan口网卡名,Ubuntu高一点的版本一般是ens33
    sudo iptables -t nat -A POSTROUTING -s 192.168.0.1/24 -o ens33 -j MASQUERADE
    

    重启服务

    sudo systemctl restart pptpd
    

    此时client端可以上外网了。

Client端

​ 首先使用另一台ubuntu验证,安装相关的软件

sudo apt-get install network-manager-pptp
sudo apt-get install pptp-linux

通过UI界面配置

选择PPTP插件

设置密码时需要点一下那个问好,选择第一个或者第二个,才可以输入密码。然后点击Advance,设置高级配置。

高级配置里面,根据上面server鉴权和数据加密的配置来勾选,这里server鉴权配置为mschapv2,数据加密使用了mppe-128。保存,连接。

然后,使用另一个账号密码在openwrt上连接,需要注意的是,一个账号对应一路连接,同一个账号不能同时从多个client端连接。

在server端可以看到此时有2个ppp连接

如果嫌麻烦,也可以直接在win10上验证

配置也是相当简单

posted @ 2021-01-27 16:50  thammer  阅读(3229)  评论(0编辑  收藏  举报