📄 firewall-howto-7.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>防火墙和代理伺服器 - HOWTO: 安装TIS代理伺服器</TITLE>
<LINK HREF="Firewall-HOWTO-8.html" REL=next>
<LINK HREF="Firewall-HOWTO-6.html" REL=previous>
<LINK HREF="Firewall-HOWTO.html#toc7" REL=contents>
</HEAD>
<BODY>
<A HREF="Firewall-HOWTO-8.html">Next</A>
<A HREF="Firewall-HOWTO-6.html">Previous</A>
<A HREF="Firewall-HOWTO.html#toc7">Contents</A>
<HR>
<H2><A NAME="s7">7. 安装TIS代理伺服器</A></H2>
<P>
<H2><A NAME="ss7.1">7.1 取得软件</A>
</H2>
<P>TIS FWTK软件可从下列网址得到∶<B>ftp://ftp.tis.com/</B>.
千万记住∶从TIS下载软件後,首先阅读README。TIS fwtk存放在伺服器的一个隐藏目录内,需要<B>发电子邮件给fwtk-request@tis.com</B> 并在信文内填入<B>SEND</B>才能得知隐藏的目录的名字。Subject栏内不必填入任何内容。在回覆的电子邮件内会告知存放软件的目录的名字,有效时间为12小时,得赶快下载。
在编写本文时,FWTK的最新版本为2.0(beta)。除了几个小地方之外,这个版本在编辑时没有问题,运行时也正常,此处就以这一版本为例。如有最後定本时,将在以後的HOWTO中增订。
安装FWTK时,首先在 /usr/src下建立fwtk-2.0目录。将FWTK(fwtk-2.0.tar.gz)放在这个目录内解压(tar zxf fwtk-2.0.tar.gz)。
FWTK并无代理SSL的网路文件,Jean-Christophe Touvet写了一些附加资料,可从<B>ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z</B>取得。
Eric Wedel写了修订本,其中包括使用网景(Netscape)的新闻伺服器。这套软件可从下列网址取得∶<B>ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z</B>
以下以Eric Wedel的版本为例。
要安装,只要在/usr/src/fwtk-2.0目录内建立一个 ssl-gw目录,把文档放在其中即可。
在安装这个网关时,得要作些改动才能进行编辑。
首先改变ssl-gw.c档,其中遗漏了必要的include档。
<PRE>
#if defined(__linux)
#include <sys/ioctl.h>
#endif
</PRE>
其次,也没有Makefile档。不妨从其他网关目录拷贝一个,然後将网关的名字改为ssl-gw。
<P>
<H2><A NAME="ss7.2">7.2 编辑TIS FWTK</A>
</H2>
<P>版本2.0的FWTK比以往任何一个版本都易于编辑。不过在编辑以前还需要对BETA版本作一些更动。希望这些更动会加附到最後定本中。
修改方法如下∶首先进入/usr/src/fwtk/fwtk目录,拷贝Makefile.config.linux档,以此档替代Makefile.config档。
<B>不要运行FIXMAKE</B>。虽然在说明中建议执行这个程序。但运行後会破坏每一个目录中的makefile。
修改fixmake的方法是在每一个Makefile的sed指令的include行中添加‘.’和"。按下例更改,便可运行无碍。
<PRE>
sed 's/^include[ ]*\([^ ].*\)/include \1/' $name .proto > $name
</PRE>
然後需要编辑Makefile.config档,但首先得作两项修改。
Makefile.config档中的source目录应改为进行编辑的/usr/src,因此FWTKSRCDIR应作相应的改变。
<PRE>
FWTKSRCDIR=/usr/src/fwtk/fwtk
</PRE>
有些Linux系统使用gdbm数据库。Makefile.config使用dbm。例如,RedHat 3.0.3就使用dbm,因此需要作出相应更动。
<PRE>
DBMLIB=-lgdbm
</PRE>
最後需要改x-gw。BETA版内socket.c中的下列数行必需删除。
<PRE>
#ifdef SCM_RIGHTS /* 4.3BSD Reno and later */
+ sizeof(un_name->sun_len) + 1
#endif
</PRE>
如在FWTK源目录中添加ssl-gw,则在Makefile的目录单中也要加上ssl-gw。
<PRE>
DIRS= smap smapd netacl plug-gw ftp-gw tn-gw rlogin-gw http-gw x-gw ssl-gw
</PRE>
完成上述修改後,运行<B>make</B>。
<P>
<H2><A NAME="ss7.3">7.3 安装TIS FWTK </A>
</H2>
<P>运行<B>make install</B>。
默认的安装目录是/usr/local/etc。可以改到更加安全可靠的目录进行安装,但也可以不改,也可将其特权改为chmod 700。
现在开始设定防火墙。
<P>
<H2><A NAME="ss7.4">7.4 设置TIS FWTK</A>
</H2>
<P>好!下面就比较有趣了!设定的系统要能调用这些新功能,并建立管制表管理这些功能。
以下的说明并不是为了要重写TIS FWTK的使用手册,其目的只是为了显示可行的设定、可能遇到的问题和解决的办法。
有三个文档组成这些controls。
<P>
<UL>
<LI>/etc/services
<UL>
<LI>告诉系统所定功能在何埠号</LI>
</UL>
</LI>
</UL>
<UL>
<LI>/etc/inetd.conf
<UL>
<LI>当服务埠有动作时告诉inetd启动那个程式</LI>
</UL>
</LI>
</UL>
<UL>
<LI>/usr/local/etc/netperm-table
<UL>
<LI>告诉FWTK同意和拒绝来往的用户</LI>
</UL>
</LI>
</UL>
要FWTK发挥作用,应彻底编辑这些档案。编辑这些功能档而不正确设定 inetd.conf或netperm-table,可能使系统完全无法作用。
<P>
<H3>netperm-table档</H3>
<P>这个档控制何人可以使用TIS FWTK的功能。首先应该想到防火墙两边的需求。网路外面的用户在进入网路之前应首先表明身份,但网路内部的用户则可直接通过。
在表明身份时,防火墙使用一个称为<B>authsrv</B>的程式,其中存有用户的ID和密码。netperm-table中的authentication部分控制这一数据库存放何处和谁可取用。
要不让人取用这一功能并不容易,在premit-hosts这一行中使用“*”,以致每人都能取用这一功能。这一行的正确设定应该是“<CODE>authsrv: premit-hosts localhost</CODE>”,但似乎不起作用。
<PRE>
#
# Proxy configuration table: 代理伺服器设置表
#
# Authentication server and client rules
authsrv: database /usr/local/etc/fw-authdb
authsrv: permit-hosts *
authsrv: badsleep 1200
authsrv: nobogus true
# Client Applications using the Authentication server
*: authserver 127.0.0.1 114
</PRE>
要启动数据库,以root在/var/local/etc内运行<B>./authsrv</B>,设立管理者的使用记录。实际操作如下∶
阅读FWTK文档了解如何添加用户和用户组。
<PRE>
#
# authsrv
authsrv# list
authsrv# adduser admin "Auth DB admin"
ok - user added initially disabled
authsrv# ena admin
enabled
authsrv# proto admin pass
changed
authsrv# pass admin "plugh"
Password changed.
authsrv# superwiz admin
set wizard
authsrv# list
Report for users in database
user group longname ok? proto last
------ ------ ------------------ ----- ------ -----
admin Auth DB admin ena passw never
authsrv# display admin
Report for user admin (Auth DB admin)
Authentication protocol: password
Flags: WIZARD
authsrv# ^D
EOT
#
</PRE>
Telnet的网关(tn-gw)控制直接了当,应首先设定。
例如,允许在保护网路内的用户不表明身份直接通过(permit-hosts 196.1.2.* -passok)。但其他用户必需提供用户ID和密码才可使用代理伺服器(permit-hosts * -auth)。
此外,有一个系统(196.1.2.202)也可直接使用防火墙。这只要设定inetacl-in.telnetd的内容即可。
Telnet的timeout时间应该短暂。
<PRE>
# telnet gateway rules:
tn-gw: denial-msg /usr/local/etc/tn-deny.txt
tn-gw: welcome-msg /usr/local/etc/tn-welcome.txt
tn-gw: help-msg /usr/local/etc/tn-help.txt
tn-gw: timeout 90
tn-gw: permit-hosts 196.1.2.* -passok -xok
tn-gw: permit-hosts * -auth
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -