20090131

乐评人 颜峻 福柯 《性史》/《铁男》/齐柏林飞船 天堂阶梯

我们没有青春期,我们的青春在学校教育的体制下度过,我发现这些的时候已经迟了,到二十来岁才开始颓废,我觉得有点太迟了。——
颜峻

颜峻,男,乐评人,独立音乐和艺术活动策划人,声音艺术家,即兴演奏者,诗人。1973年生于兰州,毕业于西北师范大学中文系,Sub
Jam(铁托)和观音(KwanYin)厂牌创办者,铁观音乐队和糖乐队创建者。现居住和工作在北京,主持实验音乐和艺术系列活动"水陆观音"。著有《北京新声》、《铁血摇滚》、《内心的噪音》、《地地下——新音乐潜行记》、《波西米亚中国》、《燃烧的噪音》及自印诗集《次声波》。

诗歌圈与摇滚圈

凤:照你当时的状态,你应该是奔着诗人这条道去的,但你现在是乐评人,你怎么又突然掉转方向,奔着音乐这条道上来了呢?
颜;倒也不是掉转方向,因为诗一直在写,但是,诗歌这方面,你要成为一个公众人物是非常难的,你得去混。
凤:你这么想出名啊?
颜:不,我不想出名才没人知道我写诗嘛。如果我当时继续这么混下去,不断地跟人联络,参加这活动那活动,拼命发表,可能大家更多的知道我是一个诗人。但摇滚乐改变了我的生活,我后来接触摇滚乐队,大家一起生活,被那帮朋友改变了以后,就对诗歌圈特别厌倦。因为诗歌圈子里很多人的生活非常乏味,非常狭隘,他可能比其他人追逐名利还要严重,更虚伪、更无聊,所以我不想跟他们来往,大学毕业以后就跟诗歌圈断了联系。
凤:如果说画两个圈,一个是诗歌圈,一个是摇滚圈的话,你觉得这两个圈在精神本质上有什么不同?
颜:我觉得在生活方式上是不同的,诗歌圈子里的人没有信仰,他们的生活方式和价值观没有和他们的写作统一起来,非常虚妄。在诗歌圈子里,一个人可能号称在写所谓的先锋诗歌,可是他听的音乐是非常恶俗的卡拉OK。行为上还非常现实,生活当中,他们谁都不是诗人,谁都是非常善于妥协和说假话的人。而摇滚圈,尤其是地下摇滚,音乐和人本身的生活是融合在一起的,"我喜欢音乐,我要做音乐",就这么简单,不会被物质所左右,而且可以更加自然地去表达自己的欲望,自己的想法,这个差别是非常大的。
凤:实际上这两个圈子的差别就是人和人的差别,但是,为什么依附于诗歌的人和依附于摇滚的人会有这样的不同呢?.
颜:摇滚圈里面也是庸才遍地,但它的好处是,摇滚乐代表大众文化进步的一面,也就是青少年文化的原始动力。它能够不断地反叛自己,对商业化起到借用和反驳的作用。摇滚乐本身也一直在不断地进步,在颠覆以前的形式,在产生新的流派,新的美学,新的技术,是一直建立在体验和原始的立场上面。而诗歌已经非常学术化了,我觉得中国诗歌界从80年代至今没有什么本质的变化,他们迅速地建立起来新的学术体系,新的权力体系,而且,他们所依赖的话语方式依然是他们反对的那一套,我觉得毫无意义。大多数诗人所关心的是他的学术价值、在诗歌体系中的位置,而不是在人生中的位置;音乐就不同,音乐更关注他和他的人生之间的关系。当然要是说到高处,那诗人和音乐家一样是需要知行合一的。

颓废而不虚无

颜:对我个人而言,影响最重要的是Led Zepplin——齐柏林飞船(英国早期的重金属乐队)的《Stairway to
Heaven》——《天堂的阶梯》,我是在上大学,正处于最颓废、最绝望的年代,因为那时侯我们一帮人天天讨论人为什么要活着,一帮无业游民、摇滚乐手天天喝酒,那个阁楼满地都是烟头和啤酒瓶盖子,乱七八糟的生活,没有什么希望,而那正好是一首很破灭的歌,它说,有一位女士相信凡是闪光的东西都是金子,当然这是不可能的,(笑)她买到一个上天堂的阶梯。一首非常绝望的歌,那时侯听了它就想哭,一种破灭,一种没有来由的青春期伤感……对我们来讲,我们没有青春期,我们的青春在学校教育的体制下面度过,我发现这些的时候已经迟了,到二十来岁才开始颓废,我觉得有点太迟了。
凤:你的意思,颓废是青春期的标志?(笑)
颜:18岁就应该颓废了。假如人颓废的话,他就获得一个机会去认识生活,去获得力量,他会用一种悲剧性的眼光去看待生活中一些真实的东西,他会活得更真实。颓废是危险的,颓废过了头你可能就自杀了,或者直接就变成犯罪分子,但是,这种危险当中蕴涵着你平常所不能得到的东西,你看待生活的眼光会不一样。你为什么悲观?因为你有理想,有一个美好的愿望。如果你能从颓废中出来的话,你就会重新获得一个好的眼光去看待你所追求的那个美好,你会重新去追求它,你会更真实更有力量。我更多的看重颓废带来的正面力量,颓废而不虚无,你就可以获得力量。

书/影/乐

他不仅仅是一个学术人物,他影响我的人生,他影响我生活的信条,他重要到这种程度。福柯教给我一种存在的方式,真正的对控制的反抗是在局部的,而不是整体的。局部的理想主义的目标和局部的斗争、局部的获得进步。——
[法]福柯《性史》

看这种电影,只需要你把一切知识忘掉就行了,打开你的知觉之门去感受它,当你的感官非常发达的时候,你可以欣赏任何艺术。就这么简单。20世纪艺术革命的核心是让我们学会听、看和体验,而不是判断和学习。——[日]冢本晋也《铁男》

一首非常绝望的歌,那时侯听了它就想哭,一种破灭,一种没有来由的青春期伤感……——[英]齐柏林飞船(Led
Zeppelin)《天堂阶梯》

http://www.sdgb.cn/ziminglm/xiaofengzbs/jiemuwengao/yanjun.html

Re: 那里能找到日本的那个越狱高手的故事?(转寄)

发信人: Ruby (很红,很和谐), 信区: PrisonBreak
标 题: Re: 那里能找到日本的那个越狱高手的故事?
发信站: 水木社区 (Fri Jan 30 15:02:52 2009), 站内

行行出状元--这才是真正的越狱高手

  这几日看着《越狱》,感叹人家美国人会拍戏的同时,不禁想起了电视里曾经看过的日本越狱王--白鸟由荣的光辉历程。

  在日本若论越狱次数多大概要数西川寅吉,那家伙一共跑了6次。而白鸟由荣虽然只有4次,但是技术含量颇高,无愧状元称号。

  估计他的手段已经落后于时代,各位万一哪天身陷囫囵未必用得着,但是"只有想不到的,没有做不到的"这个指引人类向前的大方向您可时刻不要忘。

  白状元1907年生于日本青森,没见过母亲不说,2岁的时候父亲也不幸谢世,苦孩子一个。在开豆腐店的亲戚家当养子的时候任劳任怨表现良好,一心想着将来把父亲欠下的钱还掉后自己也能老婆孩子热炕头的幸福一把。21岁时经人介绍娶了媳妇,生有1男两女。美好的日子没持续多久,小白农闲跟人家去捕蟹时学会了赌博。赌瘾大水平差豆腐店那点钱不够用,就开始了小偷小摸的勾当。

  常在河边走,终于湿了鞋。26岁那年,小白伙同另一个人去偷一家杂货铺时被店里人发现,两人跑,人家追。这二位没跑过人家,于是一番搏斗。搏斗中用刀把店里人捅了后,畏罪潜逃。

  两年后正在看报纸的小白发现当年那宗案子的同伙因为犯了别的事被抓,思想斗争后自首。

  因为是杀人犯,嫉恶如仇的警察同志除了对小白一顿毒打以外,每天都会实施"你个杀人犯还有脸活着"一类的语言暴力。小白觉得人格受到了侮辱,很不爽,"龟孙子,老子跑一个给你们看。"小白恨恨地想。

  1936年6月18日天还未亮,青森警察局刑事科科长家的电话铃声大作。惺忪睡眼的科长一边嘟囔着哪个倒霉蛋不让我睡觉一边拿起话筒,电话的另一端传来慌张的声音:"白鸟跑了"。科长懵了。

  一般来讲犯人都是在户外干活或者押送过程中才有机会跑掉,非常罕见的有从监狱里直接跑出去的都是有一众犯人协力。而白鸟因为被判了死刑所以关的是单间,看守严密,怎么能跑掉呢?

  "啥时候跑的?"
  "5点20分到30分之间,5点30分发现他不见了。"

  科长到现场一看,关白鸟屋子的铁门上的锁似乎被自配的钥匙打开了,而且走廊的锁也开着。叫来第一个发现现场的巡逻看守一问,看守说他5点20分左右路过白鸟房子时还没什么异样,但是10分钟后返回时发现白鸟床上的被似乎不够鼓,再三询问也不见回音,于是叫来另一个看守一起进去查看,结果发现被下面只有水桶和枕头。

  杀人犯越狱的消息传出后,整个青森市陷入混乱。居民闭门不出,大街上到处是巡逻的自警团。

  很明显白状元越狱技能出众但是野外生存能力一般,山里潜伏三天后实在是饿小白伪装成病人下山找吃的,被俘。

  怎么弄到的钥匙?警方对于调查结果大吃一惊。

  小白洗澡时偷偷地把洗澡用的小手桶上的一小片金属拽下带回房里,确保了原材料。单间牢房的铁门上有一个供食物进出没有上锁的小窗口,小白去房外扔垃圾时目测了小窗口和锁的方位,然后趁人不备,把洗澡时泡得松软的手从小窗口伸出去扣到锁眼上,得到了锁内部的形状。

  看守巡逻时间的15分钟空白自然也是尽在掌握之中,为了确保不出错,小白还花了数十天根据足音来确定时间。

  自配的钥匙打开了单间门,狱舍门,监狱后大门。作为第一次越狱来讲,小白干得不错。

  
  青森监狱怕这老兄再跑,除了单间待遇外还给小白配上了皮制手铐,另外看守也增加了。一天晚上某看守确认屋内情况时发现本应带着皮手铐的小白两手伸开呈大字形睡得正香。大惊下,看守跑回自己的屋子按响了警报。其他的看守被警报招来如临大敌的再去确认时,却发现小白带着皮手铐在睡觉。监狱长当然不认为是自己部下看花眼了,一怒之下给小白又加了一副皮脚镣。

  同年11月5日,小白被判了无期,送往宫城监狱。

  宫城监狱3年,小营监狱1年2个月,小白一点状元应有的表现都没有,安心服刑。转眼1937年,日本侵华,犯人们被陆续送到秋田监狱。1941年冬天,小白也到了秋田,那里的看守们不了解小白喜欢顺毛梳理的性格对小白很不客气。

  小白则用他的第二次越狱来还以颜色。


行行出状元--越狱(第二次)

  秋田监狱的死心眼们认为对待这个有前科的要重拳出手才行,他们用一间"镇静房"来迎接小白。

  "镇静房"3米多高,墙上镶着铜板,铁门上也没有小窗口,唯一的一个天窗也用铁网拦着。白天阳光几乎照不进来,只有一盏20瓦左右的孤灯陪伴着小白。

  小白带着手铐在这间"镇静房"里过冬。因为怕他跑,狱方放弃了这个好劳力,小白整天都要在昏暗的屋里端坐,姿势稍微有些变化,看守那边都会大声叱责。水泥地上只有薄薄的一张毯子,小白冷的受不了央求看守再给一张,被拒绝。没办法,小白只好无视让他端坐的命令,屋里边绕圈跑步自力更生取暖,睡觉时也把毯子盖在头上。事情虽然不大,但是对于时刻担心他跑掉的看守来讲,实在是难以忍受。当然还有一个原因是严寒不光对犯人有效,公平的大自然使得看守的精神也有些萎靡。

  "白鸟,把头伸出来!"看守严厉地喊道。
  "从小养成的习惯,改不了了。别那么严,晚上让我睡个好觉不成么?"
  "你要是不守规矩,我要惩罚你。"看守继续色厉内荏。
  小白微笑道:"别忘了我可是想什么时候出去就什么时候出去。你要是再那么说话我就挑你当班的时候越狱。"说罢也不理看守兀自把毯子盖到头上睡了。

  这种对话几乎每天都会发生,对于小白的事迹看守们都有耳闻,觉得若是换成自己恐怕无法从青森监狱跑掉,也无法把皮手铐解开,就是说虽然现在这个"镇静房"自己打破头也想不通怎样能跑掉但是这个白鸟恐怕能。要是轮到自己当班那可就惨了,没准饭碗就丢了。看守们都祈祷最好是别人当班的时候他跑。但是该来的总要来的。

  1942年6月15日,未明,雨。

  5点30分所有的狱房点检结束后,看守部长们跑到看守长面前列队报告。
  "一切正常"。

  还礼后正要宣布解散,慌里慌张地跑过来一位面无血色的夜勤看守。
  "镇静房的白鸟跑了。"

  看守长无语片刻后,带着哭腔说道。
  "跑了?!"

  命令所有的看守部长放下手里的活,看守长率一行众人直奔关押白鸟的"镇静房"。

  门锁着。开锁后进得屋来首先发现屋里漏雨。抬头看去,众人不禁轻啊一声,呆立在那。天窗被打开了,雨正在滴滴答答地从那里落下,打湿了被褥,也打乱了他们的思绪。从地面到天窗大约3.2米左右高,没有任何工具怎么能爬上去呢?而且外边还有4,5米高的砖墙,那也不是想翻就能翻过去的。虽然无法理解但是需要正视的现实是白鸟不见了。

  听到报告后,狱长也傻了。"那个屋子也能跑出去?"

  经过检查,铁丝覆盖的天窗的木框有些腐朽,白鸟似乎是弄断了木框后逃出去的。对这个"镇静房"每天都会有细致的检查,但是天窗太高,一直不是检查对象。不过这么滑的墙怎么爬上去的呢?唯一能起点垫脚作用的是被,不过看起来没有被用过的痕迹。狱长歪着脑袋想了许久也没弄明白。不管怎样,先抓回来再说,狱长联系东北地区的警察对白鸟进行大搜捕。搜捕进行了5天依然没有结果时,东条英机来秋田视察,警察都去警备那个甲级战犯。白鸟的搜查只好中断。

  三个多月后的9月18日深夜,有人敲响东京小营监狱主任小林良三的家门。
  "谁啊?"小林问道。
  "我是白鸟,白鸟由荣。"

  小林大吃一惊。白鸟6月里的越狱已经得到了全国通缉的待遇,小林自然知道,这家伙怎么跑这来了。打开门一看,虽然满脸大胡子晒得很黑,依稀就是白鸟的样子。
  "怎么到这来了?"小林问道。
  "来见您。"
  "是来自首吧!"小林点点头,把白鸟让进屋。小林让夫人给白鸟倒茶,白鸟抱着茶碗十分珍惜地喝了下去。小林十分不好意思地说开战后粮食越来越紧张这里有个地瓜你对付吃吧。一边狼吞虎咽地吞着地瓜,白鸟说道:"我在小营的时候小林主任对我很好,所以我想着有些话也只能跟您说。"

  按照小白的说法,他之所以越狱是因为"想要跟司法部诉说监狱的待遇实在太差,需要改善"。
  "监狱生活本身没什么,但是秋田那里实在是太糟糕了。"小白说"我相信小林主任一定会让我把话说出来,所以才跑的。"

  天亮后,白鸟跟着小林去小营警察局自首。是否有关联不得而知,小白自首后秋田监狱的"镇静房"也被废止。

  关于小白,小林是这样向别人评价的。"爱憎分明,有古风。"

  在东京地方检察院的伸张正义下,小白被关进东京监狱。狱方对他的越狱手段,逃走路线展开调查。

  结果显示,小白除了有超常的体力和腕力外,还有一些特殊的本领。他的关节异常灵活,像猫一样,但凡头能过去的地方,肩,手脚,腰,都可以自由的脱臼然后随着穿过去。还练就了把手脚的皮肤收缩像吸盘一样使用的技巧。

  自打动了越狱的念头后,铜墙铁门小白无计可施,不过对于天窗一直是抱有希望,作为天天在墙角练习爬墙的成果他发现了天窗木框已经腐朽。

  越狱的那天晚上外边风雨交加,声音和足迹都可以隐形实在是个大好机会。小白像平时练习一样,两只脚踩着一面墙,双掌按住另一面墙,一路蜘蛛爬来到天棚。把事先已经弄松的天窗顶破,爬到屋顶。跳到地上后又在监狱的工厂里找来一块圆木,踩着圆木越过砖墙。

  越狱后从农户家偷来衣服,从地里偷来吃的,昼伏夜出直奔东京。据说若是以小白的手段本来一天可以跑上120公里,因为小心谨慎东京行才花了他三个月。

  因为坚信小林会帮他说话改善监狱环境,所以越狱,又不辞辛苦步行三个月,这恐怕就是典型的一根筋吧。

  这次越狱给小白在原有的无期徒刑上又带来了3年有期徒刑,被送往�走监狱。所谓虱子多了不咬,对于服刑小白是没意见的。但是狱方不要太过分哦。

  可惜,冬天最低温度零下30度的�走的看守们似乎忘了前车之鉴。


行行出状元--越狱(第三次)

  关于�走监狱曾被关押在那里的日本共产党员德田球一在他的《狱中十八年》里这样写道"寒冬低于零下30度是常有的事,那样的天气里即使有暖气牢房里也只有零下8,9度。自己的呼吸会在眉毛和睫毛上结冰。冻伤的鼻子如果不经常揉揉,皮肉会一点点地掉下去"。

  在这样的严寒里,小白戴着铁制的手铐脚镣穿着夏天的单衣被关了单间。

  通常狱方对于有暴力倾向或者有要跑迹象的人才会采取戴手铐脚镣的方法。但对似乎无所不能的小白从最开始狱方就时刻警惕着所以才给了他非常待遇。小白很生气,看守和他说话他也不理。

  某日清晨,巡逻的看守发现小白的屋里有点异样。人是一如既往地端坐着,不过怎么膝前多出一个黑黑的东西。再定睛一看,乖乖不得了,手铐唉,两个环排列整齐。

  闻讯赶来的看守们把小白按住搜身,结果找到了蜡纸包着的金属片。毫无疑问小白又自配了钥匙。愤怒的看守吼问小白哪来的,小白以革命者的从容镇定微笑不答。

  对于这种明目张胆的挑战专政行为狱方很是恼火,作为惩罚把小白的食物减半。本来小白因为不需要出去劳动狱方只提供正常人的一半食物,这下变4分之1了。惩罚持续了5天,虽然眼见小白消瘦下去,连端坐都很勉强,但是小白丝毫没有妥协,恳求狱方的只言片语都没有。

  一段时间后,小白又一次把手铐打开。这回,狱方又给他弄了一副新手铐。
  "别给我戴了。从第一天起就一直戴着,哪怕只让我休息一天呢。"小白低声道。
  看守条件反射一样的大吼:"嚷嚷什么,这是制度。要是不给你戴手铐关你干什么,有种你就再自己打开。"
  小白也不答话,夹紧胳膊,把手铐在胸前交叉,脸上红潮陡现。看守眼见小白的手铐咔嚓一声被挣断,顿时目瞪口呆。

  终于从震惊中反应过来的看守们用绳子把小白绑了个结结实实后又从后边给他戴上了手铐。这次小白得到了7天的4分之1食物供给处分,运动也不再被允许。

  处分过后,狱方精心为小白订做的,总重量20公斤左右的特制手铐脚镣来了。锁有手指粗细,两个环之间用螺栓固定。看守们给小白戴上手铐脚镣,用螺栓固定后又把螺栓的头打平。不单如此,小白的手铐和脚镣之间有个粗链子连着,手铐又从后边被戴上。小白唯一能采取的姿势就是侧躺。看你还跑不跑?看守们有些幸灾乐祸地想。

  "手铐戴在后边,我怎么吃东西?"小白怒道。没人理他。
  "你们这些狗东西,大爷就跑给你们看看。到时候别后悔。"依然没人理他。

  打那天起,小白只能叼着铝制的小碗,像狗一样的吃东西。因为站不起来只能躺着原地大小便。手脖和脚脖日久天长也因为摩擦出了伤口,化脓后的伤口里生出了蛆。天暖后蛆变成的苍蝇之多甚至把一面窗户都遮住了。

  一部分看守也认为实在是太悲惨了,但是狱方的意见是只要跑不了其他的不要管。再说既然我们已经这样对他,如果现在给他打开手铐脚镣他一定会找机会越狱。就是这样的混账逻辑下,小白继续在活地狱里挣扎,对于他来讲,越狱是唯一的生的希望。

  1944年8月26日,晚9点多。

  巡视单间牢房的看守忽然听到一声巨响。回头一看,狱舍最边上的天窗那人影一闪就消失了。刚才的声音应该是天窗被弄破的声音。

  看守没有立刻意识到那是有人越狱,毕竟以�走监狱的防范逃走看来是不可能的。愣了一会儿之后他意思到确实是有人越狱了,连忙跑到看守长的办公室。
  "越狱,有人越狱了。"

  听到这个狼狈不堪的手下的报告后,看守长立刻拉响了警报。自打1922年这座监狱改名为�走之后,这是第一次拉警报。

  单间的视察窗一个又一个的被打开以便确认,大多数的犯人被突如其来的警报弄得莫名其妙,站在屋里。

  本来作为唯一一个享受特制手铐脚镣的小白实在是没有逃跑的可能,所以他的检查被排在了最后边。但是看守部长有不祥的预感,不等别人直奔小白的单间而去。想要通过观察窗确认屋内情况的看守部长发现观察窗连框一起没了,屋内被叠得很整齐,而白鸟却不见了。

  "白鸟跑了。"看守部长大喊。

  看守们一边嘟囔着一边在监狱里四处寻找小白的踪迹,因为被打破的天窗是狱舍的屋顶,所以白鸟应该是从那里跳下去的。而从看守发现人影到警报拉响前后不过几分钟的时间,监狱外边还有4,5米高的墙,想必白鸟还是藏在监狱的哪个角落,抱着这个信念看守们仔细搜索。

  这个时候看守部长还在小白的屋子里发愣。被褥上摆着枕头和白鸟的狱衣,旁边则是特制的手铐脚镣,中间的螺栓已经脱落。视察窗的框本来是由四根很粗的螺钉固定,现在连窗户带螺钉都整齐地摆在地上。长方形的视察窗勉强可以把头伸过去,看来白鸟又是用缩骨法跑掉了。趁看守巡逻结束后把观察窗拿掉,爬到墙上打破天窗,冲上屋顶。逃跑路线看守所长心里有了眉目,至于那个手铐怎么打开的,观察窗如何拿掉的恐怕要等专家来查。

  监狱博物馆里再现的小白英姿。


  监狱内搜查的看守们越来越失望,虽然他们不愿意相信,但是白鸟好像又一次成功地飞走了。烧锅炉的烟筒那本来有两根圆木支撑着,现在烟筒倒了,那两根圆木却撑在高墙旁。深深地埋在地中的圆木居然被拔了出来,不知道看守们有没有想起来鲁智深,不过这也行I服了YOU恐怕是大家共同的心声吧。

  虽然看守,警察加上发动群众四处找白鸟,但是小白像空气一样消失了。

  现场勘察的警察同志首先对手铐的巨大表达了惊叹。拿起来细致调查后发现螺栓腐蚀非常严重,似乎经过了几十年的岁月。好奇的警察舔了一下上边的锈,嗯,很咸。在固定视察窗的螺丝上发现了同样的问题。看来白鸟是每天吃饭时省着酱汤往螺栓上浇,日久天长,酱汤里的盐分把螺栓腐蚀,才把螺栓拔出来。后来据小白本人的供述最开始的那个螺栓确实是靠他水滴石穿地坚持了一个月才腐蚀掉,而观察窗上的螺丝则主要是靠他用手铐上的螺栓弄成一个螺丝刀后拧下来的。

  手铐脚镣加上腰部的锁,全部腐蚀成随时可以解开的状态花了小白8个月时间,当然先解放了手之后他的腐蚀作业相对容易许多。本来小白打算8月25日越狱,不巧当天的值班看守是一位平时对他还不错的,小白是红脸汉子,只好把行动推迟到26日。

  小白再次出现已经是二战后的1946年8月14日。

  小白越狱后一直隐藏在山里,孤独的生活终于越来越难以忍受的一天晚上,小白跑到了附近的学校里。在那里他从报纸上得知日本战败的消息。想到自己这种重大犯罪者反正就是一个死刑,那就光明正大的回去接受审判吧。

  抱着必死的信念赶往札幌的路上,小白看到了许多和美国大兵黏黏糊糊的日本女子,不知不觉间死志不再坚定。其时札幌附近偷西瓜祸害西瓜园的人颇多,一日小白顺西瓜时被瓜农发现,对方不由分辨拿起木刀就砍,扭打中小白的短刀插入了瓜农的后背,瓜农因失血过多死亡。小白再次被捕。

  这次小白极力主张自己是正当防卫。他对自己的辩护律师说:"先生,我从未为了自己的私利私欲而越狱,这回人家认为我是祸害瓜园的,拿个木刀打起来没完,我怕被杀所以才反抗。。。不过话又说回来,毕竟把人家杀了,如果判决能够公正,我愿意服刑。"

  受到触动的律师虽然竭尽全力,但是一审判决还是给小白定了死刑。
  "被告关到哪都要跑,屡教不改,除了死刑别无选择。"对于这个理由,小白非常不满。法庭上,他对法官和检察院的人怒目道:"我一定跑出来,然后去你们家杀了你们。"

  此话传到住公家宿舍里的法官夫人们那里后,为保险起见夫人们把自家门牌上的名字都撕了下来。


行行出状元--越狱(完)
  1947年2月,在6名带枪看守的押送下,白鸟被送往札幌监狱。与往常不同的是,一想到死刑判决,心有不甘的白鸟这次打定主意要越狱。

  白鸟被关进了特别间,为了怕看守疲劳,狱方决定采取2小时轮班制对白鸟监视。另外通过对白鸟三次越狱的研究,狱方把门,天花板,采光天窗,铁栅栏都给予了增强。对于白鸟,每天一次搜身,每天一次查房。每周只有一次洗澡的机会可以出单间,而四个荷枪实弹的看守会全程参观他的洗澡。

  白鸟表现非常良好,每天狱长都能收到"一切正常"的报告。忽然有一天,一个看守带来了略微新鲜的报告。
  "数天前,我看白鸟好像老偷看天花板和小窗户。"

  别的犯人也就罢了,白鸟这样做肯定是要越狱啊。狱长觉得这个白鸟肯定已经在天花板那做了手脚,于是第二天特批白鸟30分钟活动时间让他出去溜达。白鸟一出去,一干看守立刻跑到他屋里检查,用棒子把天棚,板条的连接处,以及铁格子的结实程度一一检查一遍。结果一无所获。

  可是那天以后白鸟几乎每天都有偷看天棚的行为,狱方不敢马虎,每次他去洗澡时都会仔细地再检查一番。

  1947年4月1日,札幌有点倒春寒气温降到零下2度。

  凌晨5点,狱长家的电话响了。一看时间看就知道凶多吉少,难道?狱长不情愿的拿起话筒,电话那边传来值班的看守的声音:"跑了。白鸟跑了。"

  满心沉重的狱长赶到监狱时,白鸟的特别间那已经聚集了一大堆看守。分开众人进了房间,狱长差点跌破眼镜。半个多月前开始白鸟就没事偷着看天花板,想着他一定会从天花板或者采光小窗户逃走,哪曾想顺着看守们的目光看去,地板上被开了个洞。6厘米厚的地板有一处被锯一样的东西截下一块,地板下有50厘米左右的空间,看来白鸟像鼹鼠一样土遁了。狱长悲哀地想,白鸟故意向上看转移我们注意力然后从下边跑,还是被耍了。

  现场勘察结果表明,白鸟把便盆上结合处的铁片取下,然后用不知道从哪里弄来的一颗旧钉子把铁片刻成锯,再用锯把自己褥子下的一块木板从中间截断。为了怕截断的地方被例行检查的看守发现,白鸟还把饭粒和灰混到一起撒到截断处,如果不仔细观察根本无法发现那里和其他的地板结合处有什么异样。在屋外白鸟挖出去的洞边发现了吃饭的铝盆,白鸟用手和铝盆从屋里钻了出去。到了屋外的白鸟面对的是2.5米的高墙,从墙上留下的脚印看白鸟是斜着冲上了墙,然后又翻过最外边2米高的铁栅栏逍遥而去。

  狱长惊叹之余觉得这个白鸟也没受过啥教育,开个豆腐店就能把俺们这些久经历练的狱卒们玩弄于鼓掌,实在是不可多得的人才啊。太可惜啦。

  白鸟再次出现在报纸上是1948年1月19日。

  札幌附近有个叫琴似町的地方,警察在那里巡逻时碰到了一个背着好大包裹的男子。肯定是玩走私的,想到这警察上去盘问,背包的说他叫木村,背包是要出去打工。
  "可是车站是在反方向啊。"警察疑惑地问道。
  "没钱啊,只好走着去。"背包的答道。

  警察对于答案不甚满意,让他把包打开。只见包里边锅碗瓢盆一大堆外加一把日本刀,倒是没有啥走私物品。不过毕竟一个人背这么多东西比较奇怪,不会是小偷吧。看着警察很执著的样子,那人说道:"有烟吗?来一根儿。"那时节烟还是贵重品,但是刚巧警察手里有,就给了他一根。男子香甜地抽完烟,小声嘀咕道:"我就是去年从札幌监狱里逃跑的白鸟。"

  警察一听,白鸟?我说这么眼熟呢,通缉令上见过他照片啊。这回可捡个大的。

  回到警局一问为啥这么老实,白鸟道:"我看他人不错,还给我烟,就跟他讲了实话。如果要是跟我耍脾气,没准我就拿着日本刀强行突破了。"

  4个月后,白鸟又站在了法庭上。这次他的第二次失手杀人被认定为正当防卫,改判为有期徒刑20年。

  同年7月,白鸟被送往东京的府中监狱。从札幌到东京可不是短距离,跑了怎么办,而且又不能和普通旅客同时乘车。当时的占领军同志们听到了这个消息后,大笔一挥,如此恶徒,用邮局货物专列吧。

  1948年7月30日,白鸟戴上和�走监狱用过的相仿的特制手铐脚镣,在7个看守的护送下隆重地奔向东京。

  8月6日,一行到达目的地,在这里白鸟将要服刑剩下的13年4个月。府中监狱的狱长看到已经年过40的白鸟后,觉得并没有他想象的那么凶恶。对待这样的人也许一味打击并不是什么好办法。在狱长的指示下,白鸟的手铐脚镣被摘下,洗澡也不再受限制,屋子虽然还是单间,但是里边摆了一盆花。

  虽然狱方的待遇和跑的那几次不可同日而语,最初的5年里白鸟一直在是作为模范犯人争取提前出狱还是干脆跑了再说先图快活这两点上摇摆不定。当有一天狱长让他负责花坛管理后他终于安下了心。对于一个从小就梦想有一块地,并且心灵手巧的白鸟来讲,养花实在是很合适。

  狱内的运动会和相扑比赛也允许白鸟参加。虽然已经是奔五十的人,双手各60公斤的米袋白鸟依然可以举平。

  看到坐在运动场边休息的白鸟,狱长过去打招呼。运动场边有2米多高的墙,越过墙就是外边的世界。对于白鸟来讲那堵墙应该可以一跃而过,不过他只是坐在那里发呆。
  "有什么不愉快的事吗?"狱长问道。
  白鸟抬起头,"二进宫那帮小子一看见我就问,怎么还在啊?一听到那个我就想跑。"
  "为什么不跑呢?"
  "累了。"

  11年里,4次越狱,3年流浪在外,一切的一切所花费的体力,智力,精力,也许"累了"是最恰当的评价吧。

  1961年12月21日,模范犯人白鸟由荣假释。

  1979年2月24日,白鸟在东京的医院里死于心肌梗塞。
【 在 hz (极度浪漫避孕套镶钻) 的大作中提到: 】
: 找到一个
: http://pigbaby2007.itpub.net/post/32392/413063


--
��                                     � �                                    � �
���� � � ����
� □ � � � �
� � �� �
� � � �
�� � ����


※ 来源:・水木社区 newsmth.net・[FROM: 123.113.117.*]

20090124

Re: 你的ip?(转寄)

在我部安装SMODT时发现一个问题,在此和大家分享一下解决的心得,如果大家有更好的方式也可提出,
当初次安装SMODT时,我们发现在安装过程中机器进入系统后没有多久就会自动蓝屏然后重启,开始会以为是内存不兼容的问题,后来经过多次尝试终于发现主要的问题是硬盘的设置,具体如何操作呢,其实非常的简单,在SMODT在开机后进入BIOS设置画面,首先选择Advanced然后选择IDE Confuguration在里面有一个选项为Config SATA as ,这个选项出厂默认值是AHCI,就是这个选项导致硬盘无论从任何方式安装系统,都会导致开机后自动重启,我们只要把这个选项改成IDE即问题解决。

关于SMODT如果Config SATA as 选为AHCI(高级主控界面系统,其具体作用是什么有待探索)安装系统会出现重启这一问题,经查资料知道,由于SMODT采用ICH6-R的南桥,该南桥对SATA硬盘的支持有三种模式,分别是RAID、AHCI、IDE。简单来说,AHCI的功能其实和RAID差不多,要想让AHCI发挥其应有性能,必需在安装操作系统时按照提示按"F6"安装AHCI的驱动程序后才能再安装操作系统,否则系统将出现重启,不能正常安装。以上是我个人这见,不足之处请大家指教。谢谢!

  以下为引述内存。
BIOS设置

  下面以采用Intel ICH6-R南桥的主板为例介绍NCQ相关的BIOS设置。在BIOS的SATA工作模式选项中,除了RAID和IDE外,还多出了一个AHCI选项。大


家知道IDE模式是指让SATA硬盘工作在普通IDE模式下,通常用于单个SATA硬盘,而RAID模式则是通过RAID控制器来管理SATA硬盘,适合建立SATA RAID。新增的AHCI模式则利用AHCI控制器来管理SATA硬盘。

  在某些主板的BIOS选择中,SATA工作模式和AHCI功能是两个选项,当SATA模式设置为RAID时,AHCI自动处于"支持";当SATA模式设为IDE时,AHCI可选择"支持"或"不支持",两种设置可能存在的选项有3种。

要支持NCQ功能,BIOS中的"SATA Mode"应设为"AHCI"
  其实,AHCI和SATA模式的关系并不复杂。当开启SATA RAID控制器时,AHCI会同时生效;如果不使用SATA RAID,AHCI可设置为关(即普通IDE模式)或开(单独启用AHCI)。无论如何,只有AHCI设置为开时,方可支持NCQ。

Windows安装

  综上所述,使用支持NCQ的主板时,通过BIOS可把SATA接口设置为3种不同模式:RAID、AHCI和IDE。IDE模式安装Windows的方法没有什么特别之处,而RAID模式需要在启动时按F6,并通过软盘载入RAID控制器的驱动程序。AHCI模式和RAID一样,在启动时也需按F6,通过软盘载入驱动程序。值得注意的是,在AHCI模式下,应选择AHCI驱动程序,而非RAID驱动,其它安装则与RAID模式完全相同
※ 修改:・Patoshik 于 Jan 24 17:19:35 2009 修改本信・[FROM: 121.230.239.*]

[俱乐部 ETimesClub 群信] [休闲][动漫]12月份巡查报�转寄)

IDE 模式安装 WinXP后,开启 SATA硬盘 模式的操作步骤
在BIOS里面把硬盘的模式更改成IDE的硬盘,在安装XP操作系统,虽然很简单,但是IDE硬盘和SATA硬盘的数据传输速度有差距啊,
这样太不划算了吧!!!!!!!

但是我们可以在XP系统下面把IDE模式在更改成 SATA模式,这样就OK了,具体步骤如下:

1、Intel 芯片组在Windows中打开设备管理器,IDE ATA/ATAPI 控制器 ――> Intel XXX Serial ATA Storage Contraller ――> 右键 ――>更新驱动程序软件 ――>不要搜索,我要自己选择要安装的驱动程序 ――>从磁盘安装 ――> 指向制作的 F6 SATA 驱动软盘(或者是文件目录) ――> 选择正确的设备(i945芯片组选择 AHCI ICH7M Driver,i965 芯片组选择 AHCI ICH8M Driver)。注:上述步骤也可以通过下载运行该文件的方式取代(http://esupport.acer.com.cn/portal/doc/KB/TM/TI/EnableAHCI(Intel).rar)重启电脑,按 F2 进入 BIOS,设定 SATA Mode 为 AHCI Mode。保存退出。进入系统后提示找到 PCI 设备。安装 Intel AHCI 驱动即可。

2、 nForce610 芯片组 (AS4220、AS4520) 在Windows中打开设备管理器,IDE ATA/ATAPI 控制器 ――> 标准双通道 PCI IDE 控制器 ――> 右键 ――> 更新驱动程序软件 ――> 不要搜索,我要自己选择要安装的驱动程序 ――> 从磁盘安装 ――> 指向 ChipSet 驱动中的 IDE\WinXP\sata_ide 目录,并安装驱动。重启电脑,按 F2 进入 BIOS,设定 SATA Mode 为 AHCI Mode。保存退出。
※ 修改:・Patoshik 于 Jan 24 17:16:22 2009 修改本信・[FROM: 121.230.239.*]

WindowsXP序列号 locker (转寄)

FCKGW-RHQQ2-YXRKT-8TG6W-2B7Q8
DG8FV-B9TKY-FRT9J-6CRCC-XPQ4G
KV8VM-Q7983-B2HP2-M63RG-7CYHB
QV43D-H7JJT-RVVY4-D4J8V-42CMM
H327G-HGVCF-VTJRP-T88VM-Q743W
F9XBC-JYTYK-PCT2Q-DXFQX-R8TCJ
DKDD3-FPC88-TVWBC-7DCHY-73FBY
W688Q-39YDT-M8T7W-84FC6-3FJ2Y
KTBJP-YGH6K-BVY8F-7962B-P8T9W
HRJB7-BHTKH-M3B9H-HW4Q7-4FHDY
GBHV8-6VX6J-2KH74-7D67Y-FD4K6
G8WCQ-TYVR8-HGXT4-B7PHG-MQ4YT
JF9RV-K2RHC-YDFJR-6QM37-49P8W
KXJYJ-P3X66-2VKDK-QHF2F-Q7B7D
PRXXC-MKRV6-GKV34-VH29G-DKWYQ
H8W89-BK6PY-7FJMY-DP6VK-99CQB
TVM66-2JD7Y-M672W-DW9Y2-7FCJY
TM97X-MTQJB-WW6FY-9BT3W-MXM3W
M284J-QTCTW-J2VKX-39W7J-DVVTG
R9C7P-GJJTK-39B62-THH7D-3YDCD
R9C7P-GJJTK-39B62-THH7D-3YDCD
K66VK-G668P-KDP8J-FV6Q6-8DB73
GT6FY-YT78X-3JR8M-YHJY3-2H6RB
HQ2GW-JDG97-GBWKD-397YG-4K9WT
RW2GF-PX8BM-MBQ4Q-B76HJ-HHQD3
PHJR3-VD4RG-JYK84-D4HT6-V9X7B
RQQJD-PC3TW-89JDH-4TMF9-XYDKQ
P9VT9-48Q4G-B63GW-2WWQD-RFJBQ
B9XJ2-M9FY2-WJ4JF-PCP7Y-RWC7J
XVBCP-TH2D6-XC6M6-2THKF-XJ83Q
FWMG9-6WQM3-YPJ3D-JRV7B-YDKXM
PCKKQ-MP7GD-PMFPF-2Y4DK-KG4MG
W96YV-KHYX6-GT6JC-JGD32-98MM8
P92XX-2KYQJ-7JXFT-3R6KT-824Q8
XDH8R-H244X-J8DW3-XR8Q4-P2738
JQ3P3-XQRV6-768BJ-8T46G-9JQCW
TMCW4-C34Y7-QWF94-3F88B-87PVQ
QC8VP-32T4H-P8MQ6-J2G2M-4CY6Y

20090120

20090115

无线网卡debian

1. 在Debian下面使用无线网卡
ndiswrapper项目使得在linux下使用无线网卡可以用windows的驱动.

准备工作:
1. 安装相应版本的linux-header:
aptitude install linux-headers-$(uname -r)
这是编译ndiswrapper必须的。

2.安装wireless-tools:
aptitude install wireless-tools

步骤如下:
http://sourceforge.net/projects/ndiswrapper下载最新的ndiswrapper源代码,
编译安装ndiswrapper。很简单,分别进入ndiswrapper/driver,utils目录执行make install将安装相应的内核模块和工具。
安装网卡的winXP驱动:
执行ndiswrapper -i xxxxxxx.INF。
执行ndiswrapper -l看看安装是否成功?如果看到"xxxxxx driver present, hardware present",说明安装成功了。
加载ndiswrapper模块:modprobe ndiswrapper。
iwconfig可以看到wlan0设备已经起来了。
改一下/etc/network/inteface 文件,把wlan0的设置写进去,然后执行/etc/init.d/network restart。
(example)
auto wlan0
iface wlan0 inet static
address 192.168.116.116
netmask 255.255.255.0
network 192.168.116.0
roadcast 192.168.116.255
gateway 192.168.116.1
dns-nameservers 192.168.116.1

用Linux将局域网带入Internet (转寄)

发信人: starw (虫二・抛愚引砖), 信区: Linux
标 题: 用Linux将局域网带入Internet
发信站: BBS 水木清华站 (Thu Sep 14 03:11:39 2000)

http://www.linuxaid.com.cn/solution/posts/linux_LAN.htm

用Linux将局域网带入Internet

LinuxAid工程师bye2000

一、概述
通常我们所遇到的问题是这样的:一个使用私有IP的局域网,一台联入Internet
的机器,然后要你通过一定的手段将整个局域网联入Internet。其实,该方案的
实现手段很多,比如在Windows下,你可以用诸如wingate、winroute以及MS Proxy
等等代理软件实现,但是本文所论述的是怎样在linux下不花一分钱就解决问题。
本文将从最基本的接入方法开始,一步步的教你实现将使用私有IP的局域网带入
Internet的方法。

二、接入方法:
常用的接入方法有拨号上网和专线上网。通常,个人用户使用拨号上网方式,而
单位用户则使用专线上网方式。并且,拨号方式可以分为PSTN和ISDN拨号,专线
则可以分为ISDN专线和DDN专线。
ISDN拨号方式一般用外置TA适配器,相当于模拟MODEM,Linux下的使用方法与外
置MODEM一样,内置的一般叫ISDN PC卡,Linux下一般较难配置,单位用户也最好
不买内置的,普通MODEM外置的也比内置的好。所以外置TA拨号上网可以归入外置
MODEM一样,确实是一摸一样。其实ISDN拨号方式就是数字式的MODEM,专线方式
就是在路由器内部自己拨号,通过拨号联接建立起来的类DDN方式。
ISDN的专线方式必须使用ISDN路由器,专线方式128K电信部门一般给8个合法的
IP地址,ISDN路由器拨号是在路由器中进行的,另外ISDN路由器一般还带4个网口,
本身集成了PPP Server的功能,又相当于一台拨号服务器,ISDN专线方式还支持
回拨功能,由局方向用户拨号,建立联接,联接建立之后就相当于DDN了,Linux
不涉及拨号,线路联接设置等,就是路由器提供静态IP。其实ISDN拨号方式就是
数字式的MODEM,专线方式就是在路由器内部自己拨号,通过拨号联接建立起来的
类DDN方式。
DDN即数字数据网,DDN的专线方式通常是这样实现的,路由器的广域网口用V.35
连接到基带Medom,再由基带Medom连接到DDN线路。
PSTN也就是我们通常所说的公用电话网。使用电话拨号上网也是目前个人用户最
常用的上网方式。但是在linux下要实现电话拨号上网并不是一件轻松的事,因为
虽然在linux下的拨号工具很多,但是好多都得进行复杂的配置。在这里,我们向
读者介绍一种最具智能化的拨号工具--wvdial,并用wvdial和ppp实现轻松上网。
wvdial是linux下的智能化拨号工具,利用wvdial和ppp可以实现linux下的轻松上
网。在整个过程中wvdial的作用是拨号并等待提示,并根据提示输入相应的用户
名和密码等认证信息;ppp的作用是与拨入方协商传输数据的方法并维持该连接。

1.wvdial及其相关配置
wvdial的功能很强大,会试探着去猜测如何拨号及登录到服务器,同时它还会对
常见的错误智能的进行处理,不象chat一样,要求你去写登录脚本。wvdial只有一
个配置文件 /etc/wvdial.conf。wvdial的启动过程是这样的:首先载入wvdial.
conf配置文件,然后再初始化modem并拨号,拨号后等待拨入方的响应,收到拨入
方响应后则启动pppd。

可以用wvdialconf程序自动生成wvdial.conf配置文件,自行该程序的格式为:
wvdialconf /etc/wvdial.conf
在执行该程序的过程中,程序会自动检测你的modem的相关配置,包括可用的设备
文件名,modem的波特率,初始化字符等等相关的拨号信息,并根据这些信息自动
生成wvdial.conf配置文件。如果/etc/wvdial.conf文件已经存在时,再次执行该
命令只会改变其中的 Modem、Band、Init等选项。

wvdial的执行格式为:
wvdial --help | --version | section
相关的说明如下:
--help:显示简单的帮助信息
--version:显示wvdial的版本号
section:这里的section有点象windows里的ini文件,一个wvdial.conf配置文件
可以有好多个section,每一个section由一些变量组成,即由 变量=值 的语句
组成,如上所示。使用wvdialconf自动生成配置文件时将会自动生成一些常用的
变量说明如下:

Inherits=InheritedSection:
使用wvdialconf自动生成配置文件时将会自动生成[Dialer Defaults],除此之外,
你还 可以自定义你自己的section。程序运行时,首先载入[Dialer Defaults],
然后再用指 定的section的相应选项覆盖[Dialer Defaults]的相应选项。比如,
我们在 wvdial.conf中还有[Dialer Tom],假如我们运行wvdail Tom,则系统将
先读入[Dialer Defaults],然后再用[Dialer Tom]覆盖[Dialer Defaults]的相
应选项。如果除了以上 的section之外还有[Dialer 169]并且内容如下:
[Dialer Tom]
Username=tom
Password=xxx
Inherits=169
[Dialer 169]
Phone=169
如果这时候我们执行wvdial Tom则系统将先读入[Dialer Defaults],然后再用
[Dialer Tom]覆盖[Dialer Defaults]的相应选项,最后再用[Dialer 169]的相应
选项来覆盖前二者的相应选项。由此可见,利用wvdial,我们可以很方便地在不
同的ISP或modem之间来回移动(假如你有几个ISP或medom的话)。

Medom=/dev/ttySx:用于指定是用的medom,缺省的为/dev/medom。当然,在这里
我们的medom是由wvdialconf自动检测并配置的,所以我们可以忽略该变量。
Dial Prefix=x: 假如你正在使用分机,拨外线需拨9时,可设该值为9。
Username=xxxx:登录时的用户名
Passwd=xxxxxx:登录密码
Phone=xxxxx: 所拨的号码
PPPP Path=:设置pppd所在的路径,缺省为/usr/sbin/pppd
New PPPD= 1 or 0: pppd 2.3.0及其以上版本需要/etc/ppp/peers/wvdial文件,
如果你的pppd是2.3.0以上版本请设为1.
Auto Reconnect=on :断线时是否自动重新连接,缺省设为是。
以上只是wvdial.conf中的常用选项,具体情参考wvdial手册。

2.pppd及其相关配置
pppd的配置选项相对要复杂得多,你可以用命令行的形式引用有关的选项,也可
以把要引用的选项写到/etc/ppp/options中进行引用。
下面的示例文件包含了最常用的选项及其相关的说明:
# /etc/ppp/options
# 如果指定了"noipdefault" 选项, pppd将使用拨入方提供的ip地址
noipdefault
# 选定该选项, pppd 将接受拨入方自己的ip地址
ipcp-accept-remote
# 设置缺省网关
defaultroute
# 在传输数据包之前,让拨入方先自我认证,注意一般的ISP(如169、163)都不
包含该机制,故应选中noauth
noauth
# 如果连接空闲了n秒后自动断线
idle n
以上只是options中的常用选项,具体情参考pppd手册。

三、实现手段
1.原理
从原理上,我们可以将实现的手段分为两种。其一是通过IP欺骗,也就是通过网
络地址转换(NAT)来实现;其二是通过代理软件来实现,而通过代理的方法又可
以分为传统代理方法和透明代理方法。

1.1 IP欺骗的工作原理:
IP欺骗技术已经出现好几年了,现在linux下的IP欺骗技术已经很成熟了。
可以这样说:IP欺骗技术已经支持大多数的常用协议。那么IP欺骗是怎样工作的
呢,原理很简单:客户机将进行IP欺骗的linux机器设置为缺省网关,当进行IP欺
骗的linux机器收到客户机的请求包时,它对其进行改写,将源地址替换为自己的
合法IP地址,将源端口换成一个新的端口号,并且对该过程进行记录;当收到
Internet主机的响应包时,如果其端口号正是先前所指定的端口号则再对该包进行
改写,将其目的IP及目的端口号替换为原来记录的客户机IP和端口号,然后再发
送给客户机。

1.2 代理的工作原理:
在TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器
响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了
这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该
请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没
有就代替客户端向该服务器发出请求。服务器响应以后,代理服务器将响应的数
据传送给客户端,同时在自己的缓存中保留一份该数据的拷贝。这样,再有客户
端请求相同的数据时,代理服务器就可以直接将数据传送给客户端,而不需要再
向该服务器发起请求。

2. IP欺骗的实现
在内核版本2.2.x以上的linux中,我们可以通过ipchains来实现IP欺骗。
2.1配置系统内核
确定你的内核已经配置了支持IP欺骗的相关特性,如果没有,请你重新编译内核。
一般在RedHat6.x以上,系统已经缺省配置了这些特性。

2.2 装载所需模块
你可以在系统启动时装载所需模块。可以在/etc/rc.d/rc.local文件中添加下列
语句来在系统启动时自动装载所需模块。
/sbin/depmod -a
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_vdolive
等等。
2.3 启用IP转发
在2.2.x以上的版本中,IP转发缺省是禁止的,你可以通过以下语句来启用IP转发。
echo "1" > /proc/sys/net/ipv4/ip_forwarding
如果你用的是Redhat的发行版本, 你也可以将/etc/sysconfig/network文件中的
FORWARD_IPV4=false改为FORWARD_IPV4=true来启用IP转发。然后重新启动系统。
2.4 配置客户端
步骤一、将客户机的缺省网关设置为进行IP欺骗的机器的局域网口的IP;
步骤二、设置客户机的DNS服务器为你真实的DNS服务器;
步骤三、设置浏览器为直接与Internet相连;

2.5 设置ipchains规则
关于ipchains的详细语法,你可以参考IPCHAINS-HOWTO文档。这里我们只给出具
体的应用。
假设你的局域网IP为192.168.1.*,eth1为局域网口,eth0为广域网口,则你可以
设置如下的ipchains规则来实现IP欺骗:

#!/usr/bin
/sbin/ipchians -A forward -s 192.168.1.0/24 -d 0/0 -i eth0 -j MASQ

如果你使用拨号方式并且你的关于网口为ppp0,则相应的配置为:
#!/usr/bin
/sbin/ipchians -A forward -s 192.168.1.0/24 -d 0/0 -i ppp0 -j MASQ

3. 传统代理的实现
3.1 安装软件
我们以目前最新的稳定版本squid-2.3.STABLEX为例。
rpm包的安装
1.进入/mnt/cdrom/RedHat/RPMS
2.执行rpm -ivh squid-2.2.STABLE4-8.i386.rpm。
当然,我们也可以在开始安装系统的过程中安装该软件。

3. 源代码包的安装
1.从http://www.squid-cache.org下载squid-2.3.STABLE2-src.tar.gz。
2.将该文件拷贝到/usr/local目录。
3.解开该文件 tar xvzf squid-2.3.STABLE2-src.tar.gz。
4.解开后,在/usr/local生成一个新的目录squid-2.3.STABLE2,为了方便用mv命
令将 该目录重命名为squid mv squid-2.3.STABLE2 squid;
5.进入squid cd squid
6.执行./configure 可以用./confgure --prefix=/directory/you/want指定安装
目录
系统缺省安装目录为/usr/local/squid。
7.执行 make all
8.执行 make install
9.安装结束后,squid的可执行文件在安装目录的bin子目录下,配置文件在etc子
目录下。

3.2 配置squid
由于RedHat各方面的优势(包括易用性,稳定性等等),全世界范围内使用该发
行版的用户比较多,所以,我们下面的说明都是以RedHat6.1环境下squid-2.2.
STABLE4-8版本为主。从我的使用经验看来,该版本的squid要比其他版本稳定的多,
以前的1.1.22版本也比较稳定,但是在功能及灵活性方面有所欠缺。
squid有一个主要的配置文件squid.conf,在RedHat环境下所有squid的配置文件位
于/etc/squid子目录下。

1.常用的配置选项
因为缺省的配置文件有问题,所以我们必须首先修改该配置文件的有关内容,以便
让squid跑起来。
下面我们来看一看一些常用的选项:
1.http_port
说明:定义squid监听HTTP客户连接请求的端口。缺省是3128,如果使用HTTPD加
速模式 则为80。你可以指定多个端口,但是所有指定的端口都必须在一条命令行
上。

2.cache_mem (bytes)
说明:该选项用于指定squid可以使用的内存的理想值。这部分内存被用来存储以
下对象 :
In-Transit objects (传入的对象)
Hot Objects (热对象,即用户常访问的对象)
Negative-Cached objects (消极存储的对象)
需要注意的是,这并没有指明squid所使用的内存一定不能超过该值,其实,该选
项只 定义了squid所使用的内存的一个方面,squid还在其他方面使用内存。所以
squid实际 使用的内存可能超过该值。缺省值为8MB。

3.cache_dir Directory-Name Mbytes Level-1 Level2
说明:指定squid用来存储对象的交换空间的大小及其目录结构。可以用多个
cache_dir命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘
分区。"directory "指明了该交换空间的顶级目录。如果你想用整个磁盘来作为
交换空间,那么你可以将该目录作为装载点将整个磁盘mount上去。缺省值为
/var/spool/squid。"Mbytes"定义了可用的空间总量。需要注意的是,squid进程必
须拥有对该目录的读写权力。"Level-1"是可以在该顶级目录下建立的第一级子目
录的数目,缺省值为16。同理,"Level-2"是可以建立的第二级子目录的数目,缺
省值为256。为什么要定义这么多子目录呢?这是因为如果子目录太少,则存储在
一个子目录下的文件数目将大大增加,这也会导致系统寻找某一个文件的时间大
大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数
量,我们必须增加所使用的目录的数量。如果仅仅使用一级子目录则顶级目录下
的子目录数目太大了,所以我们使用两级子目录结构。
那么,怎么来确定你的系统所需要的子目录数目呢?我们可以用下面的公式来估
算。
已知量:
DS = 可用交换空间总量(单位KB)/ 交换空间数目
OS = 平均每个对象的大小= 20k
NO = 平均每个二级子目录所存储的对象数目 = 256

未知量:
L1 = 一级子目录的数量
L2 = 二级子目录的数量

计算公式:
L1 x L2 = DS / OS / NO
注意这是个不定方程,可以有多个解。

4.acl
说明:定义访问控制列表。
定义语法为:
acl aclname acltype string1 ...
acl aclname acltype "file" ...
当使用文件时,该文件的格式为每行包含一个条目。
acltype 可以是 src dst srcdomain dstdomain url_pattern urlpath_pattern
time port proto method browser user 中的一种。
分别说明如下:
src 指明源地址。可以用以下的方法指定:
acl aclname src ip-address/netmask ... (客户ip地址)
acl aclname src addr1-addr2/netmask ... (地址范围)
dst 指明目标地址。语法为:
acl aclname dst ip-address/netmask ... (即客户请求的服务器的ip地址)
srcdomain 指明客户所属的域。语法为:
acl aclname srcdomain foo.com ... squid将根据客户ip反向查询DNS。
dstdomain 指明请求服务器所属的域。语法为:
acl aclname dstdomain foo.com ... 由客户请求的URL决定。
注意,如果用户使用服务器ip而非完整的域名时,squid将进行反向的DNS解析来
确 定其完整域名,如果失败就记录为"none"。
time 指明访问时间。语法如下:
acl aclname time [day-abbrevs] [h1:m1-h2:m2][hh:mm-hh:mm]
day-abbrevs:
S - Sunday
M - Monday
T - Tuesday
W - Wednesday
H - Thursday
F - Friday
A - Saturday
h1:m1 必须小于 h2:m2,表达示为[hh:mm-hh:mm]。
port 指定访问端口。可以指定多个端口,比如:
acl aclname port 80 70 21 ...
acl aclname port 0-1024 ... (指定一个端口范围)
proto 指定使用协议。可以指定多个协议:
acl aclname proto HTTP FTP ...
method 指定请求方法。比如:
acl aclname method GET POST ...

5.http_access
说明:根据访问控制列表允许或禁止某一类用户访问。
如果某个访问没有相符合的项目,则缺省为应用最后一条项目的"非"。比如最后一
条为允许,则缺省就是禁止。所以,通常应该把最后的条目设为"deny all" 或
"allow all" 来避免安全性隐患。

3.3启动、停止squid。
配置并保存好squid.conf后,可以用以下命令启动squid。
squid
或者,使用RedHat的启动脚本来启动squid.
/etc/rc.d/init.d/squid start
同样地,你也可以用下列脚本停止运行squid或重启动squid.
/etc/rc.d/init.d/squid stop
/etc/rc.d/init.d/squid restart


4. 透明代理
关于透明代理的概念我们已经在第一节将过了,下面我们看一下怎么样在squid中
实现透明代理。
透明代理的实现需要在Linux 2.0.29以上,但是Linux 2.0.30并不支持该功能,
好在我们现在使用的通常是2.2.X以上的版本,所以不必担心这个问题。下面我们
就用ipchains+squid来实现透明代理。在开始之前需要说明的是,目前我们只能实
现支持HTTP的透明代理,但是也不必太担心,因为我们之所以使用代理,目的是
利用squid的缓存来提高Web的访问速度,至于提供内部非法ip地址的访问及提高
网络安全性,我们可以用ipchains来解决。
实现环境:RedHat6.x+squid2.2.x+ipchains
4.1 linux的相关配置
确定你的内核已经配置了支持透明代理解的相关特性,如果没有,请你重新编译
内核。一般在RedHat6.x以上,系统已经缺省配置了这些特性。
4.2squid的相关配置选项
设置squid.conf中的相关选项,如下所示:
http_port 3218
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
说明:
1.http_port 3128
在本例中,我们假设squid的HTTP监听端口为3128,即squid缺省设置值。然后,把
所有来自于客户端web请求的包(即目标端口为80)重定向到3128端口。
2.httpd_accel_host virtual
httpd_accel_port 80
这两个选项本来是用来定义squid加速模式的。在这里我们用virtual来指定为虚
拟主机模式。80端口为要加速的请求端口。采用这种模式时,squid就取消了缓存
及ICP功能,假如你需要这些功能,这必须设置httpd_accel_with_proxy选项。
3.httpd_accel_with_proxy on
该选项在透明代理模式下是必须设置成on的。在该模式下,squid既是web请求的
加速器,又是缓存代理服务器。
4.httpd_accel_uses_host_header on
在透明代理模式下,如果你想让你代理服务器的缓存功能正确工作的话,你必须
将该选项设为on。设为on时,squid会把存储的对象加上主机名而不是ip地址作为
索引。这一点在你想建立代理服务器阵列时显得尤为重要。

4.3 ipchains的相关配置
ipchains在这里所起的作用是端口重定向。我们可以使用下列语句实现将目标端
口为80端口的TCP包重定向到3128端口。

#接收所有的回送包
/sbin/ipchains -A input -j ACCEPT -i lo
#将目标端口为80端口的TCP包重定向到3128端口
/sbin/ipchains -A input -p tcp -d 0.0.0.0/0 80 -j REDIRECT 80

当然在这以前,我们必须用下面的语句打开包转发功能。
echo 1 > /proc/sys/net/ipv4/ip_forward


--

寒山惟白云,寂寂绝埃尘。草座山家有,孤灯明月轮。
石床临碧沼,鹿虎每为邻。自羡幽居乐,长为世外人。


※ 来源:・BBS 水木清华站 smth.org・[FROM: 202.117.1.24]

Squid基础与配置(一) (转寄)

发信人: qxb (老Q ★ 闭关修炼中......), 信区: Linux
标 题: Squid基础与配置(一)
发信站: BBS 水木清华站 (Tue Mar 13 14:54:02 2001)

发信人: chenhao (死定了,查错中), 信区: Linux
标 题: Squid基础与配置(一)
发信站: 北大未名站 (Sat Oct 14 16:58:38 2000) , 转信

纲要:
关于缓存服务,大家知道那些呢?在linux下面,squid是一种比较优越的代
理软
件,下面这篇文章详细的介绍了suqid的安装和使用配置。它的使用设置有一些复
杂,
如果您希望快速的掌握这个软件,就请马上看看吧!

正文:
一、Squid入门
作者:戴专

 1.Squid是什么?
  Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来
自人
们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个
人想
下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(
比如
:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集
数据
到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简
单地
从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP
,FT
P,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类
型的
东西。


  2.Internet缓冲的一些概念

  你可能会想到一些问题:缓冲有多大的用处?什么时候目标(object)应该或
者不
应该被缓冲?例如,缓冲信用卡号码是完全不适合的,脚本文件的执行结果在远程
服务
器端,站点经常更新(象www.cnn.com)或者甚至站点不允许缓冲,这些情况也都
是不
适合缓冲的。

  Squid处理各种情况是不错的(当然,这需要远程站点按标准形式工作)。

  可执行的cgi-bin脚本文件不被缓冲,返回正确页眉的页面是在一段限制了的
时间
内被缓冲,而且你可以规定特殊的规则以确定什么是可以或不可以被缓冲的,还有
缓冲
的时间为多长。

  谈到缓冲的用处有多大,这要看Internet的容量大小,各有不同。对于小型的
缓冲
区(几转磁盘空间)来说,返回值非常高(达到25%)。这个空间缓冲经常访问的
站点
,如netscape,cnn和其它一些类似情况的站点。如果你增加一倍缓冲的磁盘空间
,但
你不会成倍增加你的命中率。这是因为你开始缓冲网络中剩余部分时,这些通常时
很大
的而且很少被访问。一个非常大的高速缓冲区,有20转左右,可能返回值仍小于
50%,
除非你对保存数据的时间长短经常改变(一般地你不要分配20转的磁盘空间,因为
页面
很快就会过时,应该被删除掉)。

  我们在这里说的目标(object)指的是可保存的web页面或其它类似的可下载
页面
区(几转磁盘空间)来说,返回值非常高(达到25%)。这个空间缓冲经常访问的
站点
(ftp文件或目录内容也称为目标(object))。

  3.Squid运行在什么系统上?

  Squid可运行在大多数Unix和OS/2版本的系统之上,已知的可工作的有:

  AIX,Digital Unix,FreeBSD,HP-UX,Irix,Linux,NetBSD,Nextstep,
SCO,
Solaris

  由武汉自由软件协会供稿

--
※ 来源:.北大未名站WWW bbs.pku.edu.cn. [FROM: 210.78.145.45]

--
人生是一条随时改道的河流
只有大海是终极不变的命运
选择爱你
选择一种无法抗拒的宿命
把所有结果
留给时间与风去证明


※ 来源:・BBS 水木清华站 smth.org・[FROM: 166.111.26.249]

Squid基础与配置(二) (转寄)

发信人: qxb (老Q ★ 闭关修炼中......), 信区: Linux
标 题: Squid基础与配置(二)
发信站: BBS 水木清华站 (Tue Mar 13 14:54:27 2001)

发信人: chenhao (死定了,查错中), 信区: Linux
标 题: Squid基础与配置(二)
发信站: 北大未名站 (Sat Oct 14 16:59:50 2000) , 转信

纲要:
关于缓存服务,大家知道那些呢?在linux下面,squid是一种比较优越的代
理软
件,下面这篇文章详细的介绍了suqid的安装和使用配置。它的使用设置有一些复
杂,
如果您希望快速的掌握这个软件,就请马上看看吧!

正文:
二、编译安装Squid
作者:戴专

 1.Squid的未编译版本
  我不能保证你能发现所有的Squid的未编译版本。在ftp:squid.nlanr.net上你
可以
找到一些未编译的版本,尽管它们可能不是最新的版本。

  Squid一般很容易编译,这是因为它本身可以自动配置。唯一真正的问题是是
否在
你的机器上有一个编译器。这可能发生在:你购买了商业OS但是它未包括标准的开
发选
项。你可能考虑在这种情况下装一个GNU的编译器,如果你在/usr/include下有必
需的
文件的话。你另外一个选择可能是请求别人的帮助。你也许需要查看"tracker
datab
ase"以找到在你附近运行Squid的某人。假定他们有适合的硬件,他们很可能会帮
助你
的。
的。

  1. 开始编译之前

  运行Squid的最好方法(在我看来)是创建一个特定的用户和组来运行它。我
用相
同的名字创建了一个Squid用户和一个Squid组,并设置用户的home目录为
/usr/local/
squid。然后我用su 转到Squid用户,这样文件就都由Squid以及Squid组所有(
Squid用
户主组必须为Squid)。随后我下载Squid源文件到/usr/local/squid/src并解包。


  这可能不是最好的安装Squid到你的系统上的方法,但是,如果多个用户将使
用sq
uid,你可以把他们都放在Squid组中。(当然,如果你不理解我所说的,尽可以用
你自
己的名义去安装,不要以root方式,否则,你将给你的机器带来安全上的危险。)


  2. 获得源码


  Squid的源始站点是squid.nlanr.net。这里还有许多其它的镜像站点,你可以
考虑
从你本地的镜像站点获得它,或者在archie服务器上搜索。一旦你已经下载了(一
般放
在/usr/local/squid/src/下),你可以用以下命令解压:
gzip -cd squid-tar.gz-fil | tar xv 或者 tar zxvf squid-tar.gz-fil
这将创建类似于以下行的目录:/usr/local/squid/src/squid-1.1.13/(依版本而
定)。


  3. 编译Squid


  以下是编译Squid的一般指令。你可能还要做其它的事以编译Squid到你的系统
上。
通常你可以运行一个配置脚本文件,它指明了你的系统设置和你机器上的标题文件
。这
样,在解压和解包文件后。cd 到/usr/local/squid/src/squid-version/下并输入

./configure

  这里假定你准备安装Squid到/usr/local/squid下。你也可以用下面的方法修
改你
的安装目录:
./configure -prefix=/some/other/directory

  然后你可能要敲入:make 以及 如果编译一切正常时,输入make install。这
将生
成在后面将要描述的目录并安装文件到目录下。

  由武汉自由软件协会供稿


--
※ 来源:.北大未名站WWW bbs.pku.edu.cn. [FROM: 210.78.145.45]

--
人生是一条随时改道的河流
只有大海是终极不变的命运
选择爱你
选择一种无法抗拒的宿命
把所有结果
留给时间与风去证明


※ 来源:・BBS 水木清华站 smth.org・[FROM: 166.111.26.249]

Squid基础与配置(三) (转寄)

发信人: qxb (老Q ★ 闭关修炼中......), 信区: Linux
标 题: Squid基础与配置(三)
发信站: BBS 水木清华站 (Tue Mar 13 14:54:53 2001)

发信人: chenhao (死定了,查错中), 信区: Linux
标 题: Squid基础与配置(三)
发信站: 北大未名站 (Sat Oct 14 17:01:00 2000) , 转信

纲要:
关于缓存服务,大家知道那些呢?在linux下面,squid是一种比较优越的代
理软
件,下面这篇文章详细的介绍了suqid的安装和使用配置。它的使用设置有一些复
杂,
如果您希望快速的掌握这个软件,就请马上看看吧!

正文:
三、Squid的基本配置
作者:戴专

 1. 目录结构
   Squid通常创建几个目录。它们一般如下:
/usr/local/squid
/bin
/cache
/etc
/logs/
/src (这是我们早些时候创建的)
/bin包括Squid本身的程序,以及其它程序如ftpget,它可以被Squid用来执行各种
功能


/cache/目录是实际缓冲数据的存放区。你可能要考虑把剩余缓冲放到不同分区去
,或
甚至是不同的磁盘。它包含的目录如以下行的形式:/00/ /01/ /02/ 和/03/ 这些
又包

括更多的子目录,最终是缓冲的实际数据。存储数据在多个目录下意味着从大的缓
冲区
取数据仍然很快,因为你的操作系统要读一个包含10000个文件的目录会需要很长
的时
间。
/etc/包含squid.conf文件,它是唯一的Squid配置文件。
/logs/目录可能会很大,特别是如果你包含同属时,它们会查询你每一次连接,这
可以
使你的log文件双倍增加。注意在cache目录下也有一个/log/文件,但是你不能删
除或
移动它。它是上面讨论的/usr/local/squid/cache/目录的一个索引。(这与IE的
cach
e有些相似。)
/src/一般包括你运行Squid版本的源文件。

  2. 基本配置

  所有的Squid配置集中到一个文件----squid.conf。下面将详细讨论仅作为一
个缓
冲代理服务器的Squid的配置,而不是把它作为一个http加速器。

  以下是一个最基本的配置文件:
#squid.conf - a very basic config file for squid

#Turn logging to it's lowest level
debug_options ALL,1
debug_options ALL,1

#defines a group (or Access Control List) that includes all IP
#addresses
acl all src 0.0.0.0/0.0.0.0

#allow all sites to use connect to us via HTTP
http_access allow all

#allow all sites to use us as a sibling
icp_access allow all

#test the following sites to check that we are connected
dns_testnames internic.net usc.edu cs.colorado.edu mit.edu yale.edu

#run as the squid user
cache_effective_user squid squid
#otherwise, you can uncomment the below line and comment the one out.
# this will run as use "nobody" with the group "nogrtoup"
cache_effective_user nobody nogroup

  这个配置允许所有的人访问缓冲区,并创建一个100M的缓冲区,使用8M的内存
,保
持最小型的logs,而且存储所有文件到默认区域,这一般指的是所有文件将以
Squid用
持最小型的logs,而且存储所有文件到默认区域,这一般指的是所有文件将以
Squid用
户,Squid组的名义存储到"/usr/local/squid/cache"中。所有客户请求将来自
于31
28端口,并且所有"内部缓冲(inter-cache)"流量将走UDP端口3130。注意这个
配置
文件允许所有人访问你的缓冲机器,这可能不是你所希望的,但是至少它可以正常
工作

  3. 运行Squid

  Squid由一个脚本正常运行,这个脚本在它的进程死掉后重启Squid。这里有脚
本的
两种版本:/usr/local/squid/bin/RunCache 和 /usr/local/squid/bin/RunAccel

RunCache脚本一般在前台运行,所以启动Squid,输入以下内容:
% /usr/local/squid/bin/RunCache& %
然后用以下命令查看主Squid log文件/usr/local/squid/logs/cache.log
% more /usr/local/squid/logs/cache.log

  你将看到Squid启动的相关信息,如下行所示:
97/02/24 19:34:52| Starting Squid Cache version 1.1.10 for
i586-pc-linux-gn
u...
97/02/24 19:34:52| With 256 file descriptors available
97/02/24 19:34:52| Initializing IP Cache...
如果你没有看见任何关于FATAL错误的信息,Squid现在就可以很高兴地在你的机器
上运
行了。
行了。

  下面将配置你的浏览器,你可以好好地试一下哦!

  4. 客户端软件的基本配置

   以下是针对浏览器的基本配置:

   Netscape(4.5以上版本):
从Edit菜单项中选择Preferences项。在Advanced中Proxies页,点击按钮进入
Proxy配
置手册,然后再点击View按钮。对每项你的Squid服务器支持的协议项(默认有
HTTP,
FTP和gopher等)中填入Squid服务器的主机名或IP地址,同时在Port栏中填入
Squid服
务器的HTTP端口号(默认为3128)。对你的Squid不支持的协议,可以让这些栏空
着。


  IE(5.0以上中文版本):
在工具菜单项中选择Internet选项,然后点击连接页,再按局域网设置按钮选择使
用代
理服务器选项,进入高级项目编辑。然后可以看到与Netscape代理服务器设置类似
的界
面,按照前面所述的方法分别填入相应项即可。

  一般Unix下配置:

  如果你使用可以允许你访问web的Unix程序(包括wget,lynx和mosaic等),
你可
面,按照前面所述的方法分别填入相应项即可。
以设置shell变量,通过这些变量可以配置好代理。

  如果你使用的shell是tcsh或csh,命令如下:
% setenv http_proxy http://mycache.example.com:3128/
% setenv gopher_proxy http://mycache.example.com:3128/
% setenv ftp_proxy http://mycache.example.com:3128/

  现在你就可以使用你的浏览器与缓冲连接以下载页面了。为了检查通过缓冲是
否工
作正常,可以查看/usr/local/squid/logs/access.log文件的内容,使用命令如下
:m
ore /usr/local/squid/logs/access.log。你可以看到所有你进行的访问信息都显
示在
该文件中。

  由武汉自由软件协会供稿

--
※ 来源:.北大未名站WWW bbs.pku.edu.cn. [FROM: 210.78.145.45]

--
人生是一条随时改道的河流
只有大海是终极不变的命运
选择爱你
选择一种无法抗拒的宿命
把所有结果
留给时间与风去证明


※ 来源:・BBS 水木清华站 smth.org・[FROM: 166.111.26.249]

第八章 路由器和防火墙(下) (转寄)

发信人: ruster (尘埃*星辰*领悟), 信区: Linux
标 题: 第八章 路由器和防火墙(下)
发信站: BBS 水木清华站 (Thu Dec 21 13:48:45 2000)

8.4 拨号网络连接


现在我们来研究另外一种网络连接工具,即调制解调器连接。对于许多用户,这是上
网的基本手段。虽然不太可能有某个网站使用拨号网络连接internet,但用一台普通机
器构成一个局域网的IP代理让所有网内机器一起上网的情况却是相当常见的。另外,一
直到不久以前,很多ISP都利用Linux+多串口卡作为拨号服务器给客户提供网络服务。

我们将主要把精力聚焦在PPP(点对点协议)上,以前许多单位流行UUCP,还有不少人
使用SLIP。但是随着时代的发展,Internet的推广使UUCP没有什么实际意义,而SLIP的
优点也由于pppd管理的简化而失去了原有的意义。

8.4.1 拨号网络连接

我们首先来介绍使用PPP进行拨号网络连接的过程。Linux的PPP连接是通过pppd程序来
完成的,实际上,这个程序的行为相当简单,就是将调制解调器信息映射成一个虚拟的
网络接口。一般来说,建立PPP连接的过程需要这样几个步骤:

建立调制解调器连接

其实这个过程就是向调制解调器发送初始化和拨号命令,接受到命令后,调制解调器
和对方系统建立电气连接。

登录网络

ISP将ip地址和路由信息传递到你的系统上,pppd程序将根据这个信息启动ppp0网络接
口。

为了说明这个问题,我们现在来看一个实际的PPP配置例子,假设你的核心编译时允许
了PPP支持,而且系统中已经安装了ppp-2.3.10(比如说)软件包,那么,在/usr/doc/pp
p-2.3.10目录下应该有一个scripts目录,里面有类似这样的一些文件:

$ls

README chat-callback ip-down.local.add ppp-off ppp-on-dialer secure
-card

callback chatchat ip-up.local.add ppp-on redialer

这里,ppp-on是启动ppp程序的主要脚本,我们可以看一下它的内容:

#!/bin/sh

TELEPHONE=555-1212 # The telephone number for the connection

ACCOUNT=george # The account name for logon (as in 'George Burns'
)

PASSWORD=gracie # The password for this account (and 'Gracie Allen
')

LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0

REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0

NETMASK=255.255.255.0 # The proper netmask if needed

export TELEPHONE ACCOUNT PASSWORD

DIALER_SCRIPT=/etc/ppp/ppp-on-dialer

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \

asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \

noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

容易看出来,真正的执行程序只有最后的exec程序,其他一些行只是一些设置
参数。说实话pppd程序的参数实在太多,我们总是建议你在已有的脚本的基础上进行修
改。其中,要注意的是pppd命令行中/dev/ttyS0的参数,这个是pppd程序拨号时的端口
设备,显然,这里假定你的调制解调器接在com1。如果是接在com2,就使用/dev/ttyS1
,以此类推。

我们首先必须说明一个关于身份认证的问题。如果你的机器已经有了一个以太网接口
,并且发现按照下面的做法无法正确地建立连接的话,你需要把ppp-on脚本中的pppd的
命令行选项auth改成noauth。这个选项和windows 9x类型的身份认证有关,由于我们使
用的是用户名/口令的明文认证方式,所以选择noauth不会影响拨号的成功。当然,如果
你发现不需要更改这个选项,那当然也行。

LOCALIP和REMOTEIP是你的本地机器以及ISP的IP地址,在我们的情况下,本地机器的
IP是拨号时动态分配,在拨号之前是不知道的,这种情况下要设置成0.0.0.0。ISP的地
址在拨号以前也是不知道的,所以也设置成0.0.0.0。

其他三个参数是在ppp-on-dial脚本里面使用的,从pppd的命令行中我们可以看到ppp
d程序调用了这个脚本,我们看一看这个脚本的内容:

#!/bin/sh

exec chat -v \

TIMEOUT 3 \

ABORT '\nBUSY\r' \

ABORT '\nNO ANSWER\r' \

ABORT '\nRINGING\r\n\r\nRINGING\r' \

'' \rAT \

'OK-+++\c-OK' ATH0 \

TIMEOUT 30 \

OK ATDT$TELEPHONE \

CONNECT '' \

ogin:--ogin: $ACCOUNT \

assword: $PASSWORD

容易看出,这个脚本实际上只是调用了chat程序。chat程序是一个自动的对话-应答程
序,-v参数是启动调试信息纪录,这可以使你在测试的时候容易发现问题,(看看/var
/log/messages文件就知道了),而其他的行定义了一些提示和对应的应答。例如,ass
word: $PASSWORD在chat的参数后面出现,意味着每当chat程序收听到一个包含assword
:的提示的时候,就送出一个$PASSWORD字符串。每一行或者是一些控制选择,或者是这
样的一个提示-应答对,也就是说,上面的这段指令稿可以这样解释:

TIMEOUT 3

这设定接收所期待的输入逾时时限为三秒。你可以考虑将它加大一些

ABORT '\nBUSY\r'

如果接收到 BUSY 字串,中止执行。(也就是说,拨号程序发现对方的线路忙)。

ABORT '\nNO ANSWER\r'

如果接收到 NO ANSWER 字串,中止执行.

ABORT '\nRINGING\r\n\r\nRINGING\r'

如果接收到(重复的)RINGRING 字串,中止执行.这是因为某人正打电话给你!

(呵呵,对于经常拨BBS的朋友,这些内容再熟悉不过了)。

" \rAT

不期待数据机传送任何讯息并且送出 AT 字串.

OK-+++\c-OK ATH0

这是第一个提示-应答对。当pppd程序向调制解调器发出初始化命令时,它期待 OK ,
如果调制解调器正常,就会会应一个OK字符串;否则,没有期待到意味着拨出没有收到
(因为数据机并不在指令模式下)那麽送出 +++ (使数据机返回指令模式的标准 Haye
s 相容数据机字串)并且期待 OK;不管那种情况,一旦期待到OK,接著送出 ATH0 (数
据机挂断字串).这主要是应付一些难以断线的意外情况。

TIMEOUT 30

设定下面的脚本执行的超时时限为 30 秒。

OK ATDT$TELEPHONE

如果ATH0命令被正常执行,那么调制解调器应该返回一个OK,所以这里期待 OK,一旦
得到就拨叫$TELEPHONE(前面在ppp-on里面定义的电话号码)。

CONNECT "

一旦拨号成功,与远端调制解调器建立了连接,我们的调制解调器应该返回一个CONN
ECT,因此我们期待 CONNECT 字串并且不送出任回覆讯息。当然实际上我们根本不需要
回应这个提示,问题是chat程序就是这么蠢,即使是一个"死行"也要回应一次,哪怕
回应中什么也没有。顺便提一句,对于空字符串、带空格的字符串等等,我们要用单引
号把它括起来,现在括起来的就是一个"空"。

ogin:--ogin: $ACCOUNT

我们将期待登录提示(...ogin:),但是如果我们在超时前没有接收到,送出一个返回
字元(return)然後再次找寻签入提示.当接收到提示时,送出使用者名称(存放在$ACC
OUNT 环境变量里,在前面的ppp-on中定义)。

assword: $PASSWORD

期待密码提示并且送出密码(存放在环境变量里)。

关于pppd程序,如果你想要作拨号的话,内容就是这些了;这里面最需要理解的是ch
at程序,在上面的缺省脚本中,它使用的是login:和password:提示。你的ISP会使用什
么样的指令对?这个很难说,解决问题的唯一方法是手工拨号到对方的服务器上面,然
后看一看对方到底使用的什么样的配置,完成这个任务的最好方式是使用一个终端仿真
程序,比如Windows 9x的超级终端或者Linux的Minicom。

让我们来解释一下minicom。假设你的系统已经安装了这个产品,你首先需要建立/de
v/modem设备。在我们的一般情况下,系统中已经有了/dev/cua0,/dev/cua1,/dev/cu
a2或者/dev/ttyS0,/dev/ttyS1等设备,你只需要将调制解调器连接到正确的端口上,
然后建立符号连接就可以了,/dev/ttyS0和/dev/cua0都是COM1,/dev/ttyS1和/dev/cu
a1是COM2,以此类推。假设你的调制解调器接在COM2上,那么首先将/dev/modem连接到
/dev/cua1:

ln �s /dev/cua1 /dev/modem

然后启动minicom:

$ minicom

Welcome to minicom 1.82


OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n

Compiled on Sep 23 1999, 22:29:11.


Press CTRL-A Z for help on special keys



AT S7=45 S0=0 L1 V1 X4 &c1 E1 Q0

OK

出现这样的提示就可以拨号了,输入拨号命令:

at

OK

atdt 163

CONNECT 33600/V42BIS

*** Welcome To AnShan 163 Arc03 ***

login: test

Password:

容易看到,在CONNECT连接符号之后,对方的拨号服务程序要送出一个Welcome To An
Shan 163 Arc03的字符串,所以我们要在对应的chat脚本里面加上对应的行-虽然这个行
根本不需要应答。我们首先把scripts目录里面的ppp-on,ppp-on-dialer和ppp-off,o
ptions文件复制到/etc/ppp,然后将/etc/ppp-on里面的TELEPHONE,ACCOUNT,PASSWOR
D都设置成你自己的内容,REMOTE_IP和LOCAL_IP设置为0.0.0.0:

#!/bin/sh

TELEPHONE=163 # The telephone number for the connection

ACCOUNT=lnte # The account name for logon (as in 'George Burns')

PASSWORD= lnte # The password for this account (and 'Gracie Allen')

LOCAL_IP=0.0.0.0 # Local IP address if known. Dynamic = 0.0.0.0

REMOTE_IP=0.0.0.0 # Remote IP address if desired. Normally 0.0.0.0

NETMASK=255.255.255.0 # The proper netmask if needed

export TELEPHONE ACCOUNT PASSWORD

DIALER_SCRIPT=/etc/ppp/ppp-on-dialer

exec /usr/sbin/pppd debug lock modem crtscts /dev/ttyS0 38400 \

asyncmap 20A0000 escape FF kdebug 0 $LOCAL_IP:$REMOTE_IP \

noipdefault netmask $NETMASK defaultroute connect $DIALER_SCRIPT

然后设置ppp-on-dialer进行应答:

#!/bin/sh

exec chat -v \

TIMEOUT 3 \

ABORT '\nBUSY\r' \

ABORT '\nNO ANSWER\r' \

ABORT '\nRINGING\r\n\r\nRINGING\r' \

'' \rAT \

'OK-+++\c-OK' ATH0 \

TIMEOUT 30 \

OK ATDT$TELEPHONE \

CONNECT '' \

Arc '' \

ogin:--ogin: $ACCOUNT \

assword: $PASSWORD

注意我们用的是Arc而不是Arc03,因为我们面对的是一个多道连选的拨号服务器,拨
163会随机地拨到服务器的某一个modem上,而每个的提示都是ArcXX,所以我们提取相同
的信息,就是Arc。

最后是/etc/ppp/options,这个文件只有一行:

[root@wxd ppp]# cat options

lock

ppp-off文件可以保持原状:

!/bin/sh

######################################################################

#

# Determine the device to be terminated.

#

if [ "$1" = "" ]; then

DEVICE=ppp0

else

DEVICE=$1

fi


######################################################################

#

# If the ppp0 pid file is present then the program is running. Stop it.

if [ -r /var/run/$DEVICE.pid ]; then

kill -INT `cat /var/run/$DEVICE.pid`

#

# If the kill did not work then there is no process running for this

# pid. It may also mean that the lock file will be left. You may wish

# to delete the lock file at the same time.

if [ ! "$?" = "0" ]; then

rm -f /var/run/$DEVICE.pid

echo "ERROR: Removed stale pid file"

exit 1

fi

#

# Success. Let pppd clean up its own junk.

echo "PPP link to $DEVICE terminated."

exit 0

fi

#

# The ppp process is not running for ppp0

echo "ERROR: PPP link is not active on $DEVICE"

exit 1

最后把ppp-on,ppp-on-dialer,ppp-off的属性都设置成700。

配置现在就完毕了,然后就可以执行PPP:

$ cd /etc/ppp

$ ./ppp-on

会听到拨号声音,一会拨号就连通了,连通后,用ifconfig命令可以看到ppp0设备及
其IP地址。

当拨号网络连通的时候,ISP会向客户机器传递域名服务器的地址,对于Windows 95,
拨号网络程序可以自动下载这个地址并且刷新名字服务器信息,不过对于Linux,我们一
般自己直接在名字服务器解析文件/etc/resolv.conf中加入ISP提供的名字服务器地址。

使用完毕后,可以用ppp-off命令切断ppp连接:

上面的内容就是一般的启动拨号服务的办法。个别的ISP会使用所谓PAP认证方式,这
个认证方式不使用username:/password:指令对,而是由拨号程序在建立连线时自动传输
认证信息(换句话说,当你使用minicom拨号的时候并不出现要求你登录的提示)。如果
是这样,那么设置ppp的方式和我们这里讲的有所不同,详细的资料可以参考Linux PPP
-HOWTO,这部分内容已经被翻译成中文。

如同上面显示的那样,配置ppp的任务并不算困难但是却很讨厌,一般来说,人们总是
希望使用简化的配置。最常用的拨号程序除了直接使用ppp-on之外,就是图形界面下的
kppp。当然对于服务器,为了拨号而启动X Window有些不值得。kppp的配置与Windows下
的拨号网络一样简单,因此我们不再详细叙述了。

另外一个基于命令行的拨号工具称为wvdial,它和ppp的配置其实差不多,但是不需要
设置令人头痛的应答过程。(笔者当初配置邮电局的16道连选弄得晕头转向,作了两天
还没有解决,而用wvdial十分钟就连通了。)

要使用wvdial,需要安装wvdial软件包,在新的Linux发行版本中有不少包含这个程序
。安装后,你只要按照下面的格式生成一个配置文件/etc/wvdial.conf:

[Dialer Defaults]

Modem=/dev/ttyS0

#调制解调器在com1,com2=/dev/ttyS1

Baud=57600

#调制解调器的速度

Init = ATZ

Init2 = AT S11=50

#调制解调器的初始化命令

Phone=163

#ISP电话号码

Username=user

Password=user

#ISP给你的用户名和口令

然后执行wvdial ,就可以看到一连串内容在屏幕上滚过,最后出现starting pppd .
...表示连线成功了。连线结束时,可以用^C退出wvdial程序,这时wvdial会自动切断线
路。

wvdial工作时需要保持运行,如果你觉得把它放在前台影响工作,可以用wvdial &将
它放到后台,结束时用killall wvdial 命令。

要记住,pppd可能因为稀奇古怪的原因挂掉,如果你拨号没有成功,可以察看/var/l
og/messages文件(或者在/etc/syslog.conf里面定义的任何记账文件)找出问题何在。

8.4.2 拨号代理

拨号代理其实就是我们前面说的IP代理系统,只是它的代理出口是使用拨号网络接口
。简单地说,拨号代理就是一台能够拨号连接到internet的机器,局域网内的其他机器
可以通过它连接到internet。

说到这里,大家应该已经理解一个拨号代理应该怎么做了,首先要按照前面的方法配
置拨号网络使得拨号机器能够访问internet;配置局域网的机器IP为私用网络的IP,比
如说私用网络是10.0.0.0/24,拨号代理的机器网卡IP地址为10.0.0.1;配置私用网络客
户机器的网关地址为10.0.0.1;配置拨号代理机器启动核心IP转发功能;然后只要在拨
号代理的机器上:

ipchains -A forward -s 10.0.0.1/24 �i ppp0 �j MASQ

insmod ip_masq_ftp

现在整个局域网就可以通过这条电话线访问internet了。

实际上,作拨号代理确实十分简单,最多再加上身份鉴别,避免别的用户冒充为你的
私用网络用户进入系统:

ipchains �A input �s 10.0.0.1/24 �i ppp0 �j REJECT

其他像禁止某些用户访问别的站点等等都可以按照前面讨论防火墙的方法去做。

如果你想用拨号网络连接两个局域网,那么做法仍然和这里是类似的,只是不再使用
MASQ选项,而且要按照第一节的原则来考虑路由递送问题。特别是,现在我们需要使用
静态IP地址,就是将ppp-on里面的LOCAL_IP和REMOTE_IP正确配置。另外,在ppp-on脚本
中的pppd命令行选项defaultroute必须仔细考虑,这个参数表示将拨号连接当成缺省路
由,如果你认为有问题的话,把它改成nodefaultroute并且手工用route命令设置路由。

在使用拨号代理的过程中,你很可能会感到在用户开始上网的同时进行拨号是很方便
的,而一旦所有用户都已经停止连接就自动切断ppp连接。这个功能可以用diald程序来
完成。diald并不包含在一般的Linux发行版本中,你需要自己去下载这个程序。

要使用diald,你需要在内核中编译加入SLIP支持(即使你仅仅准备使用ppp连接网络
)。然后你可以编译并且安装diald。一般情况下,有几个文件设置了diald的行为,最
主要的是/etc/diald.conf。

如果你按照我们上面说的那样已经配置好了ppp连接,ppp-on-dial脚本已经正常,那
么你可以写这样一个非常简单的/etc/diald.conf:

mode ppp

connect /etc/ppp/ppp-on-dial

device /dev/ttyS1

speed 57600

modem

lock

crtscts

local 10.0.0.2

remote 10.0.0.1

dynmatic

defaultroute

include /usr/lib/diald/standard.filter

注意这个文件中的local和remote参数。这两个参数是设置拨号两端的IP的,现在因为
使用的ip地址是ISP动态分配给你的,所以用dynmatic参数设置地址为动态地址。问题是
如果在配置文件中不给出地址的话,diald程序就无法正确启动拨号脚本,所以你可以给
它一对私用IP让diald程序自己去处理。剩下的任务就是启动diald,然后让服务器自己
去拨号就可以了。

8.4.3 拨号服务器

现在我们来研究如何做一个拨号网络服务器。作拨号服务器仍然是利用pppd程序,不
过,这一次我们必须解释一点东西。

在最简单的情况下,假如你是一个ISP管理者,你只需要让用户连接到你的系统中,就
可以为他们提供网路服务。在这种情况下,客户的机器逻辑上是你的子网的一部分,为
了是客户机器可以和同一子网的机器通讯,我们可以使用ARP代理功能,就是拨号服务器
替客户应答ARP询问,因此其他机器会把应该送给客户机器的信息包交给服务器,服务器
再转交给客户机器。这个和我们前面讨论分割地址空间时的ARP代理没有任何区别。这种
情况下,客户机器到外界的联系完全由服务器代理,因此客户端几乎不需要设置任何东
西。相反,如果你是要用电话线把两个子网连接起来,那么你需要的是在两个子网上建
立缺省投递路径,内容就和我们第一节介绍的完全一样,甚至也可以用ipchains控制信
息的流动。

当客户拨号到服务器上的时候,首先是调制解调器之间建立连接,为了实现这个功能
,服务器的调制解调器必须设置为等待/应答方式,一旦有拨入就能接受服务。如果你仅
仅是想把客户机器当成终端来使用服务器,那么这就足够了;否则,如果你使用拨号网
络等windows 9x的ppp客户程序来拨入,它将向服务器传输PAP认证信息。你的拨号服务
器接受到这些信息之后,对客户的身份进行验证并且去处理缺省的拨号脚本,启动pppd
程序在两台机器之间建立起数据通路,这样,客户机器就被连接到服务器所在的网络上


现在我们来介绍如何制作第一种情况下的PPP服务器,仍然假定你的内核编译的时候已
经加入了PPP支持。我们首先建立一个下面形式的/etc/ppp/options文件:

asyncmap 0

netmask 255.255.255.0

proxyarp

lock

crtscts

modem

ms-dns 202.199.248.2

这个文件的详细含义请参考man ppp。proxyarp和netmask给出了PPP连接的工作方式为
ARP代理。lock是锁定调制解调器避免拨号连接被其他程序干扰,crtscts设置调制解调
器使用硬件流控制方式。需要特殊说明的只有最后一行,一般来说,作为拨号客户的总
是windows 机器,而windows 9x期望从服务器上取得关于网关和DNS服务器的信息,这行
就是起这个作用的,ms-dns将DNS服务器的地址传递给拨号客户。另外还有几个很常用的
参数,其中最重要的是nodetach,它避免pppd复制出一个在后台运行的子进程,如果你
发现在拨号连接被切断之后pppd程序没有正确退出,加入这样一行。另外,还有一对de
faultroute和nodefaultroute选项,在我们现在的情况,缺省值nodefaultroute就可以
满足要求了。

下一步,我们必须为每个拨入调制解调器准备一个配置文件,配置文件的名字规则是
/etc/ppp/options.ttyXX,例如你的modem接在COM1上,就需要生成一个文件/etc/ppp/
options.ttyS0。以此类推。

options.ttyXX的内容非常简单,就是[本地IP]:[远端IP]。例如,我的PPP server的
IP地址是202.199.248.8,名字是server,我想为从com1拨入的用户分配IP地址202.199
.248.19,名字是dialclient。那么需要在/etc/ppp/options.ttyS0文件中写上:

202.199.248.8:202.199.248.19

或者

server:dialclient

接下来,需要作的是建立身份验证文件。一般情况下,我们在客户端用的是windows
9x,而windows使用的是PAP验证,所以我们必须为PAP准备身份验证文件。这个文件的缺
省名字是/etc/ppp/pap-secrets,而它的行的格式是:

[用户名] [远端机器名] [口令] [远端IP]。可以使用通配符"*"。

例如,我们希望允许用户user01可以从任何地方拨入,并且可以使用前面定义的远端
IP地址202.199.248.18,口令是test01,那么使用这样的行:

user01 * test01 202.199.248.18

如果希望user01可以从任何地方拨入,而且可以使用所有定义在options.ttyXX中的远
端IP地址,那么使用

user01 * test01 *

由于pppd程序需要控制网络接口(建立网络接口),所以需要使用root身份来执行,
为了让所有拨号用户都能使用pppd,需要设置pppd为setuid程序:

# ls -l /usr/sbin/pppd

-rwxr-xr-x 1 root root 138596 Sep 20 1999 /usr/sbin/pppd

pppd程序的拥有者是root,只要setuid就行了:

chmod u+s /usr/sbin/pppd

接下来是最困难的步骤了,启动调制解调器应答。为了驱动调制解调器,你的系统中
必须有一个串行口管理程序。我们使用的是mgetty,它包含在大部分Linux发行版本中。
假设你已经安装了mgetty程序,例如

$rpm -q mgetty

mgetty-1.1.14-9

就可以开始设置调制解调器应答了,进入到/etc/mgetty+sendfax目录,编辑mgetty.
config文件。

下面是我们的mgetty.config文件,你可以按照这个方式自己编写:

# !mgetty.config

debug 4

speed 38400

port ttyS0

init-chat "" ATZ OK "AT M0E1Q0S0=0" OK

answer-chat "" ATA CONNECT \c \r

port ttyS1

init-chat "" ATZ OK "AT M0E1Q0S0=0" OK

answer-chat "" ATA CONNECT \c \r

这个文件的内容倒是十分简单的,debug 4将mgetty的纪录级别定义为4,在你调试正
常之后可以将它改成一个合适得值;speed 38400设置了传输速度为33.6k;接下来的就
是各端口连接的调制解调器的初始化段落,port ttyS0往下的段落定义了一个接在COM1
上的调制解调器,而init-chat和answer-chat分别定义调制解调器的初始化和应答命令
。port ttyS1则是COM2上的调制解调器,这样,每一个调制解调器都需要自己的段落。
这里的init-chat和answer-chat中的命令可以适用于大部分调制解调器。不要问我这些
命令从那里来的,你可以自己参考关于调制解调器的标准。必须注意缺省的mgetty.con
fig文件中,有一行(fax_id ....)是用来设置缺省应答为传真的,你必须手工把它去掉


如同我们说的,调制解调器的驱动是靠mgetty程序,我们可以手工启动mgetty程序,
不过更常见的方法是修改运行级别。我们知道,缺省的/etc/inittab定义了所有的运行
级别,在多用户级别,它利用mingetty程序开出了六个虚拟屏幕,我们可以用同样的方
法开出一个虚拟终端,这只需要修改/etc/inittab文件的下面部分(加粗体的是我们加
入的部分):

#!/etc/inittab

………………

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

sm1:35:respawn:/sbin/mgetty ttyS0

…………………………

在运行级别三和五,对ttyS0启动mgetty。如果你有更多的调制解调器,启用更多的m
getty行就可以了。

上面给出的是一个接在com1上的调制解调器的驱动方式,如果你有更多的调制解调器
,为每个调制解调器在mgetty.config文件中加入一个段落,并且在/etc/inittab中开出
一个mgetty进程。不过,我个人只实验过连接两个调制解调器,如果你需要接续8个或更
多的同时连接,你多半需要某种多串口卡。据说,多串口卡上的串行口相应的设备名字
是ttyCXX,你可以自己试试。也许要在核心中编译相应的支持。

在客户程序拨入的时候,mgetty程序将试图调用/etc/mgetty+sendfax/login.config
,从中查找关于AutoPPP的内容,所以我们必须建立这个文件,如果你只是要使用PPP服
务,可以将这个文件设置为只有下面这样一行:(实际上,你的缺省安装的mgetty里面
已经有一个这样的模板了)

!#login.config

/AutoPPP/ - a_ppp /usr/sbin/pppd auth silent -chap +pap login

-chap +pap表示使用pap身份认证方式。为了避免输出不必要的垃圾信息,使用silen
t选项。另外,如果你希望用户连接中的信息以用户的名字(而不是缺省的a_ppp)进行
记录的话,将a_ppp改成一个"-"。

至此,我们配置好了调制解调器的行为,接下来,连接调制解调器,打开调制解调器
电源,重新启动服务器以便确保inittab中开出的mgetty被正确执行,不要忘了打开核心
IP转发,然后就可以接受客户机器的拨号呼叫了。

上面说的是基于ProxyARP的拨号服务,这个服务的最大特点是客户机器和服务器处在
一个子网之内,如果你想要用拨号网络连接两个子网,那么你需要去掉/etc/ppp/optio
ns文件中的proxyarp命令行,并且设置缺省路由递送路径。特别是,需要把拨号网络的
服务器/客户的拨号网络接口当成一个缺省路由路径,这可以手工加入路由路径,但是更
常用的方法是使用在/etc/ppp/options文件中加入defaultroute行(没有参数),这样
ppp管理程序会自动将拨号连接作为一个缺省路由路径加入,在ppp被切断之后自动删除
路径。注意服务器和客户端都必须使用这个选项。

ppp server是一种非常容易出现问题的东西,为此,缺省情况下,pppd产生的信息将
会被存储到/var/log/messages中,而mgetty则对任何ttyXX产生一个/var/log/mgetty.
log.ttyXX文件,如果你的ppp莫名其妙地当掉或者无法建立连接,请研究这些记录文件
中的错误信息。

另外,也存在其他的拨号连接数据传递方式,例如uucp和slip。不过,由于本书是一
本处理常规问题的教本,我不想在这里讨论这个问题。毕竟,ppp已经够用了,对吗?

最后我们要额外说明一句,有时某些人并不希望建立一个网络连接,相反,他希望能
够以终端方式连接到服务器上。在这种情况下,你只要按照前面的方法设置好调制解调
器应答,开出合适的mgetty进程,就会发现用户已经可以拨号连接到服务器上了。这个
技术的一个古怪的应用是用Null-Modem连接来接通两台机器,详细的资料可以参考随mg
etty提供的文档。

8.5 网络代理程序

在Apache服务器的部分我们已经接触到了浏览代理的概念。与IP代理不同,浏览器代
理或者类似的其他代理程序通常只能对确定的应用程序进行代理。这类代理程序往往是
为了减少网络流量,提高网络速度或者是绕过防火墙用。

我们在这里讨论最常用的代理程序。squid类似于apache的浏览代理,实际就是一个高
速缓冲器,但是在某些方面,它比apache更容易管理。而socks5代理则是一个特殊的转
发器,它利用某种特定的编程接口接受客户的请求并且代替客户处理请求。

8.5.1 squid代理程序

与Apache的proxy功能类似,squid也是一个接受客户请求,代替客户处理并且加以缓
冲的产品。但是与apache不同的是,squid不需要forks自身。另外,squid可以配置成为
利用用户名和口令来限制用户的身份,这在按照IP地址进行身份认证不适用的时候是很
重要的。

squid是一个功能非常强大的程序,例如你可以将它配置成向"内"的服务器(提高你
自己的服务器的响应能力),或者是用多个squid机器构成复杂的缓冲系统,如此等等,
你可以自己参考squid的文档。作为一本教程,我们不想涉及到这一类过于专门的问题中
去。我们将主要介绍如何配置一个可以通过密码验证用户的代理系统。实际上,很多防
火墙的设计者都利用squid在不损害防火墙的可靠性的同时使得用户的应用更加简便。例
如,你可以用防火墙将除了squid机器之外的所有内部机器全部挡住,然后让客户通过s
quid访问外界,这样的方法比建立复杂的ipchains过滤规则更容易,而且除非防火墙机
器被攻克,内部的机器是安全的。

要使用squid,首先必须安装这个程序,例如:

[root@wxd linux]# rpm -q squid

squid-2.2.STABLE4-5

然后就可以配置squid程序了。

squid的配置文件在/etc/squid/squid.conf,(编译时定义),实际上,你完全可以
在缺省的配置文件上改动,不过,按照我们的一般方法,我们从一个适当构作的最小的
squid.conf开始:

http_port 4444

acl LOCALDOMAIN src 202.199.248.0/255.255.255.0

acl test proxy_auth REQUIRED

acl all src 0.0.0.0/0

acl SSL_ports port 443 563

cache_mem 8 MB

cache_dir /var/squid/cache 100 16 256

cache_access_log /var/log/squid/access.log

cache_log /var/log/squid/cache.log

cache_store_log /var/log/squid/store.log

cache_dns_program /usr/bin/dnsserver

dns_children 5

authenticate_program /usr/bin/ncsa_auth /etc/squid/passwd

authenticate_children 5

authenticate_ttl 30

reference_age 1 month

acl Safe_ports port 80 21 443 563 70 210 1025-65535

acl CONNECT method CONNECT

http_access allow LOCALDOMAIN

http_access allow test

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny all

这个配置文件包含了squid的主要内容,首先,http_port 4444定义squid使用的代理
服务端口。这里利用4444端口作为代理端口,注意由于squid是以nobody权限运行,这个
端口必须大于1024。

接下来,acl是一种定义行,上面的定义可以这样解释:

acl all src 0.0.0.0/0将"all"定义为一个类,包含所有客户机器。src说明这里的定
义是对源地址的,也可以用dest对目标地址进行定义,如acl sth dest 202.199.248.0
/24。

acl LOCALDOMAIN src 202.199.248.0/255.255.255.0如上述是定义所有位于202.199
.248.*处的客户机器为LOCALDOMAIN类。

acl SSL port 443 563 将所有目标端口是443或563的访问定义为SSL类。同样另外的
一句acl safe_ports port 80 21 443 563 70 210 1025-65535定义连接到这些端口的访
问为安全端口。

acl test proxy_auth REQUIRED定义所有需要身份验证的用户为test类。

acl CONNECT method CONNECT 定义所有使用TCP连接的用户为CONNECT类。

实际上,所有这些类的定义都是为了给后面的存取限制提供定义,我们可以在最后看
到存取限制语句:

http_access allow LOCALDOMAIN

http_access allow test

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access deny all

允许202.199.248.0/24的用户使用代理;另外凡是通过了身份验证的用户也可以使用
代理;其他的全部禁止。访问到非安全端口的全部禁止。

squid的用户身份验证是通过密码验证。要使用这个功能,首先必须编译squid的密码
验证程序。这要求你安装了squid的源代码,然后在squid源代码的目录中

$make

gcc -g -O2 -Wall -I. -I../../include -I../../include -c ncsa_auth.c -o
ncsa_auth.o

gcc -g ncsa_auth.o -o ncsa_auth -L../../lib -lmiscutil -lcrypt -lm -lresol
v -lbsd -lnsl

将会在当前目录下产生一个ncsa_auth程序。将它拷贝到/usr/bin下面。

我们可以通过Apache部分讲到的htpasswd程序生成身份验证需要的密码文件:

$htpasswd -c /etc/squid/passwd wanghy

New password:

Re-type new password:

Adding password for user wanghy

$

这样就加入了一个名叫wanghy的squid用户,然后就可以用上面的行来启用身份验证程
序了:

authenticate_program /usr/bin/ncsa_auth /etc/squid/passwd

authenticate_children 5

说明用/usr/bin/ncsa_auth作为身份验证程序,验证密码文件为/etc/squid/passwd,
注意这个文件必须全局可读,因为squid在工作的时候,是用一个属主为nobody的子进程
来执行,相应地ncsa_auth的权限也是nobody。authenticate_children是身份验证程序
的个数。设置了身份验证后,用户访问代理服务时会弹出这样的对话框:



图8.3 squid的身份验证

只有用户名和口令符合,才能通过代理访问外界。

authenticate_ttl 3600这样的行用来定义一次身份验证的有效期,如果超过了这个时
间用户没有动作,再连接时squid会要求用户重新进行身份验证。

接下来的几行设置squid用的内存数量,使用的纪录文件,而最重要的是下面一行:

cache_dir /var/squid/cache 100 16 256

这个命令设置squid用来存贮cache文件的目录,这个目录必须是全局可写的;后面三
个参数,第一个是目录的容量,或者说最大允许多大的cache;第二个和第三个则是第一
层和第二层目录下允许有多少个子目录,你可以自己调节这些数字。

如果你处在防火墙内部,而名字服务器位于防火墙外,你可能希望代理服务器能同时
对DNS进行代理,下面两行:

cache_dns_program /usr/bin/dnsserver

dns_children 5

启动了这个功能,dnsserver程序是缺省的dns代理程序,包含在squid软件包中。dns
_children是缺省的DNS代理程序的个数。

最后的一个常用参数是reference_age,它表示一个无人访问的缓冲文件将在硬盘上保
留多长时间,缺省是一个月,你可以自己调整。

当squid.conf配置正确之后,需要生成一下cache目录,这可以用-z参数完成:

$ /usr/sbin/squid -z

然后就可以启动squid了:

$/usr/sbin/squid

接下来,将客户机器的代理服务器添成你的squid机器,一切正常的的话就可以使用了
,如果有什么问题,可以看定义的几个记录文件。一定要注意,squid真正的缓冲程序是
以nobody身份执行。

关于squid,比较容易出现问题的是它的用户身份验证。实际上,这个身份验证可以用
你自己写的程序完成。当squid接收用户身份认证信息的时候,它传递一个用户名/密码
的字符串给squid.conf里面设定的密码验证程序,并且期望验证程序在密码正确时输出
OK,否则输出ERR。这种行为可以用nsca_auth程序的工作方式来说明:

bash# ./ncsa_auth passwd

user1 password

OK

test testerror

ERR

这是个无限循环,如果输入正确的用户名 口令,输出OK,直到系统给它一个中止信号
。你可以自己写一个类似的密码验证程序。

8.5.2 socks 5及其使用

socks代理是另外一种"在防火墙上钻孔"的常用程序。与前面提到的浏览器代理程序
不同,socks代理是使用一种特殊的API,让客户机器和服务器进行对话,客户将数据包
(而不是浏览器请求)提交给服务器,服务器代替客户机器与网络进行对话,并且返回
结果。socks的最大优势是,几乎所有的正常TCP/IP程序都可以利用socks5的客户程序"
包装"来使用代理,即使这个程序本来并不支持socks5。由于透明的支持UDP proxy,s
ocks5程序经常被用来让防火墙内的机器使用ICQ等聊天程序。目前最常用的socks代理协
议是socks5。

要使用socks5代理,简单地取回socks5服务程序,例如我们用的是socks5-1.0r4,取
回socsk5-v1.0r4.tar.gz,展开成源代码目录,进入后编译安装:

./configure

make

make install

将会产生/usr/local/bin/socks5程序,启动socks5只要执行这个程序。

socks5的缺省配置文件是/etc/socks5.conf,我们在这里不想对socks5作太多的介绍
,如果你想制作一个对某些客户可以使用的socks代理,参考下面的socks5.conf配置:

permit - - 202.199.248.0/255.255.255.0 - - -

auth - - -

这样就构成了一个对202.199.248.0/24的网络开放的socks代理。使用的时候,只要在
IE的代理服务器的socks代理中添上你的socks5服务器地址就可以了,端口号是(缺省)
1080。

IE/Netscape/ICQ都可以直接使用socks5代理,如果需要让一些不支持socks代理的客
户程序能够使用socks5代理,你需要使用socks的专用客户程序。通常我们的客户机器是
Windows 9X,对应的客户程序是sockscap程序,你可以自己下载这个程序,安装到客户
机器上,使用方法很简单,这里不再叙述。


--
当我越过无尽虚空的时候,我看见星辰的欲望,光荣和毁灭,这是光辉世界的宿命,
一切的一切,最终必将落入黑暗和虚无。
所以,我随着星光飞翔,去逃脱必然的终结,也许有一天,我将回到世界的原初,
等待新的星辰的诞生。
尘埃是星的起源,星的终结。


※ 来源:・BBS 水木清华站 smth.org・[FROM: 202.112.90.20]

Linux Firewall Proxy Howto(中文版)-by(转寄)

发信人: fuse (保险丝), 信区: Linux
标 题: Linux Firewall Proxy Howto(中文版)-by RGB
发信站: BBS 水木清华站 (Wed Jul 8 13:22:16 1998)

发信人: rgb (网上邻居【还在等】), 信区: UNIX_PALACE
标 题: Linux Firewall Proxy Howto(中文版)
发信站: 笑书亭 (Sat Jun 13 14:44:03 1998), 转信

Linux 防火墙-代理 HOWTO

1.导论

 

这篇文章源于David Rudder(email:drig@execpc.com)的Firewall-HOWTO,我是在他的认可
下对其改进的,在此我向他表示感谢.

 

近年来,防火墙在internet安全中得到了极大的青睐.和其他备受青睐的事物一样,随之产
生了许多误解.这篇HOWTO的文章将介绍防火墙,代理服务器的概念及安装.以及防火墙技
术在安全领域以外的应用.

 

1.1 读者反馈

 

欢迎读者各种形式的反馈.请随时指正本文的任何不当之处!!!我非完人,错误难免.但我
会非常乐意修正所有您指出的不当之处.我会尽量回复每一封e-mail,但若因繁忙可能延
迟回复,请见量.

 

我的email地址是: markg@netplus.net

 

[译者注:译文中一定有很多错误是由译者造成,同样欢迎来信指正:
netium@writeme.com]

 

1.2 声明

 

本人不对基于本文的任何行为造成的结果负责.这份文档的本意是介绍防火墙和代理服务
器的工作原理.我不是,也无意装作是一个安全专家.我只是一个爱计算机甚于大多数人的
书虫.写这份文档来帮助人们熟悉这个主题,但并不打算让它来支配我的生活.

 

[译者声明: 我同样不对基于本文的任何行为造成的结果负责. 我只是一个大四的学生,
在翻译本文之前仅对防火墙有最初步的了解, 翻译这份文档是为了让更多的人了解并有
效的使用linux和防火墙,而不打算承担额外的责任]

 

 

1.3 版权声明

 

除非另外声明,linux HOWTO文件的版权属于他们各自的作者.linux HOWTO文件可以被部
分或整体的以任何媒体传播,前提是必须附加此版权声明.也允许和鼓励商业性的散发和
复制,但必须事先通知作者.

 

所有linux HOWTO的翻译,派生文档必须附带此版权声明.即,你不能对任何派生文档附加
任何限制.有些情况可作为例外处理,但必须征得linux HOWTO维护组织
(linux HOWTO coordinator)的认可.

 

简言之,我们希望在保留linux HOWTO版权的同时,以尽量多的途径促进它的传播,并乐于
看到任何的关于linux HOWTO的传播计划.

 

如果有问题,可以联系 Mark Grennan<markg@netplus.net>

 

[译注:译者不是法律专业人员(连法律专业的辍学生都不是:),无意纠缠字里行间的法律
因素,在此附上原文,有任何出入,请以原文为准!

Unless otherwise stated, Linux HOWTO documents are copyrighted by their
respective authors. Linux HOWTO documents may be reproduced and distributed
in whole or in part, in any medium physical or electronic, as long as this
copyright notice is retained on all copies. Commercial redistribution is
allowed and encouraged; however, the author would like to be notified of
any such distributions.

 

All translations, derivative works, or aggregate works incorporating any Linux
HOWTO documents must be covered under this copyright notice. That is, you may
not produce a derivative work from a HOWTO and impose additional restrictions
on its distribution. Exceptions to these rules may be granted under certain
conditions; please contact the Linux HOWTO coordinator.

 

In short, we wish to promote dissemination of this information through as many
channels as possible. However, we do wish to retain copyright on the HOWTO
documents, and would like to be notified of any plans to redistribute the
HOWTOs.

 

If you have any questions, please contact Mark Grennan at <markg@netplus.net>.

]

 

1.4 写作动机

 

虽然近年来在comp.os.linux.*新闻组中对防火墙有了相当多的讨论,我仍然发现很难找到
关于建立防火墙的足够资料. 这份文章早先版本是非常有帮助的,但还不够充分,本文通过
对David Rudder的 Fire WallHOWTO的改进,为使人们能在短时间内掌握建立防火墙所需的
信息.

 

1.5 未完成部分

 

*关于设置客户端的说明.

*为linux找一个支持UDP的代理服务器(译注:现以解决)

 

1.6 深入阅读

 

The NET-2 HOWTO

The Ethernet HOWTO

The Multiple Ethernet Mini HOWTO

Networking with Linux

The PPP HOWTO

TCP/IP Network Administrator's Guide by O'Reilly and Associates

The Documentation for the TIS Firewall Toolkit

 

Trusted Information System's (TIS) 的WEB节点收集了大量的有关防火墙的资料:

http://www.tis.com/

 

我正致力于一个名为"Secure Linux"的计划,在我的站点收集任何关于建立一个安全的
linux系统的资料.如果你对此有兴趣,可以用e-mail跟我联系.

 

 

2.防火墙初探

 

防火墙来自汽车工业上的一个术语,原指汽车上的隔离引擎和乘客的装置,用以在引擎起
火时保护乘客,但并不妨碍驾驶员对引擎的控制。

 

计算机领域中的防火墙指得是用来保护内部网络不受外部网络(整个Internet)非法侵入
的设备。

 

从现在开始,我们把"防火墙计算机"简称为"防火墙",指的是可同时访问内部网
Internet的计算机.内部网络是不允许直接访问internet,反之亦然。

 

内部网的使用者要想访问internet,必须先登录到防火墙,才能进行访问。

 

最简单的防火墙形式是一个连结两个网络的系统。如果你能 *完全信任你的所有用户*,
可以简单地安装一个linux(编译内核时 *关掉* IP forwarding/gatewaying选项开关)
并分配给每个用户帐号,他们便可以登录进来并进行telnet,ftp,读取信件,或进行其它
你所允许的internet访问.根据这种配置,在你的内部网中唯一具有完全Internet连接能
力的是防火墙.而内部网中的其余部分甚至可以不必设置缺省路由.

 

但在此必须强调的是:你能够 *完完全全信任你的所有用户* ----我不推荐这种方案.

 

2.1 防火墙的缺点

 

"过滤型"防火墙很大程度上限制了外界对内部网的访问,因为只有那些没被过滤掉的服才
能接受访问.而对于代理防火墙,外部用户可先登录到代理服务器,再对内部网进行他们所
允许的各种访问.

 

同时,随着各种新网络客户和服务器类型的不断涌现,在使用它们之前,你必须找到控制访
问的新方法.

 

2.2 防火墙的类型

 

有两种类型:

 

1.IP或过滤防火墙---只允许指定的网络传输.

 

2.代理服务器----为你代理网络连接.

 

2.2.1 IP 过滤防火墙

 

IP过滤防火墙运作在网络传输包这一层。它通过对每个包所带的源,目的地址,端口号及
包的类型这些信息来控制对其的传输。

 

这种类型的防火墙相当安全,但缺少跟踪记录手段。它可以有效阻止外部用户的非法访
问,但却不能给你任何信息关于谁在访问你内部网络的公共系统及谁通过内部网络访问
Internet.

 

过滤防火墙是纯粹意义上的过滤器。使用过滤防火墙,你无法做到只让特定的人来访问
你的内部服务器----除非你一下子给所有人(来自同一IP的人:译注)同样的访问权.

 

Linux从核心1.3.x起提供了对包过滤的支持.

 

2.2.2 代理服务器(防火墙)

 

代理服务器允许通过防火墙间接访问INTERNET.一个很形象的比方,你可以先telnet到一
台机器上,再从那里telnet别的机器.唯一区别是代理服务器自动的.当你的客户程序访问
防火墙时,代理服务器启动自己的客户程序,替你传输数据.

 

正因为通过代理服务器复制了所有的通讯信息,它能够记录下所做的一切.

 

对于这种类型的防火墙,最了不起的是,只要配置正确,它们是绝对安全的.它们不会让有些
人通过。 因为这种防火墙没有直接的IP路由.

 

3.防火墙的安装

 

3.1 硬件要求

 

一台16M内存的486-6/DX,并具有500M的Linux分区的计算机.装有两块网卡,分别接到我们
的专有局域网和一个我们称之为"非军事化区(DMZ)"的局域网.同时DMZ可通过一个路由器
连到Internet.

 

这是很典型的防火墙计算机配置.也可以用一块网卡加一个PPP拨号接入Internet的MODEM.
关键在于,防火墙必须具有两个IP地址.

 

现在已经有很多家庭小型局域网,通常有两三台机器组成.这时你就可以考虑把所有的
MODEM装到一台Linux机器(可能是个老式的386),同时连接Internet。这样,在一个人使用
时,如果你有两个modem,可能使连接速率加一倍!
:-)

 

 

 

4.防火墙应用软件

 

 

4.1 可供选择的软件包

 

如果你仅需要一个过滤防火墙,则Linux加上基本的网络包就足够了.

 

你所用的Linux发行包中有可能没有随带一个IP Firewall Administration 的软件包.

 

IPFWADM在 :

http://www.xos.nl/linux/ipfwadm/

 

如果你要的是一个代理防火墙,可能得选下面者之一:

 

1.SOCKS

 

2.TIS 防火墙工具包(FWTK)

 

4.2 TIS 防火墙工具包与SOCKS的比较

 

Trusted Information
System(http://www.tis.com)出品了一系列实现防火墙的软件.其功能与SOCKS基本类似,
但设计策略不同.SOCKS一个程序就完成所有的INTERNET传输功能.而TIS为每个功能提供
了单独的程序.

 


为进一步区别,我们以www和telnet为例来说明.对于SOCKS,我们只需设置一个配置文件
和守护进程,就可以通过防火墙进行www和telnet-----以及其他任何一些你没有被设置
成禁止的访问.但若使用TIS,你得为www和telnet设置各自的配置文件和守护进程.
 
而其他的INTERNET访问仍是被拒绝,直到你专门地为其作了设置.如果你没对某种特定的
功能(比如talk)设置守护进程,可以使用一个"plug-in(插件)"守护进程,但它既不灵活,
也不象其他工具配置起来那么简单。


SOCKS容易编译和设置,而且非常灵活;但如果你想规范内部用户的管理,TIS提供了更好的
安全性.两者都能绝对禁止外部的非法访问.

 

 

 
5.准备Linux

 

5.1 编译内核

 

先对Linux系统来一次'干净'的安装(我使用的版本是Redhat3.0.3,所有实例都基于该版本.)

 

所装的组件越少,系统的后门,安全漏洞就越少.所以只装一个最小的系统就够了.

 

选择一个稳定的内核.我使用Linux 2.0.14 kernel,本文档的描述也基于其上.

 

下一步是用适当的选项编译内核.这时你可能需要参考Kernel HOWTO,Ethernet
HOWTO,及NET-2 HOWTO.

 

这里是'make config'过程中涉及到的跟网络部分有关的选项

 

1.在'Gernal setup'中

 

1.Networking Support-->On

2.在'Networking Options'中

1.Networkfirewalls--> On

2.TCP/IP Networking--> On

3.IP forwarding/gatewaying-->OFF(除非你选择IP过滤防火墙)

4.IP Firewalling-->On

5.IP packet loggin--> On(不是必须的,却不失为一个好主意)

6.IP masquerading-->OFF(我没有涉及该主题)

7.IP accounting--> ON

8.IP tunneling--> OFF

9.IP aliasing-->OFF

10.PC/TCP compatibility mode-->OFF

11.IP Reverse ARP OFF-->OFF

12.Drop source routed frames-->ON

 

3.在'Network device support'中

1.Network device support-->ON

2. Dummy net driver support--> ON

3.Ethernet (10 or 100Mbit)--> ON

 

4.选择你的网络接口卡.

 

 

现在可以开始重编译了,编译后重新按装内核并reboot,启动时Linux会显示你的网卡,

否则你得再去研究其它的HOWTO.

 

5.2 配置两块网卡

 

如果你有两块网卡,多半情况下你要在/etc/lilo.conf中加一条append语句给出它们的中
断号和I/O地址.

这是我的lilo append语句:

 

append="ether=12,0x300,eth0 ether=15,0x340,eth1"

 

5.3 配置网络地址

 

这部分非常有意义。现在你面临着几种选择。显然我们并不打算允许Internet对内部网进
行任何形式的非授权访问,因此也没有必要使用真正的IP地址.有些IP是专门保留供专有网
络使用的.因为IP总是越多越好,而这些保留IP不能在网上流通,恰好适合我们的需要.

 

在这里,我们使用保留IP:192.168.2.xxx,并将它作为以后的例子

 

你的代理防火墙将同时是内部和外部网的成员,使其得以在两者之间传送数据.

 

 


199.1.2.10 __________ 192.168.2.1
_ __ _ \ | | / _______________
| \/ \/ | \| Firewall |/ | |
/ Internet \--------| System |------------| Workstation/s |
\_/\_/\_/\_/ |__________| |_______________|
 

 

即使你采用过滤防火墙,仍然可以使用这些IP,只不过要进行IP屏蔽(IP masquerading).
这时,防火墙在传递包的同时会自动将地址转换成能在internet上流通的"真正"的IP地址.

 

必须把"真"IP分配给连接internet一端的网卡,同时把192.168.2.1分配给内部的那一个.
这将是内部使用的代理/网关地址,最后给内部网的机器分配其他在192.168.2.xxx范围内
的地址(192.168.2.2 到192.168.2.254)

 

我用的是RedHat Linux,为了能在启动时进行网络配置,我在

 

/etc/sysconfig/network-scripts 目录中加入了一个'ifcfg-eth1'

 

文件,该文件在启动时由系统读取,配置网络和路由表.

 

我的 ifcfg-eth1文件:

 

 

 

#!/bin/sh

#>>>Device type: ethernet

#>>>Variable declarations:

 

DEVICE=eth1

IPADDR=192.168.2.1

NETMASK=255.255.255.0

 

NETWORK=192.168.2.0

BROADCAST=192.168.2.255

GATEWAY=199.1.2.10

 

ONBOOT=yes

#>>>End variable

declarations

 

这种脚本语言还可以用来实现MODEM对ISP的自动连接,参见ipup-ppp脚本.

 

如果是用MODEM连接外部网络(internet),则外部IP在连接开始时由你的ISP分配.

 

 

5.4 测试

 

先要检查你的ifconfig 和route,对于两块网卡的系统,ifconfig的结果大致会是这样:

 

 

#ifconfig

lo Link encap:Local Loopback

inet addr:127.0.0.0 Bcast:127.255.255.255 Mask:255.0.0.0

UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1

RX packets:1620 errors:0 dropped:0 overruns:0

TX packets:1620 errors:0 dropped:0 overruns:0

 

eth0 Link encap:10Mbps Ethernet HWaddr 00:00:09:85:AC:55

inet addr:199.1.2.10 Bcast:199.1.2.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0

TX packets:0 errors:0 dropped:0 overruns:0

Interrupt:12 Base address:0x310

 

eth1 Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7

inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0

TX packets:0 errors:0 dropped:0 overruns:0

Interrupt:15 Base address:0x350

 

 

并且,你的route表输出应该是:

 

 

#route -n

Kernel routing table

Destination Gateway Genmask Flags MSS Window Use Iface

199.1.2.0 * 255.255.255.0 U 1500 0 15 eth0

192.168.2.0 * 255.255.255.0 U 1500 0 0 eth1

127.0.0.0 * 255.0.0.0 U 3584 0 2 lo

default 199.1.2.10 * UG 1500 0 72 eth0

 

 

这里要注意:199.1.2.0是在防火墙的INTERNET一方,而192.168.2.0在内部网一方.

 

现在可以试着从内部网ping Internet,我的选择是nic.ddn.mil,这本应是个很好的目标,
事实上却不如我想象的那么可靠. 如果没有回应,再试一下其他没有和你LAN相连的地方,
若还是不行,你的PPP设置一定有问题,你只好再去看看Net-2HOWTO了.

 

接下去,再从防火墙内部 ping 内部网的机器,所有内部网的机器应该互相PING得通,如果
ping不通----NET-2 HOWTO:)

 

下一步,由内部网ping防火墙的外部地址(注意不是192.168.2.xxx).若能ping到, 说明你
还没有关闭IP Fowarding,如果这确是出自你的本意,可以去参考本文中IP过滤的部分章节.

 

现在,试着通过防火墙PING Internet. 还是用前面用过的(le.nic.ddn.mil)[在浙大可以
ping alpha.zju.edu.cn:)--译注], 如果IP FORWARDING是关上的,应该PING不通,否则应
该可以.

 

在开启 IP Farwarding的情况下,如果你的内部网络全部使用 "真" IP,而又无法 ping 通
Internet,但可以PING通防火墙的外部地址,就去检查上一级路由器是否为你内部网络的包
进行路由(可能要你的服务提供者解决).

 

如果你选择保留IP,则不被路由,或者你选择了使用IP屏蔽,则本测试依然适用.

 

现在,你已经完成了基本的设置.

 

5.5 防火墙安全

 

开放不必要的服务往往使防火墙为入侵者敞开了方便之门."坏孩子"们可能侵入并根据自
己的需要修改防火墙的设置.

 

所以首先要关闭所有不用的服务.

/etc/inetd.conf 文件控制着所谓的"超级服务(super server)"。它控制着各种服务的
守护进程,在访问请求到达时启动相应的服务.

 

一定要关闭netstat,systat,tftp,bootp,finger.为关闭某项服务,只须把相应的行最前面
用#注释掉即可.改好后,向inetd进程发一个SIG-HUP信号,即键入命令"kill -HUP <pid>",
<pid>是inetd的进程号.该命令使得inetd重新读入配置数据(inetd.conf),并重新启动.

 

telnet防火墙的15号端口,这是NETSTATE的端口,如果你仍然得到了 netstat的输出, 说明
inetd没有正确读入修改后的设置.

 
 

6.安装IP过滤防火墙(IPFWADM)

 

在开始之前,要打开内核的IP forwarding,启动你的系统能够转发所有你发出的数据, 再
配好你的路由表,保证内部网和外部网之间就畅通无阻了, 但我们是要做的是建立一个禁
止任意的访问的防火墙.

在我的系统里,我为防火墙的forwading(包递交)和accounting(包记帐)策略各建立一个脚
本文件。加入/etc/rc.d的脚本文件中, 启动时由系统自动调用.


缺省情况下,linux kernel的 IP forwarding 功能是完全开放的(是网关:译注)

因此你的防火墙脚本应从规定拒绝所有访问开始。

 

#

# setup IP packet Accounting and Forwarding

#

# Forwarding

#

# By default DENY all services

ipfwadm -F -p deny

# Flush all commands

ipfwadm -F -f

ipfwadm -I -f

ipfwadm -O -f

 

好,现在我们有了一个超级防火墙,它拒绝所有的访问,当然你还是需要一些服务的,可以
参考下面几个实用的例子:

 

# Forward email to your server

ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25

 

# Forward email connections to outside email servers

ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535

 

# Forward Web connections to your Web Server

/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80

 

# Forward Web connections to outside Web Server

/sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535

 

# Forward DNS traffic

/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24

 

你或许对统计流量最感兴趣,下面的脚本就是用来统计包的.可以为每记帐.

# Flush the current accounting rules

ipfwadm -A -f

# Accounting

/sbin/ipfwadm -A -f

/sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0

/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24

/sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0

/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24

 
 

如果你决定只要包过滤放火墙,可以到此为止了. :-)

 

 

7.安装TIS

 

7.1 获取TIS

可从 ftp://ftp.tis.com/ 下载. 别重复我犯过的错误. 好好读一下那里的README文件.
TISfwtk是放在一个隐含目录中的.TIS要求你向fwtk-request@tis.com发信申请,信的正
文只写SEND,不用写标题,在12小时内,你将会得到系统自动答复,即包含fwtk源码的隐含
目录名称.

 

我得到的TIS是2.0(beta)版,编译没问题(一点exception),工作的也很好.下面的描述都
基于该版本.当他们发布正式版时,我将更新这份文档.

 

安装FWTK前,先在你的/usr/src目录下建立一个fwtk-2.0目录.把FWTK (fwtk-2.0.tar.gz)
copy到目录下并解压 (tar zxf fwtk-2.0.tar.gz).

 

FWTK本身不支持对SSL web的代理,但有一个addon,作者是Jean-Christophe Touvet.可从:

ftp://ftp.edelweb.fr/pub/contrib/fwtk/ssl-gw.tar.Z

下载.Touvet不对其提供技术支持.

 

我这里用的是一个经过修改,能够支持Netscape secure news servers的版本,作者是:

Eric Wedel.站点是:

ftp://mdi.meridian-data.com/pub/tis.fwtk/ssl-gw/ssl-gw2.tar.Z.

 

 

安装时在/usr/src/fwtk-2.0目录下建立一个ssl-gw目录就可以了.在编译之前,要对代码
作一些改动.

 

首先是ssl-gw.c少了一个include文件,在其中加入:

 

#if defined(__linux)

#include <sys/ioctl.h>

20090112

[合集] MySQL创始人提醒使用MySQL 5.1仍需谨慎 zz(转寄)

发信人: boyli (sky), 信区: Database
标 题: [合集] MySQL创始人提醒使用MySQL 5.1仍需谨慎 zz
发信站: 水木社区 (Fri Dec 26 12:55:04 2008), 站内

☆─────────────────────────────────────☆
kabbesy (Arthas) 于 (Wed Dec 24 00:01:03 2008) 提到:

[转]MySQL创始人提醒使用MySQL 5.1仍需谨慎
2008-12-01 19:28:16 分类:数据库 | 浏览(206)
历经3年的开发,MySQL 5.1总算前几天得以发布,没料到才过两天,MySQL的创始人之一Monty就对新版的MySQL的质量提出了严重的质疑,而且例举了非常详细的理由,这对于MySQL 5.1的应用可谓非常不利。前段时间有传闻说Monty可能会离开Sun,虽然目前事实没有发生,但现在看来Monty与MySQL团队目前的关系确实比较紧张。

Monty建议,如果你正在用MySQL 5.0,想换成5.1但不打算用5.1中的新功能,那么必须进行充分的测试和试运行,最好是等5.1再发布几个更新修正版后才用。如果你想用5.1中的新功能,你最好认为这些新功能的质量只能算beta水平,因此每用一个功能之前都必需仔细测试。如果从来没有用过MySQL的话,可以直接用5.1,因为5.0版毕竟已经too old了。

Monty说5.1的质量并不令人满意,比如说目前仍然有50多个将导致系统crash或产生错误结果的bug、近200个P2优先级的bug和300多个一般的bug未被处理。Monty例举了一些他认为比较严重的bug,接下来对5.1中的新功能的质量一一进行了分析,结果表明这些新功能目前也都还有严重的问题。比如分区有20个左右的bug,存在对分区表进行ALTER TABLE操作时系统crash会导致数据丢失并且通常无法repair、重命名失败时也会导致数据被破坏等严重问题。行级复制则有近30个已知bug,其中最严重的是UPDATE主键将导致行级复制失败(这个问题确实太严重了)问题。其它如Event也有会导致死锁的问题,日志表功能则会导致数据库性能严重下降,以致于官方的公告里都不好意思把这点说出来。

Monty认为导致MySQL 5.1质量不能令人满意的原因并不是因为MySQL的开发团队不够努力,而是很多策略上存在问题。在我看来,MySQL 5.1所范的这些策略性失误对于很多软件开发公司来说都有很好的借鉴意义:
1、MySQL 5.1早早的就标上beta和rc标志,官方这样做是想吸引更多的人来试用5.1(tmd我们一开始还真的被骗,在06年的时候看到5.1已经是beta了,以为马上就会出正式版,所以直接就用了5.1,不过不到三个月发现5.1不行又回退到5.0)。这一策略不怎么成功,但却导致了早在06年5.1的特性就被过早冻结,无法进行大的调整;
2、决定什么时候发布5.1不再取决于产品的质量,而是出于营销的需要。MySQL管理层要求5.1在这个时间发布那就得发布,因为标上GA总比RC好推销,所以在发布5.1时,根据就没有按照既定的发布策略行事(按MySQL的发布策略,GA版应该没有已经的严重问题才能发布);
3、核心MySQL开发人员被分到很多小组里,只有很少的核心开发人员在完善5.1的质量,反之,这项工作被交给了太多的对系统一知半解的新开发人员,在review的流程上又出了问题,这导致修复一个bug经常带来更多的bug。(这点我深有体会,我们报上去的一个bug,负责处理的开发人员明显是个新手,我们已经把问题描述的很清楚了,这位老兄硬是很久才明白问题的实质原因)
4、QA很晚才开始做,结果后来QA发现的问题被迫被无视,因为要修正这些问题的话将严重拖延5.1的发布时间;
5、MySQL开发团队对bug的优先级有一条很奇怪的规定:很早就被报告的bug优先级比较低,因为他们认为大家都知道有这个bug,会避道而行。这导致那些早早就发现的bug迟迟不会被修复。

通常来说,Sun的大部分产品都有一个独立的发布标准委员会来决定产品的质量是否达到RC或GA的标准,因此Sun的产品品质一般都不错,但对MySQL却没有采用这一策略。这次发布5.1 GA是觉得现在的5.1质量已经比当年的5.0 GA质量好得多了,因此就发布了,很奇怪的逻辑。

Monty说这次的失误并不是Sun的过错,主要是MySQL的遗留问题,MySQL的发布策略一向很糟糕,5.0刚发布的时候质量还要差。希望Sun能够帮助MySQL团队解决这些问题。

总之,对使用者来说,看来目前还不是把MySQL 5.1应用到正式产品环境中去的时候,至少等仔细看看Monty文章里例举的那些bug,看看哪些确实有危险,然后等待这些bug都被fix之后再用吧。

附英文原文

Oops, we did it again (MySQL 5.1 released as GA with crashing bugs)
MySQL 5.1 is now released as "GA".

http://monty-says.blogspot.com/2008/11/oops-we-did-it-again-mysql-51-released.html


☆─────────────────────────────────────☆
kabbesy (Arthas) 于 (Wed Dec 24 00:01:19 2008) 提到:

orz

难得把分区搞出来了居然还有这bug

【 在 kabbesy (Arthas) 的大作中提到: 】
: [转]MySQL创始人提醒使用MySQL 5.1仍需谨慎
: 2008-12-01 19:28:16 分类:数据库 | 浏览(206)
: 历经3年的开发,MySQL 5.1总算前几天得以发布,没料到才过两天,MySQL的创始人之一Monty就对新版的MySQL的质量提出了严重的质疑,而且例举了非常详细的理由,这对于MySQL 5.1的应用可谓非常不利。前段时间有传闻说Monty可能会离开Sun,虽然目前事实没有发生,但现在看来
: ...................

☆─────────────────────────────────────☆
diogin (design universe...) 于 (Wed Dec 24 00:12:54 2008) 提到:

所以还是老老实实用 5.0。。

实际上分区和事件调度都可以在应用程序层做,所以倒也不是那么急迫。

【 在 kabbesy (Arthas) 的大作中提到: 】
: orz
: 难得把分区搞出来了居然还有这bug


☆─────────────────────────────────────☆
kabbesy (Arthas) 于 (Wed Dec 24 00:16:39 2008) 提到:

表分区还是非常非常重要的
应用层hash实在是不方便

事件调度实属mysql本职工作做不好,拿来凑数的

【 在 diogin (design universe...) 的大作中提到: 】
: 所以还是老老实实用 5.0。。
: 实际上分区和事件调度都可以在应用程序层做,所以倒也不是那么急迫。


☆─────────────────────────────────────☆
diogin (design universe...) 于 (Wed Dec 24 00:20:47 2008) 提到:

单机分区的好处是隐藏了下层的物理分区,但其实做分区的目的还是减少单表的大小、
提高并发效率,以及降低单节点的负载。如果考虑到了这点(特别是第二点和第三点),
则大部分高流量站点可以直接把表的shard 分布到各个节点去,这样来模拟分区,同时
还避免了单机无法伸缩的缺点。

【 在 kabbesy (Arthas) 的大作中提到: 】
: 表分区还是非常非常重要的
: 应用层hash实在是不方便
: 事件调度实属mysql本职工作做不好,拿来凑数的
: ...................

☆─────────────────────────────────────☆
kabbesy (Arthas) 于 (Wed Dec 24 00:48:47 2008) 提到:

业务层是可以人工shard,但这就会将数据集可视性给永久的缩小(全表->子表)

db层如果能shard,那是最好的
首先子表的查询性能得以保障(原理上跟应用层shard一样)
同时又可以为一些全表检索提供支持(比如一些olap类操作,应用层shard之后就没法做这种事情了)

Hibernate就有个项目,叫做Hibernate shard,在应用层做分区
原理基本是上述的,但相对于db层就太幼稚了,orm太贪心了一些……

【 在 diogin (design universe...) 的大作中提到: 】
: 单机分区的好处是隐藏了下层的物理分区,但其实做分区的目的还是减少单表的大小、
: 提高并发效率,以及降低单节点的负载。如果考虑到了这点(特别是第二点和第三点),
: 则大部分高流量站点可以直接把表的shard 分布到各个节点去,这样来模拟分区,同时
: ...................

☆─────────────────────────────────────☆
haili (砍头*沽之哉) 于 (Wed Dec 24 11:54:45 2008) 提到:

我总是要串出来说一句,其实还好,如果你的应用不会碰到bug,那么还是
非常非常稳定的(我有一台5.1.19 beta的生产服务器,正常运行了7个月,升级到
5.1.26rc,继续正常到现在)。
btw,分区alter table导致crash甚至无法修复表的bug?
没注意到这个,肯定是有省略。

当然bug是真有,我现在还需要避免一个udf的bug,如果定义的udf对应的.so
文件变了,没有重启服务器直接再定义.so的新函数,服务器立马crash。

最新的bzr branch出来的code中还是有这个bug。
【 在 kabbesy (Arthas) 的大作中提到: 】
: [转]MySQL创始人提醒使用MySQL 5.1仍需谨慎
: 2008-12-01 19:28:16 分类:数据库 | 浏览(206)
: 历经3年的开发,MySQL 5.1总算前几天得以发布,没料到才过两天,MySQL的创始人之一Monty就对新版的MySQL的质量提出了严重的质疑,而且例举了非常详细的理由,这对于MySQL 5.1的应用可谓非常不利。前段时间有传闻说Monty可能会离开Sun,虽然目前事实没有发生,但现在看来
: ...................

☆─────────────────────────────────────☆
Nineteen (古难记录者) 于 (Wed Dec 24 21:11:47 2008) 提到:

所以说还是用Oracle/MS SQLServer之类的商业数据库比较保险

【 在 haili (砍头*沽之哉) 的大作中提到: 】
: 我总是要串出来说一句,其实还好,如果你的应用不会碰到bug,那么还是
: 非常非常稳定的(我有一台5.1.19 beta的生产服务器,正常运行了7个月,升级到
: 5.1.26rc,继续正常到现在)。
: ...................

☆─────────────────────────────────────☆
mpyu (猫扑老于・Chicyu) 于 (Thu Dec 25 09:12:27 2008) 提到:

sqlserver也配和oracle平起平坐?
【 在 Nineteen (古难记录者) 的大作中提到: 】
: 所以说还是用Oracle/MS SQLServer之类的商业数据库比较保险


☆─────────────────────────────────────☆
haili (砍头*沽之哉) 于 (Thu Dec 25 09:56:48 2008) 提到:

其实还好,大部分都是已知问题。

此外,如果产品要进入中低价位市场,或者需要HPC环境时,商业数据库/OS的价格
就太高了。
【 在 Nineteen (古难记录者) 的大作中提到: 】
: 所以说还是用Oracle/MS SQLServer之类的商业数据库比较保险


☆─────────────────────────────────────☆
Nineteen (古难记录者) 于 (Thu Dec 25 13:26:34 2008) 提到:

东西不烂,只有用的人烂不烂。

【 在 mpyu (猫扑老于・Chicyu) 的大作中提到: 】
: sqlserver也配和oracle平起平坐?

☆─────────────────────────────────────☆
mpyu (猫扑老于・Chicyu) 于 (Thu Dec 25 13:38:56 2008) 提到:

东西就是个破烂
向着这垃圾说话的人也是个烂人

【 在 Nineteen (古难记录者) 的大作中提到: 】
: 东西不烂,只有用的人烂不烂。


☆─────────────────────────────────────☆
haili (砍头*沽之哉) 于 (Thu Dec 25 13:49:36 2008) 提到:

这话说的

btw,SQL Server 2000似乎就已经是个过得去的产品了。
当然,内部的细节真的是只有折腾过很久的人才会有体会,有些是公用的
有些不是。
【 在 mpyu (猫扑老于・Chicyu) 的大作中提到: 】
: 东西就是个破烂
: 向着这垃圾说话的人也是个烂人


☆─────────────────────────────────────☆
mpyu (猫扑老于・Chicyu) 于 (Thu Dec 25 13:53:05 2008) 提到:

"置疑" 怎么解决?

【 在 haili (砍头*沽之哉) 的大作中提到: 】
: 这话说的
: btw,SQL Server 2000似乎就已经是个过得去的产品了。
: 当然,内部的细节真的是只有折腾过很久的人才会有体会,有些是公用的
: ...................

☆─────────────────────────────────────☆
haili (砍头*沽之哉) 于 (Thu Dec 25 14:28:45 2008) 提到:

听不懂,有具体示例吗?可能会有人回答你
【 在 mpyu (猫扑老于・Chicyu) 的大作中提到: 】
: "置疑" 怎么解决?

华为敏捷项目管理zz(转寄)

发信人: gentboy (枕头包 | 我是怪蜀黍), 信区: Java
标 题: 华为敏捷项目管理zz
发信站: 水木社区 (Mon Jan 12 17:27:52 2009), 站内

关于华为敏捷项目管理

IPD � 集成产品开发,华为花重金从IBM购买的一套产品集成开发流程,业界有一本书,PACE讲的就是这一套IPD流程,而IPD并不去讲你的开发要怎么做,IPD做的就是"投资决策、市场驱动",更多的是决定做不做这个事情,做这个事情对于投资人员是不是受控的,所以在IPD里面会有DCP点(决策评审点),每个点上都会去考虑该不该做、值不值得去做,在引入这个东西以前,华为实际上是技术驱动的,并不是市场驱动的,就是说以前华为听说有个新技术,然后就开始做,做了很多这样的东西,但是后来都卖不出去,所以后来就引入了IPD,以市场驱动。在引入IPD后,是解决了做什么的问题,但是怎么做,还是按照自己的想法去做,后来就引入了CMM,引入CMM后对华为确实起了非常大的作用,其产品开发的质量确实是比起前提高了,所以在前几年,通过IPD+CMM使得华为走向了一个非常成熟的过程。在这个基础之上,关于质量管理、项目管理华为提出一些自己的体系,比如从项目的开始到项目的结束,有项目review、度量分析、根因分析、缺陷预防等一系列活动,在项目管理方面有风险管理、问题跟踪管理等活动,同时还会有质量审计以及相关的推动等事情,通过这些项目管理和质量保证使得IPD和CMM很正常的运作下去,但是现在行业已经发生了一些变化,比如需求变化快等方面华为也碰到了一些问题,以前产品质量是可控的,大多数产品的发布周期也是稳定的,比如对客户承诺什么时间提交产品基本上是有保证的,另外项目在管理层的进展也是非常清晰化的,你在向某某领导汇报的时候只用告诉他比方项目到了SRS阶段了,基本上这个项目的老大就知道这个项目还有多少事情需要去做,比如告诉他到单元测试阶段了,他就知道快搞定了,这样确实使得这个进展能够口头化。其实,流程存在的价值,就是能够给我们的管理层提供进展的可视化,所以从目前来看,对于客户、员工、管理层这三个利益相关人来讲确实达到了这样一个目的。

但是现在行业中,需求变化太快,不管我们怎么努力去做,发现还是不能满足客户的需要,不管需求搞得多么细,到交付产品给客户的事情,总是有这样那样的问题,这个时候就不得不去修改我们的软件,这是华为面临的一个挑战,如何解决这个问题?

软件开发中有三个要素:人、过程、技术和工具。对于一个软件项目成功来说,这三个要素都不可省,而在以前大家强调IPD和CMM,更多的是强调大家规范的把它运作起来,对于人、技术和工具基本上不提了,忽略了,所以后来就反馈出一个问题,就是很多项目,看起来那个过程做的那个漂亮,那个报告写得那个完美,但是交出去的产品那个烂,其实这三个因素是缺一不可的,你必须得均匀的发展,还有一个是人的方面,因为人是具备创造能力的,所以从华为的教训给我启发,过度的关注过程而忽视人、忽视技术和工具,我们就得要思考和反省了。

针对这些问题,华为也就提出了敏捷。华为在99年之前基本上都是土生土长游击队的做法,到了2001年的时候就引入了IPD和CMM,到2006年的时候,就发现了瀑布模型的问题,如交付周期特别长,就是每做一个客户的需求,然后一分析,这样一走半年就过去了,所以就引入了RUP,最初的想法就是加速我们项目的交付周期,能够快速的给客户响应,但是敏捷实际上已经进入了一个低谷期,所以当时就引入了迭代,实施了一年之后也发现,RUP里面的东西实际上也是挺多的,所以后来就接触了XP、SCRUM这些方法,这样就从07年开始向敏捷这个方向在走。

有一个图在业界流传比较广泛,也叫洋葱图,共分三圈,也就是从三个不同层面描述了敏捷开发方面的一些最佳实践。XP为什么叫极限编程?如果你觉得这个软件开发的实践是一个好的实践,那么你就把它发挥到极致。比如,结对编程,一个在编,一个人在看,实际上看的人不会白看,其实起到了一个review的作用,既然review这个作用有效,那么为什么不把这个作用发挥到极致,所以就采用了结对编程将review这个作用发挥到极致。在敏捷中有一个8个字的原则:沟通、反馈、交流、勇气。它认为项目团队中的成员这个沟通是比较重要的,既然你非常重要,那么我也要把你发挥到极致,所以两个人一起在干活的时候就会不停的有交流与沟通,所以,结对编程是一个典型的把review、沟通交流发挥到极致的实践。另外,TDD也可以认为是那刚好够用的事情发挥到极致。我们以前传统的软件开发的做法是,先做好这个软件,然后去测,看看是不是实现了这样一个功能,但是我们总会发现这里面有很多代码其实是从来就没有用过的,只是在下代码的时候顺手就把它写了,在分析那些产品的时候发现有的产品这样的没用到的代码高达50%,而TDD的思想是,我既然要实现什么功能,然后我就先写对应的用例来验证它,然后在开发的时候就开始写代码,使得这个用例刚好通过,这样就使得我们写出来的代码是刚好满足这个系统的功能的代码,这样,前面出现的50%就可以不用做了,这就是把刚好够用发挥到极致。其他的就不一一讲了。XP在2001年到2003年之间非常的红火,过了之后又相对的沉寂了一点,现在又冒出来一个新的敏捷的方法论,就是SCRUM。XP是过分的强调将软件开发里面的实践发挥到极致,而这些实践都是同编程实践相关,但是在管理方面就比较弱,所以,在用了几年之后,大家发挥XP不是起到那么大的作用,所以就开始沉寂下来。这个时候就出现一个流派,就是SCRUM。SCRUM其实就是一个非常非常轻量的项目管理框架,基本上没有什么编码实践方面的东西,你说看到的都是管理上的活动,这个管理上的活动很多人就会有一种似曾相识的感觉,记得前不久,同华为的一个项目团队在聊,就谈到这个项目的backlog,一讲,项目团队的人就说其实他就是那样子做的,他以前也没与听说过什么SCRUM,就是把这些需求一条一条的列出来,镍镉优先级,估个工作量,一看,就是这个东西。SCRUM的核心其实比较简单,2分钟就能讲出来,就是3个3。一、3个角色。Product Owner,负责决定产品要做什么,做成什么样子;SCRUM Master,保证项目能够遵循SCRUM的方式运作下来;项目团队成员,包含开发、测试、质量等等所有的人。二、3种会议。迭代的计划会议、中间的站立式会议、迭代的评估会议,属于三个管理的活动。三、3个交付件。待开发的任务列表、待修复的缺陷任务列表、项目的进度图。SCRUM就是通过这3个3将项目非常简洁的管理起来,有一个思考就是关于PMP里面讲到的9大领域多少活动不一定对这种敏捷项目适用。那么大家可能提出一个疑问,就是项目的进度是不是就不可视了。其实,敏捷项目的进度可视很简单,就是通过一个白板(进度墙、任务看板),将每个人的进度情况这么一贴,这就是最简单最直接的管理方式,一看,所有人都知道,就算你去开发一些什么复杂的一些IT支撑系统,可能都起不到这个白板的作用。在华为关于敏捷的一些项目管理工具,用Scrumworks、Bingo这些管理工具也能够把项目的进度管理起来,但是你要做的就是必须得把电脑打开,要把浏览器打开,这样才能看到你的进度是什么样子的,而在办公区直接树一个白板就能够很简单、很方便的知道我的这个进度情况。所以,在华为,对于敏捷项目,管理的框架上是采用的SCRUM,指导如何编码实现上就采用了一些XP的实践,当然XP的实践不会全部去选,会根据项目的实际情况去选一些实践,如果你把所有实践都选的话,实际上的效果是非常差的。那么如何来选择就得根据项目的实际情况去评价。华为在实践的过程中也引入了精益、消除浪费的思想。比如,在平时的工作中存在停工等活的浪费。什么是停工等活的浪费呢?比如我们开发在做开发的时候,我们的测试就会轻松一点,那么测试在做测试的时候我们的开发就会轻松一点,大家觉得这样也挺好的,但是你从整个组织角度去分析,实际上是停工等活的,开发时测试在等着,测试时开发在等着,如果你从精益的角度考虑的话,为何不通过迭代的方式把开发和测试等待的时候整合在一起来工作,使得效益得到提升。有很多项目团队自己去做了,确实效果比较明显。其实在2006年实践RUP的时候就感觉到这样的好处了是非常明显的。引入敏捷之后,自然而然的就会想到同公司已有流程之间的关系,原来是IPD+CMM,所以就有同事问到是不是我这个就不用了。分析可以知道,IPD是决定做不做,决定之后如何去做就可以采用敏捷开发,所以对于敏捷产品的流程就是IPD+敏捷的方式,所以有很多以前采用瀑布型的团队逐步的被敏捷代替了,还有些团队正在代替中,还有些团队就觉得原来那套玩得很流畅就继续采用原来的方式。所以目前在华为,项目团队是可以自己来选择采用哪种方式进行,现在可以发现,那些愿意选择敏捷方式走的往往就是原来那些顽固不化的烂项目,因为以前在推流程的时候,那帮人整天在那里叫,有问题,我不干,我不愿意做,实际上,后来做深入分析发现,他的那种模式并不适合按照瀑布型去做,但现在成了积极分子,所以每个项目的模式是不一样的。

在做敏捷的时候也存在一些容易做的事情和不容易做的事情。比如说SCRUM的项目管理是比较容易去实践的,就是3个3,对于那些想敏捷的,我建议可以先做这个,还有也会做一些结对编程、持续集成的实践。比较难的,有这么几点。华为从99年开始都是按照开发、测试等团队去运作的,团队与团队之间就会形成部门的墙(华为有一个外籍员工给起了一个名字叫Chinese Wall),对每个部门来说,希望把这个墙树高一点,这样能获取更多的资源非常顺利的开展工作,所以墙就会越树越高,很多部门甚至还有checklist,你只要给我什么东西,我就按照checklist打勾,打勾不通过的就要干啥干啥,这样通过约束管理层,罚款的制度就来了,而这个问题就很难搞,涉及到很多很多的人员,涉及到部门角色定位的问题,这是华为觉得最难的一点。第二难的问题就是TDD,在很多项目都试过,但是试过之后,很多项目都无疾而终,或者诉苦说这个我实在搞不下去,分析后发现,是涉及人做事情方法的改变,这个挺难的,以前写代码都是边想编写,就能写出来,现在你就得先想好、验证好等等,然后再想办法填进去,就发现这个很难,这是一个开发习惯的改变,这也是很难的一件事情。第三个,就是Customer Tester,就是要客户参与验证,可能对于互联网企业可以部署一个系统,用户参与测试就可以做起来了,但是对于华为而言,客户是电信企业,而电信是买方,买了之后再供他们的客户去用,这个里面客户就存在好几层,所以要客户真的参与进来还是比较难的。第四点,也是很难的,我们有一个团队,要到各个团队去宣传为什么做敏捷,这涉及到观念的转变,所以这也是非常难的事情。(一夜的引入,长时间的改变。)比如你说你这个团队敏捷了,明天就开始站立式会议,但是你最后会发现,要真正敏捷实际上是一个漫长的过程。

在华为实施敏捷的过程中,也有一些经验性的东西。第一个是QA从警察的角色转变到一个教练的角色。在以前,团队实施CMM的时候,QA更多的是一个警察的角色,他整天拿着一个checklist、报告什么的到处去团队里面看,你是否ok,不ok就要怎么怎么样,整天就干这个活,但是引入敏捷之后,QA就觉得有点失落,都敏捷了,我都不知道该怎么下手了,然后,在华为,就把QA转变了一下,将QA更多的充当教练的角色,充当SCRUM Master的角色,他去指导项目团队该如何去开这个站立式会议,该怎么去做迭代的计划等等指导性的工作,这样QA也觉得挺好,这样他能参与到在不同的团队中去,这样他见得也多,所以在敏捷的实践里面是需要这么一些人来干这么一些事情。第二个就是要营造一个一体化的团队,也就是将所有有墙的部门通通打掉,直接按照项目型运作,把大家拉到一起,不要考虑你原来是什么部门,先把项目做出来再说,这就是在XP的外圈中的Whole Team实践,因为大家就真正是一条船上的。在很对项目中,总是存在这样的一些人,项目成功不成功对他们是无关紧要的,但是有些人项目不成功对他们是非常重要的,而真正的敏捷项目就要这些人来挂帅,并且这些人是站在一条战线上的,所以就叫拉到一体化的团队里面来,大家都对交付负责。第三个就是办公环境最好也能够随着改变。以前大家都是那种小格间的方式,但是这种方式是非常不利于做交流和做项目的。第四个就是现身说法。前面讲到有很多这样的人会到团队中去说敏捷怎么怎么好,但是如果你让一些对项目成功不成功都不相关的人去讲是没用的,因为大家一听,首先就会质疑50%,所以华为当初经常搞的活动就是让项目经理他们在讲,将他们当时是怎么开展敏捷的,这样别人一听才能理解到原来你是这么这么做的。

zzfrom:http://www.javaeye.com/topic/313741
--


wo有避雷针,你们雷不到我~~ �

__________________________________________________________________________田田_


※ 修改:・gentboy 于 Jan 12 17:29:06 2009 修改本文・[FROM: 210.13.85.*]
※ 来源:・水木社区 newsmth.net・[FROM: 210.13.85.*]

20090111

笑笑

发信人: vivien2009 (2009了啊), 信区: FamilyLife
标 题: Re: 抛妻弃子 另寻新欢
发信站: 水木社区 (Sun Jan 11 11:00:43 2009), 站内

我的梦想就是成立一个全部由女人组成的星球
需要男人的时候从别的星球上运过来,用完了就送回去

【 在 yaya1987 (yaya) 的大作中提到: 】
: 靠!都是些什么男人了!为这种男人做贤妻良母,真够浪费的!看来女人永远要独立!靠男人
靠不住!!!

20090106

好图

哈哈春图

20090105

我的龌龊事(转寄)

发信人: omm (离群索居者,不是野兽,就是天神。), 信区: Mentality
标 题: 我的龌龊事
发信站: 水木社区 (Fri Jan 2 00:45:42 2009), 站内

我的龌龊事

看到外头灯红酒绿,美女穿梭,到处都是快捷酒店,也想尝试一下放纵的快感。没去过酒吧,只能从网络着手了。我在网络上瞪大了绿色的眼睛,平时的衣冠楚楚,文卫尔雅不过是我的画皮。我老练的像个嫖客。

周五晚上。我先在几个一夜情网站上注册了帐号,许多地方都要收钱,免费的没什么效果,直到现在我也没收到什么信息,放弃。一边看黄***页一边和网上的各种女的接触,试探着。时间过的很快,聊天室里到处是寻找一夜情的男人,和出卖肉体以换钱的女人。玩的很晚也没找到一个人,自己累的够呛,早上醒的很早,寻思还有一个白天,只要能找到愿意跟我见面的就有戏。

周六上午。昨晚下的几个A片看完时已经到中午,昨天玩的太晚也没睡好,头有点痛。看着镜子里蓬头垢面身体疲惫,我感觉或许约束并不是坏事。但我还是决定继续做坏人,把自己内心邪恶欲望释放出来。洗了个澡,出去吃了个饭,我色迷迷的打量过往女人,或端庄,或可爱,或性感,我想女人的终极表现一定是在床上。可惜都与我无缘,我打扮的这么酷,顾影自怜的想。

周六下午。继续奋战。好不容易一个女的答应跟我出去看电影,我想黑乎乎的,如果再玩晚点就容易拿下了。我查好了电影院,怎么问她电话都不肯说,最后觉得不去了。还跟我视频一会(我没摄像头),是个傻乎乎的叛逆女,宁肯再网吧上网也不去出去。我让她给耍了。这时已经到了快5点。聊天室里有许多兼职女,我好奇的打开他们的空间看了一下,果然很诱惑。但我并不想付出金钱,也不想冒无谓的风险,总之这时我的原则是:绝不PJ。

周六晚上。我觉得真的很疲惫了,嗓子也很干。我喝了点水,出去吃饭。在路上看到一个黄头发的美女跟一个人告别,朝小区走去,我真的有一种上去搭讪的冲动。但我最终克制住了,我想女人才是上帝最完美的作品,但一对一的婚姻制度束缚了男人的天性。所以出轨得背负沉重的道德枷锁。我返回住处,继续在网上搭讪。一个女的一上来就问我年龄,职业,很快就答应跟我见面,地点在德内大街九门小吃。可怜我想女人想疯了,立刻想过去。忽然想到她不会是酒托吧?一查地点刚好在后海那块,再一搜手机号,果然是酒托,已经有人上过当了。色令智昏,我差点做一个多小时公车跑到那,再被骗了钱跑回来。。。

周六晚上10点。我在网上搭讪了几个兼职女,她们发的照片还挺诱惑的,而且是在自己家,安全应该有保证。我开始动摇了,但还是不敢。时间快到11时,遇上一个女的,刚好跟我在一个小区,主动问我做不做。说先电话***,然后见面做,主动发了个照片---应该是在网上找的,看着面熟。我当然答应了,寻思是不是时来运转了。11点过果然来发短信过来了,说让我打过去。我打过去就是沉默,感觉不对,就挂机,然后她又来个短信说让我直接说就可以。我就说了些肉麻的话,然后还是沉默。后来信号不好,她就挂了。后来干脆就短信***---这个词不知道用的对不对,估计你们也能理解。做完了一会,我再打过去,居然关机了!GOD,我又被耍了。-----从始至终,对方是男是女,我都不知道。而且我很不理解她这么做的目的,不理解这样的短信能带来什么快感,还不如直接去看***。我有些气愤,有些懊恼。后来看A片手了一次。实在太累了,据说明天要降温,我就睡了。


周日上午10点才醒,我起来继续聊,感慨如果这么干事业肯定成功。许多人的性冲动我不知道是怎么疏导的,我性格偏内向,有时候热闹的场合不太适应。我喜欢孤独,喜欢一个人呆着。但又怕孤独,希望和别人一起,这种诉求就反映在性上。我想找个能一起享受性的人,但并不希望影响各自的生活。我感觉自己是天使和魔鬼的混合体,孤独一个人的时候,魔性就开始复苏,主导了我的思维。有时候真的感觉自己是两个人,期望自己像日剧的ZYR,白天是猥琐的孬种,晚上就是风流的侠士。从这种角度,我试图认识真正的自己,去掉伪装的自己。

中午忽然有个女的跟我说,下午一起出去玩吧,我想可能有戏。互发了照片,感觉还可以,就答应了。我中午匆匆吃了点饭就去搭车,花了将近一个小时到了指定的地点。那个MM见了面,什么都没说,就直接领我上楼。我寻思,不会是遇到JP***,直接去她家吧。一开门,我靠,慢屋子人!原来是一个集会。我想我一个大小伙子还怕你吃了我不成,就坐了下来。听了一会才明白,某品牌的卫生巾在搞销售,招代理。主持的MM在上头说:早上好(明明下午了)!下面一堆托喊:非常好!我想莫非这就是传说中的非法传销?那个MM明显跟他们是一伙的,我想又被骗了,真是没有免费的午餐。我走出去的时候,恶狠狠瞪了她一眼。我特地记下了房间号,考虑要不要报警。后来想算了,混口饭吃不容易。我从大厦里出来,外头阳光耀眼,冷风刺骨。

我记了一个兼职女的手机号,跟她打电话,刚好有空。我决定去,在路上买了一盒安全套。想着接下来要发生的事,我不由得面红耳热,心蹦蹦的跳,这种感受在我见到她,把她搂在怀里的时候是没有的。我想所谓偷情不如偷不着就是如此。那是一个温馨的小房间,她的相貌和照片有很大的出入,如果真实些我是不会来的,身材也不好。但箭在弦上。我洗完澡,抱着亲了她一会。然后她说我来吧。她就开始亲吻我的耳朵,伴着额的声音,我立刻就勃起了。然后亲我的乳头,很有力,我感到前所未有的快感。然后她开始KJ,她的手很有力,在她用胸挤压我的阴茎的时候,我实在忍受不住了,射了出来。之前我有几次性经验,相当有限,而且昨晚手过。但发生这样的事我还是觉得脸上无光,几乎是一瞬间我多么希望回到我平淡的生活。为什么非要经历过堕落才懂得珍惜现在,我想。

这是我这几天干的龌龊事。

我不得不承认,一写成文字,意义跟我想的多少有点出入,我也故意省略了最后一件事情的一些不愉快的细节。
--
一辈子都是你的备胎
不管时间过去多久


※ 来源:・水木社区 http://newsmth.net・[FROM: 124.64.109.*]

Re: 我一生中最大的教训就是被有洁癖的女人骗了!(转寄)

发信人: fankuai (小黑・高尚女人的解放者), 信区: NewExpress
标 题: Re: 我一生中最大的教训就是被有洁癖的女人骗了!
发信站: 水木社区 (Mon Jan 5 22:41:31 2009), 站内

实事求是讲,就是不要和女人一般见识!

【 在 Policemen (新警察之马甲大法) 的大作中提到: 】
: 那个有洁癖的女人觉得你很ws才不从你的吧。


--
你是天上的天鹅飞呀飞,我是地上的蛤蟆追呀追
突然我做了三个标准的俯卧撑,对你说:"露了!露了!"
你一紧张,一脸红,一捂胸脯,"啊!"的一声尖叫,
你从天上掉到我的怀里来。


※ 来源:・水木社区 newsmth.net・[FROM: 58.16.41.*]

我一生中最大的教训就是被有洁癖的女人骗了!(转寄)

发信人: fankuai (小黑・高尚女人的解放者), 信区: NewExpress
标 题: 我一生中最大的教训就是被有洁癖的女人骗了!
发信站: 水木社区 (Mon Jan 5 22:31:08 2009), 站内

女人有洁癖,并且声明不嫁给生活习惯不好的男人
于是我发愤图强,把自己改造成生活习惯好的男人后再去追她时
发现她已经嫁给一个比我生活习惯还要差很多的男人了!

--
你是天上的天鹅飞呀飞,我是地上的蛤蟆追呀追
突然我做了三个标准的俯卧撑,对你说:"露了!露了!"
你一紧张,一脸红,一捂胸脯,"啊!"的一声尖叫,
你从天上掉到我的怀里来。


※ 来源:・水木社区 newsmth.net・[FROM: 58.16.41.*]

在西单图书大厦遇见的牛人(转寄)

发信人: sylotto (晒骆驼), 信区: Picture
标 题: 在西单图书大厦遇见的牛人
发信站: 水木社区 (Sun Jan 4 23:41:53 2009), 站内

�中午在西单图书大厦,无意中遇见了这位牛人。
也许他的衣着不够光鲜、姿势不够优雅,但看书的神情绝对认真。
 看着他,使我坚信:读书、学习是一辈子的事情,无论是谁,无论何时何地。
 旁边是人来人往,而两个书架之间,就是他的精神家园,自有一片天。
 他看的是《马克思与西方政治思想传统》,我也不知道这本书写的是什么,没看过。
--

※ 来源:・水木社区 http://newsmth.net・[FROM: 59.57.231.*]

用短信搞死对方的S60手机。还好没买NOKIA手机啊(转寄)

发信人: xilinyunding (西临云顶), 信区: Mobile
标 题: 用短信搞死对方的S60手机。还好没买NOKIA手机啊
发信站: 水木社区 (Sun Jan 4 23:43:15 2009), 站内

用手机发送一条包含32位以上的邮件地址加上一个空格给以下S60的手机:
Nokia E90 Communicator
Nokia E71
Nokia E66
Nokia E51
Nokia N95 8GB
Nokia N95
Nokia N82
Nokia N81 8GB
Nokia N81
Nokia N76
Nokia 6290
Nokia 6124 classic
Nokia 6121 classic
Nokia 6120 classic
Nokia 6110 Navigator
Nokia 5700 XpressMusic

S60 3rd Edition, initial release (S60 3.0):
Nokia E70
Nokia E65
Nokia E62
Nokia E61i
Nokia E61
Nokia E60
Nokia E50
Nokia N93i
Nokia N93
Nokia N92
Nokia N91 8GB
Nokia N91
Nokia N80
Nokia N77
Nokia N73
Nokia N71
Nokia 5500
Nokia 3250

S60 2nd Edition, Feature Pack 3 (S60 2.8):
Nokia N90
Nokia N72
Nokia N70

S60 2nd Edition, Feature Pack 2 (S60 2.6):
Nokia 6682
Nokia 6681
Nokia 6680
Nokia 6630
效果:利用该漏洞,可以锁死手机的信息功能,对方再收发不了短信,甚至死机...目前无解决办法


youtube上有视频,应该是真的,有兴趣的可以试一下!
--

※ 来源:・水木社区 http://newsmth.net・[FROM: 61.49.176.*]

20090103

zz揭发《青年参考》涉嫌假新闻一则(转寄)

发信人: Patoshik (z/), 信区: NewExpress
标 题: zz揭发《青年参考》涉嫌假新闻一则
发信站: 水木社区 (Sun Jan 4 00:01:12 2009), 站内

http://doubleaf.com/2009/01/03/870

Tags: 假新闻, 索马里, 青年参考

12月30日,中国青年报旗下《青年参考》刊出一则题为《索马里海盗头目称不会主动向中国海军找麻烦》的报道。看完报道后,我觉得文中的索马里海盗用词太过中国化,因此心存疑虑。

按照文中提到的几个关键词:索马里海盗头目塞谬恩?恩德布尔,52岁的希腊教授梅加洛马蒂斯,《新闻周刊》,我找到海盗头目和希腊教授名字的英文原文,在google上进行了搜索。

结果是,我没有搜到梅加洛马蒂斯(Dr. Muhammad Shamsaddin Megalommatis )与塞谬恩?恩德布尔(Shamun Indhabur)之间的相关报道,NewsWeek的确采访过塞谬恩?恩德布尔(Shamun Indhabur),但文章是刊登在18日的杂志上,而且采访中没有提到任何与中国有关的事情。(http://www.newsweek.com/id/175980/output/print

此后,我又在http://www.americanchronicle.com/ 找到了梅加洛马蒂斯的联系方式(http://www.americanchronicle.com/authors/view/1225),并致信询问此事。结果是,梅教授完全否认此事。

Dear Sir / Madam,
Thank you for your mail.
Let me know more about you, and stat your real name if you please.
No, I totally deny it. (粗体为笔者所加。笔者翻译:我完全否认此事)
I did not interview and I never met this person.(粗体为笔者所加。笔者翻译;我没有进行采访,我根本没见过此人)
Thank you,
Prof. Dr. Muhammad Shamsaddin Megalommatis

下面是我的去信,本人英语写作能力较差,因此里面有一些语法以及用词错误,大家海涵。但基本意思应该是没有太大错误的。

Dear Dr. Muhammad Shamsaddin Megalommatis.

I\'m writing this letter to verify a report by a Chinese newspaper. http://news.163.com/08/1230/19/4UEEKRF00001124J.html

The report said that Dr. Megalommatis was familiar with the somalia society.
According to the report, on 25 Dec, Dr. Megalommatis interviewed Shamun Indhabur, who is thought to be the leader of the pirates who took the Faina, and the Sirius Star. Shamun Indhabur told Dr. Megalommatis that Chinese navy was civilized and will not too bad toward them. Is that so?

I\'m looking forward to hearing from you.

(译文)

我写此信目的在于验证中国一份报纸的报道http://news.163.com/08/1230/19/4UEEKRF00001124J.html

报道说,梅加洛马蒂斯博士很熟悉索马里社会。根据该报道,12月25日,梅加洛马蒂斯博士采访了塞谬恩?恩德布尔,此人被认为是劫持"费那"号和"天狼星"号的海盗头目。塞谬恩?恩德布尔告诉梅加洛马蒂斯博士,中国海军很文明,不会对他们太差,是这样吗?

期待您的回信。

有人可能会怀疑,你如何确定回信的就是《青年参考》文章中的"52岁的希腊教授梅加洛马蒂斯"?实际上,这也是我1号就收到梅教授来信,但今天才发出质疑青年参考文章的原因。我在参考了以下两个网页后,基本确定给我回信的就是梅教授本人。

http://www.buzzle.com/authors.asp?author=973
http://www.hiiraan.com/ (网页最下方有梅教授的EMAIL,也是他给我来信的信箱,大家可以去信询问)

以上只是本人根据所掌握信息,对青年参考文章提出的质疑,不一定代表真相。中国海军前往索马里打击海盗,自然是华夏儿女深感自豪的事情。作为国家级媒体、而且是素有名望的中国青年报旗下的报纸,我相信青年参考断不会因为激发民众自豪感而炮制假新闻。期待青年参考就此事给出解释,以正视听。
Posted by doubleaf Filed in


--
其实我是海盗


※ 来源:・水木社区 newsmth.net・[FROM: 221.6.3.*]