📄 00000012.htm
字号:
<BR> <BR> <BR>如果你选择保留IP,则不被路由,或者你选择了使用IP屏蔽,则本测试依然适用. <BR> <BR> <BR> <BR>现在,你已经完成了基本的设置. <BR> <BR> <BR> <BR>5.5 防火墙安全 <BR> <BR> <BR> <BR>开放不必要的服务往往使防火墙为入侵者敞开了方便之门."坏孩子"们可能侵入并根据自 <BR>己的需要修改防火墙的设置. <BR> <BR> <BR> <BR>所以首先要关闭所有不用的服务. <BR> <BR>/etc/inetd.conf 文件控制着所谓的"超级服务(super server)"。它控制着各种服务的 <BR>守护进程,在访问请求到达时启动相应的服务. <BR> <BR> <BR> <BR>一定要关闭netstat,systat,tftp,bootp,finger.为关闭某项服务,只须把相应的行最前面 <BR>用#注释掉即可.改好后,向inetd进程发一个SIG-HUP信号,即键入命令"kill -HUP <pid>", <BR><pid>是inetd的进程号.该命令使得inetd重新读入配置数据(inetd.conf),并重新启动. <BR> <BR> <BR> <BR>telnet防火墙的15号端口,这是NETSTATE的端口,如果你仍然得到了 netstat的输出, 说明 <BR>inetd没有正确读入修改后的设置. <BR> <BR> <BR> <BR> <BR>6.安装IP过滤防火墙(IPFWADM) <BR> <BR> <BR> <BR>在开始之前,要打开内核的IP forwarding,启动你的系统能够转发所有你发出的数据, 再 <BR>配好你的路由表,保证内部网和外部网之间就畅通无阻了, 但我们是要做的是建立一个禁 <BR>止任意的访问的防火墙. <BR> <BR>在我的系统里,我为防火墙的forwading(包递交)和accounting(包记帐)策略各建立一个脚 <BR>本文件。加入/etc/rc.d的脚本文件中, 启动时由系统自动调用. <BR> <BR> <BR>缺省情况下,linux kernel的 IP forwarding 功能是完全开放的(是网关:译注) <BR> <BR>因此你的防火墙脚本应从规定拒绝所有访问开始。 <BR> <BR> <BR> <BR># <BR> <BR># setup IP packet Accounting and Forwarding <BR> <BR># <BR> <BR># Forwarding <BR> <BR># <BR> <BR># By default DENY all services <BR> <BR>ipfwadm -F -p deny <BR> <BR># Flush all commands <BR> <BR>ipfwadm -F -f <BR> <BR>ipfwadm -I -f <BR> <BR>ipfwadm -O -f <BR> <BR> <BR> <BR>好,现在我们有了一个超级防火墙,它拒绝所有的访问,当然你还是需要一些服务的,可以 <BR>参考下面几个实用的例子: <BR> <BR> <BR> <BR># Forward email to your server <BR> <BR>ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25 <BR> <BR> <BR> <BR># Forward email connections to outside email servers <BR> <BR>ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535 <BR> <BR> <BR> <BR># Forward Web connections to your Web Server <BR> <BR>/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80 <BR> <BR> <BR> <BR># Forward Web connections to outside Web Server <BR> <BR>/sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535 <BR> <BR> <BR> <BR># Forward DNS traffic <BR> <BR>/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24 <BR> <BR> <BR> <BR>你或许对统计流量最感兴趣,下面的脚本就是用来统计包的.可以为每记帐. <BR> <BR># Flush the current accounting rules <BR> <BR>ipfwadm -A -f <BR> <BR># Accounting <BR> <BR>/sbin/ipfwadm -A -f <BR> <BR>/sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0 <BR> <BR>/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24 <BR> <BR>/sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0 <BR> <BR>/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24 <BR> <BR> <BR> <BR> <BR>如果你决定只要包过滤放火墙,可以到此为止了. :-) <BR> <BR> <BR> <BR> <BR> <BR>7.安装TIS <BR> <BR> <BR> <BR>7.1 获取TIS <BR> <BR>可从 <A HREF="ftp://ftp.tis.com/">ftp://ftp.tis.com/</A> 下载. 别重复我犯过的错误. 好好读一下那里的README文件. <BR>TISfwtk是放在一个隐含目录中的.TIS要求你向fwtk-<A HREF="mailto:request@tis.com发信申请,信的正">request@tis.com发信申请,信的正</A> <BR>文只写SEND,不用写标题,在12小时内,你将会得到系统自动答复,即包含fwtk源码的隐含 <BR>目录名称. <BR> <BR> <BR> <BR>我得到的TIS是2.0(beta)版,编译没问题(一点exception),工作的也很好.下面的描述都 <BR>基于该版本.当他们发布正式版时,我将更新这份文档. <BR> <BR> <BR> <BR>安装FWTK前,先在你的/usr/src目录下建立一个fwtk-2.0目录.把FWTK (fwtk-2.0.tar.gz) <BR>copy到目录下并解压 (tar zxf fwtk-2.0.tar.gz). <BR> <BR> <BR> <BR>FWTK本身不支持对SSL web的代理,但有一个addon,作者是Jean-Christophe Touvet.可从: <BR> <BR><A HREF="ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z">ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z</A> <BR> <BR>下载.Touvet不对其提供技术支持. <BR> <BR> <BR> <BR>我这里用的是一个经过修改,能够支持Netscape secure news servers的版本,作者是: <BR> <BR>Eric Wedel.站点是: <BR> <BR><A HREF="ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z.">ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z.</A> <BR> <BR> <BR> <BR> <BR> <BR>安装时在/usr/src/fwtk-2.0目录下建立一个ssl-gw目录就可以了.在编译之前,要对代码 <BR>作一些改动. <BR> <BR> <BR> <BR>首先是ssl-gw.c少了一个include文件,在其中加入: <BR> <BR> <BR> <BR>#if defined(__linux) <BR> <BR>#include <sys/ioctl.h> <BR> <BR>#endif <BR> <BR> <BR> <BR>再就是其中没有包含makefile,我的解决方法是从其它网关目录中copy一个,再把网关名字 <BR>改成: ssl-gw <BR> <BR> <BR> <BR> <BR> <BR>7.2 编译TIS FWTK <BR> <BR> <BR> <BR>FWTK的2.0版在比以前任何版本都要容易编译得多,但在这个BETA版中我仍然发现了一些需 <BR>要纠正的地方.希望这些错误在正式版中能够得到纠正. <BR> <BR> <BR> <BR>先到 /src/fwtk/fwtk 目录,用Makefile.config.linux 拷贝覆盖 Makefile.config 这个 <BR>文件. <BR> <BR> <BR> <BR>注意:千万不要按操作指示中说的那样运行fixmake.否则会搞坏每个目录中的makefile. <BR> <BR> <BR>我有一个解决fixmake的方法,是用sed在makefile中每个包含include的行中加入'.'和''. <BR> <BR>相应的sed脚本为: <BR> <BR>sed 's/^include[ ]*\([^ ].*\)/include \1/' $name .proto > $name <BR> <BR> <BR> <BR>然后我们得编辑Makefile.config.有两处需要修改. <BR> <BR> <BR> <BR>作者是在他的home目录中编译代码的, 而我们把代码放在 /usr/src, 因此要对环境变量 <BR>FWTKSRCDIR作相应改动: <BR> <BR> <BR>FWTKSRCDIR=/usr/src/fwtk/fwtk <BR> <BR> <BR>其次,有些linux系统使用gdbm数据库.而Makefile.config中缺省的是dbm也许你的需要修 <BR>改.我的/linux版本是 redhat 3.0.3. <BR> <BR> <BR>DBMLIB=-lgdbm <BR> <BR> <BR>最后一处在x-gw中,这个BETA版的socket.c有BUG,解决方法是去掉下面的一段代码: <BR> <BR> <BR> <BR>#ifdef SCM_RIGHTS /* 4.3BSD Reno and later */ <BR> <BR> <BR> <BR>+ sizeof(un_name->sun_len) + 1 <BR> <BR> <BR> <BR>#endif <BR> <BR> <BR> <BR>如果你在FWTK源目录中加入了ssl-gw,还要把它的目录加到 Makefile里: <BR> <BR> <BR>DIRS=smap smapd netacl plug-gw ftp-gw tn-gw rlogin-gw http-gw x-gw ssl-gw <BR> <BR>现在,可以运行make了. <BR> <BR> <BR> <BR>7.3 安装TIS FWTK <BR> <BR> <BR> <BR>运行 make install <BR> <BR>缺省的安装目录为/usr/local/etc.你可以把它改到一个更安全的目录,我没改,而是把这 <BR>个目录的权限设为'chmod 700'. <BR> <BR> <BR>剩下的就只有配置工作了. <BR> <BR> <BR>7.4 配置 TIS FWTK <BR>这才是真正引人入胜的部分.我们要让系统能够调用这些新加入的服务,并建立相应的控制 <BR>信息. <BR> <BR>我不想重复TIS FWTK手册的内容.只说明一些我所遇到的问题及其解决方法. <BR> <BR>有三个文件组成了所有的控制. <BR> <BR> <BR> <BR>* /etc/services <BR> <BR> <BR> <BR>告诉系统服务所在的端口 <BR> <BR> <BR> <BR>* /etc/inetd.conf <BR> <BR> <BR> <BR>决定inetd在某端口收到服务请求时调用哪个程序 <BR> <BR>*/usr/local/etc/netperm-table <BR> <BR> <BR> <BR>决定FWTK对服务请求的许可/拒绝为使 FWTK 发挥作用,你最好从头编辑这些文件.忽略其中 <BR>任何一个都可能导致系统失效. <BR> <BR> <BR> <BR>netperm-table <BR> <BR> <BR> <BR>该文件用来控制对TIS FWTK服务的访问授权.要同时考虑防火墙两边的情况.外部的用户必 <BR>须经过验证后才能获得访问权,内部用户则可以允许直接通过. <BR> <BR> <BR> <BR>TIS 防火墙可以进行身份验证,系统通过一个authsrv的程序管理一个用户ID和密码的数据 <BR>库。netperm-table的授权部分指定了数据库的位置及访问权限. <BR> <BR> <BR> <BR>我在禁止对该服务读取时遇到了一些麻烦.注意我给出的是在permit-host行中 '*'表示给 <BR>所有用户访问权.而正确的设置应该是 <BR> <BR>'' authsrv: premit-hosts localhost. <BR> <BR> <BR> <BR> <BR> <BR># <BR> <BR># Proxy configuration table <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -