当前位置:TranBon博客 > 首页 > 技术 > 搭建PPTP VPN服务.md

搭建PPTP VPN服务.md

adminis4年前 (2021-02-21)技术40340

一、简介

本文介绍在Centos操作系统如何搭建PPTP VPN服务。包括PPTP的安装、配置,以及相应的iptables/firewalld规则。之所以选择PPTP VPN,是考虑到客户端连接起来会比较方便。Linux Desktop、Windows还有Android这些终端原生都有连接PPTP的客户端。

二、PPTP的配置主要有下面五个步骤

  • 验证内核是否加载了MPPE模块

  • 安装所需的软件包

  • 配置PPP和PPTP的配置文件

  • 打开内核的IP转发功能

  • 启动pptpd守护进程

  • 配置iptables防火墙放行和转发规则

下面的所有配置操作都需要root权限,如无特别说明,所有命令都在root的家目录下执行。

Step1: 验证内核是否加载了MPPE模块

内核的MPPE模块用于支持Microsoft Point-to-Point Encryption。Windows自带的VPN客户端就是使用这种加密方式,主流的Linux Desktop也都有MPPE支持。其实到了我们这个内核版本,默认就已经加载了MPPE,只需要使用下面命令验证一下,显示"MPPE ok"即可:

modprobe ppp-compress-18 && echo MPPE is ok

Step2: 安装额外epel仓库

CentOS6:

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm

CentOS7:

rpm -ivh https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

Step3: 安装所需的软件包

yum install ppp pptpd -y

PPTP使用PPP协议对用户数据进行封装,然后将PPP数据帧封装在IP数据报里,经由IP网络传播。因此首先需要支持PPP协议,我们使用的完整版CentOS已经自带了ppp这个软件包,如果你安装的是Minial CentOS之类的精简系统,则可能需要自行安装ppp,因为系统yum可以解决软件包的依赖关系,我们直接安装我们最终目的的软件包即可。

Step4: 配置PPP和PPTP的配置文件

2.4.1修改 /etc/ppp/options.pptpd ,这个文件需要配置的不多,我们只需指定dns服务器即可。

vi /etc/ppp/options.pptpd

如果服务器在国内,使用阿里DNS:

ms-dns 223.5.5.5
ms-dns 223.6.6.6

如果服务器在中国大陆以外,使用Google公共DNS服务:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

2.4.2修改 /etc/pptpd.conf

vi /etc/pptpd.conf

确保有以下内容

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

option /etc/ppp/options.pptpd指定使用/etc/ppp/options.pptpd中的配置,默认已经开启

logwtmp表示使用WTMP日志,默认已经开启

localip把前面的#删除。这是拨入vpn后的网关,localip会在pptpd服务器的ppp0网卡产生

remoteip把前面的#删除。这是vpn服务器分配给客户端的地址池,remoteip在客户端拨入后产生配置在ppp0接口中

2.4.3修改 /etc/ppp/chap-secrets ,存储着用户账户的文件,这个文件非常简单,其中用明文存储VPN客户的用户名、服务名称、密码和IP地址范围,每行一个账户:

vi /etc/ppp/chap-secrets
username1    pptpd    passwd1    *
username2    pptpd    passwd2    *

其中第一第三列分别是用户名和密码;第二列应该和上面的文件/etc/ppp/options.pptpd中name后指定的服务名称一致;最后一列限制客户端IP地址,星号表示没有限制。

2.4.4设置MTU大小

vi /etc/ppp/ip-up

在文件倒数第二行,即exit 0上一行添加如下内容

ifconfig ppp0 mtu 1492

2.4.5修改内核文件,支持ipv4路由转发

CentOS6:

vi /etc/sysctl.conf

net.ipv4.ip_forward=0

改成

net.ipv4.ip_forward=1

马上生效

sysctl -p

CentOS7:

vi /etc/sysctl.conf

在文件最后一行添加以下内容

net.ipv4.ip_forward=1

马上生效

sysctl -p

Step5:配置防火墙

2.5.1允许PPTP与GRE流量进入,并且做NAT

firewalld的配置

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --zone=public --add-port=1723/tcp
firewall-cmd --permanent --zone=public --add-masquerade

iptables的配置

iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

2.5.2调整TCP MSS值,为转发TCP流量作优化

iptables的配置

iptables -A FORWARD -p tcp --syn -s 192.168.0.0/24 -j TCPMSS --set-mss 1356
iptables -t mangle -I POSTROUTING -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle  -A FORWARD  -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
保存重启防火墙
service iptables save
service iptables reload

firewalld的配置

firewall-cmd --permanent  --direct --add-rule ipv4  filter POSTROUTING 0 -p tcp -i gre+ -j TCPMSS --syn --set-mss 1356
firewall-cmd --permanent   --direct --add-rule ipv4 mangle FORWARD 0 -p tcp -i gre+ -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
重新加载配置
firewall-cmd --reload

三、启动pptpd守护进程

CentOS6:

service pptpd start
chkconfig pptpd --level 345 on

CentOS7:

systemctl start pptpd.service
systemctl enable pptpd.service

四、使用另一台CentOS作为Client端拔号:

4.1安装客户端所需

yum install -y ppp pptp pptp-setup net-tools

4.2拔号测试,用户名username1,密码passwd1

pptpsetup --create myvpn --server pptp_server --username username1 --password passwd1 --encrypt -start

4.3在客户端上检查

ifconfig

看看有没有ppp0接口

如果有ppp0,ping对端私网IP

ping 192.168.0.1

如果通了,就证明能拔号了,用Windows自带的拔号程序试试

5、排错

如何开启pptpd默认日志记录功能。

修改/etc/ppp/options.pptpd中的nologfd,默认没有开,把nologfd注释掉,然后添加 logfile /var/log/pptpd.log(将nologfd改成这个,在这个日志里就可以查到pptpd日志)

修改后重启下pptpd服务,就可以了
CentOS6:

service pptpd restart

CentOS7:

systemctl restart pptpd.service

查看PPTP服务的日志

cat /var/log/pptpd.log


有道云笔记 https://note.youdao.com/ynoteshare/index.html?id=a897b9cfdbcae082ab61923ec1d1d748

第4条随机版权
文章免责声明
尊敬的读者:

本文所提供的信息、观点及数据均来源于公开资料、相关研究报告及个人理解,仅供读者参考。本文不代表任何官方立场或专业机构的意见,亦不构成任何投资建议或决策依据。

在撰写本文时,我们已尽力确保信息的准确性和完整性,但鉴于信息来源的多样性及可能存在的误差,我们无法保证本文所述内容在任何时刻都绝对准确无误。因此,读者在阅读本文时,应结合自身实际情况及专业知识,进行独立分析和判断。

对于因本文信息不准确、不完整或读者自身理解偏差而导致的任何损失或损害,我们概不负责。同时,我们也不承担因本文所述内容引发的任何法律责任或纠纷。

此外,本文可能包含对特定公司、行业或市场的分析和预测,这些分析和预测均基于当前市场环境及可获得的信息,并可能受到多种因素的影响而发生变化。因此,读者在参考本文时,应充分考虑这些潜在的风险和不确定性。

我们鼓励读者在阅读本文后,进一步查阅相关资料和咨询专业人士,以获取更全面、准确的信息和建议。同时,我们也欢迎读者就本文内容提出宝贵的意见和建议,以便我们不断改进和提升文章质量。

最后,感谢读者对本文的关注和阅读。我们希望通过提供有价值的信息和观点,为读者在相关领域的学习和决策提供一定的帮助和参考。但请务必记住,本文所述内容仅供参考,不构成任何具体建议或承诺。

特此声明。

扫描二维码推送至手机访问。

版权声明:本文由TranBon博客发布,如需转载请注明出处。

本文链接:https://ns.tranbon.com/?id=275

“搭建PPTP VPN服务.md” 的相关文章

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!

哈哈哈!大神Note3 终于可以把 酷派系统 直接刷成 360 OS 2.0了哈哈哈!大神Note3 终于可以把 酷派系统 “砖头”直接刷成 360 OS 2.0了最新版的刷机软件就可以了,直接把 酷派系统 或着 酷派系统 “砖头”直接刷机刷成 360 OS 2.0!下面重点:刷机软件 要是如下图,...

centos7破密时提示Authentication token manipulation error

centos7破密时提示Authentication token manipulation error

需要在passwd 前输入chattr -i /etc/passwd chattr -i /etc/shadow如下:...

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos系统mysql配置my.cnf文件,跳过密码认证登录并设置远程登录(不一定有效)

cnetos手动安装mysql没有my.cnf配置文件时,1.可以从其它服务器把my.cnf文件拷贝到需要的服务器上,2.可以touch创建my.cnf文件这边是直接使用touch命令my.cnf文件的,创建在/etc/目录下[root@host ~]#  touch&...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。