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

2008-02-23 04:56:19来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

实验目的是做一台ADSL拨号网关,这个网关上由MPD作为VPN网关的守护进程,使用PPTP协议作为传输协议,由于这台机器上有samba服务器,所以我无法开放我的所有端口,我必须封锁所有不需要的端口。正因为这样花了很长时间研究PPTP协议到底需要通过防火墙上的那些端口和那些协议。配置的目的已经告诉大家了,下面是配置的过程。

首先从ppp拨ADSL说起,如果您对于使用ppp连接PPPoE(也就是ADSL使用的连接方式)已经非常熟悉了,那就可以跳过这一段直接看后面的。使用ppp连接PPPoE是非常简单的,FreeBSD在安装好之后你会在/etc/ppp/目录下看到一个叫做ppp.conf的文件,你把这个文件修改成下面的样子就可以连接PPPoE了,文件内容如下:

#default:set log Phase Chat LCP IPCP CCP tun commandident 

#user-ppp VERSION (built COMPILATIONDATE)

# Ensure that "device" references the correct serial port

# for your modem. (cuaa0 = COM1, cuaa1 = COM2)

#set device PPPoE:rl0set speed syncset mru 1492

#set mtu 1492set ctsrts offset timeout 60 

# 3 minute idle timer (the default)enable dns 

# request DNS info (for resolv.conf)

#papchap:

## edit the next three lines and replace the items in caps with

# the values which have been assigned by your ISP.

#set authname 

#username

#set authkey 

#password

#set timeout 60

#set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0

#add default HISADDR 

# Add a (sticky) default route

第一部分是设置日志的方式和一些默认信息set device PPPoE:后面需要改成你的网卡的驱动,我的是Realtek的8139,所以就是rl0了,下面是设置最大发送/接受单元,PPPoE默认是1492,然后timeout是在你是用auto方式的时候设置的超时时间,超过这个时间将会断线。enable dns是打开从ISP服务端接收分配的DNS,后面papchap部分是设置你的PPPoE帐号信息,最后两句是设置路由信息的,请务必添加。注意标签后面的语句要有缩进,至少缩进一个空格,在帖子里可能看不到,大家要注意!修改过配置文件之后你就可以用ppp -ddial papchap来试验一下,如果连接上了网络就没问题了,在rc.conf文件中添加下面两句就可以在开机的时候启动ppp拨号:

ppp_enable="YES"
ppp_mode=ddial
ppp_nat="YES"
ppp_profile="papchap"


其中ppp_mode=后面是ppp的方式,可选的有auto ddial background等等,具体的信息可以从man ppp中获得。以上就是PPP拨PPPoE的配置,可以看到非常的简单。

下面一部分是启动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,具体的说明信息我就不赘述了,我只讲一下我修改内核的过程。
[page]

首先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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:终端错误信息产生原因及解决方法大全

下一篇:对计算机技术中的十个重要关系的剖析