发布时间:2004-05-01 21:31 来源:未知
实验室的内部网络中有不少非常有用的资源,例如科研用的文献资料,个人的实验数据等等,这些内容一旦离开实验室就不那么容易访问到了。解决这个问题最好的办法就是 VPN。在 Ubuntu 上搭建 VPN 服务器的方法非常多,比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好,但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好,但我配置后,虽然 Windows 和 Linux 用户没有问题,但 Mac/iPhone 却始终无法连上,所以暂时删掉了,日后搞清楚是什么问题再换到这种方式。
首先,我所有的操作都是在之前文章中介绍的 Ubuntu 8.04 Server 系统中操作的,假如您的系统和我的不一样,请参考之前的两篇文章。我的服务器环境是单网卡 eth0。
在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd,用 apt-get 即可安装:
sudo apt-get pptpd pptpd
sudo nano /etc/pptpd.conf
localip 10.100.0.1 remoteip 10.100.0.2-10
ms-dns 202.113.16.10 ms-dns 208.67.222.222
全部搞定后,我们需要重启 pptpd 服务使新配置生效:
sudo /etc/init.d/pptpd restart
建立连接之后,您会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。假如需要访问这些内容的话,我们还需要进一步设置:
首先,开启 ipv4 forward。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释:
net.ipv4.ip_forward=1
sudo sysctl -p
sudo apt-get intall iptables
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE
但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:
sudo iptables-save > /etc/iptables-rules
pre-up iptables-restore < /etc/iptables-rules
到此,一个 VPN Server/Gateway 基本就算架设完毕。当然,也许你按照我的方法做了,还是无法成功,那么下面总结一些我碰到的问题和解决方案:
无法建立 VPN 连接
服务器端的防火墙设置:PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此请确保您的防火墙设置允许这两者通行。
sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
好了,至此,一台单网卡 pptp-server 就算完成了。