预览模式: 普通 | 列表

Cisco路由器的配置寄存器


1. 前言
配置寄存器是一个16位的虚拟寄存器,用于指定路由器启动的次序、中断参数和设置控制台波特率等。该寄存器的值通常是以十六进制来表示的。利用配置命令config register可以改变配置寄存器的值。

2. 启动次序
配置寄存器的最后4位,指定的是,路由器在启动的时候必须使用的启动文件所在的位置:
0x0000指定路由器进入ROM监控模式
0x0001指定从ROM中启动
0x0002-0x000F的值则参照在NVRAM配置文件中命令boot system指定的顺序
  如果配置文件中没有boot system命令,路由器会试图用系统Flash存储器中的第一个文件来启动,如果失败,路由器就会试图用TFTP从网络上加载一个缺省文件名的文件(由boot域的值确定,如cisco2-4500),如果还失败,系统就从启动Flash中加载启动。

  缺省的文件名是采用单词cisco、启动位的值以及路由器类型或处理器的名称构成。例如某台4500上启动字段设为3,那么缺省的启动文件名就是cisco3-4500。

以MC3819(CPU型号,大多采用MOTOROLA)路由器启动顺序为例,下面就是启动的四个阶段:

1. 系统自举
2. 启动加载(读取配置信息和启动Flash文件系统的最小功能)
3. 启动系统IOS镜像文件
4. 接口初始化/系统重启

3. 配置寄存器
3.1. 各位的含义
表格1 配置寄存器各位的含义
1 配置寄存器各位的含义

寄存器位数

十六进制

功能描述

03(启动次序)

0x00000x000F

启动字段:

0000-停留在引导提示符下(>rommon >下)

0001-从ROM中引导
0002000F 正常启动

4

未使用

5

未使用

6

0x0040

配置系统忽略NVRAM中的配置信息

7

0x0080

启动OEM

8

0x0100

设置之后,暂停键在系统运行时无法使用;如果没有设置,系统会进入引导监控模式下(rommon>

9

-

未使用

10

0x0400

0的就是广播地址

1112

0x08000x1800

控制台线路速度,默认的就是009600bps

13

0x2000

如果启动失败,系统以缺省ROM软件启动

14

0x4000

15

0x8000

该设置能够启用诊断消息,并忽略NVRAM的内容

 例如:
 通过show version命令可以看到路由器配置寄存器的值,缺省情况下为0x2102。这四个数字每一个均有着重要的意义。下面从低到高进行一一的介绍。
  第一个2,还原成二进制为0010,这一部分为boot field,对路由器IOS的启动起着至关重要的作用,当boot field 的值为2-15中的任何一个时,路由器属于正常启动,当此值为0时,路由器启动后会进入ROMMON模式,此值为1时,路由器进入到RXBOOT模式(2500路由器的FLASH在配置寄存器的值为2102时属性为只读,如果要升级IOS必须把寄存器的值修改为2101)
  0,还原成二进制为0000,这四位中,起关键作用的是第三位(即整个寄存器里面的BIT 7),值为0,当路由器启动后会从NVRAM里面的配置文件调到RAM里运行,值为1,路由器启动后会忽略NVRAM的配置(这就是我们在进行PASSWORD RECOVERY时把寄存器的值改为2142的原因 )
  1,还原成二进值为0001,我们来关注BIT8,值为0时,路由器在正常运行模式下CTRL + BREAK无效;值为1,路由器在任何运行模式下只要按下CTRL + BREAK均会立即进入ROMMON模式。
  第二个2,还原成二进制为0100,其中BIT13,当值为0时,路由器如果进行网络启动会尝试无穷多次。当值为1时,路由器最多进行5次的网络启动尝试。

典型参数
l 0x2102: 运行过程中中断键被屏蔽,路由器会查看NVRAM中配置的内容以确定启动次序,如果启动失败会采用缺省的ROM软件进行启动。
l 0x2142:恢复密码时候使用。忽略NVRAM配置信息而进入初始配置对话模式中去

3.2. 密码恢复
路由器的密码恢复是将路由器重启、中断再进入ROM监控模式,将设备设置为忽略配置文件,然后再重启,退出初始配置对话模式,配置存储器,然后读出或重新设置密码即可。

根据路由器的处理器不同,需要分两种情况进行处理。
 适用于精简指令集计算机(RISC):
1. 关掉路由器电源,然后重新打开电源
2. 按下break键或别的键盘组合将路由器置入ROM监控模式。Break键对不同计算机或终端软件是不同的,按键的次序可能是CTRL-D,CTRL-Break等。
3. 在rommon> 提示符下,键入conf reg 0x2142以设置路由器下一次从Flash加载启动的时候不要加载NVRAM中的启动配置信息
4. 键入reset命令,路由器将重启但忽略NVRAM中的配置信息
5. 路由器运行设置对话模式。输入no或按下CTRL-C以跳过初始设置对话模式
6. 在router>提示符下输入enable以进入特权执行模式
7. 使用config memory或者copy startup running命令将启动配置信息拷贝到运行配置中去。不要输入config terminal,否则将覆盖NVRAM中的配置信息
8. show running查看配置信息的内容,
9. 输入config terminal进入配置模式,根据需要改变线路密码或enable密码
10. 这时所有的接口都处于关闭状态,因此在每一个需要使用的接口上no shutdown
11. 输入config reg 0x2102命令设置路由器下次按照正常的方式启动
12. 按下CTRL-Z或End退出配置模式
13. write memory或copy run start命令保存所有所作的更改
14. 重启路由器并验证密码

 非RISC:
1. 关掉路由器电源,然后重新打开电源
2. 按下break键或其他键进入ROM 监控模式
3. 在>提示符下,输入o命令以记录配置寄存器的当前值(通常是0x2102或0x0102)
4. 键入o/r 0x2142设置路由器下次启动不要加载NVRAM中的配置信息
5. 键入i重启路由器
6. 以下步骤和RISC处理器相关步骤一样

4. 路由器工作模式

  ROM监控模式:路由器已启动但是没有加载任何IOS,提示符为:>或rommon>
  启动模式:启动Flash里含有最小化IOS启动程序,提示符为:router(boot)>
   用户执行模式:成功加载启动了一份完整的IOS代码,可以显示系统信息、执行基本的测试等。不能查看配置文件和使用debug命令
   特权执行模式:完全访问的第二级模式。可以现实系统设置和状态信息,可以进入配置模式,可以运行debug命令
   配置模式:在enable模式中输入config terminal命令进入配置模式。可以对接口、路由器以及线路配置进行设置
   初始配置对话模式;启动时候,如果路由器没有进行配置(可能是因为路由器是新的或配置文件被write erase命令删除了)的话,进入系统配置对话模式。可以依次进行主机名、执行密码以及enable密码的设置;还可对网络管理接口的IP和子网掩码配置。然后保存到NVRAM中去。

Tags: Cisco学习笔记

分类:NetWork | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 408

感悟生活

  1、父子二人经过五星级饭店门口,看到一辆十分豪华的进口轿车。儿子不屑地对他的父亲说:“坐这种车的人,肚子里一定没有学问!”父亲则轻描淡写地回答:“说这种话的人,口袋里一定没有钱!”
  (你对事情的看法,是不是也反映出你内心真正的态度?)
  2、晚饭后,母亲和女儿一块儿洗碗盘,父亲和儿子在客厅看电视。突然,厨房里传来打破盘子的响声,然后一片沉寂。是儿子望着他父亲,说道:“一定是妈妈打破的。”“你怎么知道?”“她没有骂人。”
  (我们习惯以不同的标准来看人看己,以致往往是责人以严,待己以宽。)
  3、有两个台湾观光团到日本伊豆半岛旅游,路况很坏,到处都是坑洞。其中一位导游连声抱歉,说路面简直像麻子一样。说而另一个导游却诗意盎然地对游客说:诸位先生女士,我们现在走的这条道路,正是赫赫有名的伊豆迷人酒窝大道。”
  (虽是同样的情况,然而不同的意念,就会产生不同的态度。思想是何等奇妙的事,如何去想,决定权在你。)
  4、同样是小学三年级的学生,在作文中说他们将来的志愿是当小丑。中国的老师斥之为:“胸无大志,孺子不可教也!”带外国的老师则会说:“愿你把欢笑带给全世界!”
  (身为长辈的我们,不但容易要求多于鼓励,更狭窄的界定了成功的定义。)
  5、在故宫博物院中,有一个太太不耐烦地对她先生说:“我说你为甚么走得这么慢。原来你老是停下来看这些东西。”
  (有人只知道在人生的道路上狂奔,结果失去了观看两旁美丽花朵的机会。)
  6、妻子正在厨房炒菜。丈夫在她旁边一直唠叨不停:慢些。小心!火太大了。赶快把鱼翻过来。快铲起来,油放太多了!把豆腐整平一下!“哎厎”妻子脱口而出,“我懂得怎样炒菜。”“你当然懂,太太,”丈夫平静地答道:“我只是要让你知道,我在开车时,你在旁边喋喋不休,我的感觉如何。”
  (学会体谅他人并不困难,只要你愿意认真地站在对方的角度和立场看问题。)
  7、理由充份
  一辆载满乘客的公共汽车沿着下坡路快速前进着,有一个人後面紧紧地追赶着这辆车子。一个乘客从车窗中伸出头来对追车子的人说:“老兄!算啦,你追不上的!”“我必须追上它,”这人气喘吁吁地说:“我是这辆车的司机!”
  (有些人必须非常认真努力,因为不这样的话,後果就十分悲惨了!然而也正因为必须全力以赴,潜在的本能和不为人知的特质终将充份展现出来。)
  8、原来如此
  甲:“新搬来的邻居好可恶,昨天晚上三更半夜、夜深人静之时然跑来猛按我家的门铃。”乙:“的确可恶!你有没有马上报警?”甲:“没有。我当他们是疯子,继续吹我的小喇叭。”
  (事出必有因,如果能先看到自己的不是,答案就会不一样在你面对冲突和争执时,先想一想是否心中有亏,或许很快就能释怀了。)
  9、误会
  某日,张三在山间小路开车,正当他悠哉地欣赏美丽风景时,突然迎面开来一辆货车,而且满囗黑牙的司机还摇下窗户对他大骂一声:“猪!”张三越想越纳闷,也越想越气,於是他也摇下车窗回头大骂:“你才是猪!”才刚骂完,他便迎头撞上一群过马路的猪。
  (不要错误的诠释别人的好意,那只会让自己吃亏,并且使别人受辱。在不明所以之前,先学会按捺情绪,耐心观察,以免事後生发悔意。)
  10、後生可畏
  小男孩问爸爸:“是不是做父亲的总比做儿子的知道得多?”
  爸爸回答:“当然啦!”
  小男孩问:“电灯是谁发明的?”
  爸爸:“是爱迪生。”
  小男孩又问:“那爱迪生的爸爸怎麽没有发明电灯?”
  (很奇怪,喜欢倚老卖老的人,特别容易栽跟斗。权威往往只是一个经不起考验的空壳子,尤其在现今这个多元开放的时代。)
  11、不必紧张
  小明洗澡时不小心吞下一小块肥皂,他的妈妈慌慌张张地打电话向家庭医生求助。医生说:“我现在还有几个病人在,可能要半小时後才能赶过去。”
  小明妈妈说:“在你来之前,我该做甚麽?”
  医生说:“给小明喝一杯白开水,然後用力跳一跳,你就可以让小明用嘴巴吹泡泡消磨时间了。”
  (take it easy,放轻松放轻松些,生活何必太紧张?事情既然已经发生了,何不坦然自在的面对。担心不如宽心,穷紧张不如穷开心。)
  12、钥匙
  一把坚实的大锁挂在大门上,一根铁杆费了九牛二虎之力,还是无法将它撬开。钥匙来了,他瘦小的身子钻进锁孔,只轻轻一转,大锁就“啪”地一声打开了。
  铁杆奇怪地问:“为什麽我费了那麽大力气也打不开,而你却轻而易举地就把它打开了呢?”
  钥匙说:“因为我最了解他的心。”
(每个人的心,都像上了锁的大门,任你再粗的铁棒也撬不开。唯有关怀,才能把自己变成一只细腻的钥匙,进入别人的心中,了解别人。)
分类:网海拾贝 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 493

linux设置ip.dns.gateway

在Linux中不管你是做服务器还是只是平常使用,上网肯定都是最重要和不可缺少的一个因素之一,所以就涉及到它的ip gateway dns等network配置和使用。但是设置linux网络的方法有两种:

第一种:使用命令修改(直接即时生效,重启失效)
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up 
说明:
eth0是第一个网卡,其他依次为eth1,eth*
192.168.0.1是给网卡配置的第一个网卡配置的ip地址
netmask 255.255.255.0 配置的是子网掩码
up是表示立即激活
ifconfig的更多参数说明查看相关帮助
gateway:
# route add default gw 192.168.30.1 eth0

dns:
# vi etc/resolv.conf
nameserver 202.131.80.1
nameserver 202.131.80.5
如果要重起生效,就把这些写到起动脚本 rc.local中

第二种:修改配置文档(需要重启网络配置,永远生效)
 一、修改IP地址
[aeolus@db1 network-scripts]$ vi ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.30.197
NETMASK=255.255.255.0
GATEWAY=192.168.30.1   注意大小写,修改完后可以用route -n检测看看

查看更多...

Tags: 转载学习

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 395

希腊数学符号与读音对照表

希腊数学符号与读音对照表
大写 小写 读音
Α α alpha['ælfa]
Β β beta['bi:ta / 'beita]
Γ γ gamma['gæma]
Δ δ delta['delta]
Ε ε epsilon['epsilan / ep'sailan]
Ζ ζ zeta['zi:ta]
Η η eta['i:ta / 'eita]
Θ θ theta['θita]
Ι ι iota[ai'outa]
Κ κ kappa['kæpa]
Λ λ lambda['læmda]
Ψ ψ psi
Μ μ mu[mju:]
Ν ν nu[nju:]
Ξ ξ xi
Ο ο omicron
Π π pi
Ρ ρ rho
Σ σ sigma
Τ τ tau
Υ υ upsilon
Φ φ phi
Χ χ chi
Ω ω omega













 

































特殊符号的英文读法
< is less than
> is more than
≮ is not less than  
≯ is not more than
≤ is less than or equal to 小于或等于号
- hyphen 连字符  
≥ is more than or equal to 大于或等于号
' apostrophe 省略号,英文中省略字符用的撇号;所有格符号
% percent
- dash 破折号
‰ per mille
∞ infinity 无限大号
∝ varies as 与…成比例
( ) parentheses 圆括号  
√ (square) root 平方根
[ ] square brackets 方括号  
∵ since; because 因为
《 》 French quotes 法文引号;书名号  
∴ hence 所以
… ellipsis 省略号
∷ equals, as (proportion) 等于,成比例
¨ tandem colon 双点号
∠ angle 角
∶ ditto 双点号
⌒ semicircle 半圆
‖ parallel 双线号
⊙ circle 圆
/ virgule 斜线号  
○ circumference 圆周
~ swung dash 代字号
△ triangle 三角形
§ section; division 分节号
⊥ perpendicular to 垂直于
→ arrow 箭号;参见号
∪ union of 并,合集
∩ intersection of 交,通集  
∫ the integral of …的积分
± plus or minus 正负号
∑ summation of 总和
× is multiplied by 乘号
° degree 度
÷ is divided by 除号  
′ minute 分
″ second 秒
≠ is not equal to 不等于号  
≡ is equivalent to 全等于号  
℃ Celsius degree 摄氏度
≌ is equal to or approximately equal to 等于或约等于号


计算机编成常用符号英语读音
` backquote 反引号
~ tilde
! exclam
@ at
# numbersign,英语国家是hash,美语是pound,音乐里作sharp,如C#
$ dollar
% percent
^ caret
& ampersand
* asterisk,star(美语),数学公式中作multiply
( parenleft,opening parentheses
) parenright,closing paretheses
- minus;hyphen连字符,不读
_ underscore
+ plus
= equal
[ bracketleft,opening bracket
] bracketright,closing bracket
{ braceleft
} braceright
; semicolon
: colon
' quote
" doublequote
/ slash
\ backslash 反斜杠
| bar
, comma
< less
> greater
. period
? question
   space 空格

分类:网海拾贝 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 365

Access数据库一怪异故障

在一服务器上运行正常的站点,转移到另外一服务器后运行出现如下错误:
'80004005' Selected collating sequence not supported by the operating system.

按照如下方法解决:
Selected collating sequence not supported by the operating system.
是因为国外的主机不支持MDB文件默认的汉语拼音排序方式
只要把排序改为常规,如下图:

然后依次点击 工具 -> 数据库常用工具 -> 压缩和修复数据库
应该就可以正常使用了.

在中文OS创建的Access数据库移到英文的OS将会出现:“Selected collating sequence not supported by the operating system”错误,解决方法:
解决方法一、
1)、打开我的 Microsoft Access ,Open 任意一个文件,然后点"tools",选中 Options,再选 General 项。注意在右下方有 New Database Sort order下拉框,选中 General。然后关掉该文件。(注意,Options只有在有文件打开的状况下才能使用)
2)、然后"File" --> "New..." 创建一个空白数据文件,然后"file" --> "Get External Data" -- "Import",打开我的老数据库文件将所有的 tables 全部传到新文件来,然后保存新文件。我要做这步是因为我的论坛里已经有许多的数据在里面,我不愿从头再来。如果你在新建论坛,或新建系统时遇到此类问题,大可新建 table,或用 SQL query 写入初始数据。
3)、保存此新文件,然后上传到服务器。

解决方法二、
选择排序次序为常规,然后选择关闭时压缩数据库,或者自己手动压缩,必须压缩数据库否则不能修改这个排序方式,以后新建的数据库也使用这中排序方式

还可参考以下几篇文章:
http://www.vibig.net/Article_Show.asp?ArticleID=243
http://blog.sina.com.cn/s/blog_48f61b780100072y.html

Tags: asp相关

分类:Program | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 461

Bash下显示history记录的命令的执行时间

编辑/etc/bashrc文件(或者/etc/profile),加入如下几行:
HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "
export HISTTIMEFORMAT

[root@as5 ~]# echo $HISTFILESIZE
1000
[root@as5 ~]# echo $HISTSIZE
1000
修改了默认的历史记录文件的行数,默认为1000行,立即命令的条数,默认也是1000,这里修改为2000,另外两条参数用语显示命令的执行时间,HISTTIMEFORMAT的格式你可以自己定义,定义成你想要的格式。具体格式可以参照date命令。例如用"%Y-%m-%d %H:%M:%S "格式按照我们中国人的时间格式,"%s " 按照unix时间戳的格式显示。

保存后退出,关闭当前shell,并重新登录
这个时候,在~/.bash_history文件中,就有记录命令执行的时间了,用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的,而是按照unix time来显示:
[root@vz ~]# cat ~/.bash_history
#1184649982
touch 3
#1184649984
exit
#1184650148
history
[root@vz ~]#

这个时间叫做unix time,是从1970年1月1日临时起,到现在一共经过了多少秒,因为1969年是unix系统诞生,因此1970年1月1日被规定为unix系统诞生的时间的初始linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间,为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了.这样即可查看到在什么时间执行了什么命令。

注意:本方法只对bash-3.0以上版本有效
执行rpm -q bash即可显示bash的版本
对于常见的linux AS4、AS5,都是有效的
在debian4.0 Release 3和CentOS5.2上都没有问题。

CentOS
[zhoulj@cent5 ~]$ bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
[zhoulj@cent5 ~]$ history
    1  2008-08-09 19:07:58 su -
    2  2008-08-09 19:07:58 bash --version
    3  2008-08-09 19:11:14 history
[zhoulj@cent5 ~]$
[zhoulj@cent5 ~]$ uname -a
Linux cent5.zljwxn.com 2.6.18-92.el5 #1 SMP Tue Jun 10 18:49:47 EDT 2008 i686 i686 i386 GNU/Linux

查看更多...

Tags: linux学习笔记

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1032

linux测试机被入侵

昨天快下班安装好一台linux系统用来做测试用的,防火墙没有做规则,密码也设置的很简单,又因为公司的关纤有多余的公网IP,直接暴露在外网了.结果早晨过来发现登陆提示密码错误,感觉有点不对劲,单用户进入修改好密码登,提示root有mail,不看不知道,一看吓一跳
[root@localhost ~]# mail
………………
Users logging in through sshd:
   root:
      210.219.122.3: 1 time
Received disconnect:
   11: Bye Bye
      ::ffff:210.219.122.3 : 89 Time(s)
………………

[root@localhost ~]# more /var/log/messages
………………
Feb 10 06:31:55 localhost sshd(pam_unix)[27230]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=*.*.*.*  u
ser=root
………………
Feb 10 07:38:43 localhost sshd(pam_unix)[27750]: session opened for user root by root(uid=0)
Feb 10 07:40:07 localhost passwd(pam_unix)[27823]: password changed for root
Feb 10 07:41:56 localhost sshd(pam_unix)[27830]: session opened for user root by (uid=0)
Feb 10 07:45:57 localhost passwd(pam_unix)[27848]: password changed for root
Feb 10 07:49:52 localhost syslogd 1.4.1: restart.
Feb 10 07:49:52 localhost xinetd[3525]: Starting reconfiguration
Feb 10 07:49:52 localhost xinetd[3525]: Swapping defaults
Feb 10 07:49:52 localhost xinetd[3525]: Reconfigured: new=0 old=0 dropped=0 (services)
Feb 10 08:32:38 localhost sshd(pam_unix)[28165]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=*.*.*.*  user=root
Feb 10 08:34:13 localhost sshd(pam_unix)[28165]: 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=*.*.*.*  user=root
Feb 10 08:34:23 localhost sshd(pam_unix)[28169]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=*.*.*.*  user=root

[root@localhost ~]# more /var/log/messages |grep "authentication failure" | |wc -l
582

[root@localhost ~]# ll
total 168
drwx------   3 root     root         4096 Feb  9 18:06 Desktop
-rw-r--r--   1 root     root         1211 Feb  9 18:00 anaconda-ks.cfg
-rw-r--r--   1 root     root        50675 Feb  9 18:00 install.log
-rw-r--r--   1 root     root        53594 Feb  9 17:54 install.log.syslog
-rwxr-xr-x   1 570      526         27663 Sep 27  2006 lc
-rw-------   1 root     root         2292 Feb 10 08:51 mbox
[root@localhost ~]# file lc
lc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped

[root@localhost bin]# find / -nouser
/lib/libproc.so.2.0.6
/lib/libproc.a
/lib/lidps1.so
/sbin/ttymon
/sbin/ifconfig
/sbin/ttyload
/var/spool/at/.seq/cyc.levels
/var/spool/at/.seq/cyc.acc
/var/spool/at/.seq/cyc.set
/var/spool/at/.seq/cyc.help
/var/spool/at/.seq/randfiles
/var/spool/at/.seq/randfiles/randsay.e
/var/spool/at/.seq/randfiles/randnicks.e
/var/spool/at/.seq/randfiles/randsignoff.e
/var/spool/at/.seq/randfiles/randinsult.e
/var/spool/at/.seq/randfiles/randversions.e
/var/spool/at/.seq/randfiles/randkicks.e
/var/spool/at/.seq/randfiles/randpickup.e
/var/spool/at/.seq/randfiles/randaway.e
/var/spool/at/.seq/stealth
/var/spool/at/.seq/[atd]
/var/spool/at/.seq/cyc.pid
/root/lc
/bin/netstat
/bin/ls
/bin/ps
/usr/sbin/lsof
/usr/include/log.h
/usr/include/file.h
/usr/include/proc.h
/usr/include/hosts.h
/usr/bin/top
/usr/bin/pstree
/usr/bin/md5sum
/usr/bin/find
/usr/bin/dir
/usr/bin/slocate

查看更多...

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 724

入侵监测系统的构建(chkrootkit )

        所谓rootkit,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工 具,入侵者建立了一条能够总能够入侵系统,或者说对系统进行实时控制的途径。所以,我们用自由软件chkrootkit来建立入侵监测系统,来保证对系统 是否被安装了rootkit进行监测。
        chkrootkit在监测rootkit是否被安装的过程中,需要使用到一些操作系统本身的命令。但不排除一种情况,那就是入侵者有针对性的已经将  chkrootkit使用的系统命令也做修改,使得chkrootkit无法监测rootkit,从而达到即使系统安装了chkrootkit也无法检测 出rootkit的存在,从而依然对系统有着控制的途径,而达到入侵的目的。那样的话,用chkrootkit构建入侵监测系统将失去任何意义。对此,我 们在操作系统刚被安装之后,或者说服务器开放之前,让chkrootkit就开始工作。而且,在服务器开放之前,备份chkrootkit使用的系统命 令,在一些必要的时候(怀疑系统命令已被修改的情况等等),让chkrootkit使用初始备份的系统命令进行工作。

安装 chkrootkit
下载和安装 chkrootkit 工具
[root@localhost ~]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz ← 下载chkrootkit
[root@localhost ~]# tar zxvf chkrootkit.tar.gz  ← 展开被压缩的源代码
[root@localhost ~]# cd chkrootkit*  ← 进入chkrootkit源代码的目录
[root@localhost chkrootkit-0.46a]# make sense  ← 编译
[root@localhost chkrootkit-0.46a]# cd ..  ← 返回上层目录
[root@localhost ~]# cp -r chkrootkit-* /usr/local/chkrootkit  ← 复制编译后文件所在的目录到指定位置
[root@localhost ~]# rm -rf chkrootkit*  ← 删除遗留的源代码目录及相关文件
测试 chkrootkit
然后测试 chkrootkit 是否能够正常运行。
[root@localhost ~]# cd /usr/local/chkrootkit  ← 进入chkrootkit的目录
[root@localhost chkrootkit]# ./chkrootkit | grep INFECTED  ← 测试运行chkrootkit
稍等片刻…如果没有显示“INFECTED”字样,而直接出现命令行提示符,说明一切OK!
[root@localhost chkrootkit]# cd   ← 回到root用户目录让 chkrootkit 的监测自动化
用Shell Script编写一段脚本,通过这个脚本让chkrootkit的监测自动化。如有rootkit被发现的时候,发送邮件通知root用户,并且将运行结果保存在/var/log/messages文件中。
[root@localhost ~]# vi chkrootkit  ← 建立chkrootkit自动运行脚本
#!/bin/bash
PATH=/usr/bin:/bin
TMPLOG=`mktemp`
# Run the chkrootkit
/usr/local/chkrootkit/chkrootkit > $TMPLOG
# Output the log
cat $TMPLOG | logger -t chkrootkit
# bindshe of SMTPSllHow to do some wrongs
if [ ! -z "$(grep 465 $TMPLOG)" ] && \
[ -z $(/usr/sbin/lsof -i:465|grep bindshell) ]; then
sed -i '/465/d' $TMPLOG
fi
# If the rootkit have been found,mail root
[ ! -z "$(grep INFECTED $TMPLOG)" ] && \
grep INFECTED $TMPLOG | mail -s "chkrootkit report in `hostname`" root
rm -f $TMPLOG
[root@localhost ~]# chmod 700 chkrootkit  ← 赋予脚本可被执行的权限
[root@localhost ~]# mv chkrootkit /etc/cron.daily/  ← 将脚本移动到每天自动运行的目录中
chkrootkit 相关的系统命令的备份
如前言所述,当chkrootkit使用的系统命令被入侵者更改后,chkrootkit对  rootkit的监测将失效。所以,我们事前将chkrootkit使用的系统命令进行备份,在需要的时候使用备份的原始命令,让chkrootkit 对 rootkit进行检测。
[root@localhost ~]# mkdir /root/commands/  ← 建立暂时容纳命令备份的目录
[root@localhost ~]# cp `which --skip-alias awk cut echo egrep find head id ls netstat ps strings sed uname`/root/commands/ ← (连续输入无换行)备份系统命令到建立好的目录
[root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED ← 用备份的命令运行chkrootkit
[root@localhost ~]# tar cvf /root/commands.tar /root/commands/ ← 将命令打包
[root@localhost ~]# gzip /root/commands.tar  ← 将打包的文件压缩
然后将压缩后的commands.tar.gz用SCP软件下载到安全的地方
[root@localhost ~]# rm -rf commands*   ← 为安全起见,删除服务器端备份的系统命令及相关文件
如果以后想通过备份的原始系统命令来运行chkrootkit的时候,只需用SCP软件将备份的命令打包压缩文件上传至服务器端已知位置并解压缩,然后运行在chkrootkit的时候指定相应的目录即可。例如,假设已经将备份上传至root用户目录的情况如下:
[root@localhost ~]# tar zxvf /root/commands.tar.gz  ← 解开压缩的命令备份
[root@localhost ~]# /usr/local/chkrootkit/chkrootkit -p /root/commands|grep INFECTED ← 用备份的命令运行chkrootkit
然后在运行后删除相应遗留文件即可。

Tags: linux学习笔记

分类:Linux | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 417