记录日常工作关于系统运维,虚拟化云计算,数据库,网络安全等各方面问题。
 
0

centos7.0搭建VPN

发表者:admin分类:Devops2015-07-01 22:16:10 阅读[2059]

在百度找了很多centos7.0搭建VPN的教程,结果大量的教程都不对。文武双全用自己家里的微型电脑,安装了centos7.0并且尝试搭建一个VPN服务器。

下面把修订版的教程分享给大家,此贴参考了大量百度搜索到的教程,感谢所有为本人贡献知识的人们。

1,先看看你的主机是否支持pptp,返回结果为yes就表示通过。

modprobe ppp-compress-18 && echo yes

2,是否开启了TUN,有的虚拟机主机需要开启,返回结果为cat: /dev/net/tun: File descriptor in bad state。就表示通过。

cat /dev/net/tun

3,先更新下操作系统,系统自动会更新一堆的东西。

yum update

4,安装ppp

yum -y install ppp

5,安装pptpd,百度到大量教程这里有错误。centos7.0下使用yum安装pptpd失败了,后来文武双全直接下载pptpd服务,手动安装的。这里说下详细的安装pptpd的教程。

首先到 http://rpmfind.net/linux/rpm2html/search.php?query=pptpd 找到你操作系统所对应的pptpd的版本号。文武双全用的是centos7.0,

那么对应的pptpd的版本号就是 pptpd-1.4.0-2.fc20.x86_64.rpm 。(pptpd-1.4.0-6.fc21.x86_64.rpm无法安装到centos7.0中,一定要注意。)

使用wget 命令将pptpd下载下来,然后执行以下命令安装。

rpm -ivh pptpd-1.4.0-2.fc20.x86_64.rpm

6,安装iptables,这个实际上在安装centos7.0的时候,都会用它替换掉默认的firewall。没有替换的话,用下面的命令安装。

yum install iptables

7,修改pptpd.conf的配置文件

vi /etc/pptpd.conf    #找到localip,去掉开始的那个#符号
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
#这些是默认的,一般不需要去修改,分配给客户端的ip就是234到238之间,你也可以往大了写,看你的客户端有多少。

 8,配置options.pptpd,我反正是吧阿里云的公共DNS放在前面,又在末尾添加了谷歌的DNS,实际上这个VPN主要用来在国内翻墙的。

vi /etc/ppp/options.pptpd      #在末尾添加dns
ms-dns  223.5.5.5       #这是谷歌的,你也可以改成阿里巴巴的或者其它
ms-dns  223.6.6.6
9,配置连接VPN客户端的帐号密码
vi /etc/ppp/chap-secrets    #格式很通俗易懂。
#   client为帐号,server是pptpd服务,secret是密码,*表示是分配任意的ip
# Secrets for authentication using CHAP
# client        server     secret                  IP addresses
  vpn           pptpd      a123456780                  *
10,配置sysctl.conf
vi /etc/sysctl.conf
#添加一行    net.ipv4.ip_forward = 1    到末尾即可,然后保存
sysctl -p    #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效
11,修改iptables的转发规则。这个时候把iptables关闭的话是可以连接VPN了,之所以要把iptables关闭是因为没有开放VPN的端口,客户如果直接连接的话是不允许的。
这里还需要设置iptables的转发规则,让你的客户端连接上之后能访问外网。如果家里的IP地址是经常变化的话,翻墙之前记得远程登录到服务器以后,再修改这个规则。
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.0.234/24 -j SNAT --to 你的服务器的公网IP
#192.168.0.234/24是你分配给客户的ip,后面的那个是你的服务器的公网IP
12,修改iptables开放端口,这个时候还是连接不上的,因为iptables把客户的VPN连接拦截了,不允许连接,所以得开放相应的端口。
具体是哪个端口可以自己查下,我的是默认的,如果你没有更改过的话也会是默认的。
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
13,重启下iptables和pptpd,让规则和配置生效。centos7.0的命令,明显比以前长了,地球人得浪费多少时间在命令上。
systemctl restart iptables
systemctl restart pptpd
14,修改路由器的端口转发
内网服务器搭建VPN时路由器的端口转发设定

内网服务器搭建VPN时路由器的端口转发设定

如果是跟文武双全这样,在内网的服务器上搭建的VPN,你还记得最后一步一定要去路由器里改下端口转发哦。如图所示,还好我的TP-Link的路由器,配置起来还是比较方便的。
15,让服务器自动将家里最新的ip地址发给你

实际上绝大多数情况下,路由器不重启的话,ip地址是不会变的。但是也保不齐什么时候会发生意外,所以最好还是写个脚本。

服务器在ip地址变动的时候,就发一封邮件到你指定的邮箱里。这里你到全世界任何一个角落,只要有网,都可以监控你的服务器。甚至还可以通过你的服务器,来翻墙哦。



转载请标明出处【centos7.0搭建VPN】。

《www.micoder.cc》 虚拟化云计算,系统运维,安全技术服务.

网站已经关闭评论