新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Unix系统 > FreeBSD教程 > 正文:FreeBSD配置基于ADSL的VPN网关+防火墙

FreeBSD配置基于ADSL的VPN网关+防火墙

新客网 XKER.COM 2008-01-18 来源:新客网编辑整理 quakelee 收藏本文

  下面一部分是启动IPFW的防火墙,这个需要修改默认得内核设置,同时使用MPD也需要对内核进行修改,所就在这里同时都修改了。我使用的是升级版本的IPFW,也就是被称作IPFW2的防火墙,在FreeBSD4.x上使用这个防火墙需要重新编译IPFW,这需要你事先安装了FreeBSD4.6以上的源码在你的硬盘上,然后执行下列步骤升级你的IPFW:

  cd /usr/src/sbin/ipfwmake -DIPFW2make installcd
  /usr/src/lib/libaliasmake -DIPFW2make
  install或者在你/etc/make.conf里面添加IPFW2=TRUE然后makworld来升级你的防火墙升级IPFW完毕之后,接下来就是修改内核了,重新编译内核需要经过如下步骤,首先进入/sys/i386/conf/目录,里面有两个文件,一个是GENERIC,另一个是LINT,具体的说明信息我就不赘述了,我只讲一下我修改内核的过程。
  
  首先cp GENERIC mykern编辑mykern增加如下的部分:
  
options NETGRAPH <BR>

options NETGRAPH_PPPOE<BR>

options NETGRAPH_SOCKET

options NETGRAPH_ETHER

options IPFW2

options IPDIVERT

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT=100

options IPSTEALTHoptions ACCEPT_FILTER_DATA

options ACCEPT_FILTER_HTTP

退出编辑器 

config mykerncd 

../../compile/mykernmake 

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 ipcpnbns 192.168.1.4
  第一行是设置你的本地VPN网关的地址,假如你是像我一样用NAT来区分内外网的话这个应该是网关的内网地址,后面的是对方拨入以后将会在内网获得的地址,这个地址倒是没有什么非凡要求,就是首先这个地址需要和内网处于一个网段,否则访问不了,第二后面可以设置一个掩码,来控制这个地址可能的范围,假如这个地址被占用了,将会分配一个再限定范围内的地址给客户端,这个范围由"/"后面的掩码来控制。
  
  第二行是指定你内网使用的DNS服务器的地址,注重这个将会在用户连入的时候同内网地址一起被分配给用户第三行和第二行类似,是指定Netbios服务器的地址,假如内网没有WINS服务器这行可以不写。最后我还增加了一行命令,再不增加这个命令的时候mpd看起来也是正常运转的,但是我不太放心还是加了这行加密指令set bundle enable encryption
  
  下面我们还需要稍微修改一下
  
  mpd.links.sample pptp:
  set link type pptpset 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.1bob "\x34\"foo\n" 192.168.1.10/24之后我们还可以添加一句来默认让mpd执行pptp的这组设置,需要修改配置文件的这个部分:
  
  default:load pptpsample
  文件里面还有配置多用户登陆的情况下的样本,我就不用在写了,配置是一样的改完这些之后只要运行mpd -b就可以启动了由于考虑到安全原因我没有书写启动脚本在开机的时候启动mpd,因为对于防火墙来说在没有用的时候多开一个端口就多一份危险,但是也许很多人需要在开机的时候自动运行mpd,下面我还是提供一个启动脚本给大家,可以放在/usr/local/etc/rc.d/目录下面记住要加上执行权限。
  
  
#!/bin/sh 

PREFIX=/usr/local

case "$1" in

start)

if [ -x ${PREFIX}/sbin/mpd -a -f ${PREFIX}/etc/mpd/mpd.conf ]; then

${PREFIX}/sbin/mpd -b

echo -n ' mpd '

fi

;;

stop)

killall mpd && echo -n ' mpd '

;;

*)

echo "Usage: 'basename $0' {start|stop}" >&2

;;

esac

exit 0;
  
共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐