荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: fbird (jack), 信区: Hacker
标  题: Linux上的防火墙(5)
发信站: BBS 荔园晨风站 (Tue Oct 27 13:20:36 1998), 站内信件

5.  Proxy Server

5.1. 安装Proxy Server

    Proxy Server需要额外的软体, 你可以从ftp://sunsite.unc.edu/pub/Linux/
system/Network/misc/socks-linux-src.tgz得到你要的宝贝。在sock-conf下同时
有一个config档□例。解压之後, 跟著指示把它make起来, 我在make时遇到了一箩
筐的问题, 确定你的Makefile正确无误。一件要注意的是记得把Proxy Server加到
/etc/inetd.conf里, 你可以加入下行:
socks   stream  tcp     nowait  nobody  /usr/local/etc/sockd    sockd

5.2.  设定Proxy Server

    socks的程式需要两个configuration档。一个说明那些Access是被允许的, 另
一个则是把请求route到适当的Proxy Server。Access档必须设在server上。而
routing档则要装在每部Un*x机器上。DOS 和mac的机器会进行它们自己的routing。

5.2.1.  Access档

    在socks4.2 Beta中, Access档称为"sockd.conf", 应该包括两行, 一行允许
的(permit), 一行是禁止的(deny), 每行有三个项目:

o  识别字(permit/deny)
o  IP位址
o  位址修正值(位址 modifier)

    识别字不是permit就是deny, 应该要有一行permit、一行deny。IP位址采用
Internet上的标准记法, 例如192.168.2.0。 位址修正值也是采IP位址的格式, 而
有netmask 的效果。把它想像成一个三十二位元的二进位数, 若该位元为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间的IP 位址, 即整个C Class domain。如果
你加入下行:

    permit 192.168.2.0 0.0.0.0

则代表你是来者不拒了。所以先允许你要开放权限的位址, 再拒绝其他的位址。例如:

    permit 192.168.2.0 255.255.255.0
    deny 0.0.0.0 0.0.0.0

会允许所有的192.169.2.xxx, 注意deny行里的"0.0.0.0" 使用了0.0.0.0做修正,
"0.0.0.0"并没什麽特殊用意, 修正值就拒绝了所有的位址, 用0只是因为打字方便
罢了, 你要用255.255.255.255 也没人拦著你。除这两行外, 你还可以加上额外的
限制。

    你也可以permit或deny某一特定的user, 但这需要"ident authenticaiont",
并非所有的系统都有此一功能, 像Trumpet Winsock 就没有, 所以我就不再深入研
究, 以上所做的讨论应该已经足够了。
5.2.2.  Routing档

    Routing档称作"socks.conf", 很容易跟Access档搞混。Routing档用来告诉
socks clients何时用socks , 何时不用。例如, 在我们的网路上, 192.168.2.3
和192.168.2.1 (Firewall) talk时就用不到socks , 它们直接用Ethernet相连。
因为系统自动定义127.0.0.1作为回路之用, 你和自已talk时当然也不需socks。
档案中有三个项目:

o  deny
o  direct
o  sockd

    Deny指示何时要拒绝请求, 它的语法和sockd.conf同。一般来说, 把修正值
设为0.0.0.0 就可以轻易挡掉所有的外来者。direct项指出那些位址不必用到
socks , 即不必透过Proxy Server就可连到的地方。同样有三栏, 识别字、IP位
址和位址修正值, 例如:

    direct 192.168.2.0 255.255.255.0

这使我们可以在保护网路内直接通行。sockd 项说明那些电脑上有socks server
daemon在执行, 语法是:

    sockd @=<serverlist> <IP address> <modifier>
注意"@="那一栏, 它让你列出一堆Proxy Server的IP位址。在我们的例子里, 我们
只用一台Proxy Server, 但你可以多设几个好容纳高负载, 同时减少故障停摆的风
险, IP位址和修正值用法同前。

5.2.3.  Firewall内的DNS

    相较之下, 在Firewall内安装DNS 是很简单的事, 只要在Firewall的机器上装
个DNS , 并且将Firewall内的机器DNS 设定改成它就行了。

5.3.  使用Proxy Server

5.3.1.  Unix

    若你的应用程式想要应用Proxy Server, 先绝条件是它们必须是"sockified"
型的, 所以你必须有两个TELNET, 一个是直接连接的, 一个则是透过Proxy Server
连接。Socks 有教你怎麽去sockify 一个程式, 同时也有一堆己经sockified 的程
式, 如果你使用一sockified 版本去作直接连接, socks 会自动替你转换成直接版
。所以, 我们得把所有保护网内的原有程式改为sockified 的版本, 先将"finger"
改为"finger.orig", "telnet" 改成"telnet.orig"等等, 你必须在include/socks.h
档中告诉socks这些资料。

    有些程式会自行routing并sockify自己, Netscape就是一个例子。你可以在
Netscape中使用Proxy Server, 只要在Proxies 选项中输入 Server的位址就可以了
(在本例中为192.168.2.1)。每个应用程式都会让你有点手忙脚乱吧!

5.3.2.  MS Windows/Trumpet Winsock

    Trumpet Winsock 具有内容Proxy Server的能力, 在"setup" menu里输入你的
server IP位址和其他相关可以直接连通的电脑位址, Trumpet会处理所有外送的封
包。

5.4.  使Proxy Server处理UDP 封包

    有点美中不足的是socks 软体只能处理TCP 封包, 而不包括UDP 封包。很多有
用的程式像talk, Archie都使用UDP。 有个软体可以用来当作UDP 的Proxy Server,
叫作UDPrelay, 由Tom Fitzgerald所写<fitz@wang.com>。不幸的是, 到目前为止,
它还不相容於Linux。

5.5.  Proxy Server的缺点

    Proxy Server是个安全装置, 用它在有限的IP位址上增加Internet的Access动
作会有一些缺点。Proxy Server允许在保护网路到Internet的大量Access, 却可以
让外界不能触及网路内部, 亦即外界的server, talk或Archie, mail都无法真接传
至保护网路内, 看起来没什麽大不了的, 可是请你仔细想想:

o  你可能在保护网路内用电脑打了一篇报告, 回家之後, 你想把它拿回来看看,
   抱歉, 这是不可能的, 你根本无法Access你的电脑, 因为它在Firewall内部。
   你试著login Firewall, 可是因为每个人都有Proxy Server Access, 所以没有
   人为你在上面另设帐号。

o  你和□的女友用email通信, 有些「不可告人」的私事要讲, 请她把email直接
   寄到你的电脑上会比较好, 但是不行。你信任Firewall的管理者没错, 但这毕
   竟还是私人信件。

o  无法处理UDP 封包是Proxy Servers的致命伤, 我想UDP 的用途会愈来愈多。
   [例如: CoolTalk... ]

    FTP 会造成Proxy Server上的另外一个问题, 当你抓档或是作一个ls动作时,
FTP Server会开一个socket 在client机器上, 并藉由它来传送资讯。而一个Proxy
Server不会允许你这麽做, 所以FTP 就无法顺利完成。另外, Proxy Server跑起来
挺慢的, 因为overhead太大了些, 其他的方法相形之下就快多了。

    基本上, 如果你有一个IP位址, 你也不担心安全的问题, 也用不到Firewall或
是Proxy Server; 如果没有, 而你也不担心安全问题, 你可以找找IP emulator 之
类的工具, 如Term、Slirp或TIA。Term可以在ftp://sunsite.unc.edu拿到, Slirp
可以在ftp://blitzen.canberra.edu.au/pub/slirp拿到, 而TIA在marketplace.com
上有。这些工具跑起来快多了, 连线也较有效率, 同时由Internet连入内部网路的
权限也大多了。Proxy Server适合那些有一大堆主机要连上Internet却不太想安装
和设定太多东西的人。

--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.1.89]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店