1、安装PPTP
1.1 检查是否支持PPTP
#返回OK
[root@vpn ~]# modprobe ppp-compress-18 && echo ok
ok
1.2 添加EPEL源
#添加EPEL源
[root@vpn ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装EPEL
[root@vpn ~]# rpm -ivh epel-release-latest-7.noarch.rpm
1.3 安装PPTP
[root@vpn ~]# yum -y install pptpd ppp
2、配置文件
#将它更改为你的dns服务地址
[root@vpn ~]# vim /etc/ppp/options.pptpd
[root@vpn ~]# tail -2 /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
3、账户密码
#设置 VPN账号 + 服务类型 + VPN密码 + IP
[root@vpn ~]# vim /etc/ppp/chap-secrets
[root@vpn ~]# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
ywb * 123.123 *
4、设置最大传输单元
[root@vpn ~]# vim /etc/ppp/ip-up
[root@vpn ~]# cat /etc/ppp/ip-up
#!/bin/bash
# This file should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
LOGDEVICE=$6
REALDEVICE=$1
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post --realdevice ${REALDEVICE} ifcfg-${LOGDEVICE}
/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
ifconfig $1 mtu 1500
echo "$PEERNAME 分配IP: $5 登录IP: $6 登录时间: $(date '+%Y-%m-%d %H:%M:%S')" >> /var/log/ppp/ip.log
exit 0
5、配置pptp配置文件
[root@vpn ~]# vim /etc/pptpd.conf
[root@vpn ~]# tail -2 /etc/pptpd.conf
# (Recommended)
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
6、打开内核的ip 转发功能
#编辑配置文件
[root@vpn ~]# vim /etc/sysctl.conf
[root@vpn ~]# tail -1 /etc/sysctl.conf
net.ipv4.ip_forward = 1
#使其配置生效
[root@vpn ~]# sysctl -p
net.ipv4.ip_forward = 1
7、设置开机启动
#重启PPTP服务
[root@vpn ~]# systemctl restart pptpd
#配置开机自启
[root@vpn ~]# systemctl enable pptpd.service
8、打开防火墙
[root@vpn ~]# systemctl start firewalld
[root@vpn ~]# systemctl enable firewalld
#开启47及1723端口:
[root@vpn ~]# firewall-cmd --permanent --zone=public --add-port=47/tcp
[root@vpn ~]# firewall-cmd --permanent --zone=public --add-port=1723/tcp
#开启 NAT 转发
[root@vpn ~]# firewall-cmd --permanent --zone=public --add-masquerade
#允许gre协议:
[root@vpn ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
[root@vpn ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
#设置规则允许数据包由ens32和ppp+接口中进出
[root@vpn ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o ens32 -j ACCEPT
[root@vpn ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ens32 -o ppp+ -j ACCEPT
#设置转发规则,从源地址发出的所有包都进行伪装,改变地址,由ens32发出:(10.1.1.0内网地址,子网地址前两位)
[root@vpn ~]# firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o ens32 -j MASQUERADE -s 192.168.0.0/16
#重启服务器
[root@vpn ~]# firewall-cmd --reload
[root@vpn ~]# systemctl restart pptpd
9、日志
1、上线日志
vim /etc/ppp/ip-up
在[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@" 后加上
echo "$PEERNAME 分配IP: $5 登录IP: $6 登录时间: $(date '+%Y-%m-%d %H:%M:%S')" >> /var/log/ppp/ip.log
2、下线日志
vim /etc/ppp/ip-down
在/etc/sysconfig/network-scripts/ifdown-post --realdevice ${REALDEVICE} \
ifcfg-${LOGDEVICE}
后加上
echo "$PEERNAME 下线IP: $5 下线时间: $(date '+%Y-%m-%d %H:%M:%S')" >> /var/log/ppp/ip.log
10、连接