在CentOS安装pptpd以及部署

系统 Linux
如何在在CentOS安装pptpd,vpn拓扑结构、vpn服务器端的配置、运行pptpd、客户端配置、安装pptpd设置路由及ip伪装。

在使用CentOS系统的时候,对有些人也许会遇到在CentOS安装pptpd的问题。下面就来介绍一下,如何在CentOS安装pptpd。在CentOS安装pptpd最省事的安装就是下载rpm包pptpd-1.3.4-1.rhel5.1.i386.rpm,然后直接执行 rpm –ivh pptpd-1.3.4-.rhel5.1.i386.rpm 。幸运的是这个包没有其他依赖,因此CentOS安装pptpd应该是异常的顺利。如果使用源码安装,会出现ppp版本高的情况,需删除pppd2.3.4 再安装pppp2.4.3,反而麻烦了。安装完rpm包后,自动生成几个配置文件,主配置文件/etc/pptpd.conf,选项文件/etc/ppp/options.pptpd, 帐号文件/etc/ppp/chapsecrets.后面配置pptpd主要就是对这几个文件进行修改。

一、CentOS安装pptpd (vpn)拓扑结构

vpn的访问逻辑上存在3个网络:
1、欲访问的目标网络。通常在vpn服务器所在的内部网络(vpn服务器有2个网卡,一个是公网的,一个是私有网络的)
2、Vpn的公网网络。
3、Vpn连接后与客户端形成的虚拟网络。建议单独设置一个网络,这样就不会占用vpn后面的私有网络(目标网络)的ip资源/地址。
 

图1

当然vpn隧道网络可以跟目标网络是同一个网段,不过不推荐这样。

二、CentOS安装pptpd vpn服务器端的配置

(一)修改主配置文件/etc/pptpd.conf.只需要加入下面两行:

localip  172.16.195.1
remoteip 172.16.195.101-200
Localip这行是给vpn服务器设置一个隧道ip
Remoteip是自动分配给客户端的ip地址范围。
 
(二)修改选项文件/etc/ppp/options.pptpd.需要设定分配给客户端的dns,因此仅需把ms-dns前的注释去掉,改成可用的dns如下:ms-dns 61.135.154.5     ms-dns 159.226.240.66

为了方便查看调试信息,把debug行前面的注释取消即可。Dump前的注释也取消。

(三)CentOS安装pptpd 添加帐号。通过编辑文件/etc/ppp/chap-secrets逐行加入;一个账号占一行。一行分4列,其表示如下:       
用户名
服务器名
密码
ip
没有字符数限制
Pptpd—都用这个,如果用其它的名称,需要修改options.pptpd文件的name行的内容
用双引号的话,密码就不能包含双引号了
 * 表示有pptpd随机分配ip

三、CentOS安装运行pptpd.执行命令service pptpd start或者执行/etc/init.d/pptpd 即可启动它。

通过检查进程、查看系统日志来确定pptpd是否正常。

四、客户端配置(windows)。

这个应该很容易了,就不再多费口舌。

五、拨号登录。

拨号过程中,登录到vpn服务器查看日志,会看到用户的连接情况,下面是截取的一个片断,供参考:
 

  1. Dec 19 17:16:01 max-vpn pppd[9833]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.  
  2. Dec 19 17:16:01 max-vpn pppd[9833]: pptpd-logwtmp: $Version$  
  3. Dec 19 17:16:01 max-vpn pppd[9833]: pppd options in effect:  
  4. Dec 19 17:16:01 max-vpn pppd[9833]: debug               # (from /etc/ppp/options.pptpd)  
  5. Dec 19 17:16:01 max-vpn pppd[9833]: logfile /etc/ppp/vpn.log            # (from /etc/ppp/options.pptpd)  
  6. Dec 19 17:16:01 max-vpn pppd[9833]: dump                # (from /etc/ppp/options.pptpd)  
  7. Dec 19 17:16:01 max-vpn pppd[9833]: plugin /usr/lib/pptpd/pptpd-logwtmp.so              # (from command line)  
  8. Dec 19 17:16:01 max-vpn pppd[9833]: require-mschap-v2           # (from /etc/ppp/options.pptpd)  
  9. Dec 19 17:16:01 max-vpn pppd[9833]: refuse-pap          # (from /etc/ppp/options.pptpd)  
  10. Dec 19 17:16:01 max-vpn pppd[9833]: refuse-chap         # (from /etc/ppp/options.pptpd)  
  11. Dec 19 17:16:01 max-vpn pppd[9833]: refuse-mschap               # (from /etc/ppp/options.pptpd)  
  12. Dec 19 17:16:01 max-vpn pppd[9833]: name pptpd          # (from /etc/ppp/options.pptpd)  
  13. Dec 19 17:16:01 max-vpn pppd[9833]: pptpd-original-ip 200.199.118.72           # (from command line)  
  14. Dec 19 17:16:01 max-vpn pppd[9833]: 115200              # (from command line)  
  15. Dec 19 17:16:01 max-vpn pppd[9833]: lock                # (from /etc/ppp/options.pptpd)  
  16. Dec 19 17:16:01 max-vpn pppd[9833]: local               # (from command line)  
  17. Dec 19 17:16:01 max-vpn pppd[9833]: novj                # (from /etc/ppp/options.pptpd)  
  18. Dec 19 17:16:01 max-vpn pppd[9833]: novjccomp           # (from /etc/ppp/options.pptpd)  
  19. Dec 19 17:16:01 max-vpn pppd[9833]: ipparam 200.199.118.72             # (from command line)  
  20. Dec 19 17:16:01 max-vpn pppd[9833]: ms-dns xxx # [don't know how to print value]                # (from /etc/ppp/options.pptpd)  
  21. Dec 19 17:16:01 max-vpn pppd[9833]: proxyarp            # (from /etc/ppp/options.pptpd)  
  22. Dec 19 17:16:01 max-vpn pppd[9833]: 172.16.195.1:172.16.195.101-200               # (from command line)  
  23. Dec 19 17:16:02 max-vpn pppd[9833]: nobsdcomp           # (from /etc/ppp/options.pptpd)  
  24. Dec 19 17:16:02 max-vpn pppd[9833]: require-mppe-128            # (from /etc/ppp/options.pptpd)  
  25. Dec 19 17:16:02 max-vpn pppd[9833]: pppd 2.4.4 started by root, uid 0  
  26. Dec 19 17:16:02 max-vpn pppd[9833]: Using interface ppp0  
  27. Dec 19 17:16:02 max-vpn pppd[9833]: Connect: ppp0 <--> /dev/pts/1  
  28. Dec 19 17:16:02 max-vpn pptpd[9832]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!  
  29. Dec 19 17:16:02 max-vpn pppd[9833]: Unsupported protocol 'IPv6 Control Protovol' (0x8057) received  
  30. Dec 19 17:16:02 max-vpn pppd[9833]: MPPE 128-bit stateless compression enabled  
  31. Dec 19 17:16:04 max-vpn pppd[9833]: Cannot determine ethernet address for proxy ARP  
  32. Dec 19 17:16:04 max-vpn pppd[9833]: local  IP address 172.16.195.1  
  33. Dec 19 17:16:04 max-vpn pppd[9833]: remote IP address 172.16.195.101  
  34. Dec 19 17:16:04 max-vpn pppd[9833]: pptpd-logwtmp.so ip-up ppp0 sery 200.199.118.72  
  35. [root@max-vpn ~]#       

 

这段日志表明已经有一个来自200.199.118.72连接到vpn服务器,其账号为sery,分配给这个客户端机器的vpn地址是172.16.195.101.在拨号的机器(windows)上查看其现在的网络参数:
 

  1. C:\Users\sery>ipconfig/all  
  2. Windows IP 配置  
  3. 主机名  . . . . . . . . . . . . . : sery-sony  
  4. 主 DNS 后缀 . . . . . . . . . . . :  
  5. 节点类型  . . . . . . . . . . . . : 混合  
  6. IP 路由已启用 . . . . . . . . . . : 否  
  7. WINS 代理已启用 . . . . . . . . . : 否  
  8. DNS 后缀搜索列表  . . . . . . . . : maxthon.net  
  9. PPP 适配器 VPN 连接:  
  10. 连接特定的 DNS 后缀 . . . . . . . :  
  11. 描述. . . . . . . . . . . . . . . : VPN 连接  
  12. 物理地址. . . . . . . . . . . . . :  
  13. DHCP 已启用 . . . . . . . . . . . : 否  
  14. 自动配置已启用. . . . . . . . . . : 是  
  15. IPv4 地址 . . . . . . . . . . . . : 172.16.195.101(首选)  
  16. 子网掩码  . . . . . . . . . . . . : 255.255.255.255  
  17. 默认网关. . . . . . . . . . . . . : 0.0.0.0  
  18. DNS 服务器  . . . . . . . . . . . : 61.135.154.5  
  19.                                    159.226.240.66  
  20. TCPIP 上的 NetBIOS  . . . . . . . : 已启用 

 

六、CentOS安装pptpd设置路由及ip伪装。

需要在这里可以登录vpn服务器,但由于没有设置相关的转发规则,因此还是没办法访问vpn后面的私有网络或者通过vpn访问互联网(windows机器会在状态栏的网络连接图标显示一个黄色的感叹号)。所以还需要完成下面几步才算真正结束了—看了一些网上的文章,通常就是在这里结束了,看来作者只是登录了一下虚拟环境。

(一)开启ip转发功能:修改配置文件/etc/sysctl.conf,使net.ipv4.ip_forward = 1
(二)写个脚本文件,实现路由,其内容大致如下:
 

  1. [root@max-vpn ~]# more /usr/local/bin/vpn_route.sh   
  2. #!/bin/bash  
  3. /sbin/iptables -t nat -A POSTROUTING -s 192.168.195.0/24 -o eth0 -j SNAT --to-source 61.135.251.50  
  4. /sbin/iptables -t nat -A POSTROUTING -s 172.16.195.0/24 -o eth1 -j SNAT --to-source 192.168.195.166  
  5. /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  

 

目标网络/vpn的内部网络为192.168.195.0/24,vpn服务器有2个网卡,其中一个连接公网(eth0),ip地址是61.135.251.51,另外一个网卡连私有网络,ip是192.168.195.166。这样就能正常地路由所涉及的网络了。手动执行一下这个脚本,看客户端(windows)是否能访问目标网络里的机器:最简单的方法就是ping,假定目标网络里有一个192.168.195.100的机器,并请允许icmp通过,ping 192.168.195.100 ,正常的话,再进一步访问这个服务器(如远程登录)。没有问题的话,把它加在开机自启里面。为安全起见,你可以在这个脚本里加更多的iptables规则。
这样就可以在CentOS安装pptpd了。大家可以顺利的使用pptpd了。

【编辑推荐】

  1. 初学者如何对linux CentOS安装
  2. 教你一种简单的CentOS安装方法
  3. CentOS安装的琐碎问题集
  4. CentOS安装mono配置系统相关编译器
  5. CentOS安装配置proftp系统软件
责任编辑:小霞
相关推荐

2022-05-19 14:59:32

Tomcat服务器开放

2011-02-25 10:36:24

2020-11-03 14:50:18

CentOSMySQL 8.0数去库

2013-12-24 13:35:47

2011-03-18 11:04:39

Centos 5.4zabbix 1.8.

2011-04-08 10:10:23

2010-03-29 14:48:58

CentOS系统

2010-01-13 14:18:36

CentOS Open

2014-02-19 14:54:58

CentOS 6.5Xen

2020-08-28 11:20:01

CentOS7RocketMQ 4.运维

2011-08-17 10:19:30

CentOSOpenStack N

2011-03-16 12:29:41

2011-03-29 14:17:27

Cacti中文版Centos

2015-07-29 13:29:10

CalamariCentos7.1部署案例

2021-11-12 08:21:25

SQL ServerLinux数据库

2011-10-28 16:05:56

Node.js

2011-04-06 11:36:31

CentOSMRTG安装

2022-12-02 11:37:47

2022-02-14 07:47:30

巡风CentOS7漏洞扫描

2023-11-09 07:44:21

点赞
收藏

51CTO技术栈公众号