星期四, 一月 10, 2008

Fedora8 教育网中 可以使用的yum 源

一个是上海交大的

cat /etc/yum.repos.d/sj.repo

[updates]

name=Fedora updates

baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/updates/$releasever/$basearch/

enabled=1

gpgcheck=0


[Fedora]

name=Fedora $releasever - $basearch

baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Fedora/$basearch/os/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY



[Everything]

name=Fedora $releasever - $basearch

baseurl=ftp://ftp.sjtu.edu.cn/fedora/linux/releases/$releasever/Everything/$basearch/os/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora file:///etc/pki/rpm-gpg/RPM-GPG-KEY



[freshrpms]

name=Fedora Core $releasever - $basearch - Freshrpms

baseurl=ftp://ftp.sjtu.edu.cn/freshrpms/ayo/fedora/linux/$releasever/$basearch/freshrpms/

enabled=1

gpgkea=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-freshrpms

gpgcheck=0



另外一个是清华的

cat /etc/yum.repos.d/tsinghua.repo
[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora



[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna


[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

教育网中Fedora Core 6 可用的清华yum源

[base-ts]
name=Fedora Core $releasever - $basearch - Base
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[extras-ts]
name=Fedora Extras $releasever - $basearch
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras
gpgcheck=1

[updates-ts]
name=Fedora Core $releasever - $basearch - Released Updates
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[livna-ts]
name=Livna for Fedora Core $releasever - $basearch - livna
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-development-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[livna-testing-ts]
name=Livna for Fedora Core $releasever - $basearch - livna-testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/livna/fedora/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-livna

[testing-ts]
name=Fedora Core $releasever - $basearch - Released Testing
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/updates/testing/$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

[development-ts]
name=Fedora Core $releasever - $basearch - Released Development
baseurl=ftp://ftp3.tsinghua.edu.cn/mirror/download.fedora.redhat.com/pub/fedora/linux/core/development/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

星期三, 一月 09, 2008

【转】理解Windows Vista的启动过程

转自
http://windows.chinaitlab.com/basic/736838.html

如果您使用具有早期Windows版本如WindowsXP 的多启动环境,那么您可能迫切需要了解Windows Vista的启动过程做了哪些修改。在Windows Vista的启动过程中Ntldr和 Boot ini不再被使用(当然,在多启动环境下需要引导Windows 2000/XP或Windows Server2003时他们还是起作用的)。

  过程概述:

  开启电源。计算机系统将进行加电自检(POST)。如果通过,之后BIOS会读取主引导记录(MBR)-被标记为启动设备的硬盘的首扇区,并传送被Windows Vista建立的控制编码给MBR。这时Windows接管启动过程。接下来:

  1.MBR读取引导扇区-活动分区的第一扇区。此扇区包含用以启动Windows启动管理器(Windows Boot Manager)程序Bootmgr exe的代码。

  2.Windows启动管理器读取“启动配置数据存储(Boot Confi guration Data store)中的信息。此信息包含已被安装在计算机上的所有操作系统的配置信息。并且用以生成启动菜单。

  3.当您在启动菜单中选择下列动作时:

  <>如果您选择的是Windows Vista,Windows 启动管理器(Windows Boot Manager)运行%SystemRoot%\System32文件夹中的OS loader- Winload exe。

  <>如果您选择的是自休眠状态恢复Windows Vista,那么启动管理器将装载Winresume exe并恢复您先前的使用环境。

  <>如果您在启动菜单中选择的是早期的Windows版本,启动管理器将定位系统安装所在的卷,并且加载Windows NT风格的早期OS loader(Ntldr.exe),如果需要,生成一个由boot.ini内容决定的启动菜单。

  Windows Vista启动时加载其核心文件 Ntoskrnl.exe和hal.dll从注册表中读取设置并加载驱动程序。接下来将运行Windows会话管理器(smss.exe)并且启动Windows启动程序(Wininit exe),本地安全验证(Lsass.exe)与服务(services.exe)进程,完成后,您就可以登录您的系统了。

星期一, 一月 07, 2008

【转】Linux系统的开机程序执行顺序

【转】Linux系统的开机程序执行顺序

转自http://linux.chinaitlab.com/administer/736585.html

开机的程序是这样的:
 
  1. 加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
 
  2. 读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
 
  3. 加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
 
  4. Kernel 执行 init 程序并取得 run-level 信息;
 
  5. init 执行 /etc/rc.d/rc.sysinit 档案;
 
  6. 启动核心的外挂模块 (/etc/modprobe.conf);
 
  7. init 执行 run-level 的各个批次档( Scripts );
 
  8. init 执行 /etc/rc.d/rc.local 档案;
 
  9. 执行 /bin/login 程序,并等待使用者登入;
 
  10. 登入之后开始以 Shell 控管主机。
 

星期四, 一月 03, 2008

[转]Linux环境下入侵工具Knark的分析及防范

Linux环境下入侵工具Knark的分析及防范

转自
http://linux.chinaitlab.com/safe/736314.html

文讨论了Linux环境下攻击者入侵成功以后常常使用的一些后门技术,并且对最著名的rootkit工具之一?knark进行了详细的分析,并且指出了在发现系统被入侵以后如何发现是否是kark及如何恢复。

  什么是"rootkit"?

  入侵者入侵后往往会进行清理脚印和留后门等工作,最常使用的后门创建工具就是rootkit。不要被名字所迷惑,这个所谓的“rootkit”可不是给超级用户root用的,它是入侵者在入侵了一太主机后,用来做创建后门并加以伪装用的程序包。这个程序包里通常包括了日志清理器,后门等程序。同时,程序包里通常还带有一些伪造的ps、ls、who、w、netstat等原本属于系统本身的程序,这样的话,程序员在试图通过这些命令查询系统状况的时候,就无法通过这些假的系统程序发觉入侵者的行踪。

  在一些黑客组织中,rootkit (或者backdoor)是一个非常感兴趣的话题。各种不同的rootkit被开发并发布在internet上。在这些rootkit之中, LKM尤其被人关注,因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。

  入侵者通过:设置uid程序, 系统木马程序, cron后门等方法来实现入侵者以后从非特权用户使用root权限。

  *设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。

  *系统木马程序。黑客替换一些系统程序,如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。

  *Cron后门。黑客在cron增加或修改一些任务,在某个特定的时间程序运行,他们就可以获得最高权限。

  具体可能通过以下方法给予远程用户以最高访问权限: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。

  *".rhosts" 文件。一旦 "+ +"被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。

  *ssh认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。

  *Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。

  *Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。

  在入侵者植入和运行后门程序之后, 他会设法隐藏自己存在的证据,这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。

  为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。

  为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。

  RootKit-Knark的历史

  Knark是第二代的新型rootkit工具-其基于LJM(loadable kernelmodule)技术,使用这种技术可以有效地隐藏系统的信息。作者在代码和README文件中都标注有不承担责任的声明,声明该代码不可以被用作非法活动。然而该软件可以容易地被用于这种目的。

  Knark是由creed@sekure.net编写的,主要基于http://www.dataguard.no/bugtraq/1997_4/0059.html中RunarJensen 编写的代码heroin.c,设计思想主要来自于Phrack 52中plaguez发表的文章Weakening the LinuxKernel"。在重新编写了heroin.c的大部分代码以后,Creed决定重新命名为"Knark",在瑞典语中是指吸毒者。Creed 编写的其他软件可以在www.sekure.net/~happy-h/得到,但是由于该站点只有瑞典语版本,因此应用并不广泛。

  Knark的第一个公开版本是0.41,发布于June, 1999。可以在B4B0 #9中索引到它:http://packetstorm.securify.com/mag/b4b0/b4b0-09.txt。随后0.50和0.59被发布,当前版本是0.59。可以从这里下载0.59版。

  Knark特性

  Knark0.59具有以下特性:

  *隐藏或显示文件或目录

  *隐藏TCP或UDP连接

  *程序执行重定向

  *非授权地用户权限增加("rootme")

  *改变一个运行进程的UID/GID的工具

  *非授权地、特权程序远程执行守护进程

  *Kill –31来隐藏运行的进程

  联合使用程序执行重新定向和文件隐藏,入侵者能提供各种后门程序执行。由于执行重定向是在内核级别进行的,因此文件检测工具不会发现程序文件被修改-原始的执行程序并没有被修改,因此配置检测工具在路径环境中也不会发现任何异常。

  如果Knark结合另外一个用来隐藏系统当前加载的模块的LKM工具modhide,就可能实现甚至通过lsmod命令也不能发现knark的存在。

星期三, 一月 02, 2008

[转]从两个方面讲解SQL Server口令的脆弱性

[转]从两个方面讲解SQL Server口令的脆弱性


转自
http://database.csdn.net/page/f3f2c28f-5093-471e-bcfc-ef020629f4ab

如果你细心跟踪一下SQL Server数据库服务器的登录过程,你会发现口令计算其实是非常脆弱的,SQL Server数据库的口令脆弱体现两方面:

1、网络登陆时候的口令加密算法

2、数据库存储的口令加密算法。

下面就分别讲述:
1、网络登陆时候的口令加密算法

SQL Server网络加密的口令一直都非常脆弱,网上有很多写出来的对照表,但是都没有具体的算法处理,实际上跟踪一下SQL Server的登陆过程,就很容易获取其解密的算法:好吧,我们还是演示一下汇编流程:

登录类型的TDS包跳转到4126a4处执行:

004DE72E:根据接收到的大小字段生成对应大小的缓冲区进行下一步的拷贝

004DE748从接收到的TDS BUF偏移8处拷贝出LOGIN的信息

004DE762:call sub_54E4D0:将新拷贝的缓冲压入进行参数检查的处理

依次处理TDS包中的信息,各个字段气候都应该有各个域的长度,偏移0X24处与长度进行比较。

下面这段汇编代码就是实现对网络加密密码解密的算法:

.text:0065C880 mov cl, [edi]
.text:0065C882 mov dl, cl
.text:0065C884 xor cl, 5
.text:0065C887 xor dl, 0AFh
.text:0065C88A shr dl, 4
.text:0065C88D shl cl, 4
.text:0065C890 or dl, cl
.text:0065C892 mov [edi], dl
.text:0065C894 inc edi
.text:0065C895 dec eax
.text:0065C896 jnz short loc_65C880
.text:0065C898 jmp loc_4DE7E6

很容易就将其换成为C代码,可以看出其加密及其简单,和明文没什么区别,大家可以在SNIFFER中嵌入这段代码对嗅叹到的TDS登陆包进行解密,其实 0XA5不是特定的SQL Server密码字段的分界符号,只是由于加密算法会自动把ASC的双字节表示的0x0加密成0xa5而已,但是如果允许双字节口令,这个就不是判断其分界的主要原因了。

void sqlpasswd(char * enp,char* dnp)
{
int i;
unsigned char a1;
unsigned char a2;
for(i=0; i<128; i++)
{
if(enp[i]==0)
break;
a1 = enp[i]^5;
a1 = a1 << 4;
a2 = enp[i]^0xaf;
a2 = a2 >> 4;
dnp[i]=a1|a2;
}
dnp[i]=0;
dnp[i+1]=0;
wprintf(L"passwd:%s\n",(const wchar_t *)dnp);
}

2、数据库存储的口令加密算法
SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:

在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。

然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:

2个字节的头0x0100(固定)

4个字节的HASH加秘KEY

20个字节的HASH1

20个字节的HASH2

如我取出的一个例子:
fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456

SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:

CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);

passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对

{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}

这样的一个字串进行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL)

; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);


取出passwdbuf是小写的passwd的加密值


CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);

取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.

为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。


小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,


提供给了解密者更多的信息。

如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。

就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。

2、数据库存储的口令加密算法

SQL Server的口令到数据库存储的加密方法,也是很让人诧异的。其过程如下:

在获得网络解密密码的口令以后在005F9D5A处call SQLSORT_14,实现一个转换为大写口令缓冲进行保存。

然后在004def6d处调用一个函数取出数据库中的加密的PASSWORD,其形式如下:

2个字节的头0x0100(固定)

4个字节的HASH加秘KEY

20个字节的HASH1

20个字节的HASH2

如我取出的一个例子:

fx:0x0100 1751857F DFDEC4FB618D8D18EBA5A27F615639F607
CD46BE DFDEC4FB618D8D18EBA5A27F615639F607CD46BE
固定 补充KEY HASH1 HASH2
口令是:123456


SQL首先用4个字节的HASH加秘KEY补上其两处口令的缓冲,一个为大写,一个为小写。然后其加密过程如下C函数:


CryptAcquireContextW(&hProv,NULL,
L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);

passwdbuf是小写的passwd缓冲区,然后附加一个KEY,如上例子就是对


{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}


这样的一个字串进行HASH加密

CryptHashData(hHash,PASSWDBUF,0x12,NULL)

; PASSWDBUF是大写的passwd缓冲区,然后附加一个KEY 005F9E3E:


CryptGetHashParam(hhash,2,&passwdout,&outlen,0);

取出passwdbuf是小写的passwd的加密值


CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);

取出passwdbuf是大写的passwd的加密值这两个相加就是真正的数据库中的PASSWORD加密字段.

为什么说以上方法是脆弱的呢?其实其真正的加密长度生成只有20个字节。

小写口令的HASH1+大写口令的HASH1拼接的40位HASH值的安全度还不如一个直接20位的HASH值来得安全。因为大家都知道这两个值的因果关系,

提供给了解密者更多的信息。

如因为其算法一样,如果HASH1=HASH2,就可以判断口令肯定是未使用字母,只使用了数字和符号的口令,如上取出的123456口令的HASH,两个HASH完全相等。

就是使用了字母,其知道补充的KEY,算法,两个加密字串的关系,其解应该也是大大的简化了。

星期二, 一月 01, 2008

Windows XP常用命令合集

Windows XP常用命令合集

转自
http://testlab.chinaok.com/data/2006/0619/article_51017.htm

  winver---------检查windows版本
  wmimgmt.msc----打开windows管理体系结构(wmi)
  wupdmgr--------windows更新程序
  wscript--------windows脚本宿主设置
  write----------写字板
  winmsd---------系统信息
  wiaacmgr-------扫描仪和照相机向导
  winchat--------xp自带局域网聊天

  mem.exe--------显示内存使用情况
  msconfig-----------启动
  msconfig.exe---系统配置实用程序
  mplayer2-------简易widnows media player
  mspaint--------画图板
  mstsc----------远程桌面连接
  mplayer2-------媒体播放机
  magnify--------放大镜实用程序
  mmc------------打开控制台
  mobsync--------同步命令

  dxdiag---------检查directx信息
  drwtsn32------ 系统医生
  devmgmt.msc--- 设备管理器
  dfrg.msc-------磁盘碎片整理程序
  diskmgmt.msc---磁盘管理实用程序
  dcomcnfg-------打开系统组件服务
  ddeshare-------打开dde共享设置
  dvdplay--------dvd播放器

  nslookup-------ip地址侦测器
  net stop messenger-----停止信使服务
  net start messenger----开始信使服务
  notepad--------打开记事本
  nslookup-------网络管理的工具向导
  ntbackup-------系统备份和还原
  narrator-------屏幕“讲述人”
  ntmsmgr.msc----移动存储管理器
  ntmsoprq.msc---移动存储管理员操作请求
  netstat -an----(tc)命令检查接口

  syncapp--------创建一个公文包
  sysedit--------系统配置编辑器
  sigverif-------文件签名验证程序
  sndrec32-------录音机
  shrpubw--------创建共享文件夹
  secpol.msc-----本地安全策略
  syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
  services.msc---本地服务设置
  sndvol32-------音量控制程序
  sfc.exe--------系统文件检查器
  sfc /scannow---windows文件保护(扫描错误并复原)

  tsshutdn-------60秒倒计时关机命令
  tourstart------xp简介(安装完成后出现的漫游xp程序)
  taskmgr--------任务管理器 (2000/xp/2003)

  eventvwr-------事件查看器
  eudcedit-------造字程序
  explorer-------打开资源管理器

  packager-------对象包装程序
  perfmon.msc----计算机性能监测程序
  progman--------程序管理器

  regedit.exe----注册表
  rsop.msc-------组策略结果集
  regedt32-------注册表编辑器
  rononce -p ----15秒关机
  regsvr32 /u *.dll----停止dll文件运行
  regsvr32 /u zipfldr.dll------取消zip支持

  cmd.exe--------cmd命令提示符
  chkdsk.exe-----chkdsk磁盘检查
  certmgr.msc----证书管理实用程序
  calc-----------启动计算器
  charmap--------启动字符映射表
  cliconfg-------sql server 客户端网络实用程序
  clipbrd--------剪贴板查看器
  conf-----------启动netmeeting
  compmgmt.msc---计算机管理
  cleanmgr-------垃圾整理
  ciadv.msc------索引服务程序

  osk------------打开屏幕键盘
  odbcad32-------odbc数据源管理器
  oobe/msoobe /a----检查xp是否激活

  lusrmgr.msc----本机用户和组
  logoff---------注销命令

  iexpress-------木马捆绑工具,系统自带

  fsmgmt.msc-----共享文件夹管理器

  utilman--------辅助工具管理器

  gpedit.msc-----组策略

星期一, 十二月 31, 2007

printf的常见格式字符

printf的常见格式字符


格式字符 含义

%c 单字符格式
%d 十进制整型
%e 指数形式
%f 十进制浮点数
%l 整型
%o 八进制整型
%p 地址指针
%s 字符串
%x 十六进制整型
%n 将已经输出的字节数保存到相应指针指向的内存地址中

在格式字符的中间加上一个整数,printf函数就会把这个数值作为输出宽度。
如果输出的实际宽度大于指定宽度,则仍然按照实际宽度输出;如果小于指定宽度,则按指定宽度输出。

有漏洞的printf语句可以将任意数值写到任意地方,这就是漏洞的根源,只要将main的返回地址改为攻击

代码,控制权就会跳转到攻击代码而造成恶意的攻击。

星期四, 十二月 13, 2007

【转】一些不错的心理测验

【转】一些不错的心理测验

转自http://www.lupaworld.com/bbs/redirect.php?tid=31413&goto=newpost


1,Question:请选择你的爱情果: 1柚子 2石榴 3苹果 4西瓜 5柠檬 6菠萝 7火龙果 8樱桃 9香蕉 10椰

子.(只能选择一个哦)

Answer:1初恋式的爱 2童话般的爱情 3情人式 4老土式的爱情 5同性恋 6丑却甜的爱情 7贵族式 8一夜

情 9常人式的爱情 10暴力式的爱(超准心理测试题)

2,Question:用第一感觉:我在你心中像哪种冰淇淋?1巧克力口味 2奶油口味 3香草口味 4香芋口味 5草

莓口味 6蓝莓口味 7荔枝口味 8红豆口味 9咖啡口味.

Answer:1心爱的人 2依赖的人 3知己 4暗恋的人 5亲密好友 6牵挂的人 7普通朋友 8讨厌的人 9尊敬的

人(超准心理测试题)

3,Question:如果你参加一个吃西红柿比赛你认为怎么吃会获胜1)西红柿夹蜜饯 (2)西红柿炒蛋 (3)光

吃 (4)西红柿色拉 (5)番茄汁 (6)糖拌西红柿

Answer:婚后偷情率: (1)60% (2)40% (3)0% (4)20% (5)99%(6)200%(超准心理测试题)

4,Question:给你做个测试:你现在想想自己想到的第一个异性是谁,再给"日"字添一笔成为另一个字,想

好这个字

Answer:甲:崇拜的人目:未来老婆或老公田:没关系白:最爱的人电:暗恋者申:讨厌的人旧:普通朋友由:不

信赖的人旦:喜欢的人.(超准心理测试题)

5,Question:在冬日的下午,你一个人在散步,这时你最希望看到什么景色?A在沙滩上晒太阳的螃蟹 B

风中摇曳的红枫 C美丽善良的采茶姑娘 D在空中飞行的一对黑鹤

Answer:A白痴 B弱智 C智障 D傻瓜因为这些景象不会在冬天出现(超准心理测试题)

6,Question:测验:以下几种方便面你最喜欢哪种1.鲜虾鱼板面 2.红烧牛肉面 3香菇炖鸡面 4.梅菜扣肉

面 5.番茄牛肉面 6.红烧排骨面

Answer:1不太成熟,爱吃醋,占有欲强 2见异思迁 3感情专一,始志不渝 4看破红尘,遁入空门 5.占有欲强

6专喜欢做第三者!(超准心理测试题)

7,Question:当你赶路累了,一好心的女巫说送你到以下哪或者谁家里休息,你选哪个1红磨坊 2七个小矮

人 3美人鱼 4一休 5饼屋 6茱利叶 7附近亲戚家 8不理她

Answer:1花心 2纯情 3对爱充满幻想 4心如止水 5实在 6渴望浪漫悲壮的爱情 7顺从父母之命媒妁之言

8暂时不想谈恋爱(超准心理测试题)

8,Question:给你做一个?情人节那天你与男(女)友在公园遇到了海洋动物义买.请你选择一个你喜欢的

海洋动物 1海星 2花斑鱼 3海龟 4海葵 5海马 6鲸 7珊瑚

Answer:爱情观分析 1尊重所爱的人值得托付终身 2极为依赖恋人 3情圣野心很大 4不太成熟爱吃醋占有

欲强 5感情专一保守 6不专一 7色情狂(超准心理测试题)

9,Question:给你测试一道心理题:有金,银,铜,铁,玉,玛瑙,翡翠,草及石头共九种戒指,让你选,你会选

哪个?

Answer:金.代表花心. 银是坚持. 铜是顽固. 铁是无情. 玉是温柔. 玛瑙是依靠. 翡翠是真心. 草是纯

真. 石头是永恒. 这是人对感情的态度.准吧?(超准心理测试题)
10,Question:给你做道心理题:有一个生鸡蛋和一个熟鸡蛋,有四个环境:水.口袋.树上.土里,你可以把

两个鸡蛋一起放,也可以分开放,你会怎么放?

Answer:生鸡蛋代表婚前, 熟鸡蛋代表婚后. 水里:花心口袋:专一树上:眼光高土里:随缘这题很准,是正

宗心理学的题目(超准心理测试题)如今的社会,每个人都有密码,领钱不能没有密码,手机也有密码,

每天用的电脑更有密码。你是如何“制造”出你的密码的?这可是会泄露你的感情特征的呀!
A:生日或自家电话号码
B:身份证号码
C:三天两头就视心情而更换
D:精心设计,谁也猜不出的奇怪组合测试结果:
A:选用生日或自家电话号码来当密码的人其实是很好搞定的爱人,不难追,挑战性也不强,因为他(她)

心里在打什么主意,相处一段时间,就可以掌握到八九分。
B:身份证号码这类人戒心很重,所以建立在二人情感关系上的信任,将是最重要的关键。喜欢观察对方

,甚至出些测试来考验对方,不时考虑双方的适合程度,如果没有得到信任,两人的关系就无法有进一步

的突破。
C:三天两头就视心情而更换这类人变化没有规则可言,连他自己都无法控制,今天适用的招数,明天可

能就失效了。所以要对付这种爱人,最好的对策就是以不变应万变,管他如何变,反正总有一天又会变回

来,而你的不变,就巧妙地创造了安全感。

D:精心设计,谁也猜不出的奇怪组合这类人内心较为复杂,想得很多,老是会想如何让人猜不透。想要

追上他,欲擒故纵就对了。如果你还有本事,能在下半生常常出点花招,使他猜不透你的想法,那你就成

功大半了。如果你是童话故事中想吃掉3只小猪的大野狼,你觉得用哪一种方法可以吃掉它们?
A.模仿猪妈妈声音骗开门
B.用锤子把门整个砸坏
C.从烟囱偷偷爬进屋去
D.等小猪没戒心自己出来
E.用烟把小猪熏到晕倒*********************************选择A

:你的幼稚指数40%
这类型的人会用言语做沟通的方式,跟人家做进一步的交谈,处理事情的时候会很有耐心而且能够抓住人

性。选择B:你的幼稚指数80%
这类型的人比较大男人或大女人,表面上很成熟,其实内心是非常幼稚的。选择C:你的幼稚指数55%
这类型的人知道做事情要利用方法,在人生的路途中会慢慢地让自己学习成长。选择D:你的幼稚指数20%
这类型的人对很多事情已经懂得放手,知道争取强求其实是没有用的,因此会用等待的方式来做任何事情

,不管是工作或者是爱情。选择E:你的幼稚指数99%
这类型的人凭着感觉走,想要做什么就做什么。请你做以下八道心理素质测试题,每题只能一个选择,然

后根据括号内的分数累加起来,看看总分是多少,就能大致了解你的心理素质和应付能力。

1.你骑车闯红灯,被警察叫住;后者知道你急着要赶路,却故意拖延时间,这时你———
a.急得满头大汗,不知怎么办才好
b.十分友好地、平静地向警察道歉
c.听之任之,不作任何解释

2.在朋友的婚礼上,你未料到会被邀请发言,在毫无准备的情况下,你———
a.双手发抖,结结巴巴说不出话来
b.感到很荣幸,简短地讲几句
c.很平淡地谢绝了

3.你在餐馆刚用过餐,服务员来结账,你忽然发现身上带的钱不够,此刻,你会———
a.感到很窘迫,脸发红
b.自嘲一下,马上对服务员实话实说
c.在身上东摸西摸,拖延时间

4.假如你乘坐公共汽车时忘了买票,被人查到,你的反应是———
a.尴尬,出冷汗
b.冷静,不慌不忙,接受处理
c.强作微笑

5.你独自一人被关在电梯内出不来,你会———
a.脸色发白,恐慌不安
b.想方设法自己出去
c.耐心地等待救援

6.有人像老朋友似的向你打招呼,但你一点也记不起他(她)是谁,此时你———
a.装作没听见似的不答理
b.直率地承认自己记不起来了
c.朝他(她)瞪瞪眼,一言不发

7.你从超市里走出来,忽然意识到你拿着忘记付款的商品,此时一个很像保安人员的人朝你走过来,你

会怎么办?
a.心怦怦跳,惊慌不措
b.诚实、友好地主动向他解释
c.迅速回转身去补付款

8.假设你从国外回来,行李中携带了超过规定的烟酒数量,海关官员要求你打开提箱检查,这时你会—

——
a.感到害怕,两手发抖
b.泰然自若,听凭检查
c.与海关官员争辩,拒绝检查心理素质测试题答案:选a得0分,选b得5分,选c得2分

1.(0~25分)你承受压力的心理素质比较差,很容易失去心理平衡,变得窘促不安,甚至惊慌失措。

2.(25分~32分)你的心理素质比较强,性情还算比较稳定,遇事一般不会十分惊慌,但有时往往采取消极

应付的态度。

3.(32~40分)你的心理素质很好,几乎没有令你感到尴尬的事,尽管偶尔会失去控制,但惫自来说,你的

应变能力很强,是一个能经常保持镇静,从容不迫的人

[转]关于硬盘坏道不错的资料

[转]关于硬盘坏道不错的资料

转自http://hi.baidu.com/myssc/blog/item/2204e550b1c0075e1138c214.html

跳出硬盘认识的误区
多年来一直误导着高朋的几个常识性问题是:
  1.硬盘逻辑坏道可以修复,而物理坏道不可修复。实际情况是,坏道并不分为逻辑坏道和物理坏道,不知道谁发明这两个概念,反正厂家提供的技术资料中都没有这样的概念,倒是分为按逻辑地址记录的坏扇区和按物理地址记录的坏扇区。
  2.硬盘出厂时没有坏道,用户发现坏道就意味着硬盘进入危险状态。实际情况是,每个硬盘出厂前都记录有一定数量的坏道,有些数量甚至达到数千上万个坏扇区,相比之下,用户发现一两个坏道算多大危险?
  3.硬盘不认盘就没救,0磁道坏可以用分区方法来解决。实际情况是,有相当部分不认的硬盘也可以修好,而0磁道坏时很难分区。
  如此误导,如不是自己搜集研究外文资料并长期实践,说不准还长期拿来作信条呢。在国外有许多的专业的硬盘维修论坛,在那里你可以发现有一些国家的硬盘维修技术达到了很高水准。我敢肯定,他们的一些技术会令众多硬盘厂家头痛不已。和世界上众多专业硬盘修理高手交流,使高朋受益菲浅。这三年来,高朋辞去教师工作,专门从事硬盘修复工作,经手修复的硬盘已超过万个。
  总结起来,高朋的技术来源有三方面:
  1.搜集国外技术资料与国外专业人士交流;
  2.购买专业工具软件(有同步技术更新支持);
  3.自己的实践经验。
  很遗憾,我没有找到教我修复硬盘的老师,也不认为哪本教科书对我修硬盘有太大帮助。
硬盘修复人士需要弄明白的几个基本概念
  在研究硬盘修复和使用专业软件修复硬盘的过程中,必将涉及到一些基本的概念。在这里,高朋根据自己的研究和实践经验,试图总结并解释一些与“硬盘缺陷”相关的概念,与众位读者交流。

  Bad sector (坏扇区)
  在硬盘中无法被正常访问或不能被正确读写的扇区都称为Bad sector。一个扇区能存储512Bytes的数据,如果在某个扇区中有任何一个字节不能被正确读写,则这个扇区为Bad sector。除了存储512Bytes外,每个扇区还有数十个Bytes信息,包括标识(ID)、校验值和其它信息。这些信息任何一个字节出错都会导致该扇区变“Bad”。例如,在低级格式化的过程中每个扇区都分配有一个编号,写在ID中。如果ID部分出错就会导致这个扇区无法被访问到,则这个扇区属于 Bad sector。有一些Bad sector能够通过低级格式化重写这些信息来纠正。
  Bad cluster (坏簇)
  在用户对硬盘分区并进行高级格式化后,每个区都会建立文件分配表(File Allocation Table, FAT)。FAT中记录有该区内所有cluster(簇)的使用情况和相互的链接关系。如果在高级格式化(或工具软件的扫描)过程中发现某个 cluster使用的扇区包括有坏扇区,则在FAT中记录该cluster为Bad cluster,并在以后存放文件时不再使用该cluster,以避免数据丢失。有时病毒或恶意软件也可能在FAT中将无坏扇区的正常cluster标记为Bad cluster, 导致正常cluster不能被使用。这里需要强调的是,每个cluster包括若干个扇区,只要其中存在一个坏扇区,则整个cluster中的其余扇区都一起不再被使用.
  Defect (缺陷)
  在硬盘内部中所有存在缺陷的部分都被称为Defect。 如果某个磁头状态不好,则这个磁头为Defect head。如果盘面上某个Track(磁道)不能被正常访问,则这Track为Defect Track. 如果某个扇区不能被正常访问或不能正确记录数据,则该扇区也称为Defect Sector. 可以认为Bad sector 等同于 Defect sector. 从总的来说,某个硬盘只要有一部分存在缺陷,就称这个硬盘为Defect hard disk.
  P-list (永久缺陷表)
  现在的硬盘密度越来越高,单张盘片上存储的数据量超过40Gbytes. 硬盘厂家在生产盘片过程极其精密,但也极难做到100%的完美,硬盘盘面上或多或少存在一些缺陷。厂家在硬盘出厂前把所有的硬盘都进行低级格式化,在低级格式化过程中将自动找出所有defect track和defect sector,记录在P-list中。并且在对所有磁道和扇区的编号过程中,将skip(跳过)这些缺陷部分,让用户永远不能用到它们。这样,用户在分区、格式化、检查刚购买的新硬盘时,很难发现有问题。一般的硬盘都在P-list中记录有一定数量的defect, 少则数百,多则数以万计。如果是SCSI硬盘的话可以找到多种通用软件查看到P-list,因为各种牌子的SCSI硬盘使用兼容的SCSI指令集。而不同牌子不同型号的IDE硬盘,使用各自不同的指令集,想查看其P-list要用针对性的专业软件。

G-list (增长缺陷表)

  用户在使用硬盘过程中,有可能会发现一些新的defect sector。按“三包”规定,只要出现一个defect sector,商家就应该为用户换或修。现在大容量的硬盘出现一个defect sector概率实在很大,这样的话硬盘商家就要为售后服务忙碌不已了。于是,硬盘厂商设计了一个自动修复机制,叫做Automatic Reallcation。有大多数型号的硬盘都有这样的功能:在对硬盘的读写过程中,如果发现一个defect sector,则自动分配一个备用扇区替换该扇区,并将该扇区及其替换情况记录在G-list中。这样一来,少量的defect sector对用户的使用没有太大的影响。
  也有一些硬盘自动修复机制的激发条件要严格一些,需要用某些软件来判断defect sector,并通过某个端口(据说是50h)调用自动修复机制。比如常用的Lformat, ADM,DM中的Zero fill,Norton中的Wipeinfo和校正工具,西数工具包中的wddiag, IBM的DFT 中的Erase等。这些工具之所以能在运行过后消除了一些“坏道”,很重要的原因就在这Automatic Reallcation(当然还有其它原因),而不能简单地概括这些“坏道”是什么“逻辑坏道”或“假坏道”。如果哪位被误导中毒太深的读者不相信这个事实,等他找到能查看G-list的专业工具后就知道,这些工具运行过后,G-list将会增加多少记录!“逻辑坏道”或“假坏道”有必要记录在G-list中并用其它扇区替换么?
  当然,G-list的记录不会无限制,所有的硬盘都会限定在一定数量范围内。如火球系列限度是500,美钻二代的限度是636,西数BB的限度是508,等等。超过限度,Automatic Reallcation就不能再起作用。这就是为何少量的“坏道”可以通过上述工具修复(有人就概括为:“逻辑坏道”可以修复),而坏道多了不能通过这些工具修复(又有人概括为:“物理坏道”不可以修复)。
  Bad track (坏道)
  这个概念源于十多年前小容量硬盘(100M以下),当时的硬盘在外壳上都贴有一张小表格,上面列出该硬盘中有缺陷的磁道位置(新硬盘也有)。在对这个硬盘进行低级格式化时(如用ADM或DM 5.0等工具,或主板中的低格工具),需要填入这些Bad track的位置, 以便在低格过程中跳过这些磁道。现在的大容量硬盘在结构上与那些小容量硬盘相差极大,这个概念用在大容量硬盘上有点牵强。

  读者们还可能发现国内很多刊物和网上文章中还有这么几个概念:物理坏道,逻辑坏道,真坏道,假坏道,硬坏道,软坏道等。高朋在国外的硬盘技术资料中没有找到对应的英文概念,也许是中国人自己概括的吧?既然有那么多的人能接受这些概念,也许某些专家能作出一些的合理解释。高朋不习惯使用这些概念,不想对它们作牵强的解释,读者们看看是谁说的就去问谁吧。
深入了解硬盘参数

  正常情况下,硬盘在接通电源之后,都要进行“初始化”过程(也可以称为“自检”)。这时,会发出一阵子自检声音,这些声音长短和规律视不同牌子硬盘而各不一样,但同型号的正常硬盘的自检声音是一样的。有经验的人都知道,这些自检声音是由于硬盘内部的磁头寻道及归位动作而发出的。为什么硬盘刚通电就需要执行这么多动作呢?简单地说,是硬盘在读取的记录在盘片中的初始化参数。
  一般熟悉硬盘的人都知道,硬盘有一系列基本参数,包括:牌子、型号、容量、柱面数、磁头数、每磁道扇区数、系列号、缓存大小、转速、S.M.A.R.T值等。其中一部分参数就写在硬盘的标签上,有些则要通过软件才能测出来。但是,高朋告诉你,这些参数仅仅是初始化参数的一小部分,盘片中记录的初始化参数有数十甚至数百个!硬盘的CPU在通电后自动寻找BIOS中的启动程序,然后根据启动程序的要求,依次在盘片中指定的位置读取相应的参数。如果某一项重要参数找不到或出错,启动程序无法完成启动过程,硬盘就进入保护模式。在保护模式下,用户可能看不到硬盘的型号与容量等参数,或者无法进入任何读写操作。近来有些系列的硬盘就是这个原因而出现类似的通病,如:FUJITSU MPG系列自检声正常却不认盘,MAXTOR美钻系列认不出正确型号及自检后停转,WD BB EB系列能正常认盘却拒绝读写操作等。

  不同牌子不同型号的硬盘有不同的初始化参数集,以较熟悉的Fujitsu硬盘为例,高朋简要地讲解其中一部分参数,以便读者理解内部初始化参数的原理。
  通过专用的程序控制硬盘的CPU,根据BIOS程序的需要,依次读出初始化参数集,按模块分别存放为69个不同的文件,文件名也与BIOS程序中调用到的参数名称一致。其中部分参数模块的简要说明如下:
  DM硬盘内部的基本管理程序
  - PL永久缺陷表
  - TS缺陷磁道表
  - HS实际物理磁头数及排列顺序
  - SM最高级加密状态及密码
  - SU用户级加密状态及密码
  - CI 硬件信息,包括所用的CPU型号,BIOS版本,磁头种类,磁盘碟片种类等
  - FI生产厂家信息
  - WE写错误记录表
  - RE读错误记录表
  - SI容量设定,指定允许用户使用的最大容量(MAX LBA),转换为外部逻辑磁头数(一般为16)和逻辑每磁道扇区数(一般为63)
  - ZP区域分配信息,将每面盘片划分为十五个区域,各个区域上分配的不同的扇区数量,从而计算出最大的物理容量。
  这些参数一般存放在普通用户访问不到的位置,有些是在物理零磁道以前,可以认为是在负磁道的位置。可能每个参数占用一个模块,也可能几个参数占用同一模块。模块大小不一样,有些模块才一个字节,有些则达到64K字节。这些参数并不是连续存放的,而是各有各的固定位置。
  读出内部初始化参数表后,就可以分析出每个模块是否处于正常状态。当然,也可以修正这些参数,重新写回盘片中指定的位置。这样,就可以把一些因为参数错乱而无法正常使用的硬盘“修复”回正常状态。
  如果读者有兴趣进一步研究,不妨将硬盘电路板上的ROM芯片取下,用写码机读出其中的BIOS程序,可以在程序段中找到以上所列出的参数名称。
硬盘修复之低级格式化

  熟悉硬盘的人都知道,在必要的时候需要对硬盘做“低级格式化”(下面简称“低格”)。进行低格所使用的工具也有多种:有用厂家专用设备做的低格,有用厂家提供的软件工具做的低格,有用DM工具做的低格,有用主板BIOS中的工具做的低格,有用Debug工具做的低格,还有用专业软件做低格……
  不同的工具所做的低格对硬盘的作用各不一样。有些人觉得低格可以修复一部分硬盘,有些人则觉得低格十分危险,会严重损害硬盘。高朋用过多种低格工具,认为低格是修复硬盘的一个有效手段。下面总结一些关于低格的看法,与广大网友交流。
  大家关心的一个问题:“低格过程到底对硬盘进行了什么操作?”实践表明低格过程有可能进行下列几项工作,不同的硬盘的低格过程相差很大,不同的软件的低格过程也相差很大。
  A. 对扇区清零和重写校验值
  低格过程中将每个扇区的所有字节全部置零,并将每个扇区的校验值也写回初始值,这样可以将部分缺陷纠正过来。譬如,由于扇区数据与该扇区的校验值不对应,通常就被报告为校验错误(ECC Error)。如果并非由于磁介质损伤,清零后就很有可能将扇区数据与该扇区的校验值重新对应起来,而达到“修复”该扇区的功效。这是每种低格工具和每种硬盘的低格过程最基本的操作内容,同时这也是为什么通过低格能“修复大量坏道”的基本原因。另外,DM中的Zero Fill(清零)操作与IBM DFT工具中的Erase操作,也有同样的功效。

  B. 对扇区的标识信息重写
  在多年以前使用的老式硬盘(如采用ST506接口的硬盘),需要在低格过程中重写每个扇区的标识(ID)信息和某些保留磁道的其他一些信息,当时低格工具都必须有这样的功能。但现在的硬盘结构已经大不一样,如果再使用多年前的工具来做低格会导致许多令人痛苦的意外。难怪经常有人在痛苦地高呼:“危险!切勿低格硬盘!我的硬盘已经毁于低格!”
  C. 对扇区进行读写检查,并尝试替换缺陷扇区

  有些低格工具会对每个扇区进行读写检查,如果发现在读过程或写过程出错,就认为该扇区为缺陷扇区。然后,调用通用的自动替换扇区(Automatic reallocation sector)指令,尝试对该扇区进行替换,也可以达到“修复”的功效。
  D. 对所有物理扇区进行重新编号
  编号的依据是P-list中的记录及区段分配参数(该参数决定各个磁道划分的扇区数),经过编号后,每个扇区都分配到一个特定的标识信息(ID)。编号时,会自动跳过P-list中所记录的缺陷扇区,使用户无法访问到那些缺陷扇区(用户不必在乎永远用不到的地方的好坏)。如果这个过程半途而废,有可能导致部分甚至所有扇区被报告为标识不对(Sector ID not found, IDNF)。要特别注意的是,这个编号过程是根据真正的物理参数来进行的,如果某些低格工具按逻辑参数(以 16heads 63sector为最典型)来进行低格,是不可能进行这样的操作。
  E. 写磁道伺服信息,对所有磁道进行重新编号
  有些硬盘允许将每个磁道的伺服信息重写,并给磁道重新赋予一个编号。编号依据P-list或TS记录来跳过缺陷磁道(defect track),使用户无法访问(即永远不必使用)这些缺陷磁道。这个操作也是根据真正的物理参数来进行。
 F. 写状态参数,并修改特定参数

  有些硬盘会有一个状态参数,记录着低格过程是否正常结束,如果不是正常结束低格,会导致整个硬盘拒绝读写操作,这个参数以富士通IDE硬盘和希捷SCSI硬盘为典型。有些硬盘还可能根据低格过程的记录改写某些参数。
  下面我们来看看一些低格工具做了些什么操作:
  1. DM中的Low level format
  进行了A和B操作。速度较快,极少损坏硬盘,但修复效果不明显。
  2. Lformat
  进行了A、B、C操作。由于同时进行了读写检查,操作速度较慢,可以替换部分缺陷扇区。但其使用的是逻辑参数,所以不可能进行D、E和F的操作。遇到IDNF错误或伺服错误时很难通过,半途会中断。
  3. SCSI卡中的低格工具
  由于大部SCSI硬盘指令集通用,该工具可以对部分SCSI硬盘进行A、B、C、D、F操作,对一部分SCSI硬盘(如希捷)修复作用明显。遇到缺陷磁道无法通过。同时也由于自动替换功能,检查到的缺陷数量超过G-list限度时将半途结束,硬盘进入拒绝读写状态

好久没有写博客了,看到一篇很好的文章,转一下。

其实事实上是没有软坏道(逻辑坏道)的概念的,那是文件系统的问题,和硬盘无关。只是我们都习惯了这个概念,一直都是这么叫而已,心里都清楚,高格一下就行了。片头的几个常识性的问题也好知道,对于硬盘也算是花过心思的。一直没有找到G-list的详细资料,这篇文章不错,保存起来。

星期二, 十二月 11, 2007

【转】《Linux防火墙及NAT》练习题

《Linux防火墙及NAT》练习题


1.1)设定INPUT为ACCEPT
1.2)设定OUTPUT为ACCEPT
1.3)设定FORWARD为ACCEPT

参考答案:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


2)定制源地址访问策略
2.1)接收来自192.168.0.3的IP访问
2.2)拒绝来自192.168.0.0/24网段的访问

参考答案:
iptables -A INPUT -i eth0 -s 192.168.0.3 -j ACCPET
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP


3)目标地址192.168.0.3的访问给予记录,并查看/var/log/message

参考答案:
iptables -A INPUT -s 192.168.0.3 -j LOG


4)定制端口访问策略
4.1)拒绝任何地址访问本机的111端口
4.2)拒绝192.168.0.0/24网段的1024-65534的源端口访问SSH

参考答案:
iptables -A INPUT -i eth0 -p tcp --dport 111 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.0.0/24 --sport 1024:65534 --dport ssh -j DROP



5)定制CLIENT端的防火墙访问状态
5.1)清除所有已经存在的规则;
5.2)设定预设策略,除了INPUT设为DROP,其他为ACCEPT;
5.3)开放本机的lo可以自由访问;
5.4)设定有相关的封包状态可以进入本机;

参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPTLUPA
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP


6)定制防火墙的MAC地址访问策略
6.1)清除所以已经存的规则
6.2)将INPUT设为DROP
6.3)将目标计算机的MAC设为ACCEPT

参考答案:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -A INPUT -m mac --mac-source 00-C0-9F-79-E1-8A -j ACCEPT


7)设定ICMP包,状态为8的被DROP掉

参考答案:
iptables -A INPUT -i eth0 -p icmp --icmp-type 8 -j DROP




8)定制防火墙的NAT访问策略
8.1)清除所有策略LUPA开源社区
8.2)重置ip_forward为1
8.3)通过MASQUERADE设定来源于192.168.6.0网段的IP通过192.168.6.217转发出去
8.4)通过iptables观察转发的数据包

参考答案:
iptables -F
iptables -X
iptables -Z
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.6.0 -o 192.168.6.217 -j MASQUERADE
iptables -L -nv


9)定制防火墙的NAT访问策略
9.1)清除所有NAT策略
9.2)重置ip_forward为1
9.3)通过SNAT设定来源于192.168.6.0网段通过eth1转发出去
9.4)用iptables观察转发的数据包

参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 192.168.6.217
iptables -L -nv


10)端口转发访问策略
10.1)清除所有NAT策略
10.2)重置ip_forward为1LUPA
10.3)通过DNAT设定为所有访问192.168.6.217的22端口,都访问到192.168.6.191的22端口
10.4)设定所有到192.168.6.191的22端口的数据包都通过FORWARD转发
10.5)设定回应数据包,即通过NAT的POSTROUTING设定,使通讯正常

参考答案:
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -d 192.168.6.217 -p tcp --dport 22 -j DNAT --to-destination

192.168.6.191:22
iptables -A FORWARD -p tcp -d 192.168.6.191 --dport 22 -j ACCEPT
iptables -t nat -I POSTROUTING -p tcp --dport 22 -j MASQUERADE

星期四, 十二月 06, 2007

[转] Linux操作系统下RPM软件包的使用技巧

Linux操作系统下RPM软件包的使用技巧

转自
http://linux.chinaitlab.com/administer/734524.html

1.如何安装rpm软件包
 
  rmp软件包的安装可以使用程序rpm来完成。执行下面的命令rpm -i package_name.rpm

(package_name.rpm是你要安装的rpm包的文件名,一般置于当前目录下)安装过程中可能出现下面的提

示:…… conflict with …… 可能是要安装的包里有一些文件可能会覆盖现有的文件,缺省时这样的情

况下是无法正确安装的可以用 rpm ——force -i 强制安装即可…… is needed by …… …… is not

installed …… 此包需要的一些软件你没有安装可以用rpm ——nodeps -i 来忽略此信息也就是说,rpm

-i ——force ——nodeps 可以忽略所有依赖关系和文件问题,什么包都能安装上,但这种强制安装的软

件包不能保证完全发挥功能
 
  2.如何安装。src.rpm软件包
 
  有些软件包是以。src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时需要进行编译。这

类软件包有两种安装方法:
 
  方法一:
 
  1)。执行rpm -i your-package.src.rpm
 
  2)。 cd /usr/src/redhat/SPECS
 
  3)。 rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
 
  4)。 cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
 
  5)。 ./configure 这一步和编译普通的源码软件一样,可以加上参数
 
  6)。 make
 
  7)。 make install
 
  方法二:
 
  1)。执行rpm -i you-package.src.rpm
 
  2)。 cd /usr/src/redhat/SPECS
 
  前两步和方法一相同
 
  3)。 rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件这时,

在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)在这个目录下,有一

个新的rpm包,这个是编译好的二进制文件。执行rpm -i new-package.rpm即可安装完成。
 
  3.如何卸载rpm软件包
 
  使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀。rpm
 
  比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:
 
  rpm -e proftpd-1.2.8-1
 
  而不是:pm -e proftpd-1.2.8-1.i386.rpm
 
  要是不能确定已经安装的包名是什么,只是记得一部分名子(如:ftp),可以用:rpm -qa | grep

ftp来查询准确名字
 
  有时会出现一些错误或者警告:
 
  …… is needed by …… 这说明这个软件被其他软件需要,不能随便卸载 可以用rpm -e ——

nodeps强制卸载。
 
  4.如何不安装但是获取rpm包中的文件
 
  使用工具rpm2cpio和cpio
 
  rpm2cpio xxx.rpm | cpio -vi
 
  rpm2cpio xxx.rpm | cpio -idmv
 
  rpm2cpio xxx.rpm | cpio ——extract ——make-DirectorIEs
 
  参数i和extract相同,表示提取文件。v表示指示执行进程,d和make-directory相同,表示根据包中

文件原来的路径建立目录,m表示保持文件的更新时间。
 
  5.如何查看与rpm包相关的文件和其他信息
 
  下面所有的例子都假设使用软件包mysql-3.23.54a-11
 
  a.我的系统中安装了那些rpm软件包
 
  rpm -qa 讲列出所有安装过的包
 
  如果要查找所有安装过的包含某个字符串sql的软件包
 
  rpm -qa |grep sql
 
  b.如何获得某个软件包的文件全名
 
  rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得
 
  当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11
 
  c.一个rpm包中的文件安装到那里去了?
 
  rpm -ql 包名注意这里的是不包括。rpm后缀的软件包的名称也就是说只能用mysql或者mysql-

3.23.54a-11而不是mysql-3.23.54a -11.rpm.如果只是想知道可执行程序放到那里去了,也可以用which

,比如which mysql,或whereis 比如:whereis mysql.
 
  d.一个rpm包中包含那些文件
 
  一个没有安装过的软件包,使用rpm -qlp ****.rpm:一个已经安装过的软件包,还可以使用rpm -ql

****.rpm
 
  e.如何获取关于一个软件包的版本,用途等相关信息?
 
  一个没有安装过的软件包,使用rpm -qip ****.rpm;一个已经安装过的软件包,还可以使用rpm -qi

****.rpm
 
  f.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序
 
  rpm -qf `which 程序名` 返回软件包的全名;rpm -qif `which 程序名` 返回软件包的有关信息;

rpm -qlf `which 程序名` 返回软件包的文件列表。注意,这里不是引号,而是`,就是键盘左上角的那

个键。也可以使用rpm -qilf,同时输出软件包信息和文件列表
 
  g.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件
 
  注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以用于可执行程序,也

可以用于普通的任何文件。前提是知道这个文件名。首先获得这个程序的完整路径,可以用whereis或者

which,然后使用rpm -qf例如:# whereis ftptop (结果为ftptop: /usr/bin/ftptop

/usr/share/man/man1/ftptop.1.gz)
 
  # rpm -qf /usr/bin/ftptop
 
  proftpd-1.2.8-1
 
  # rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
 
  proftpd-1.2.8-1
 

星期一, 十二月 03, 2007

Inconsolable Backstreet boys 经典呀

很久没有听Backstreet boys的曲子了

偶然间从bt上down了个光盘下来look

没有别的发现 倒是发现这首曲子非常好听

也许偶是天蝎座的原因 也许这是backstreet比较伤感的曲子

但是真的很好听

本来想做成手机铃声 但是降噪的时候一直没有处理好

所以就在这里分享了

Inconsolable



I close the door
Like so many times, so many times before
Felt like a scene on the cutting room floor
When I let you walk away tonight
Without a word
I try to sleep, yeah
But the clock is stuck on thoughts of you and me
A thousand more regrets unraveling, ohh
If you were here right now, I swear,
I'd tell you this
Baby I don't want to waste another day
Keeping it inside it's killing me
Cause all I ever want, it comes right down to you
To you!
I'm wishing I could find the words to say
Baby I would tell you every time you leave
I'm inconsolable
I climb the walls,yeah
I can see the edge but I can't take the fall, no.
I've memorized the number
So why can't I make the call?
Maybe 'cause I know you'll always be with me
In the possibility
I don't want to be like this,
I just want to let you know,
Everything that I'm holding,
Is everything I can't let go, can't let go.
'Cause baby I don't want to waste another day
Don't you know it baby
I don't want to waste another day
Song:Inconsolable
Singer:Backstreet Boys

Backstreet Boys,2007年最新单曲,新专辑10月正式发行
End


原来还是10月的新单曲啊 哈

偶已经找好链接了

http://www.drip-music.com/bbs/uploadmp3/2007-8-19/inconsolable.mp3

欣赏一下吧

星期日, 十一月 25, 2007

今天折腾了一下一个好用的网络电话 挺好玩的

下午的时候一朋友跟我说快门这个软件蛮好玩的 今天折腾了一下 果然好玩

号称 第一次电话15分钟免费 以后每次前3分钟免费

我试了一下 好用

大家可以点下面的链接注册

注册 快门

星期五, 十一月 23, 2007

[转] 利用嗅探器之TcpDump分析网络安全

利用嗅探器之TcpDump分析网络安全

转自
http://www.lupaworld.com/bbs/thread-31348-1-1.html

前言:在如令网络系统中,随着网络重要性、复杂性的不断增长,作为一名网络工程师、监测者、分析者

或者是网络性能的评估者,您所扮演的角色对公司的成功是至关重要的。为了更好的完成工作,您需要透

视整个网络,识别关键的性能问题——从应用的响应时间到带宽的瓶颈以至于识别网络每一层所出现的问

题。在您每天的工作中,常常会着眼于未来用新的技术和应用扩展您的网络。网络探针分布在重要网段,

监视该网络线路上各协议,各计算机占用情况,监控网络上各种业务的网络流量及带宽,记录网络操作,

实现分布集中的网络分析Sniffer系统。本文将为你介绍如何利用嗅探器(sniffer)之网络数据采集分析工

具 TcpDump来详细网络及其安全分析。
一 嗅探器技术在网络中的应用
1 Sniffer简介
Sniffer即嗅探器的英文写法,嗅探器(sniffer)是最常见,也是最重要的技术之一。用过windows平台上

的sniffer工具(例如, netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用

sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同

时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,

只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不

应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的

效果。其实,sniffer工具既可以适合于黑客的使用,也同样有利于网络管理员和网络程序员。对于网络

管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过

sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过 sniffer工具来调试程序


它也可以理解为一个安装在计算机上的窃听设备它可以用来窃听计算机在网络上所产生的众多的信息。简

单一点解释:一部电话的窃听装置,可以用来窃听双方通话的内容,而计算机网络嗅探器则可以窃听计算

机程序在网络上发送和接收到的数据。可是,计算机直接所传送的数据,事实上是大量的二进制数据。因

此,一个网络窃听程序必须也使用特定的网络协议来分解嗅探到的数据,嗅探器也就必须能够识别出那个

协议对应于这个数据片断,只有这样才能够进行正确的解码。计算机的嗅探器比起电话窃听器,有他独特

的优势:很多的计算机网络采用的是“共享媒体"。就是说,你不必中断他的通讯,并且配置特别的线路

,再安装嗅探器,你几乎可以在任何连接着的网络上直接窃听到你同一掩码范围内的计算机网络数据。我

们称这种窃听方式为“基于混杂模式的嗅探”(promiscuousmode)。尽管如此,这种“共享”的技术发

展的很快,慢慢转向“交换”技术,这种技术会长期内会继续使用下去, 它可以实现有目的选择的收发

数据。
2 Sniffer在工作原理
以太网的数据传输是基于“共享”原理的:所有的同一本地网范围内的计算机共同接收到相同的数据包。

这意味着计算机直接的通讯都是透明可见的。正是因为这样的原因,以太网卡都构造了硬件的“过滤器”

这个过滤器将忽略掉一切和自己无关的网络信息。事实上是忽略掉了与自身MAC地址不符合的信息。嗅探

程序正是利用了这个特点,它主动的关闭了这个嗅探器,也就是前面提到的设置网卡“混杂模式”。因此

,嗅探程序就能够接收到整个以太网内的网络数据了信息了。
二 网络数据采集分析工具TcpDump的应用
1 网络数据采集分析工具TcpDump的简介
顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协

议、主机、网络或端口的过滤,并提供and、 or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是

一种免费的网络分析工具,尤其其提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护

和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂

模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中

存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。我们用尽量

简单的话来定义tcpdump,就是:dump the traffice on a network.,根据使用者的定义对网络上的数据

包进行截获的包分析工具。作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活

的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东西之一。tcpdump提供了源代

码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在

于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root

权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威

胁,而是对网络上的其他计算机的安全存在威胁。
2 网络数据采集分析工具TcpDump的安装
在linux下tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种

是以源程序的形式安装。
rpm包的形式安装:这种形式的安装是最简单的安装方法,rpm包是将软件编译后打包成二进制的格式,通

过rpm命令可以直接安装,不需要修改任何东西。以超级用户登录,使用命令如下:
#rpm -ivh tcpdump-3_4a5.rpm
这样tcpdump就顺利地安装到你的linux系统中。怎么样,很简单吧。
源程序的安装:既然rpm包的安装很简单,为什么还要采用比较复杂的源程序安装呢?其实,linux一个最大

的诱人之处就是在她上面有很多软件是提供源程序的,人们可以修改源程序来满足自己的特殊的需要。所

以我特别建议朋友们都采取这种源程序的安装方法。
第一步 取得源程序在源程序的安装方式中,我们首先要取得tcpdump的源程序分发包,这种分发包有两种

形式,一种是tar压缩包(tcpdump- 3_4a5.tar.Z),另一种是rpm的分发包(tcpdump-3_4a5.src.rpm)。这两

种形式的内容都是一样的,不同的仅仅是压缩的方式.tar的压缩包可以使用如下命令解开:
#tar xvfz tcpdump-3_4a5.tar.Z
rpm的包可以使用如下命令安装:
#rpm -ivh tcpdump-3_4a5.src.rpm
这样就把tcpdump的源代码解压到/usr/src/redhat/SOURCES目录下.
第二步 做好编译源程序前的准备活动
在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpdump软件所需的库文件

。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c 语言编译器一般是gcc。在tcpdump的

源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生 Makefile

文件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST 和 MANDEST 这两个宏定义,缺省值是
BINDEST = @sbindir@
MANDEST = @mandir@
第一个宏值表明安装tcpdump的二进制文件的路径名,第二个表明tcpdump的man 帮助页的路径名,你可以

修改它们来满足系统的需求。
第三步 编译源程序
使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生

成Makefile文件,以便编译使用.make 命令则根据Makefile文件中的规则编译tcpdump的源程序。使用

make install命令安装编译好的tcpdump的二进制文件。
总结一下就是:
# tar xvfz tcpdump-3_4a5.tar.Z
# vi Makefile.in
# . /configure
# make
# make install
3 网络数据采集分析工具TcpDump的使用
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e80 0000 902b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d85 4008 0002
0640 4d41 5354 4552 5f57 4542 0000 0000
0000 00
^C
tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界

面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存

,等等。
然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都

截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数

据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地

址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man

tcpdump查看这些过滤规则的具体用法。
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,

可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关

的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行。在

FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之

类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否

被用作攻击同网络的其他计算机的跳板。
May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled
虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行

分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据

包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲

更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、

udp等低层协议。
从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使

用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的

tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避

免捕获的数据包填满整个硬盘。FreeBSD提供的一个有效的解码程序为tcpshow,它可以通过Packages

Collection来安装。
# pkg_add /cdrom/packages/security/tcpshow*
# tcpdump -c 3 -w tcpdump.out
tcpdump: listening on fxp0
# tcpshow < tcpdump.out
---------------------------------------------------------------------------
Packet 1
TIME:12:00:59.984829
LINK:00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026
<*** No decode support for encapsulated protocol ***>
---------------------------------------------------------------------------
Packet 2
TIME:12:01:01.074513 (1.089684)
LINK:00:A0:C9:AB:3CF -> FF:FF:FF:FF:FF:FF type=ARP
ARP:htype=Ethernet ptype=IP hlen=6 plen=4 op=request
sender-MAC-addr=00:A0:C9:AB:3CF sender-IP-address=202.102.245.3
target-MAC-addr=00:00:00:00:00:00 target-IP-address=202.102.245.3
---------------------------------------------------------------------------
Packet 3
TIME:12:01:01.985023 (0.910510)
LINK:00:10:7B:08:3A:56 -> 01:80:C2:00:00:00 type=0026
<*** No decode support for encapsulated protocol ***>


tcpshow能以不同方式对数据包进行解码,并以不同的方式显示解码数据,使用者可以根据其手册来选择

最合适的参数对截获的数据包进行分析。从上面的例子中可以看出,tcpshow支持的协议也并不丰富,对

于它不支持的协议就无法进行解码。

除了tcpdump之外,FreeBSD的Packages Collecion中还提供了Ethereal和Sniffit两个网络分析工具,以

及其他一些基于网络分析方式的安全工具。其中Ethereal运行在 X Window 下,具有不错的图形界面,

Sniffit使用字符窗口形式,同样也易于操作。然而由于tcpdump对过滤规则的支持能力更强大,因此系统

管理员仍然更喜欢使用它。对于有经验的网络管理员,使用这些网络分析工具不但能用来了解网络到底是

如何运行的,故障出现在何处,还能进行有效的统计工作,如那种协议产生的通信量占主要地位,那个主

机最繁忙,网络瓶颈位于何处等等问题。因此网络分析工具是用于网络管理的宝贵系统工具。为了防止数

据被滥用的网络分析工具截获,关键还是要在网络的物理结构上解决。常用的方法是使用交换机或网桥将

信任网络和不信任网络分隔开,可以防止外部网段窃听内部数据传输,但仍然不能解决内部网络与外部网

络相互通信时的数据安全问题。如果没有足够的经费将网络上的共享集线器升级为以太网交换机,可以使

用FreeBSD系统执行网桥任务。这需要使用option BRIDGE编译选项重新定制内核,此后使用bridge命令启

动网桥功能。

tcpdump采用命令行方式,它的命令格式为:
  tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
          [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
          [ -T 类型 ] [ -w 文件名 ] [表达式 ]

(1). tcpdump的选项介绍

   -a    将网络地址和广播地址转变成名字;
   -d    将匹配信息包的代码以人们能够理解的汇编格式给出;
   -dd    将匹配信息包的代码以c语言程序段的格式给出;
   -ddd    将匹配信息包的代码以十进制的形式给出;
   -e    在输出行打印出数据链路层的头部信息;
   -f    将外部的Internet地址以数字的形式打印出来;
   -l    使标准输出变为缓冲行形式;
   -n    不把网络地址转换成名字;
   -t    在输出的每一行不打印时间戳;
   -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
   -vv    输出详细的报文信息;
   -c    在收到指定的包的数目后,tcpdump就会停止;
   -F    从指定的文件中读取表达式,忽略其它的表达式;
   -i    指定监听的网络接口;
   -r    从指定的文件中读取包(这些包一般通过-w选项产生);
   -w    直接将包写入文件中,并不分析和打印出来;
   -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程 调用)和

snmp(简单       网络管理协议;)

(2). tcpdump的表达式介绍

表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这

个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般如下几

种类型的关键字。

第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是

一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类

型,缺省的类型是host.

第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传

输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明

目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数

据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地

址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协

议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻

辑运算,取非运算是 'not ' '! ', 与运算是'and','&&'或运算 是'or' ,'││';这些关键字可以组合

起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。

A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 

  括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1

(3). tcpdump的输出结果介绍

下面我们介绍几种典型的tcpdump命令的输出信息

A,数据链路层头信息

使用命令
#tcpdump --e host ice
ice 是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1A
H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如

下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 > ice.telne
t 0:0(0) ack 22535 win 8760 (DF)

分析:21:50:12是显示的时间, 847509是ID号,eth0 <表示从网络接口eth0 接受该数据包,eth0 >表

示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数

据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip 是表明该数据包是IP

数据包,60 是数据包的长度, h219.33357 > ice.telnet 表明该数据包是从主机H219的33357端口发往主

机ICE的TELNET(23)端口. ack 22535 表明对序列号是222535的包进行响应. win 8760表明发送窗口的大

小是8760.

B,ARP包的TCPDUMP输出信息

使用命令
#tcpdump arp
得到的输出结果是:
22:32:42.802509 eth0 > arp who-has route tell ice (0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af:1a)
分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是ARP请求包, who

-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:58:af:1a是主机ICE的MAC地址



C,TCP包的输出信息

用TCPDUMP捕获的TCP包的一般输出信息是:
src > dst: flags data-seqno ack window urgent options
src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (FIN), P (PUSH) ,

R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是下次期望的顺序号, window是

接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. Options是选项.

D,UDP包的输出信息

用TCPDUMP捕获的UDP包的一般输出信息是:
route.port1 > ice.port2: udp lenth
UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,

类型是UDP, 包的长度是lenth

三,利用网络数据采集分析工具TcpDump分析网络安全

作为IP网络的系统管理员,经常会遇到一些网络连接方面的故障,在排查这些接故障时,除了凭借经验外

,使用包分析软件往往会起到事半功倍的效果。

常用的包分析软件非常多,常见的如tcpdump,sniffer,windump,ettercap等。

1 网络数据采集分析工具TcpDump分析

(1)网络的数据过滤

不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一

定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供

我们选择数据:

-b在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。例如:
server#tcpdump -b arp
将只显示网络中的arp即地址转换协议信息。

-i选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接

口上通过的数据。例如:
server#tcpdump -i eth0
只显示通过eth0接口上的所有报头。src、dst、port、host、net、ether、gateway这几个选项又分别包

含src、dst、 port、host、net、ehost等附加选项。他们用来分辨数据包的来源和去向,src host

192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0。

以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不

是IP地址而是物理地址,而gateway则用于网关主机。可能有点复杂,看下面例子就知道了:
server#tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。
server#tcpdump ether src 00:50:04:BA:9B and dst……
过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽

)。
server#Tcpdump src host 192.168.0.1 and dst port not telnet
过滤源主机192.168.0.1和目的端口不是telnet的报头。
ip icmp arp rarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。例

如:
server#tcpdump ip src……
只过滤数据-链路层上的IP报头。
server#tcpdump udp and src host 192.168.0.1
只过滤源主机192.168.0.1的所有udp报头。



(2)网络的数据显示/输入输出

TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:
-l可以将数据重定向。
如tcpdump -l>tcpcap.txt将得到的数据存入tcpcap.txt文件中。
-n不进行IP地址到主机名的转换。
如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这

样:eth0<ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0<192.168.0.9.1165>

192.168.0.1.telnet。
-nn不进行端口名称的转换。
上面这条信息使用-nn后就变成了:eth0<ntc9.1165>router.domain.net.23。
-N不打印出默认的域名。
还是这条信息-N后就是:eth0<ntc9.1165>router.telnet。
-O不进行匹配代码的优化。
-t不打印UNIX时间戳,也就是不显示时间。
-tt打印原始的、未格式化过的时间。
-v详细的输出,也就比普通的多了个TTL和服务类型。

2 网络数据采集分析工具TcpDump分析详细例子

(1)网络邮件服务器(mail)在排障

我们先来看看故障现象,在一局域网中新安装了后台为qmail的邮件服务器server,邮件服务器收发邮件

等基本功能正常,但在使用中发现一个普遍的怪现象:pc机器上发邮件时连接邮件服务器后要等待很久的

时间才能开始实际的发送工作。我们来看,从检测来看,网络连接没有问题,邮件服务器server和下面的

pc性能都没有问题,问题可能出在哪里呢?为了进行准确的定位,我们在pc机client上发送邮件,同时在

邮件服务器server上使用 tcpdump对这个client的数据包进行捕获分析,如下:

server#tcpdump host client
tcpdump: listening on hme0
23:41:30.040578 client.1065 > server.smtp: S 1087965815:1087965815(0) win 64240 (DF)
23:41:30.040613 server.smtp > client.1065: S 99285900:99285900(0) ack 1087965816 win 10136

(DF)
23:41:30.040960 client.1065 > server.smtp: . ack 1 win 64240 (DF)

顺利的完成,到目前为止正常,我们再往下看:

23:41:30.048862 server.33152 > client.113: S 99370916:99370916(0) win 8760 (DF)
23:41:33.411006 server.33152 > client.113: S 99370916:99370916(0) win 8760 (DF)
23:41:40.161052 server.33152 > client.113: S 99370916:99370916(0) win 8760 (DF)
23:41:56.061130 server.33152 > client.113: R 99370917:99370917(0) win 8760 (DF)
23:41:56.070108 server.smtp > client.1065: P 1:109(108) ack 1 win 10136 (DF)

看出问题了,问题在:我们看到server端试图连接client的113identd端口,要求认证,然而没有收到

client端的回应,server 端重复尝试了3次,费时26秒后,才放弃认证请求,主动发送了reset标志的数

据包,开始push后面的数据,而正是在这个过程中所花费的26秒时间,造成了发送邮件时漫长的等待情况

。问题找到了,就可以修改了,我们通过修改服务器端的qmail配置,使它不再进行113端口的认证,再次

抓包,看到邮件 server不再进行113端口的认证尝试,而是在三次检测后直接push数据,问题得到完美的

解决。

(2)网络安全中的ARP协议的故障

先看故障现象,局域网中的一台采用solaris操作系统的服务器A-SERVER网络连接不正常,从任意主机上

都无法ping通该服务器。排查:首先检查系统,系统本身工作正常,无特殊进程运行,cpu,内存利用率

正常,无挂接任何形式的防火墙,网线正常。此时我们借助tcpdump来进行故障定位,首先我们将从B-

CLIENT主机上执行ping命令,发送icmp数据包给A-SERVER,如下:

[root@redhat log]# ping A-SERVER
PING A-SERVER from B-CLIENT : 56(84) bytes of data.
此时在A-SERVER启动tcpdump,对来自主机B-CLIENT的数据包进行捕获。
A-SERVER# tcpdump host B-CLIENT
tcpdump: listening on hme0
16:32:32.611251 arp who-has A-SERVER tell B-CLIENT
16:32:33.611425 arp who-has A-SERVER tell B-CLIENT
16:32:34.611623 arp who-has A-SERVER tell B-CLIENT

我们看到,没有收到预料中的ICMP报文,反而捕获到了B-CLIENT发送的arp广播包,由于主机B-CLIENT无

法利用arp得到服务器A- SERVER的地址,因此反复询问A-SERVER的MAC地址,由此看来,高层的出问题的

可能性不大,很可能在链路层有些问题,先来查查主机A- SERVER的arp表:

A-SERVER# arp -a
Net to Media Table
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- ----- ---------------
hme0 netgate 255.255.255.255 00:90:6d:f2:24:00
hme0 A-SERVER 255.255.255.255 S 00:03:ba:08:b2:83
hme0 BASE-ADDRESS.MCAST.NET 240.0.0.0 SM 01:00:5e:00:00:00

请注意A-SERVER的Flags位置,我们看到了只有S标志。我们知道,solaris在arp实现中,arp的flags需要

设置P标志,才能响应ARP requests。

手工增加p位
A-SERVER# arp -s A-SERVER 00:03:ba:08:b2:83 pub
此时再调用arp -a看看
A-SERVER# arp -a
Net to Media Table
Device IP Address Mask Flags Phys Addr
------ -------------------- --------------- ----- ---------------
hme0 netgate 255.255.255.255 00:90:6d:f2:24:00
hme0 A-SERVER 255.255.255.255 SP 00:03:ba:08:b2:83
hme0 BASE-ADDRESS.MCAST.NET 240.0.0.0 SM 01:00:5e:00:00:00

我们看到本机已经有了PS标志,此时再测试系统的网络连接恢复正常,问题得到解决。

(3)netflow软件的问题

先看故障现象,在新装的网管工作站上安装cisco netflow软件对路由设备流量等进行分析,路由器按照要

求配置完毕,本地工作上软件安装正常,无报错信息,但是启动netflow collector却收不到任何路由器

上发出的流量信息,导致该软件失效。排查现象,反复检查路由和软件,配置无误。采用逐步分析的方法

,首先先要定位出有问题的设备,是路由器根本没有发送流量信息还是本地系统接收出现了问题?突然想

到在路由器上我们定义了接收的client端由udp端口9998接收数据,可以通过监视这个端口来看路由器是

否确实发送了udp数据,如果系统能够接收到来自路由的数据包,那么路由方面的问题可能行不大,反之

亦然。

在网管工作站上使用tcpdump来看看:

nms#tcpdump port 9995
tcpdump: listening on hme0
18:15:34.373435 routea > nms.9995: udp 1464
18:15:34.373829 routea.50111 > nms.9995: udp 1464
18:15:34.374100 routea.50111 > nms.9995: udp 1464

马上我们就看到数据包确实从路由器上发过来了,问题出在路由器的可能性基本排除,重新核查系统,果

然,网管工作站上安装了防火墙,udp端口9998是被屏蔽的,调整工作站上的防火墙配置,netflow工作恢

复正常,故障得以排除。

结尾:上面我们通过3个实际的例子演示了网络数据采集分析工具TcpDump分析软件在故障解决中起到的作

用,通过这些例子,我们不难发现,用好包分析软件,对系统管理员快速准确定位网络故障,分析网络问

题有不可替代的作用。任何事情都具有两面性,事实上能够获得网络上传输的数据的工具对于维护网络运

行也非常重要,网络需要这些工具软件来帮助分析网络状态、解决各种网络故障,它们是网络工程师的好

帮手。

在市场上销售的有好几种专用的网络分析设备,来实现截获数据并进行分析的目的。虽然这些硬件实现的

设备虽然功能强大,但价格昂贵,而使用软件通过标准计算机的网络接口来实现这种功能,相对来讲对于

一般使用者还是可以承受的。

星期五, 九月 21, 2007

Windows自动启动程序十大藏身之处

Windows自动启动程序十大藏身之处

转自http://windows.chinaitlab.com/administer/730404.html

Windows启动时通常会有一大堆程序自动启动。不要以为管好了“开始→程序→启动”菜单就万事大吉,

实际上,在Windows XP/2K中,让Windows自动启动程序的办法很多,下文告诉你最重要的两个文件夹和八

个注册键。

一、当前用户专有的启动文件夹

这是许多应用软件自动启动的常用位置,Windows自动启动放入该文件夹的所有快捷方式。用户

启动文件夹一般在:\Documents and Settings\<用户名字>\「开始」菜单\程序\启动,其中“<用

户名字>”是当前登录的用户帐户名称。

二、对所有用户有效的启动文件夹

这是寻找自动启动程序的第二个重要位置,不管用户用什么身份登录系统,放入该文件夹的快捷

方式总是自动启动——这是它与用户专有的启动文件夹的区别所在。该文件夹一般在:\Documents and

Settings\All Users\「开始」菜单\程序\启动。

三、Load注册键

介绍该注册键的资料不多,实际上它也能够自动启动程序。位置:

HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\ CurrentVersion\Windows\load。

四、Userinit注册键

位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\
Winlogon\Userinit。这里也能够使系统启动时自动初始化程序。通常该注册键下面有一个

userinit.exe,但这个键允许指定用逗号分隔的多个程序,例如“userinit.exe,OSA.exe”(不含引号)



五、Explorer\Run注册键

和load、Userinit不同,Explorer\Run键在HKEY_CURRENT_USER和
HKEY_LOCAL_MACHINE下都有,具体位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\
Explorer\Run,和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
\CurrentVersion\Policies\Explorer\Run。

六、RunServicesOnce注册键

RunServicesOnce注册键用来启动服务程序,启动时间在用户登录之前,而且先于其他通过注册

键启动的程序。RunServicesOnce注册键的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\RunServicesOnce,
和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\RunServicesOnce。

七、RunServices注册键

RunServices注册键指定的程序紧接RunServicesOnce指定的程序之后运行,但两者都在用户登录

之前。RunServices的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices,和
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\RunServices。

八、RunOnce\Setup注册键

RunOnce\Setup指定了用户登录之后运行的程序,它的位置是:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ RunOnce\Setup,
和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\RunOnce\Setup。

九、RunOnce注册键

安装程序通常用RunOnce键自动运行程序,它的位置在
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce和
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce。
HKEY_LOCAL_MACHINE下面的RunOnce键会在用户登录之后立即运行程序,运行时机在其他Run键指

定的程序之前。 HKEY_CURRENT_USER下面的RunOnce键在操作系统处理其他Run键以及“启动”文件夹的内

容之后运行。如果是XP,你还需要检查一下
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\RunOnceEx。

十、Run注册键

Run是自动运行程序最常用的注册键,位置在:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,和
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run。
HKEY_CURRENT_USER下面的Run键紧接HKEY_LOCAL_MACHINE下面的Run键运行,但两者都在处理“

启动”文件夹之前。

星期三, 九月 19, 2007

Linux安全设置手册

Linux安全设置手册

转自 http://linux.chinaitlab.com/safe/730219.html

本文讲述了如何通过基本的安全措施,使你的Linux系统变得可靠。

1、Bios Security

一定要给Bios设置密码,以防通过在Bios中改变启动顺序,而可以从软盘启动。这样可以阻止别

人试图用特殊的启动盘启动你的系统,还可以阻止别人进入Bios改动其中的设置(比如允许通过软盘启动

等)。

2、LILO Security

在"/etc/lilo.conf"文件中加入下面三个参数:time-out,restricted,password。这三个参数可

以使你的系统在启动lilo时就要求密码验证。

第一步:

编辑lilo.conf文件(vi /etc/lilo.comf),假如或改变这三个参数:

boot=/dev/hda 
map=/boot/map 
install=/boot/boot.b 
time-out=00   #把这行该为00
prompt 
Default=linux 
restricted   #加入这行
password=   #加入这行并设置自己的密码
image=/boot/vmlinuz-2.2.14-12 
label=linux 
initrd=/boot/initrd-2.2.14-12.img 
root=/dev/hda6 
read-only 

第二步:

因为"/etc/lilo.conf"文件中包含明文密码,所以要把它设置为root权限读取。

[root@kapil /]# chmod 600 /etc/lilo.conf 

第三步:

更新系统,以便对"/etc/lilo.conf"文件做的修改起作用。

[Root@kapil /]# /sbin/lilo -v

第四步:

使用"chattr"命令使"/etc/lilo.conf"文件变为不可改变。

[root@kapil /]# chattr +i /etc/lilo.conf 

这样可以防止对"/etc/lilo.conf"任何改变(以外或其他原因)

3、删除所有的特殊账户

你应该删除所有不用的缺省用户和组账户(比如lp, sync, shutdown, halt, news, uucp,

 operator, games, gopher等)。

删除用户:

[root@kapil /]# userdel LP 

删除组:

[root@kapil /]# groupdel LP 

4、选择正确的密码

在选择正确密码之前还应作以下修改:

修改密码长度:在你安装linux时默认的密码长度是5个字节。但这并不够,要把它设为8。修改

最短密码长度需要编辑login.defs文件(vi /etc/login.defs),把下面这行

PASS_MIN_LEN    5 

改为

PASS_MIN_LEN    8

login.defs文件是login程序的配置文件。
5、打开密码的shadow支持功能:

你应该打开密码的shadow功能,来对password加密。使用"/usr/sbin/authconfig"工具打开

shadow功能。如果你想把已有的密码和组转变为shadow格式,可以分别使用"pwcov,grpconv"命令。

6、root账户

在unix系统中root账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销root账户,

系统会自动注销。通过修改账户中"TMOUT"参数,可以实现此功能。TMOUT按秒计算。编辑你的profile文

件(vi /etc/profile),在"HISTFILESIZE="后面加入下面这行:

TMOUT=3600

3600,表示60*60=3600秒,也就是1小时。这样,如果系统中登陆的用户在一个小时内都没有动

作,那么系统会自动注销这个账户。你可以在个别用户的".bashrc"文件中添加该值,以便系统对该用户

实行特殊的自动注销时间。

改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能。

7、取消普通用户的控制台访问权限

你应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。

[root@kapil /]# rm -f /etc/security/console.apps/ 

是你要注销的程序名。

8、取消并反安装所有不用的服务

取消并反安装所有不用的服务,这样你的担心就会少很多。察看"/etc/inetd.conf"文件,通过

注释取消所有你不需要的服务(在该服务项目之前加一个"#")。然后用"sighup"命令升级"inetd.conf"

文件。

第一步:

更改"/etc/inetd.conf"权限为600,只允许root来读写该文件。

[Root@kapil /]# chmod 600 /etc/inetd.conf

第二步:

确定"/etc/inetd.conf"文件所有者为root。

第三步:

编辑 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服务(你不需要的):ftp, 

telnet,  shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把

不需要的服务关闭可以使系统的危险性降低很多。

第四步:

给inetd进程发送一个HUP信号:

[root@kapil /]# killall -HUP inetd 

第五步:

用chattr命令把/ec/inetd.conf文件设为不可修改,这样就没人可以修改它:

[root@kapil /]# chattr +i /etc/inetd.conf 

这样可以防止对inetd.conf的任何修改(以外或其他原因)。唯一可以取消这个属性的人只有

root。如果要修改inetd.conf文件,首先要是取消不可修改性质:

[root@kapil /]# chattr -i /etc/inetd.conf

别忘了该后再把它的性质改为不可修改的。

9、TCP_WRAPPERS

使用TCP_WRAPPERS可以使你的系统安全面对外部入侵。最好的策略就是阻止所有的主机

(在"/etc/hosts.deny" 文件中加入 "ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow"

 文件中加入所有允许访问的主机列表。

第一步:

编辑hosts.deny文件(vi /etc/hosts.deny),加入下面这行

# Deny access to everyone. 

ALL: ALL@ALL, PARANOID

这表明除非该地址包好在允许访问的主机列表中,否则阻塞所有的服务和地址。

第二步:

编辑hosts.allow文件(vi /etc/hosts.allow),加入允许访问的主机列表,比如:

ftp: 202.54.15.99 foo.com

202.54.15.99和 foo.com是允许访问ftp服务的ip地址和主机名称。

第三步:

tcpdchk程序是tepd wrapper设置检查程序。它用来检查你的tcp  wrapper设置,并报告发现

的潜在的和真实的问题。设置完后,运行下面这个命令:

[Root@kapil /]# tcpdchk 
10、禁止系统信息暴露

当有人远程登陆时,禁止显示系统欢迎信息。你可以通过修改"/etc/inetd.conf"文件来达到这

个目的。

把/etc/inetd.conf文件下面这行:

telnet  stream  tcp     nowait root    /usr/sbin/tcpd  in.telnetd

修改为:

telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

 -h

在最后加"-h"可以使当有人登陆时只显示一个login:提示,而不显示系统欢迎信息。

11、修改"/etc/host.conf"文件

"/etc/host.conf"说明了如何解析地址。编辑"/etc/host.conf"文件(vi /etc/host.conf),

加入下面这行:
# Lookup names via DNS first then fall back to /etc/hosts. 
order bind,hosts 
# We have machines with multiple IP addresses. 
multi on 
# Check for IP address spoofing. 
nospoof on 

第一项设置首先通过DNS解析IP地址,然后通过hosts文件解析。第二项设置检测是

否"/etc/hosts"文件中的主机是否拥有多个IP地址(比如有多个以太口网卡)。第三项设置说明要注意对

本机未经许可的电子欺骗。

12、使"/etc/services"文件免疫

使"/etc/services"文件免疫,防止未经许可的删除或添加服务:

[root@kapil /]# chattr +i /etc/services

13、不允许从不同的控制台进行root登陆

"/etc/securetty"文件允许你定义root用户可以从那个TTY设备登陆。你可以编

辑"/etc/securetty"文件,再不需要登陆的TTY设备前添加"#"标志,来禁止从该TTY设备进行root登陆。

14、禁止任何人通过su命令改变为root用户

su(Substitute User替代用户)命令允许你成为系统中其他已存在的用户。如果你不希望任何人

通过su命令改变为root用户或对某些用户限制使用su命令,你可以在su配置文件(在"/etc/pam.d/"目录

下)的开头添加下面两行:

编辑su文件(vi /etc/pam.d/su),在开头添加下面两行:

auth sufficient /lib/security/pam_rootok.so debug 

auth required /lib/security/Pam_wheel.so group=wheel 

这表明只有"wheel"组的成员可以使用su命令成为root用户。你可以把用户添加到"wheel"组,以

使它可以使用su命令成为root用户。

15、Shell logging

Bash shell在"~/.bash_history"("~/"表示用户目录)文件中保存了500条使用过的命令,这

样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一

个".bash_history"文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删

除。

第一步:

"/etc/profile"文件中的"HISTFILESIZE"和"HISTSIZE"行确定所有用户的".bash_history"文件

中可以保存的旧命令条数。强烈建议把把"/etc/profile"文件中的"HISTFILESIZE"和"HISTSIZE"行的值设

为一个较小的数,比如 30。编辑profile文件(vi /etc/profile),把下面这行改为:
HISTFILESIZE=30 
HISTSIZE=30 

这表示每个用户的".bash_history"文件只可以保存30条旧命令。

第二步:

网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f  

$HOME/.bash_history" 。这样,当用户每次注销时,".bash_history"文件都会被删除。

编辑.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面这行:

rm -f $HOME/.bash_history

16、禁止Control-Alt-Delete 键盘关闭命令
在"/etc/inittab" 文件中注释掉下面这行(使用#):

ca::ctrlaltdel:/sbin/shutdown -t3 -r now 

改为:

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now 

为了使这项改动起作用,输入下面这个命令:

[root@kapil /]# /sbin/init q

17、给"/etc/rc.d/init.d" 下script文件设置权限

给执行或关闭启动时执行的程序的script文件设置权限。

[root@kapil/]# chmod -R 700 /etc/rc.d/init.d/* 

这表示只有root才允许读、写、执行该目录下的script文件。

18、隐藏系统信息

在缺省情况下,当你登陆到linux系统,它会告诉你该linux发行版的名称、版本、内核版本、服

务器的名称。对于黑客来说这些信息足够它入侵你的系统了。你应该只给它显示一个"login:"提示符。

第一步:

编辑"/etc/rc.d/rc.local" 文件,在下面显示的这些行前加一个"#",把输出信息的命令注释

掉。

# This will overwrite /etc/issue at every boot.  So, make any changes 

you 
# want to make to /etc/issue here or you will lose them when you 

reboot. 
#echo "" > /etc/issue 
#echo "$R" >> /etc/issue 
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue 
# 
#cp -f /etc/issue /etc/issue.net 
#echo >> /etc/issue

第二步:

删除"/etc"目录下的"isue.net"和"issue"文件:

[root@kapil /]# rm -f /etc/issue 
[root@kapil /]# rm -f /etc/issue.net 

19、禁止不使用的SUID/SGID程序

如果一个程序被设置成了SUID root,那么普通用户就可以以root身份来运行这个程序。网管应

尽可能的少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。

查找root-owned程序中使用's'位的程序:

[root@kapil]# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec 

ls -lg {} \; 

用下面命令禁止选中的带有's'位的程序:

[root@kapil /]# chmod a-s [program]

根据上面这些安全指导方针设置后,系统管理员就会拥有一个基本安全的系统。上面这些工作有

些是个持续的过程,网管要不断进行这些工作,以保持系统的安全性。

星期一, 九月 10, 2007

Source Insight确实是个好用的看程序的东东,如果内置C编译器就更好了

但是默认的字体有点小,看起来不爽

其实稍微调整一下就ok了

建一个工程
然后 打开一个文件

在空白处点右键 选 Document Options

调整Screen Fonts

偶选择Tohama 并且调整到10的大小




调整后就舒服多了

root锁屏何必麻烦?用xlockmore轻松搞定

gnome的screensaver不能锁住root用户的屏

这让经常挂机的可不爽啦

其实可以用xlockmore搞定的

在FC6下装上个玩玩

yum install xlockmore

在装个主题和图形化工具

yum install xlockmore-motif
yum install xlockmore-gtk

这样点击Applications->Graphics->Xlock就可以锁屏了

最后来个单击锁屏:把Xlock的图标拖到任务栏,轻松搞定

星期日, 九月 09, 2007

安装snort-inline2

在FC6上安装

首先要装几个包,先卸掉libnet-devel,于libnet10冲突

安装libipq,似乎这个东西在iptables-devel里
所以先 yum install iptables-devel

然后 yum install libnet10

这样再./configure 就ok了。

至于libnetfilter-devel这个包,似乎无关紧要,有机会再试试,可能不同版本需要。