抱歉,你查看的文章不存在

CentOS 7 安装VPN Server

这个教训告诉我们,不要随便相信别人博客里的东西,文档还是官方的靠谱。。。

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。

  1. 先看看你的主机是否支持pptp,返回结果为yes就表示通过。
modprobe ppp-compress-18 && echo yes
  1. 是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。
 cat /dev/net/tun```
3. 安装ppp和pptpd

yum -y install ppp pptpd```

  • 配置pptpd.conf
vim  /etc/pptpd.conf  
localip 192.168.9.1
remoteip 172.168.9.101-200
#Localip这行是给vpn服务器设置一个隧道ip
#Remoteip是自动分配给客户端的ip地址范围。
  • 配置options.pptpd
 vim /etc/ppp/options.pptpd      #在末尾添加dns
#先去掉debug前面的#,开启日志记录
 ms-dns  202.96.209.5  
ms-dns  8.8.8.8
logfile /var/log/pptpd.log
  • 配置连接VPN客户端要用到的帐号密码。
 vim /etc/ppp/chap-secrets    
#格式很通俗易懂。
#client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip
#Secrets for authentication using CHAP
#client     server     secret          IP addresses
vpn        pptpd       vpn             *
  • 配置sysctl.conf
vi /etc/sysctl.conf
#添加一行    net.ipv4.ip_forward = 1    
#到末尾即可,然后保存,这个很重要,系统路由模式功能。
sysctl -p    
#运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
  • 配置iptables的转发规则 这个时候把iptables关闭的话是可以连接VPN了,之所以要把iptables关闭是因为没有开放VPN的端口,客户如果直接连接的话是不允许的。这里还需要设置iptables的转发规则,让你的客户端连接上之后能访问外网。
iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -j MASQUERADE

在centos 7 中由于使用firewalld 来替换了iptables,所以需要用如下命令来配置转发规则

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth1 -j MASQUERADE -s 192.168.9.0/24

目标网络vpn的内部网络为192.168.9.0/24,vpn服务器有2个网卡,其中一个网卡连私有网络(eth0),ip是10.46.89.192,另外一个连接公网(eth1),ip地址是120.76.25.191。现在把所有 192.168.9.0 网段过来的请求,路由到外网。 这样就能正常地路由所涉及的网络了。

  • 配置iptables的端口
iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
iptables -I INPUT -p tcp --dport 47 -j ACCEPT
iptables -I INPUT -p gre -j ACCEPT

在centos 7 中,用firewalld 来取代了iptables

firewall-cmd --zone=public --add-port=1723/tcp --permanent
firewall-cmd --zone=public --add-port=47/tcp --permanent
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --reload   
  • 系统自动启动pptp的vpn server
systemctl start pptpd
systemctl enable pptpd

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

运维经验分享

492 篇文章37 人订阅

扫码关注云+社区

领取腾讯云代金券