《2022年Solaris操作系统的用户认证 .pdf》由会员分享,可在线阅读,更多相关《2022年Solaris操作系统的用户认证 .pdf(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Solaris 操作系统的用户认证: 第 1部分本文介绍了Solaris 操作系统的用户认证与授权技术,并通过代码示例说明如何实现口令的加密与存储。简介认证与授权口令存储与加密算法用户口令的读取口令加密用户影子文件的读取将各部分合并在一起结束语致谢参考资料简介通常我们的程序需要检验用户的身份,尤其是我们需要执行有潜在危险或特权操作时,这一点尤为必要。例如,大多数Solaris 用户所熟悉的登录,只有我们正确输入用户名和口令后,方可使用系统;而另一个常见例子就是,当屏幕加锁后我们需要解锁。在本系列文章中, 我们将介绍如何在程序中利用口令和其他方法验证用户身份。在本文的第1 部分中,我们将讨论验证
2、原理,并通过基于口令技术的身份验证的示例来加以详解。而在第 2 部分中, 我们将了解如何利用PAM 技术(插入式验证模块)来使我们的程序更加灵活。身份验证与授权人们在讨论口令时通常会涉及两个术语,即身份验证与授权。但它们往往会被误用,在此我们对其定义如下。身份验证发生于计算机校验用户身份时:当用户用正确口令登录后,操作系统会授权给用户。另一方面,授权将决定用户是否有权限执行既定任务或访问系统特定资源。既然我们可以通过认证,那么我们的所做就没有必要被授权才可以完成。例如, 我们以普通用户登录后, 通常不会对其他用户的文件造成影响:即使我们的身份通过难证,我们也没有足够的权限。而倘若我们是管理员用
3、户,我们则有权限随心所欲的使用系统。为简单起见,我们忽略了RBAC (角色访问控制)和权限细粒化。对RBAC 感兴趣的读者可参考System Administration Guide: Security Services 。 权限细粒化详见Programming in the Solaris OS With Privileges。虽然有多种途径可实现身份验证(如,生物测定、身份证等等),但本文只讨论口令验证。口令存储与加密算法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共
4、 32 页 - - - - - - - - - 如果用户输入的响应询问口令需要与正确口令相比较,则正确口令必须存储在系统中的某个文件中。在Solaris 系统中,用户口令存储在文件/etc/shadow 中,但之前一直存储在/etc/passwd 文件中(由于其名称) 。由于多种原因,/etc/passwd 须可供所有用户读取。为避免口令被破译,UNIX平台( Solaris 即为其中之一)中的系统V 变量可把口令存储在/etc/shadow 中,只可供超级用户读取。(注意,前述内容假定口令存储于本地文件中。而许多大型站点往往使用NIS, LDAP, or NIS+ 将用户口令存储于集中式存储
5、库中。)存储在/etc/shadow 中的口令使用单向哈希算法进行加密,因为如果以明文格式,即解密格式存储口令, 则欠失理智 !所谓单向哈希算法加密是指无法从加密口令得出口令。在 Solaris 9 12/02 之前,加密算法都基于DES(加密算法标准)的各种变体,采取各种措施来阻止硬件中对密钥的搜索。自 1977 年 DES 面世以来,随着计算机处理速率的显著提高,暴力破译DES 加密口令所带来的威胁也与日俱增,并且其口令长度局限于8 位字符。为减缓威胁,Solaris 9 12/02 采用了一种新型编码,促进了一些更为强大的加密算法(如MD5 和 Blowfish )的广泛使用。由于在新型
6、编码中增加了密钥长度和算法复杂度,欲暴力破译使用新型加密算法编码的口令,需要比破译DES 加密口令高出几个数量级的时间。谈到这里, 读者不禁会问: 我们该如何决定用哪种算法来加密口令?为了回答这个问题,我们需检查几个影子文件的内容。下面是作者一台计算机中的影子文件内容的例子:rich:TISFHhgBSAtgU:13608: shadow(4)手册页详细说明了这些字段。我们主要关注于头两部分:第一个字段是用户名,第二个字段是加密后的口令。如果口令的第一个字符不是$ ,那么此口令使用的是基于DES 的加密。加密后的口令共有13 个字符,其中前两个字符是salt,salt 是用于扰乱DES算法的
7、4096种算法中的一种, 而余下的 11位字符即为加密口令本身。如果第一个字符是$ ,一直到下一个 $ 间的这些字符则表明所使用的加密算法,而处于第二和第三个$ 间的字符即为 salt。而在作者另一台计算机中,使用的是另一种加密算法。下面是对应的影子文件内容: rich:$2a$04$NZJWn7W2skvQRC5lW3H7q.ZTE8bz4xbCAtU1ttzUOy63si3phphUu:13613: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 32 页 - - -
8、 - - - - - - 可以看出,第一个字符是$ ,表明使用的是另一种加密算法(在本例中,我们用2a来标识 算 法 , 即 为Blowfish ) 。 标 识 符 到 各 自 库 的 映 射 ( 及 它 们 的 特 定 算 法 ) 定 义 在/etc/security/crypt.conf 文件中。每种算法都有各自的手册页,其中包含更为详细的信息及可用的选项。在示例中我们使用了Blowfish 加密,详细信息请见crypt_bsdbf(5) 。用于比较存在口令的加密算法可通过影子文件得出,但是我们应该如何决定使用哪种算法创建新口令呢?答案是:使用code/etc/security/polic
9、y.conf文件中CRYPT_DEFAULT指定的算 法 创 建 新 口 令 。 但 是 , 在 修 改 口 令 且 旧 口 令 是 使 用 相 同 文 件 中CRYPT_ALGORITHMS_ALLOW指定的算法加密时, 这种情况下将使用该算法创建新口令。无论使用哪种加密算法,在对用户进行身份验证前需采集用户输入的口令。用户口令的读取要提示用户输入口令,一种方法就是使用printf 和 fgets 函数分别打印提示并读取口令。这种方法的缺陷就是除非我们按步录入,否则输入的口令将显示在屏幕上:多么严重的缺陷!我们可以编写方法来处理这种屏幕回显响应,但是要完全解决此问题则需要使用一些提供的函数。
10、第一个方法为为getpass: char *getpass (const char * prompt); getpass 函 数 将 打 印 输 出prompt , 关 闭 回 显 并 从 终 端 读 取 换 行 符 之 前 的 文 本(newline-terminated line ) ,并将终端恢复为之前状态,然后返回指向输入字符串的指针。该方法与标准兼容, 但是我们需要考虑它的致命缺陷:即只有录入字符串的前8 个字符可返回给调用函数getpass ,从而将口令限制8 位有效字符(而无论采用的哪种加密算法)。为避免出现这种问题的出现,我们应该使用getpassphrase: char *g
11、etpassphrase (const char * prompt); 此函数与getpass的功能相同,不过它可读取和返回的字符串长达257 个字符。在下面的例子中我们将使用到它。虽然目前没有通用标准详细说明该方法,但我们仍可广泛使用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 32 页 - - - - - - - - - getpassphrase而无需担心不可移植的问题。换言之,getpassphrase是一个事实标准。口令加密获取用输入的口令之后,我们需要将其与
12、存储于影子文件中的密码进行比较。第一步需将其加密。如果我们对新型加密算法不熟悉,则尽其可能调用crypt 函数:char *crypt (const char * key, const char * salt); 比较输入口令与存储于影子文件中的口令时,将正确的salt 传给crypt 的最简便的办法就是将加密的用户口令传给它。在接下来的章节中我们将向大家介绍如何读取用户影子文件的内容。倘若我们不将输入口令与存储口令相比较,而是创建一个新口令,并且支持新型加密算法,我们可以调用crypt_gensalt 来生成传递给crypt 的 salt: char *crypt_gensalt (cons
13、t char * oldsalt, const struct passwd * userinfo); 如果oldsalt 值为 NULL ,则使用/etc/security/policy.conf中的 CRYPT_DEFAULT指定的算法。userinfo 结构可使用getpwnam 函数家族填充(该内容不在本文讨论范畴内)。用户影子文件的读取正如先前所指出的, 将加密口令与用户当前口令相比较时,我们必须将正确的salt 传递给它。较为简便的方法就是将加密后的用户口令传递给crypt 函数。 除此之外, 我们还应该从影子文件中读取用户口令。为此,可以使用getspnam 函数:struct s
14、pwd *getspnam (const char * 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 32 页 - - - - - - - - - name); getspnam 函数返回指向以name 标识的影子文件信息结构的指针。此结构体由几个成员组成,而现在,我们感兴趣的只是其中之一:sp_pwdp,它指向加密后的口令。此指针将作为 salt 传递给crypt。需要指出的是,由于/etc/shadow 只可供管理员用户使用,并且只可供有效用户ID 为“ 0”的用户
15、成功调用getspnam。 (权限感知处理要求FILE_DAC_READ权限位于它们的有效权限集中。)将各部分合并在一起现在, 我们可利用迄今所学编写一个简单的程序,实现口令的验证。在示例中,应用程序将将会重复要求输入密码,直至输入正确的用户口令,若口令正确则程序结束。(当前用户取决于进程的真实用户ID 。 )示例源代码如下:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 int main (void) 10 11 struct passwd *pwd_info;
16、 12 struct spwd *spwd_info; 13 char *ct_passwd; 14 char *enc_passwd; 15 if (pwd_info = getpwuid (getuid () = NULL) 16 fprintf (stderr, Call to getpwuid failedn); 17 exit (1); 18 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 32 页 - - - - - - - - - 19 for (;) 20
17、 ct_passwd = getpassphrase (Enter password: ); 21 if (spwd_info = getspnam (pwd_info - pw_name) = NULL) 22 fprintf (stderr, Call to getspnam failedn); 23 exit (1); 24 25 enc_passwd = crypt (ct_passwd, spwd_info - sp_pwdp); 26 if (strcmp (enc_passwd, spwd_info - sp_pwdp) = 0) 27 printf (Passwords mat
18、ch.n); 28 break; 29 else 30 printf (Passwords dont match.n); 31 32 return (0); 33 仔细观察该程序的第33 行代码。1-14:包含头文件并声明变量。15-18:通过调用getpwuid 获取当前用户的口令文件信息,并由进程的真实用户ID 标识。我们也可以使用getlogin 或者cuserid 来替代,但是具有安全意识的程序应尽量避免使用这些函数,因为它们只依赖且信任/var/adm/utmpx 下的内容。而在一些UNIX平台上(但是不是 Solaris 平台) , 此文件是可以随意写入的,所以一些恶意用户就会将自
19、己修改为授权用户,而应用程序对此则无丝毫察觉。我们之所以要这样做,就是因为之后需要将用户的用户名传递给getspnam。20:提示输入并读取用户口令。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 32 页 - - - - - - - - - 21-24:调用getspnam 方法获取用户影子文件内容。此信息还包含用户口令的加密格式。如何程序运行时用户口令得到更改,我们可通过这些循环来实现影子文件的读取。25:对用户输入的口令进行加密,并将其加密后和版本作为salt 传递
20、。26-31:将新的加密口令与从影子文件获取的口令相比较。如果相匹配,则打印出信息以做成功提示,否则打印出错误信息提示,并重试。编译程序之后,我们可以运行并查看结果:richmarrakesh4156# make check_pass cc -o check_pass check_pass.c richmarrakesh4157# ./check_pass Enter password: Call to getspnam failed 由于用户 rich 没有权限,函数getspnam 调用失败。切换到Root 用户,并重新尝试:richmarrakesh4158# su Password:
21、# ./check_pass Enter password: Passwords dont match. Enter password: Passwords match. 这次,在我们输入错误口令后,操作成功。只需少许工作,本示例就可变为一个简单的终端加锁程序,此程序敬请读者练习。结束语在本文中, 我们探讨了简单的基于口令的用户验证。首先, 我们给出了身份验证和授权的定名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 32 页 - - - - - - - - - 义及两者间
22、的区别。身份验证用于校验用户的身份,授权将决定用户是否允许执行某些特定任务或者访问既定资源。然后我们介绍了当本地文件仓库正在使用时如何对口令加密,Solaris 系统管理员如何判定哪种加密算法可能正在使用。 (此外, Solaris 操作系统还提供了一种原始的基于DES 的加密算法,另外还有更新型,安全性更高的算法,比如说Blowfish 和 MD5 。 )介绍完口令认证机制背后的一些原理之后,我们探讨了Solaris 操作系统的API,它可执行各种相关任务:提示并读取用户口令(谈到getpassphrase是一种倍受喜欢的处理机制),使用 crypt,对口令加密,通过getspnam 来读取
23、用户影子文件口径。最后, 我们编写了一个简单程序,它可以提示用户输入口令,并将其与登录口令相比较,通过它把所有的概念融汇到了一起,在此系列的下篇文章中,我们将向大家展示如何使用PAM(插入式认证模块)来编写更为灵活的口令认证程序。解析 IPMP IP 网络多路径 (IP Network Multipathing)是 Solaris8下的一种新特性,旨在为主机侧提供网络可用性和提高吞吐量。IPMP 主要提供三种功能: ( 1)故障检测及故障切换(failover):当网络适配器 (包括主机一侧或与之相连的网络设备一侧)发生故障时,IP Network Multipathing的故障检测特性提供了
24、检测功能,自动把网络访问切换到备用网络适配器,真正消除了主机网络适配器的单点故障。(2 )恢复检测 (failback):当发生故障的网络适配器被修复后时,IP 网络多路径的修理检测特性有能力执行检测,并自动把网络访问切换到原来提供服务的主要网络适配器。( 3 )出网负荷分布(outbound load spreading):高层应用可以向许多网络适配器分配不同目的地址的网络数据包,来提高网络吞吐量。配置 Ipmp的需求:1 操作系统solaris8以上。2MAC 地址应当不一样,在eeprom中 setenv local-mac-address? True;因为这样系统中网络接口才使用不同的
25、物理地址(MAC 地址)。3为 IPMP 的数个网络接口指定一个组名(group name) 。4为每个网络接口设定一个url=javascript:;测试 /url 地址( test IP) 。5网络中存在一台供测试的主机,这台主机通常是默认的路由。因为这台主机提供网络接口向外测试 ICMP 报文的回应,连续5 的 ICMP 报文没有回应,就认为该网络接口联接失败。IPMP 的关键进程是in.mpathd进程。该进程的启动shell是在 /etc/rcS.d/ S30network.sh而在 /etc/default/mpathd文件中包含了与IPMP 相关的参数设置。root#more /
26、etc/default/mpathd #ident (#)mpathd.dfl 1.1 00/01/03 SMI # Time taken by mpathd to detect a NIC failure in ms. The minimum time # that can be specified is 100 ms. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 32 页 - - - - - - - - - FAILURE_DETECTION_TIME=10000
27、 # Failback is enabled by default. To disable failback turn off this option FAILBACK=yes # By default only interfaces configured as part of multipathing groups # are tracked. Turn off this option to track all network interfaces # on the system TRACK_INTERFACES_ONLY_WITH_GROUPS=yes root# 在通常情况下,IPMP
28、有 active/standby和 active/active两种模式。下面介绍一下关于这两种模式的详细配置。1,在线配置IPMP ,用命令配置,reboot后配置失效。实验环境 :sun440,solaris 8,浮动 IP=192.168.1.10(当然浮动的IP 可以有两个或更多)。实现 active/standby模式。rootN440 #ifconfig -a 看到原来机器上的IP 地址为 192.168.1.10,现在进行把它加如IPMP 的组里去。rootN440 #ifconfig ce0 group ipmptest 为网络接口ce0 指定测试ip 为 192.168.1.1
29、1,ce1的测试 ip 为 192.168.1.12,同时把网络接口 ce1 加入 NAFO 组 ipmptest中。rootN440 #ifconfig ce0 addif 192.168.1.11 deprecated -failover netmask 255.255.255.0 broadcast 192.168.1.255 up rootN440 #ifconfig ce1 plumb 192.168.1.12 netmask 255.255.255.0 broadcast 192.168.1.255 group ipmptest up deprecated -failover st
30、andby up 然后用命令查看ipmptest组。rootN440 #ifconfig -a 止此, 在线的 ipmp配置成功, 你可以做一下网络切换。拔去 ce0 的网线, 看看能否切换到ce1上。当然了, 你也可以通过命令来测试切换。下面的这个命令把浮动ip 切换到 ce1 上,并且 ce0状态是 offline。rootN440 #if_mpadm -d ce0 这时你可以用ifconfig a 看到 failover了。然后你可以用命令再把ce0 ONLINE。rootN440 #if_mpadm -r ce0 2修改配置文件,重新启动后生效。本例中,Ce0 的浮动IP 为 192.
31、168.1.10,测试IP 为192.168.1.11,ce1的测试 IP 为 192.168.1.12。rootN440 #vi /etc/hostname.ce0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255 group ipmptest up addif 192.168.1.11 deprecated -failover netmask 255.255.255.0 broadcast 192.168.1.255 up rootN440#vi /etc/hostname.ce1 192.168.1.12 netmask
32、 255.255.255.0 broadcast 192.168.1.255 group ipmptest up deprecated -failover standby up 3,关于负载均衡active/active模式。对于网络接口的负载问题,我总结了下,一个IP 地址好象不能够捆绑在两块NIC 上。而对于跑两个以上的应用,把浮动 IP 地址分配到两块NIC 上,实现负载均衡和失败切换的功能。但是对于跑一个应用的程序如何实现负载均衡呢?由于IP 地址对应用程序是透明的,所以只能从客户端实现访问哪块网络接口上的浮动IP,实现负载均衡。基于上面的那个例子,我们再给ce1加两个浮动的IP(19
33、2.168.1.9,192.168.1.8),把它配名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 32 页 - - - - - - - - - 置成 active的。rootN440#vi /etc/hostname.ce1 192.168.1.8 netmask 255.255.255.0 broadcast 192.168.1.255 group ipmptest up addif 192.168.1.12 deprecated -failover netmask
34、255.255.255.0 broadcast 192.168.1.255 up rootN440#vi /etc/hostname.ce1:1 192.168.1.9 rootN440#reboot 这样重新启动后,浮动的IP (192.168.1.8,192.168.1.9,192.168.1.10)同在一个IPMP组 ipmptest中。Troubleshooting:1, 最常见的问题就是对配置了IPMP 的主机, Ping 能通但是却Telnet不上, 这是因为网络中没有 ailve的路由被test到,导致 in.mpathd进程认为两块网络接口都failed ,至于能 ping通,
35、可能是因为in.mpathd进程不能控制到工作在网络层的ICMP 报文。2,从网关能ping通主机,但是从主机ping不通网关,导致IPMP 组失败。这可能是因为网关上的安全策略,屏蔽了ICMP报文的 reply 。3, 网络通畅, 尽管可能失败切换能成功,但是应用程序出现网络断续的情况,该问题可能是由于OBP 里面的 local-mac-address?没有被设为true ,这样两个网卡用同样的MAC 地址,导致交换机里面的转发表里的端口MAC 对应关系错乱。2MAC 地址应当不一样,在eeprom中 setenv local-mac-address? True;因为这样系统中网络接口才使用
36、不同的物理地址(MAC 地址)。请问,如何查看local-mac-address的当前设置?找到了,直接执行eeprom即可今天第一次做sun 机器的巡检得到一份sun 巡检命令但是无法理解其中含义希望哪位高手可以帮忙翻译一下兄弟在此谢过hostname / 查看主机名hostid / 查看主机ID ifconfig -a /ip地址netstat -nr uname -m /usr/platform/sun4u/sbin/prtdiag -v /usr/platform/sun4u/sbin/eeprom df -k swap -s 名师资料总结 - - -精品资料欢迎下载 - - - -
37、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 32 页 - - - - - - - - - swap -l format(ctrl+d退出)iostat -c 1 5 vmstat 2 5 /usr/ucb/ps -aux ps -efa cat /var/adm/messages vxdisk list vxdg list vxinfo -g scpdg vxprint -g scpdg -ht vxstat -g scpdg uname -X uname -i prstat -a (按 q 键退出 ) cat /etc/
38、inet/inetd.conf cat /etc/inet/ipnodes cat /etc/inet/netmasks cat /etc/inet/networks cat /etc/inet/services ls -l /etc/hostname.*|wc -l cat /etc/path_to_inst cat /etc/inet/ntp.conf cat /etc/inet/ntp*cluster* cat /etc/vfstab cat /etc/syslog.conf prtconf -v cat /etc/passwd cat /etc/rmtab 名师资料总结 - - -精品
39、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 32 页 - - - - - - - - - cat /etc/dfs/dfstab scstat scstat -p scstat -pv scstat -pvv scconf -p scconf -pv scconf -pvv scrgadm -p scrgadm -pv scrgadm -pvv 局域网内使用ntp服务器同步时间solaris 10中已自带ntp 服务的软件可使用: pkginfo | grep ntp 查看# pkginfo
40、| grep ntp system SUNWntpr NTP, (Root) system SUNWntpu NTP, (Usr) 一、配置服务器端1、编辑 /etc/inet/ntp.conf文件在/etc/inet目录下存在2 个 ntp模板文件ntp.client ntp.server 。将 ntp.server 复制为ntp.conf # cp ntp.server ntp.conf # vi ntp.conf内容如下# restrict default nomodify notrap restrict 127.0.0.1 server 127.127.1.0 prefer fudge
41、 127.127.1.0 stratum 4broadcast 192.168.0.255 ttl 4#enable auth monitor driftfile /var/ntp/ntp.drift statsdir /var/ntp/ntpstats/ filegen peerstats file peerstats type day enable filegen loopstats file loopstats type day enable filegen clockstats file clockstats type day enable#keys /etc/inet/ntp.key
42、s #trustedkey 0 #requestkey 0 #controlkey 0restrict default nomodify notrap 表示不允许其他的计算机修改或查询本机的ntp服务,default表示所有ip. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 32 页 - - - - - - - - - restrict 127.0.0.1设置开放本机环路,对本地ntp服务进行监控及配置。server 127.127.1.0 prefer设置使用本机
43、系统时间作为时间源,prefer表示优先使用。fudge 127.127.1.0 stratum 4设置本地时间源的层数为4,最大为15 层 ,16 表示不可访问。broadcast 192.168.0.255 ttl 4设置本机的ntp 服务器可以进行多播,若将 ip 换为 224.0.1.1即设为可以进行多播。driftfile /var/ntp/ntp.drift设置时间偏移量文件,该文件需要手工建立。#keys /etc/inet/ntp.keys 设置认证文件,在局域网内不需认证注释掉即可。实 际 上 在 配 置ntp服 务 时只 需 设 置server 127.127.1.0 pr
44、efer driftfile /var/ntp/ntp.drift即可2、开启或重启ntp 服务# svcadm enable/restart ntp3、查询 ntp 服务状态# ntpq -p或 # ntpq - ntprpeer remote refid st t when poll reach delay offset disp = *LOCAL(0) LOCAL(0) 4 l 32 64 377 0.00 0.000 10.01 remote:上层服务器的ip 或 domainname,*表示上层ntp服务器是本机ntp 的时间源refid :表示上层ntp服务器的时间源st :ntp
45、服务器的层数delay :表示与该上层ntp服务器联系所花的时间,单位毫秒offset :本机 ntp服务与上层ntp服务的时间偏移量二、配置客户端1、手动与ntp 服务器同步时间# ntpdate 10.10.0.60 出现如下结果:17 Oct 13:38:28 ntpdate3830: adjust time server 10.10.0.60 offset -0.120840 sec (使用这种方法客户端不需要开ntp服务,否则会包端口冲突的错)2、编辑 crontab文件,让客户端在固定时间与服务器同步时间。# EDITOR=vi # export EDITOR # crontab
46、-e root00 * * * * /usr/sbin/ntpdate 10.10.0.60 目前 , 由于 UNIX操作系统的诸多优点, 主流 ISP 基本采用UNIX作为提供服务的系统平台,其中Solaris占了其中的很大比例?网络管理工具范围广泛,本文从功能出发把网络管理工具分成不同的类,然后分类介绍这些软件工具?工具使用上难易程度相差较大,考虑到篇幅 ,这里仅作简单的介绍?首先介绍Solaris10 自身携带的工具软件?一、状态监视工具1.ifconfig 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
47、 - - - - - - 第 13 页,共 32 页 - - - - - - - - - ifconfig在 UNIX类操作系统内提供,一般用于设置?查询网络接口的参数或状态?使用它来查询每个接口的配置信息时,要使用 -a 选项 ?查看命令的输出结果,可以确定接口是否工作(UP),如果没有UP, 就说明接口未开启,处于禁止状态?还可以查看到最大传输单元(MTU) 为多少 (对于以太网一般为1500B),是否支持BROADCAST(广播 )?SIMPLEX(单播 )和 MULTICAST(多播或组播 )或它们的组合方式等?2.ping及其替换工具ping命令用来检查是否可以到达目标节点,显示目标
48、是否响应,以及收到响应所需的往返时间等 ?如果在传递过程中出现错误,ping命令将显示错误消息?ping在多种操作系统中提供(Windows和 UNIX) ?ping通过发送一个ICMPECHO请求包到目标, 如果收到一个ICMPECHO响应包 ,说明目标是活动的,否则可以判断目标节点没有在线?网络路由设置出错或者目标使用了某些过滤器过滤了ICMP 的 ECHO 报文 ?类似于 ping的工具还有fping,可以并行地?多个主机同时检查,主要的特点是探测的目标设备列表可以存入文件中,然后用文件来控制操作?对于特殊情况,可以使用 arping,它采用 ARP 请求和响应来探测,因此不会被阻塞,当
49、然只适用于本地网络 ?利用 arping可以很快找出某个IP 地址对应的MAC 地址 ,也能够反向查找?3.nslookup?dig 和 host 这几个命令在UNIX和 linux系统中使用 ,都可以进行域名的解析?nslookup使用交互方式查询域名与IP 地址的映射关系?dig 的功能是发送域名查询信息包到域名服务器, 并获得结果 ?dig 有两种工作模式: 简单交互模式和批处理模式?简单交互模式用于简单的查询, 而批处理模式则可以对包含多个查询条目的列表执行查询?host命令向域名服务器查询,获得本机或其他主机的域名 ?二、流量监视工具1. snoop命令这个工具都是通过捕捉网络的分组
50、,然后按照不同的形式显示或输出这些分组?诊断网络故障的第一步就是收集信息?包括从用户收集一些反映问题本质的信息,也包括来自网络的信息?成功与否在很大程度上取决于收集信息的效率和所收集的信息的质量?分组捕捉与分析是诊断故障的最终方法 ,也是最复杂的方法,通过实时地收集分组数据, 对流量加以分析,能够了解网络内部到底发生了什么事情?当然不当的使用也会对系统安全造成威胁,因为这些工具可能获得敏感的信息?这类工具有多种不同的名称,如分组嗅探器(PacketSniffer)?分组分析器 (PacketAnalyzer)?协议分析仪 (ProtocolAnalyzer)和流量监视器(TrafficMoni