使用Centos7搭建VPN服务器流程步骤

2022-07-18 10:52:42  阅读 10227 次 评论 0 条


vpn是什么?来段介绍

VPN英文全称:Virtual Private Network(虚拟专用网络)。VPN被定义为通过一个公用互联网络建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定隧道,使用这条隧道可以对数据进行几倍加密达到安全使用互联网的目的,广泛使用企业办公当中,虚拟专用网也可以是针对企业内部网的扩展,虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网,因此很多办公一族在自己电脑中也需要建立VPN连接,方便远程办公等等。


如何使用CentOS 7实例配置PPTP VPN服务端到客户端的连接

KB: 41345更新时间:2020-06-30 16:02

概述

本文以CentOS 7实例为例,配置PPTP VPN服务端到客户端的连接,仅用于示例和操作指引,请您根据实际需要操作。使用PPTP服务存在安全隐患,单击查看详情,您需要考虑由此产生的影响及问题。

详细信息

配置PPTP VPN需要使用TCP协议的1723通信端口。您需要在安全组中放行TCP协议的1723端口,安全组的具体配置规则请参见添加安全组规则

配置CentOS PPTP服务端

按照如下操作步骤,配置CentOS PPTP服务端。

先更新一下再安装。

yum update

安装软件

执行如下命令,安装软件。

yum install -y ppp pptpd

系统显示类似如下。

配置pptpd文件

  1. 执行vi /etc/pptpd.conf命令, 编辑配置文件,删除下列两行命令符前面的“#”,保存后退出。

    #localip 192.168.0.1
    #remoteip 192.168.0.234-238,192.168.0.245

    系统显示类似如下。

    说明:localip和remoteip分别是VPN的网关地址和VPN拨号时获取的地址段。您可以根据需要调整。
  2. 执行vi /etc/ppp/options.pptpd命令,将ms-dns修改为223.5.5.5223.6.6.6。保存后退出。

    #ms-dns 10.0.0.1
    #ms-dns 10.0.0.2
    ms-dns 223.5.5.5
    ms-dns 223.6.6.6
    说明:IP地址223.5.5.5和223.6.6.6是阿里云的公共DNS服务器地址,您可以根据需要调整为其它公共DNS服务地址。

    系统显示类似如下。

  3. 执行vi /etc/ppp/chap-secrets命令,设置pptpd的用户名和密码。根据需要添加账号,一行只添加一个用户账号。按照“用户名 pptpd 密码 IP地址”格式输入,每一项用空格隔开。保存后退出。

    示例:test pptpd 123456 ,其中“*”表示所有IP。
    # Secrets for authentication using CHAP
    # client server secret IP addresses
    test pptpd 123456 *

    系统显示类似如下。

  4. 执行vi /etc/ppp/ip-up命令,设置最大传输单元MTU。在命令符[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”下方添加 ifconfig ppp0 mtu 1472

    /etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
    [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”
    ifconfig ppp0 mtu 1472

    系统显示类似如下。

内核参数设置

  1. 执行vi /etc/sysctl.conf命令,编辑配置文件,添加net.ipv4.ip_forward = 1配置,保存后退出。

  2. 执行sysctl -p命令,使修改后的参数生效。

添加防火墙规则

  1. 执行如下命令,添加iptables转发规则。

    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
  2. 执行如下命令,添加NAT转发规则,其中XXX.XXX.XXX.XXX为您的实例公网IP地址。

    iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.255.0 -j SNAT --to-source XXX.XXX.XXX.XXX
  3. 执行如下命令,保存设置。

    service iptables save

配置PPTP服务

  1. 执行如下命令,重启PPTP服务。

    说明:此时PPTP还未成功运行,所以当您重启PPTP服务时,系统会提示“Shutting down pptpd [FAILED]”,并发出警告。您可以忽略提示和警告,再次使用以下命令重启PPTP服务,警告信息就会消失。
    systemctl restart pptpd
  2. 执行如下命令,重启iptables。

    systemctl start iptables
  3. 执行如下命令,设置pptpd和iptables自启动。

    chkconfig --add pptpd
    chkconfig pptpd on
    chkconfig --add iptables
    chkconfig iptables on
  4. 至此,您的PPTP VPN服务端已安装结束。您可以在Windows客户端的 网络和共享中心 设置新的连接或网络,即可通过VPN访问网络。

配置CentOS PPTP客户端

本文以CentOS 6.8为例配置PPTP客户端。

  1. 执行如下命令,安装软件包。

    yum install -y ppp pptp pptp-setup

    系统显示类似如下。

  2. 执行如下命令, 连接VPN服务端。

    pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start

    说明:[$IP]、[$User]、[$Password]为VPN服务端的IP地址、用户名和密码。

    系统显示类似如下。

  3. 当系统提示已经被分配了192.168.0.234的客户端地址时,执行如下命令,可以看到ppp0网卡。

    ifconfig | grep -A 10 ppp

    系统显示类似如下。

  4. 执行如下命令,增加默认路由。

    ip route replace default dev ppp0

    系统显示类似如下。

  5. 增加路由后,您就可以访问VPN服务器。

 

在使用过程,可能会出现如下常见问题。

浏览器无法打开网页

  • 问题现象:搭建PPTP VPN后,测试可以连接,可以PING通网站域名,但浏览器无法打开网页。

  • 问题原因:一般是MTU设置不正确导致的。

  • 解决方案

    • 方案一:在配置VPN的CentOS服务器中执行如下命令,此方案可以临时生效,如果您需要长期生效的方案,请参考 方案二

      ifconfig ppp0 mtu 1472
    • 方案二:执行vi /etc/ppp/ip-up命令,在/etc/ppp/ip-up文件中增加如下“ifconfig ppp0 mtu 1472”。

      /etc/ppp/ip-up. ipv6to4 ${LOGDEVICE}
      [ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”
      ifconfig ppp0 mtu 1472

      系统显示类似如下。

  • 方案测试:测试结果类似如下,可以正常访问。

获取到错误的IP地址

  • 问题现象:客户端成功连接VPN后,获取到错误的地址。获取的地址不是VPN服务端分配的地址,而是云服务器ECS实例的内网网卡地址。

  • 问题分析:如果出现这种情况,假设配置的VPN客户端配置名称是testvpn,可以参照如下步骤尝试处理。

  • 解决方案

    1. 在ppp客户端/etc/ppp/peers/testvpn配置文件中添加noipdefault参数。

    2. 执行如下命令重启客户端。重新连接后通常可获取到正确的IP地址。

      poff testvpn
      pon testvpn
      说明:重启客户端时,noipdefault参数可能会被服务端传递过来的参数覆盖。如果noipdefault被覆盖,您需要检查服务端的配置。

适用于

  • 云服务器 ECS


本文地址:http://blog.jinesc.net/?id=294
版权声明:本文为原创文章,版权归 jinesc 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?