圣诞礼物——西南大学校园网突围之跨园区共享网络(已稳定使用一年)【上】

时间:2024-03-06 16:01:52

前言:

     提前送大家2014年圣诞节的礼物。欢迎转载,转载请注明作者和出处。

 

   很多人看了标题第一反应是会觉得我是标题党,不信。还是那句老话,我分享我的东西,信不信,由你。 

 

   标题上是说的上集,其实这一篇博文中就把这个方法讲完了,之所以说是上,因为在跨园区共享网络这一块里面,一共可以有2种方法。

 


 

知识准备:

 

    先说下我们学校的上网方式情况:在寝室,电脑只能使用NetKeeper来拨号上网,使用手机连接swu-wifi-dorm,然后拨号上网,在教学区可以使用web认证方式上网。这些方法都可以共享网络,只是拨号上网的方式中,用户名不是你真实的用户名,所以只能使用他给的软件进行登录(当然之前有说过可以破解),但是在教学区内就没有加密了。什么意思呢?就是教学区内限制就少了很多。

    本次要用到的方法是VPN共享上网。什么是VPN呢,翻译下就是虚拟专用网络,具体的自己百度去,我不想讲太多,我又不是老师。

    

    简单说,就是在教学区内放置自己的vpn服务器,vpn服务器使用web认证方式获取到访问外网权限,然后在寝室的PC机,手机等设备使用vpn客户端连接到VPN服务器,使用vpn服务器的外网,so,这样就很简单的破解了寝室不能用web登录的限制了。同时,这个方法做到了几个人即使在不同的寝室、园区,也可以一起使用一个账号,因为大家用的都是这一台服务器上的网络。

    

      上图是我画的一个学校校园网的一个简单拓扑,PC1在李园,PC2在桃园,本来应该是PC1->李园路由器->...->出口路由器->Internet,   PC2->桃园路由器->...->出口路由器->Internet,教学区->...->出口路由器  这种方式上网,PC1和PC2想共享网络,基本是不可以的。现在,我们把教学区的这台主机作为VPN服务器,PC1和PC2可以通过内网连接到VPN服务器上,这里的VPN服务器就好像是你寝室的路由器那样代替PC1和PC2来上网。


 使用vpn共享上网的优点:

   1.不受地域限制,上面具体已经分析过了。只要是能连上内网的地方,不论是餐厅,教室,寝室。

   2.不受拨号客户端升级限制,破解后,如果服务端更改了加密因子,又要找,破解难度加大的话,很费时。

   3.晚上不会断网,现在的swu-wifi-dorm连上之后不会断网,没有认证之前是不可以上外网,但是可以访问内网,so,你懂吧。


 配置篇:

如果你会配置了,那就可以不看后面的了。服务器配置是重点,客户端的配置比较简单,翻过墙的人都会吧。废话多了点,开始吧。

 


 服务器:

  服务器我使用的是Linux发行版当中的Ubuntu,其它版本的都是可以的。  

1 sudo apt-get update #更新软件源
2 
3 sudo apt-get install pptpd  #安装pptpd软件

然后就是等他安装了。

安装完毕后,几个配置文件介绍下:

/etc/pptpd.conf                  #这个是主配文件      
/etc/ppp/pptpd-options        #这个是选项设置
/etc/ppp/chap-secrets           #这里是你的客户端的用户名密码文件

 正式开始~

1.修改pptpd.conf文件
    
sudo vi /etc/pptpd.conf
在最下方添加如下配置: localip
10.0.0.1 remoteip 10.0.0.2-10
  #localip是主机的地址,remoteip是地址池,也就是远程拨进来的计算机所分配到的ip地址。

2.修改/etc/ppp/pptpd-options文件,设置DNS
sudo vi /etc/ppp/pptpd-options
改变其中的 ms
-dns 选项,为 VPN 客户端指派 DNS 服务器地址。添加以下两行。
ms
-dns 202.202.96.33 ms-dns 68.128.128.61
这里值得注意的是,里面有个
  require-mschap-v2
  require-mppe-128
这两个是加密的选项,默认是开启的,如果你开启加密的话,后面连接的时候就要选上加密方式,我为了方便就没有设置加密,直接在这两行前面加个#注释掉。

3.修改/etc/ppp/chap-secrets文件,添加用户
sudo vi /etc/ppp/chap-secrets
添加的时候一行一个用户。格式如下:
用户名 pptpd 密码
*
例如:mediciyan pptpd
123456 *
注明:pptpd是你的服务名,如果你没修改的话,就填这个。后面
*处应该填的是客户端拨入时候分配的IP,如果填*则代表启用DHCP服务,自动分配IP。
4.现在重启pptpd服务应该是可以连接上了,但是,不能访问Internet。还需要设置IP转发。
5.是否已经打开IP转发? 查看”/proc/sys/net/ipv4/ip_forward"文件中的值是否为"1”, 如果不是, 则需要在”/etc/sysctl.conf"文件中修改"net.ipv4.ip_forward=1”, 然后执行以下命令:
sudo sysctl -p //应用配置 sudo /etc/init.d/procps restart //重启服务
6.有些时候,到这里就已经可以上外网了,但是像实验室的电脑,还需要设置NAT。这里需要用到iptables。
sudo apt-get install iptables
检查是否在VPN服务器上设置了对于客户端IP地址的NAT
? 执行下面的命令查看表中是否有相应的表项:
sudo iptables —table nat -L POSTROUTING
如果没有则执行以下命令:
sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/10 -o eth0 -j MASQUERADE
sudo iptables —table nat —append POSTROUTING —out-interface eth0 —jump MASQUERADE
一般来说,两条命令随便一句都可以。这时候重启pptpd服务,就可以上外网了。

 

 为了简单配置,我就自己写了个脚本来代替手工配置,节省时间。

#!/bin/bash
#############################################################################################
#                                                                     #####
#    ScriptName:Setting.sh                                                  #####
#                                                                     #####
#    Version: 1.0                                                         #####
#                                                                     #####
#    Description: This script in order to install vpn                           #####
#               You must run this script in root to get                          #####
#permition.                                                             #####
#                                                                     #####
#    Author:        Medici.Yan(Medici.Yan@Gmail.com)                           #####
#                    2013.10                                             #####
#
#############################################################################################

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

#update the software source

sudo apt-get update

#download and install pptpd

sudo apt-get install pptpd
#如果你是yum 管理的话就把这里打开
#sudo yum update
#sudo yum install pptpd

pptpd_conf
=/etc/pptpd.conf pptpd_options=/etc/ppp/pptpd-options pptpd_chap_secrets=/etc/ppp/chap-secrets sysctl_conf=/etc/sysctl.conf #PPTPD.conf sourcefile # # IP for each simultaneous client. # # (Recommended) #localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 # or #localip 192.168.0.234-238,192.168.0.245 #remoteip 192.168.1.234-238,192.168.1.245 ###options # Network and Routing # If pppd is acting as a server for Microsoft Windows clients, this # option allows pppd to supply one or two DNS (Domain Name Server) # addresses to the clients. The first instance of this option # specifies the primary DNS address; the second instance (if given) # specifies the secondary DNS address. # Attention! This information may not be taken into account by a Windows # client. See KB311218 in Microsoft\'s knowledge base for more information. #ms-dns 10.0.0.1 #ms-dns 10.0.0.2 ##chap # Secrets for authentication using CHAP # client server secret IP addresses #sed -i \'/^localip /c localip 10.0.0.1\' ${pptpd_conf} #sed -i \'/^remoteip /c remoteip 10.0.0.2-10\' ${pptpd_conf} echo "Checking vpn config file..." if !([ -f ${pptpd_conf} ]&&[ -f ${pptpd_options} ]&&[ -f ${pptpd_chap_secrets} ]) then echo "Can not find the vpn config file!" && exit 1 else echo "File exist..." echo "Update the vpn config..." #update the localip and remoteip这里是配置vpn内网地址的 sudo sed -i \'$a localip 10.0.0.1\nremoteip 10.0.0.2-10\' ${pptpd_conf} #Encryption 如果你要加密的话,就把这两行注释了 sudo sed -i \'/^require-mschap-v2/c\#require-mschap-v2\' ${pptpd_options} sudo sed -i \'/^require-mppe-128/c\#require-mppe-128\' ${pptpd_options} #dns 这里配置dns服务器地址 sudo sed -i \'/^\#ms-dns 10.0.0.2/a\ms-dns 8.8.8.8\' ${pptpd_options} sudo sed -i \'/^\#ms-dns 10.0.0.2/a\ms-dns 61.128.128.68\' ${pptpd_options} sudo sed -i \'/^\#ms-dns 10.0.0.2/a\ms-dns 202.202.96.33\' ${pptpd_options} #vpn user 修改下这里配置用户名和密码 #user servicename password ip ( * means dhcp on) sudo sed -i \'$a medicean\tpptpd\t123456\t\*\' ${pptpd_chap_secrets} sudo sed -i \'$a mediceantest2\tpptpd\tmediceantest2password\t\*\' ${pptpd_chap_secrets} #ipv4 sudo sed -i \'/^#net.ipv4.ip_forward=1/c net.ipv4.ip_forward=1\' ${sysctl_conf} sudo sysctl -p sudo /etc/init.d/procps restart sudo apt-get install iptables #NAT sudo iptables -t nat -A POSTROUTING -s 10.0.0.1/10 -o eth0 -j MASQUERADE sudo iptables-save sudo /etc/init.d/pptpd restart echo "OK! You can use VPN!" fi

 

将上面的脚本加上可执行权限后就直接执行,等待输出是OK,就可以使用了。


 

客户端的配置,这里就用win8来测试吧,安卓IOS上面的相对比较简单,Linux的我相信这对你不是问题。

 

图片有点多,实在是不想解释什么了,自己看着图片一步步来吧。

 

 

 

 

别急,还没有完。

 

 


 

至此,大功告成。提前一周祝大家圣诞快乐~~~