软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
用FreeBSD5.3建立安全网关,ADSL+FreeBSD+ipfilter+ipnat

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

        最近由于病毒肆虐,遂打算换掉原来的windows 2000 server 网关,由于本人曾使用过FreeBSD,感觉这个系统还可以—曾用其作服务器,连续运行几个月都没有出过问题,所以打算用FreeBSD来做安全网关。
        在网上查阅了一些资料,花了半天的时间,将基于FreeBSD的网关搞定:
现分享如下:
 一网络环境:
 通过1M ADSL上网,动态IP,不向外提供服务。内部有几十台电脑,要共享上网。FreeBSD5.3,两块网卡,8139(rl0),对外,同ADSL猫相连,530tx(vr0),对内,同交换机相连。
二系统安装:
   至于系统的安装网上有很多资料,在此不细说。
  详情请看http://www.xyinfo.ha.cn/netschool/freebsd/index.htm
三编译内核:
 加上ipfilter支持,去掉系统默认的 ipfirewall。
#cd  /usr/src/sys/i386/conf
#cp GENERIC DAFEI
#ee DAFEI
修改这一行,红色的部分要和该文件名相同。
ident           DAFEI
在末尾加入一下几行:
#禁用ipfirewall。
#options        IPFIREWALL
#options        IPFIREWALL_VERBOSE
#options        IPFIREWALL_VERBOSE_LIMIT=90
#options        IPFIREWALL_DEFAULT_TO_ACCEPT
#options        IPDIVERT

#支持ipfilter
options         BRIDGE
options         IPFILTER
options         ACCEPT_FILTER_DATA
options         ACCEPT_FILTER_HTTP
由于ipfirewall和ipfilter都运行在内核,二者不能同时共存,所以必须注释掉ipfirewall,其他内核优化选项这里就不细说了。
编译内核:
#cd /usr/src
#make kernel KERNCONF=DAFEI
编译成功后要重新启动计算机。
四 配置拨号上网:
修改ppp.conf文件
#cd /etc/ppp
#cp ppp.conf cpp.conf.bak
#ee ppp.conf
修改如下:
default:
 set log Phase Chat LCP IPCP CCP tun command
 ident user-ppp VERSION (built COMPILATIONDATE)
 set redial 15 28800
 set reconnect 15 28800
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
           \"\" AT OK-AT-OK ATE1Q0 OK
\\dATDT\\T
TIMEOUT 40 CONNECT"                    

adsl:
 set device PPPoE:rl0
 set mru 1492
 set mtu 1492
 set speed sync
 enable lqr
 set lqrperiod 5
 set cd 5
 set dial
 set login
 set timeout 0
 set authname YOURUSERNAME used to login
 set authkey  YOURPASSWORD used to login

 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
 add default HISADDR                 
 enable dns
红色的部分是需要修改的
五 定制防火墙规则:
#cd /etc
#touch ipf.rules
#ee ipf.rules
加入如下内容:
block in log quick all with short
block in log quick all with ipopts
block in log quick all with frag
block in log quick all with opt lsrr
block in log quick all with opt ssrr

pass out on vr0 all
pass in on vr0 all
pass out quick on lo0 all
pass in quick on lo0 all

block out on rl0 all

pass out quick on rl0 proto tcp from any to any flags S keep state keep frags
pass out quick on rl0 proto udp from any to any keep state
pass out quick on rl0 proto icmp all keep state

block in quick on rl0 all

由于空间的限制,删去了一些规则。
六 配置地址转换(实现NAT功能):
#cd /etc
#touch ipnat.rules
#ee ipnat.rules
加入如下内容:
map rl0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/tcp
map rl0 192.168.0.0/24 -> 0/32 portmap tcp/udp 10000:30000
map rl0 192.168.0.0/24 -> 0/32

七 配置rc.conf文件:

#cd /etc
#ee rc.conf
修改如下:

gateway_enable="YES"
hostname="ginifab-gatway.ginifab.com"
ifconfig_vr0="inet 192.168.1.1  netmask 255.255.255.0"
kern_securelevel="1"
kern_securelevel_enable="YES"
inetd_enable="YES"
linux_enable="NO"
sendmail_enable="NO"

keyrate="fast"
nisdomainname="NO"
sshd_enable="YES"
usbd_enable="NO"

ppp_enable="YES"
ppp_mode="ddial"
ppp_mode="background"
ppp_profile="adsl"
firewall_enable="NO"
firewall_logging_enable="NO"
ipfilter_enable="YES"
ipnat_enable="YES"

网关为192.168.1.1
八: #reboot now

一切OK。
注意:
编译内核时可根据自己机子的配置优化。本人的这个网关开机后总共使用不到30M内存。
定制防火墙规则可参考网上资料,定制的更加安全,高效。
在实现该网关的过程中,参考了很多网上的资料,本人仅把自己的配置过程写出来。




相关文章

相关软件