FreeBSD handbook中文版 2 开始安装FreeBSD(2)

2008-02-23 08:02:11来源:互联网 阅读 ()

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

作者:iceblood
E-Mail: iceblood@163.com
写作日期:2002-03-03
FreeBSD在网络服务器的领域里占有一席之地,不管是在高端应用,还是小型企业里,
使用FreeBSD做服务器都是不错的选择,但是如何才能建立一个安全的网络呢?

首先我们来做一个这样的假设,某公司有两台服务器,需要建立一个以FreeBSD为平台
的网关,并且还能提供电子邮件、DNS、WEB等服务,看起来好象这是一个很简单的事情,
然而要建立一个安全性高的却不简单,在此我将为大家介绍如何去做,首先我凭着自己
对FreeBSD的熟练程度,做了以下设计:

Internet
____|____
| |
| Gateway |
---------
|
____________|______________
___|____ ____|____
| | | |
| LAN | | WWW |
---------- ----------

以上是我为该公司设计的网络结构图,首先我们来分析一下这个图,由于Gateway是一个
与Internet直接连接的服务器,糟受的攻击自然也是最多的,所以也是最危险了。而且
由于该服务器担任着公司的网关,该服务器只要一出问题,也将影响到全公司。为了稳
定性、安全性,我考虑该服务器要跑的服务越少越好。服务越少,那么漏洞出现的可能
性也越少。而WWW服务器由于放在了Gateway里面,受Gateway的保护,所以一般来说遭受
的攻击比较少,所以一般可以满足足够多的服务,但是这些服务怎么样才能让Internet
上的人访问呢?这就会在下面我们详细介绍了。

首先我们来安装Gateway,Gateway要使用的Internet的IP为x.x.x.x网卡为xl0,内部IP
为192.168.0.1网卡为xl1,由于Gateway起到网关的作用,所以为了安全性,在该服务器
上做安全是非常重要的,FreeBSD有自带了一个ipfirewall防火墙,既然有,我们当然要
利用上了,首先编译内核:

cd /sys/i386/conf
cp GENERIC ./kernel_IPFW

用编辑器打开kernel_IPFW这个文本文件,在该文件里加入以下内容:

optionsIPFIREWALL //通知操作系统的内核检查每个IP数据包,将它们与规则
集进行比较
optionsIPDIVERT //启用由ipfw divert使用的转向IP套接字。这一选项需要
与natd联合使用。
optionsIPFIREWALL_VERBOSE //向系统的注册程序发送注册信息包。
optionsIPFIREWALL_VERBOSE_LIMIT=100 //限制一台机器注册的次数。
optionsIPSTEALTH //启动支持秘密转发的代码,这一选项在使防火墙不被
traceroute和类似工具发现时很有用。
optionsACCEPT_FILTER_DATA
optionsACCEPT_FILTER_HTTP //接受过滤器中的静态连接
optionsICMP_BANDLIM //ICMP_BANDLIM根据带宽限制产生icmp错误。一般情况
下我们需要这个选项,它有助于你的系统免受D.O.S.攻击。

把以上参数加入以后保存kernel_IPFW文件。

make depend
cd ../../compile/kernel_IPFW
make
make install

(注意!!!!!请不要使用远程方式来设置服务器!为什么?等下你就能知道了。)

以上完成以后,你就可以重新启动系统使用新的内核了。

使用新内核以后,如果该系统本来是连在网络上的,那么这时他的网络部分已经完全
丧失,这表示系统新的内核已经起作用了,防火墙也起作用了,但由于FreeBSD的防火
墙默认情况下是不允许任何机器访问,所以该机器的任何网络功能都暂时丧失。不过不
要着急,接着往下看,你就会觉得非常有意思了。

既然该服务器担当是的网关,那么让网关启动起来是必须的。我们现在再:

cd /etc

用编译器编译rc.conf

加入如下参数:

gateway_enable="YES" //启动网关
##########IP-firewall#################
firewall_enable="YES" //激活firewall防火墙
firewall_script="/etc/rc.firewall" //firewall防火墙的默认脚本
firewall_type="/etc/ipfw.conf" //firewall自定义脚本
firewall_quiet="NO" //起用脚本时,是否显示规则信息。现在为“NO”假如你的
防火墙脚本已经定型,那么就可以把这里设置成“YES”了。
firewall_logging_enable="YES" //启用firewall的log记录。
##########NATD#######################
natd_interface="xl0" //NATD服务启用在哪块网卡。
natd_enable="YES" //激活NATD服务
natd_flags="-config /etc/natd.conf" //NATD服务参数设置文件。

设置完成后我们再编译/etc/syslog.conf文件。

加入以下行:

!ipfw
*.* /var/log/ipfw.log

好了rc.conf文件设置完毕,然后就是其他文件了。

新建/etc/ipfw.conf 文件,在文件里写入以下内容:

add 00400 divert natd ip from any to any via xl0 //natd服务启动设置
add 00001 deny log ip from any to any ipopt rr
add 00002 deny log ip from any to any ipopt ts
add 00003 deny log ip from any to any ipopt ssrr
add 00004 deny log ip from any to any ipopt lsrr
add 00005 deny tcp from any to any in tcpflags syn,fin //这5行是过滤各种扫描包
#######tcp#########
add 10000 allow tcp from xx.xx.xx.xx to x.x.x.x 22 in //向Internet
的xx.xx.xx.xx这个IP开放SSH服务。也就是只信任这个IP的SSH登陆。
add 10001 allow tcp from any to x.x.x.x 80 in //向整个Internet开放HTTP服务。
add 10002 allow tcp from any to x.x.x.x 25 in //向整个Internet开放smtp服务。
add 10003 allow tcp from any to x.x.x.x 110 in //向整个Internet开放pop3服务。
add 19997 check-state
add 19998 allow tcp from any to any out keep-state setup

标签:

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

上一篇:FreeBSD handbook中文版 4 安装应用程序:Packages 和Ports

下一篇:FreeBSD handbook中文版 2 开始安装FreeBSD(1)