搭建虚拟私人网络


搭建环境:
 
1.检测搭建的环境要求
 
#cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
 
2.安装pptp
apt-get install pptpd
 
3.编辑 vi /etc/pptpd.conf
 
此地方地设置的IP在后面会用到。。。。注意。。。。`
 
去掉文件最末端的 localip 和 remoteip 两个参数的注释(可以进行相应地修改,可我没有)
 
localip 10.100.0.1  
remoteip 10.100.0.2-10
localip 是 VPN 连通后服务器的 ip 地址,而 remoteip 则是客户端的可分配 ip 地址。
 
4.编辑 vi /etc/ppp/pptpd-options
 
需要改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址
 
ms-dns 8.8.8.8  
ms-dns 8.8.4.4  
解析:ms-dns 8.8.8.8, ms-dns 8.8.4.4是使用google的dns服务器。
 
5.编辑 vi /etc/ppp/chap-secrets
 
存放着VPN的用户名和密码
 
如文件中注释所示,第一列是用户名,第二列是名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)
 
例子:
 
vpn1 pptpd "123456789" *
 
6.我们需要重启 pptpd 服务使新配置生效
 
/etc/init.d/pptpd restart
 
至此,如果我们建立连接之后,将会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置: 首先,开启 ipv4 forward 。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释(*.ipv4.* = 1的都要去掉注释哦):
 
 
 
7.编辑 vi /etc/sysctl.conf
 
取消如下注释:(有问题酒吧的话,   *.ipv4.* = 1     的都去掉注释)
 
net.ipv4.ip_forward=1
使配置生效:
 
sysctl -p
作用:修改内核设置,使其支持转发
 
有些时候,经过这样设置,客户端机器就可以上网了(我在虚拟机上这样操作后就可以了)。 但我在实验室的服务器上这样操作后仍然无法访问网络,这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先,先安装 iptables:
 
8.添加iptables转发规则等操作
 
启动iptables和nat转发功能,很关键的呀
 
1.安装iptables
 
apt-get intall iptables
2.为了客户端能够顺利连接到VPN服务器,还需主机防火墙开放VPN端口(默认为1723)
 
 sudo iptables -I INPUT -p tcp --dport 1723 -j ACCEPT
 sudo iptables -I INPUT -p tcp --dport 47 -j ACCEPT
 sudo iptables -I OUTPUT -p tcp --dport 1723 -j ACCEPT
 sudo iptables -I OUTPUT -p tcp --dport 47 -j ACCEPT
3.然后,我们向 nat 表中加入一条规则:
 
设置iptables NAT转发
 
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
这里的设置与之前的 /etc/pptpd.conf有关联,详细查阅:http://www.dabu.info/centos6-4-structures-pptp-vpn.html里地 第四步:启动pptp vpn服务和iptables
 
4.这样操作后,客户端机器应该就可以上网了。 但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:
 
iptables-save > /etc/iptables-rules
 
按着教程走,应该到了这里了
 
5.编辑vi /etc/network/interfaces
 
找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:
 
pre-up iptables-restore < /etc/iptables-rules
 
 
可是我这里我的文件里面没有此eth0,估计网卡名称不一样,可用ifconfig查看
 
详细可查阅:http://www.dabu.info/centos6-4-structures-pptp-vpn.html
 
6.设置MTU来确保过大的包不会被丢弃(这个可以不做)
 
iptables -I FORWARD -s 192.168.0.0/24 -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1300
 
9.启动服务
 
/etc/init.d/pptpd restart
 

相关内容