搭建软PPTP VPN 服务器

说起来这个VPN也是有趣,一提起来首先想到的是翻墙之类的事。公司的网络一直可以连接外网,所以一直也没有去了解vpn相关的服务软件。直到前些日子Diablo3上线之后,拥堵的网络以及被诅咒的error 3006让身为ITer的使命感倍增,于是自己搭建了一个vpn——单这一点可以看的出站长对于Diabl0的热衷程度吧。

废话不说,系统是许久不见的FreeBSD,选择它的目的是就现在来看,FreeBSD能够在最少资源耗用的情况下,对网络的优化最好。对于vpn这样一个几乎不需要什么CPU/内存的服务系统本身的资源耗用倒成了累赘。

系统:FreeBSD 9.0 Release,32M mem,单核,9G硬盘。

安装好系统之后,首先是老一套pkg_add -r cvsup && rehash &&cvsup -h cvsup.freebsd.org /usr/share/examples/cvsup/ports-supfile

漫长的代码同步过程结束之后,cd /usr/ports/net/mpd5 && make && make install 开始编译mpd5

完成之后cd /usr/local/etc/mpd5

cp mpd.conf.sample mpd.conf

ee mpd.conf,改动如下:

#set user foo bar admin 控制台管理员,foo 用户名bar密码
#set user foo1 bar1 控制台用户,foo1 用户名bar1密码,支持多个,每行一个

load dialup 改为 load pptp_server 启动方式为 pptp 服务器

set ippool add pool1 192.168.1.50 192.168.1.99 设置拨号用户的地址池
set ipcp ranges 192.168.1.1/32 ippool pool1 设置本地服务器虚接口的ip,与上一条对应,用的192.168.1.1的地址段
set ipcp dns 8.8.8.8 设置拨号后的DNS地址

set pptp self 192.168.0.1 设置监听pptp的实际ip

cp mpd.secret.sample mpd.secret
mpd.secret是用户列表,直接编辑这个文件,用户名和密码明文用空格隔开,每行一个用户。

准备启动了!echo mpd_enable=YES >> /etc/rc.conf
/usr/local/etc/rc.d/mpd5 start

这里有个问题:事实上这个时候您已经可以通过客户端拨号的方式连接到服务器了,单无法直通“外网”,只能访问服务器本地以及拨号用户间互访。这个是主机没有开通转发的原因所导致。FreeBSD和Linux的处理方式也有所不同。

FreeBSD:

echo ‘natd_enable=”YES”‘ >> /etc/rc.conf
echo ‘natd_interface=”ed0″‘ >> /etc/rc.conf 这里需要注意,我的外网连接是ed0,如果你不确定的话可以用ifconfig确认。

/etc/rc.d/natd start

Linux:

显得相对“妖异”,需要改动内核配置

echo “sys.net.ipv4.ip_forward = 1” >> /etc/sysctl.conf

sysctl -p

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据