热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

CentOS7下安装pptpvpn

Centos7安装pptpvpn1、检查系统内核是否支持MPPEmodprobeppp-compress-18&&echoOK显示OK说明系统支持MPPE2、检查系统是否开启TUN/TAP支持cat/dev

Centos 7 安装 pptp vpn

 

 

1、检查系统内核是否支持MPPE

modprobe ppp-compress-18 && echo OK

显示OK说明系统支持MPPE

2、检查系统是否开启TUN/TAP支持

cat /dev/net/tun

cat: /dev/net/tun: 文件描述符处于错误状态

如果这条指令显示结果为下面的文本,则表明通过

3、 检查PPP是否支持MPPE

strings '/usr/sbin/pppd'|grep -i mppe|wc -l
43

如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持.

4、安装ppp和iptables      #PPTP需要这两个软件包,一般centOS自带

yum install -y ppp iptables

5、安装PPTP

yum install epel-release
yum install pptpd

6、配置PPTP

(1)vi /etc/ppp/options.pptpd #编辑,保存

name pptpd                        #自行设定的VPN服务器的名字,可以任意

#refuse-pap                        #拒绝pap身份验证

#refuse-chap                      #拒绝chap身份验证

#refuse-mschap                 #拒绝mschap身份验证

require-mschap-v2             #为了最高的安全性,我们使用mschap-v2身份验证方法

require-mppe-128              #使用128位MPPE加密

ms-dns 8.8.8.8                   #设置DNS

ms-dns 8.8.4.4

proxyarp                            #启用ARP代理,如果分配给客户端的IP与内网卡同一个子网

#debug                              #关闭debug

lock

nobsdcomp

novj

novjccomp

#nologfd                            #不输入运行信息到stderr

logfile /var/log/pptpd.log    #存放pptpd服务运行的的日志

(2)vi /etc/ppp/chap-secrets #编辑,保存

kuaile pptpd 666666 *                 #设置用户名:test 密码:123456

或者 

vpnuser add kuaile 666666

(3)vi /etc/pptpd.conf #编辑,保存

option /etc/ppp/options.pptpd

logwtmp

localip 10.0.6.1                       #设置VPN服务器虚拟IP地址

remoteip 10.0.6.101-200        #为拨入VPN的用户动态分配10.0.6.101~10.0.0.200之间的IP

7. 开启系统路由模式

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

vi /etc/sysctl.conf                 #编辑

net.ipv4.ip_forward = 1       #找到此行 去点前面#,把0改成1 开启路由模式,如果没有就自行添加

/sbin/sysctl -p                      #使设置立刻生效

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

7、配置防火墙NAT转发

centos 7 默认采用firewalld动态防火墙,我还是更习惯使用iptables

yum install iptables-services

systemctl stop firewalld.service
systemctl disable firewalld.service
yum erase firewalld

 

systemctl enable iptables.service
systemctl start iptables.servic

开启包转发

iptables -t nat -A POSTROUTING -s 10.0.6.0/24 -o eth0 -j MASQUERADE

意思是对即将发送出去的数据包进行修改,对来自设备eth0且源地址是10.0.6.0/24的数据包,把源地址修改为主机地址及vPN地址

iptables -t nat -L                     #完成后可以查看NAT表是否已经生效

这里要注意服务器的网口不一定是eth0,用netstat -i 查看

service iptables save    #保存防火墙设置

service  restart              #重启防火墙

对于开启了iptables过滤的主机,需要开放VPN服务的端口:1723 和gre协议

使用一下命令添加

开放pptp使用的1723端口和gre协议

 

iptables -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

 

 

iptables -t nat -A POSTROUTING -s 10.0.6.0/24 -o eth0 -j MASQUERADE

或者(这俩条应该是等效的,一种不行的话, 用另一种试试)

iptables -t nat -A POSTROUTING -s 10.0.6.0/24 -o eth0 -j SNAT --to 你的主机IP

 

iptables -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

 

##############################################################################################################################

 

如果iptables规则中有拒绝的选项,需要注意接受的要在拒绝的前面。

Centos 7 的iptables默认规则中就有

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

添加的规则一定要在这条规则的前面,所以用插入的方法添加规则

iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 1723 -j ACCEPT
iptables -I INPUT 6 -p tcp -m state --state NEW -m tcp --dport 47 -j ACCEPT
iptables -I INPUT 7 -p gre -m state --state NEW -j ACCEPT
iptables -I FORWARD 2 -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD 3 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.6.0/24 -o eth0 -j MASQUERADE

添加完成后试用iptalbes命令检查一下

 

[root@Centos7 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED tcp dpt:pptp 
ACCEPT     gre  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state NEW,RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 

 

 

[root@Centos7 ~]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.0.6.0/24          anywhere            
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

 

没问题后可以保存一下

service iptables save

这是我设置iptables的全部命令,供参考

888是我修改的ssh端口号

/sbin/iptables -F
/sbin/iptables -Z

/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
/sbin/iptables -A INPUT -p icmp -j ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 888 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited

/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -m state --state INVALID -j DROP
/sbin/iptables -A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -A OUTPUT -m state --state INVALID -j DROP

/sbin/iptables -F -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -t nat -A POSTROUTING -s 10.0.6.0/24 -o seth0 -j MASQUERADE

这是我的iptabls规则文件

[root@Centos7 ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Fri Nov 28 15:27:36 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [67:9660]
-A INPUT -m state --state INVALID -j DROP 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 888 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 1723 -j ACCEPT 
-A INPUT -p gre -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -m state --state INVALID -j DROP 
-A FORWARD -i ppp+ -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
-A OUTPUT -m state --state INVALID -j DROP 
COMMIT
# Completed on Fri Nov 28 15:27:36 2014
# Generated by iptables-save v1.4.7 on Fri Nov 28 15:27:36 2014
*nat
:PREROUTING ACCEPT [7:1301]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.0.6.0/24 -o seth0 -j MASQUERADE 
COMMIT
# Completed on Fri Nov 28 15:27:36 2014


 

8、设置PPTP开机启动

service pptpd start                           #启动pptpd

systemctl enabled pptpd                  #设置开机启动

pptpd服务使用的端口是1723,这个端口是系统固定分配的,可以通过查看该端口检查pptpd服务的运行情况。

命令:netstat -ntpl

[root@Centos7 ~]# netstat -ntpl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1423/cupsd          

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1693/master         

tcp        0      0 0.0.0.0:44666               0.0.0.0:*                   LISTEN      1358/rpc.statd      

tcp        0      0 0.0.0.0:1723                0.0.0.0:*                   LISTEN      2020/pptpd          

tcp        0      0 0.0.0.0:66                  0.0.0.0:*                   LISTEN      1579/sshd           

tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1310/rpcbind        

tcp        0      0 ::1:631                     :::*                        LISTEN      1423/cupsd          

tcp        0      0 ::1:25                      :::*                        LISTEN      1693/master         

tcp        0      0 :::66                       :::*                        LISTEN      1579/sshd           

tcp        0      0 :::33794                    :::*                        LISTEN      1358/rpc.statd      

tcp        0      0 :::111                      :::*                        LISTEN      1310/rpcbind    


至此,VPN服务器搭建完成.


推荐阅读
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
author-avatar
区小靜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有