📄 firewall-howto.txt
字号:
# End of inetd.conf-----inetd.cong设置档结束 /etc/services档 当用户连接到防火墙时,会接到一个已知的埠(小于1024)。例如,telnet接到 埠23。inetd deamon接到连接的动作,查看/etc/services上这些功能的名字。然 後,它会启动/etc/inetd.conf档中这个名字所指定的程式。 有时使用的功能并 不在/etc/services档中。这些功能可指定到任何想指定的埠。例如,管理员 的telnet埠(telnet-a)可设定到埠24,也可设定到埠2323,悉听尊便。如果管 理员(指你本人)要直接连接到防火墙,则需telnet到埠24而非埠23。如按照下 例设定netperm-table,则只能从保护的网路中的一个系统设定。 telnet-a 24/tcp ftp-gw 21/tcp # this named changed auth 113/tcp ident # User Verification ssl-gw 443/tcp8. SOCKS代理伺服器8.1 设定代理伺服器 SOCKS代理伺服器可从 ftp://sunsite.unc.edu/pub/Linux/system/Network/misc/socks-linux- src.tgz取得。该档内也有一个称为"socks-conf"的设置档可作参考。可把该档解 压,然後根据其中的说明使用该档。但使用时并不简单,应首先确定Makefile档 正确无误。 在 /etc/inetd.conf中应该增添代理伺服器。因此,应该增加以下一 行。 socks stream tcp nowait nobody /usr/local/etc/sockd sockd 这样伺服器才会在需要时运行。 8.2 设置代理伺服器 SOCKS需要两个设置档进行设定。一个设置档设定进入取用的权限,另一个设置档 设定路径,以便找到适当的代理伺服器。权限档应在伺服器上,路径档应在每一 台UNIX机上。DOS机和Macintosh机都会确定自行的路径。 权限档 在socks4.2(beta)版中,权限档称为"sockd.conf",应该只有两行,一行允许 (permit),一行拒绝(deny)。每行都有三项设定: * 识别标示行(permit/deny) * IP地址行 * 修改地址行 识别标示用于permit或deny。应该有单独的permit行和单独的deny行。 IP地址使 用标准的4byte方式表示,如I.E. 192.168.2.0.。 修改地址行也是标准的4位元 IP地址,用来作为netmask。将这个地址想成32位元的数字。如果是1,则核对的 地址的相应位置应符合IP地址中相应的位元。例如,此行的地址为∶ permit 192.168.2.23 255.255.255.255 则只允许每一位元相符的地址,即192.168.2.23。如果地址为∶ permit 192.168.2.0 255.255.255.0 则会允许192.168.2.0至192.168.2.255之间的每一个地址,即整个C级的地址。不 得有下列这种地址出现∶ permit 192.168.2.0 0.0.0.0 这会允许每一地址使用,不论其地址为何。 因此,允许每一个应该允许的地址, 然後拒绝其余地址。如允许192.168.2.xxx范围中的每一用户,可用下列方式表示 ∶ permit 192.168.2.0 255.255.255.0 deny 0.0.0.0 0.0.0.0 注意deny行中的第一个"0.0.0.0"。由于地址以0.0.0.0修改,因此IP为何都没有 影响。用0作为IP地址,因为便于打字。 特别的用户可以给予或拒绝使用的权限 。这可通过iden的查验来实现。由于不是所有系统都支持iden,其中包 括Trumpet Winsock,所以此处不预备多加说明。随同socks提供的说明以够使用 。 路径档 SOCKS中的路径档称为"socks.conf",极易与权限档混淆。 路径档让SOCKS用户知 道何时用socks,何时不用。例如,在示□的网路中192.168.2.3并不需要使 用socks与192.168.2.1防火墙对话。通过Ethernet,它们之间有直接的连接。 又127.0.0.1自动设为loopback。因此也不需要用socks同自己对话。它有三行输 入∶ * deny * direct * sockd Deny行告诉socks何时拒绝一项请求。在此添入的内容同sockd.conf的内容相同, 地址标示行、IP地址和修改地址行。一般而言,权限档sockd.conf也与此有关, 修改地址部分则用0.0.0.0。如果不打算连到任何地方,在此可作出修改。 在direct行下列入不使用sock的地址。所有这些地址都可直接联上网路,无须经 过代理伺服器。在这里又有三个位置要填∶identifier、address和modifier。例 如∶ direct 192.168.2.0 255.255.255.0 Sockd行告诉电脑那一个用户的电脑上有socks server daemon。该行内容如下∶ sockd @=<serverlist> <IP address> <modifier> 注意@= 填入的内容。利用这种方法可以填入一系列代理伺服器的IP地址。在这里 只用一个代理伺服器的地址为例。但可以列上多个伺服器的地址,以便加大容量 ,并当有伺服器失灵时,有其他的伺服器顶替。 设定IP地址和modifier域的方法和其他例子相同。 防火墙後的DNS 从防火墙後设定Domain Name Service是件简单不过的事。只要在作为防 火墙的电脑上设定DNS即可。然後在防火墙後的电脑上设定使用这个DNS。 8.3 代理伺服器 Unix 要使应用程序利用代理伺服器,这些应用程序需要"sockified"。在这里需要两 个telnet,一个进行直接通讯,一个通过代理伺服器进行通讯。SOCKS软件中有说 明sock一个程式的方法,也附有几个已经sock好的程式。如果要直接使用sock好 的程式,SOCKS软件会直接设定。因此,应该将保护网路内的所有程式改名,然後 再改用已经sock好的程式。例如,"Finger"变为"finger.orig","telnet"变 为"telnet.orig"。 必须通过include/socks.h档告诉SOCKS这种设定。 有些程式 能自行处理routing和sockifying的问题。Netscape就使其中之一。例如 在Netscape下要用用代理伺服器,只要在Proxies下SOCK栏内填入伺服器的地址即 可(在此为192.168.2.1)。当然,每种应用程式都得作些小变动,不论其处理代 理伺服器的方法为何。 微软视窗与Trumpet Winsock Trumpet Winsock中有自带的代理伺服器功能。在"setup"选单中填入伺服器的IP 地址和所有直接可联的电脑的地址。然後,Trumpet就会处理所有外送的数据包。 使代理伺服器配合UDP数据包 SOCKS软件只处理TCP数据包,而不处理 UDP。这多少减少了它的用处,因为,许 多有用的程式,例如talk和Archie,都利用UDP。有一套软件,称为UDPrelay, 由Tom Fitzgerald设计<fitz@wang.com>,主要作为UDP数据包的代理伺服器使用 。不过在编写本文时,这套软件不能用于Linux. 8.4 代理伺服器的缺点 归根结底,代理伺服器是一个安全装置。在有限的IP地址的情况下,用它使许多 用户进入网际网路有许多缺点。代理伺服器可使保护网路内的用户联到网路之外 ,但使网路之外的用户完全无法同网路之内的用户联系。这表示无法同网路之内 的电脑进行talk或archie联网,也无法发送电子邮件。这些缺点看来并不严重, 但是如果∶ * 你有一份没有完成的报告留在保护网路防火墙内的电脑上。回家後,你又想 看看这份报告。但是没有办法。因为电脑在防火墙後,无法联网。如果首 先login 防火墙,但由于每一个人都可进入代理伺服器,因此你在这个伺服 器上并没有个别帐户。 * 你女儿去了大学。你想写封电子邮件给她。你想谈些私事,因此最好能把电 子邮件直接放到自己的电脑上。你当然信得过你的系统管理员,但这倒底与 公务无关,是个人的信件。 * 不能使用UDP是代理伺服器的一个大缺陷。我想不久之後就会有UDP的功能。 FTP是代理伺服器的另一个问题。在取得或使用ls时,FTP伺服器在客户机上打开 一个socket,并通过它传送信息。代理伺服器不允许进行这项工作,因此FTP无法 使用。 此外,代理伺服器运行缓慢。由于需要额外资源较多,几乎任何其他能达 成这项作用的伺服器都要比它快。 一般而言,如果有IP地址联网,而又不必特别 顾虑安全问题,那就不要使用防火墙和(或)代理伺服器。如果没有IP地址联网 ,但也不顾虑安全问题,那就不妨使用IP模拟器,象Term,Slirp或TIA。Term可 从ftp://sunsite.unc.edu取得,Slirp可 从ftp://blitzen.canberra.edu.au/pub/slirp取得,TIA可从marketplace.com取 得。使用代理伺服器的理想网路是有许多用户需要联网,那只要做一次设定之後 就不必再做太多其他的工作。 9. 高级设置 在结束此文时,不妨再举一个例子,来说明设置的方法。前面的例子适合多数使 用情况。下面再以一个高级设置为例,以便能说明一些问题。如果前面的例子不 能解答你的问题,或者还想了解代理伺服器和防火墙的其他特性,请注意下面的 例子。 9.1 注重安全的大型网路 假设一个民团首脑要设置网路,其中共有50台电脑和有一个32个IP地址的次级网 。由于随从的级别不同,民团首脑想在网路上设置不同级别的使用权。因此,网 路的一部分不能与另一部分互通。 各种级别有∶ 1. 外围。这是人人都可到达的层面。这是吸引新成员的层面。 2. 部队人员这一层面的人物已经超过外围。这个层面的人可以知道一些计谋和 制造武器的方法。 3. 外籍军团这是真正完成计划之处。 网路的设定 IP号码的设定方法如下∶ * 一个地址为192.168.2.255,这是broadcast的地址,不可使用。 * 32 IP地址中23个地址分配给23台机器,这些机器可同网际网路联结。 * 一个IP地址用于网路上的linux机。 * 一个IP地址用于网路上的另一个linux机。 * 两个IP #'s用于router * 剩下的四个地址随便定四个名字,使人捉摸不定真正的用户。 * 保护网路的地址为192.168.2.xxx 这样就建立了两个不同的网路。这两个网路通过红外线Ethernet联网,外界完全 看不到它们的存在。红外线Ethernet的作用和一般Ethernet的作用相同。 这两个 网路各自连到有IP地址运行linux的电脑。 同时有一个文档伺服器接连到这两个 保护网路,因为征服世界的计划中需要一些训练精良的部队。文档伺服器中有部 队网路的IP地址192.168.2.17和外籍军团网路的IP地址192.168.2.23。有不同IP 地址的原因是因为有不同Ethernet卡的缘故。网路上IP Forwarding的功能关闭停 用。 两台Linux机上IP Forwarding的功能也都停用。除非有明确规定,否 则router不会转送送往192.168.2.xxx的数据包,因此网路无由进入。关闭IP Forwarding功能的原因是部队网路发出的数据包不让到达外籍军团网路,外籍军 团网路的数据包也不让到达部队网路。 可以设定NFS伺服器的设置,使其把不同 文档送往不同网路。这种方法颇为好用,在symblic links上做番手脚可使文档让 大家共享。利用这种设置和加一张ethernet卡可使一台文档伺服器用于所有三个 网路。 代理伺服器的设置 由于三批人马都需要了解网上的情况,因此他们都需要上网。外部网路直接连到 网际网路,因此在代理伺服器上不需要作出任何更动。外籍军团网路和部队网路 在防火墙之後,因此需要在代理伺服器上作出一些设置。 两个网路的设置非常类 似。它们仍旧使用分配给它们的IP地址。不过在这里得设定一些参数。 1. 任何人都不得使用文档伺服器上网,否则文档伺服器可能会遭到病毒或其他 坏东西得入侵。这种问题至为严重,因此不得使用文档伺服器。 2. 不让部队人员上网。他们正在接受训练,如果让他们拥有这种检索资讯的能 力可能对他们有害。 因此,在部队网路的linux机上sockd.conf档内应有下列一行∶ deny 192.168.2.17 255.255.255.255 并且在外籍军团机内的设定是∶ deny 192.168.2.23 255.255.255.255 同时,部队网路的linux机内设定∶ deny 0.0.0.0 0.0.0.0 eq 80 这行的意义是不让任何机器使用埠号80,既http埠。不过这些机器仍然可用所有 其他功能,只是不让上网。 然後在两台机器的sockd.conf档内都添加∶ permit 192.168.2.0 255.255.255.0 使所有在192.168.2.xxx网上的电脑都使用这台代理伺服器,但不让使用的电脑除 外(既从部队网路进入文档伺服器和网际网路)。 部队网路的sockd.conf档的内容如下∶ deny 192.168.2.17 255.255.255.255 deny 0.0.0.0 0.0.0.0 eq 80 permit 192.168.2.0 255.255.255.0 外籍军团网路的sockd.conf档的内容如下∶ deny 192.168.2.23 255.255.255.255 permit 192.168.2.0 255.255.255.0 这样的配置应该没有问题。每一个网路都能单独作业,并有适当的相互关系。人 人都应该心满意足才对。 现在就可征服世界了!
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -