使用FreeBSD配置基于ADSL的VPN网关+防火墙( 二 )


信息我就不赘述了 , 我只讲一下我修改内核的过程 。
首先 cp GENERIC mykern 编辑mykern增加如下的部分: options NETGRAPH
options NETGRAPH_PPPOE
options NETGRAPH_SOCKET
options NETGRAPH_ETHER
options IPFW2
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPSTEALTH
options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP 退出编辑器 config mykern
cd ../../compile/mykern
make depend
make
make install 然后重新启动机器内核的更新就已经完成了 。
这样IPFW2的安装就已经完成了 , 我们先不打开防火墙 , 我们先配置mpd来建立PPTP的服
务器 。关于MPD的安装其实非常简单 , 你可以自己手动编译 , 但我还是推荐大家用ports
来安装 , 因为我实在是想不出什么理由来不用ports安装:)
如果你安装了ports到你的硬盘上 , 你通过下列步骤就可以完成mpd的安装了 cd /usr/ports/net/mpd
make install
make clean 安装完毕之后 , ports会自动创建/usr/local/etc/mpd目录
并把配置文件的样本存放在这个目录里面 , 可以通过修改已有的配置文件样本来完成对mpd
的配置 , 以mpd.conf.sample为例 , 首先cp mpd.conf.sample mpd.conf
然后修改下面的部分 pptp:
new -i ng0 pptp pptp
set iface disable on-demand
set iface enable proxy-arp
set iface idle 1800
set bundle enable multilink
set link yes acfcomp protocomp
set link no pap chap
set link enable chap
set link keep-alive 10 60
set link mtu 1460
set ipcp yes vjcomp
set ipcp ranges 192.168.1.1/32 192.168.1.50/32
set ipcp dns 192.168.1.3
set ipcp nbns 192.168.1.4
#
# The five lines below enable Microsoft Point-to-Point encryption
# (MPPE) using the ng_mppc(8) netgraph node type.
#
set bundle enable compression
set ccp yes mppc
set ccp yes mpp-e40
set ccp yes mpp-e128
set ccp yes mpp-stateless这个是sample里面的默认配置 , 下面对于需要修改的部分做出说明
实际上我们需要修改只有三行 , 就是下面三行 set ipcp ranges 192.168.1.1/32 192.168.1.50/32
set ipcp dns 192.168.1.3
set ipcp nbns 192.168.1.4 第一行是设置你的本地VPN网关的地址 , 如果你是像我一样用NAT来区分内外网的话
这个应该是网关的内网地址 , 后面的是对方拨入以后将会在内网获得的地址 , 这个
地址倒是没有什么特殊要求 , 就是首先这个地址需要和内网处于一个网段 , 否则访
问不了 , 第二后面可以设置一个掩码 , 来控制这个地址可能的范围 , 如果这个地址
被占用了 , 将会分配一个再限定范围内的地址给客户端 , 这个范围由"/"后面的掩
码来控制 。
第二行是指定你内网使用的DNS服务器的地址 , 注意这个将会在用户连入的时候同
内网地址一起被分配给用户
第三行和第二行类似 , 是指定Netbios服务器的地址 , 如果内网没有WINS服务器
这行可以不写 。最后我还增加了一行命令 , 再不增加这个命令的时候mpd看起来也是
正常运转的 , 但是我不太放心还是加了这行加密指令 set bundle enable encryption 下面我们还需要稍微修改一下mpd.links.sample pptp:
set link type pptp
set pptp self 1.2.3.4
set pptp enable incoming
set pptp disable originate 上面的部分里面需要修改一下set pptp self 1.2.3.4这一行 , 这行是指定mpd
的pptp服务器绑定在那个地址上面 , 如果是我们现在使用ppp拨叫ADSL的情况 , 会遇
到网络界面改变 , ip地址改变的情况 , 就不能定义这一句 , 所以针对我们的情况 , 我们
要去掉这句 , 其他的我们就不用改了
当然我们还要修改一下mpd.secret文件
这个文件定义了拨入用户的用户名和密码
用户名写在前面 , 密码写在后面用引号引起来 , 就像下面这样 fred "fred-pw" 当然还可以指定这个用户必须从那个地址或者网段来拨入 , 就像下面的例子: joe "foobar" 192.168.1.1

推荐阅读