年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4131|回复: 0

[CentOS] CentOS架设pptp服务器

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2015-7-18 14:57:18 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2015-7-18 14:58 编辑

    PPTP(Point to Point Tunneling Protocol,点对点隧道协议) 默认端口号:1723

            PPTP,即PPTF协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可以通过密码身份验证协议(PAP)、可扩展身份验证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。
            
            点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术,它工作在第二层。通过该协议,远程用户能够通过 Microsoft Windows NT工作站、Windows xp 、Windows 2000 和windows2003、windows7操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地ISP,通过Internet 安全链接到公司网络。

            PPTP协议是点对点隧道协议,其将控制包与数据包分开,控制包采用TCP控制。PPTP使用TCP协议,适合在没有防火墙限制的网络中使用。

    一、pptp服务器部署操作:

    服务器
    IP地址
    描述
    Server05 (centos6.6)
    192.168.10.65(vpn:10.0.0.1)
    Vpn-server服务器
    Windows-xp
    192.168.10.69
    Vpn-client客户端
    Server06  (centos6.6)
    192.168.10.66
    Vpn-client客户端


    1、检查系统内核是否支持MPPE补丁
    [root@server05 ~]# modprobe ppp-compress-18 && echo ok
    # 显示ok则系统支持MPPE补丁,如不支持,需先安装kernel-devel   
    安装命令: yum install kernel-devel


    2、检查系统是否开启TUN/TAP支持
    [root@server05 ~]# cat /dev/net/tun
    cat:  /dev/net/tun: File descriptor in bad state    # 如果显示这条信息,则表明通过

    3、检查系统是否开启ppp支持
    [root@server05 ~]# cat /dev/ppp
    cat: /dev/ppp: No such deviceor address        # 如果显示这条信息,则表明通过

    注意:上面三条必须同时满足,否则不能安装pptpvpn。

    4、安装pptp依赖包ppp
    [root@server05 ~]# yum install ppp

    5、安装pptpd
    [root@server05 ~]# yum installpptpd

    6.编辑/etc/ppp/options.pptpd文件。
    [root@server05~]# vim /etc/ppp/options.pptpd
    ms-dns 172.16.1.5       #我这里内网因为有dns服务器,所以填写的是内网dns服务器地址,如果没有内网dns需要填写供应商提供的dns地址;
    ms-dns172.16.1.7       #备用dns

    7.编辑/etc/pptpd.conf 文件。
    [root@server05 ~]# vim /etc/pptpd.conf
    localip 10.0.0.1          #vpn拨入用户服务器IP地址,(也可以写成10.0.0.1-100,这样每个客户端都会对应一个单独的服务器IP)
    remoteip 10.0.0.101-200      # vpn拨入用户客户端动态分配地址池

    8.设置VPN账号密码,编辑/etc/ppp/chap-secrets这个文件。
    [root@server05~]# vim  /etc/ppp/chap-secrets
    #client    server  secret          IPaddresses
    test        pptpd   123456    *
    testvpn        pptpd   123456    *
    #第1列是vpn客户端登录的用户名,第3列是vpn客户端登录的密码,第4列是登录的用户的主机的IP地址定义,"*"表示可以是任意的IP地址。

    9.修改内核设置,使其支持转发,编辑/etc/sysctl.conf 文件。
    [root@server05~]# vim /etc/sysctl.conf
    net.ipv4.ip_forward = 1   #将“net.ipv4.ip_forward”的值改为1

    使修改的配置生效:
    [root@server05~]# sysctl -p
    #如果报错:
    error:"net.bridge.bridge-nf-call-ip6tables" is an unknown key
    error: "net.bridge.bridge-nf-call-iptables"is an unknown key
    error:"net.bridge.bridge-nf-call-arptables" is an unknown key

    # 解决方法
    [root@server05 ~]# modprobe bridge
    [root@server05 ~]# lsmod |grep bridge  #查看
    [root@server05 ~]# sysctl -p        #重新加载配置文件

    10、启动pptpd
    [root@server05 ~]# service pptpd start      #启动服务
             
    Starting pptpd:                                           [  OK  ]

    [root@server05 ~]# chkconfig pptpd on       #加入开机启动项
    [root@server05 ~]# chkconfig --list pptpd   #查看开机启动
    [root@server05 ~]# ss -tnl  #pptpd服务监听1723端口
    State       Recv-Q Send-Q          LocalAddress:Port           Peer Address:Port
    LISTEN      0     3                  *:1723                      *:*

    11.设置iptables策略
    [root@server05 ~]# iptables -F  #清楚现有的iptables策略;
    [root@server05 ~]# iptables -tnat -A POSTROUTING -s 10.0.0.0/24 -j  MASQUERADE  #设置IPTABLES转发策略;
    [root@server05 ~]# serviceiptables save        #保存iptables设置

    二、Linux客户端连接vpn服务器:


    [root@server06 ~]# iptables –F #清空iptables默认规则
    [root@server06 ~]# yum -y install ppp pptp pptp-setup   #安装相关包
    [root@server06 ~]# pptpsetup --create testvpn --server 192.168.10.65 --username test --password 123456 --encrypt --start    #创建名为testvpn的vpn连接
    Using interface ppp0
    Connect: ppp0 <-->/dev/pts/1
    CHAP authentication succeeded
    MPPE 128-bit statelesscompression enabled
    local  IP address 10.0.0.100
    remote IP address 10.0.0.1
    [root@server06 ~]# cat/etc/ppp/peers/testvpn   #这个文件是上一步命令生成的vpn连接信息;
    [root@server06 ~]# ip add       #查看IP,已经可以看到PPP0获取到了vpn 的IP地址;
    1: lo:<LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 08:00:27:d2:d5:71 brdff:ff:ff:ff:ff:ff
        inet 192.168.10.66/24 brd 192.168.10.255scope global eth1
        inet6 fe80::a00:27ff:fed2:d571/64 scopelink
           valid_lft forever preferred_lft forever
    8: ppp0:<POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1496 qdisc pfifo_fast stateUNKNOWN qlen 3
        link/ppp
    inet10.0.0.100 peer 10.0.0.1/32 scope global ppp0

    [root@server 06 ~]# route add-net 0.0.0.0 dev ppp0     #添加默认路由,如果不添加,则无法实现与其他vpn客户端的通信

    [root@server06 ~]# ping10.0.0.1        #测试是否能够成功连接服务器
    PING 10.0.0.1 (10.0.0.1)56(84) bytes of data.
    64 bytes from 10.0.0.1:icmp_seq=1 ttl=64 time=2.39 ms

    [root@server06 ~]# ping10.0.0.101      #测试连接其它vpn客户端
    PING 10.0.0.101 (10.0.0.101)56(84) bytes of data.
    64 bytes from 10.0.0.101:icmp_seq=1 ttl=127 time=8.72 ms
    64 bytes from 10.0.0.101:icmp_seq=2 ttl=127 time=5.73 ms

    尝试断开连接并重新连接:

    [root@server06 ~]# ps aux | grep vpn
    root      1968  0.0  0.0  26564   772 ?        Ss   14:34   0:00 pppd call vpn updetach
    root      2089  0.0  0.0 103244   856 pts/0    S+   15:16   0:00 grep vpn
    [root@server06 ~]# kill 1968
    [root@server06 ~]# ip add  #再次查看就没有这个IP了!!!
    [root@server06 ~]# pppd call testvpn  #重新连接vpn服务器,这里的testvpn是刚才第一次创建时生成的连接文件;
    注意:再次获取到IP地址;但是这个时候是无法连接其它vpn客户端的,因为默认路由没有了!!!!需要重新添加默认路由!!!
    [root@server06 ~]# route add -net 0.0.0.0 dev ppp0

    [root@server06 ~]# ping 10.0.0.101
    PING 10.0.0.101 (10.0.0.101) 56(84) bytes of data.
    64 bytes from 10.0.0.101: icmp_seq=1 ttl=127 time=5.67 ms
    64 bytes from 10.0.0.101: icmp_seq=2 ttl=127 time=4.87 ms

    测试完毕!!!!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-11-22 03:53 , Processed in 0.049417 second(s), 23 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表