三、Linux网络故障的解决问题的思路 Linux网络故障排除应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网络都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,然后到服务器、集线器、路由器等硬件。如果确定硬件没有问题了,再来考虑软件的设定。 1、检查网卡工作状况 Linux下的网卡不能工作可能是以下原因之一:
1.网卡没有被Linux检测到;
2.没有与之相应的内核模块;
3.该模块没有被加载;
4.Linux系统不支持你的网卡。 详细情况可以参考笔者的:Linux服务器网卡驱动安装及故障排除(链接:http://www.ccw.com.cn/server/yyjq/htm2005/20050817_15OF4.htm)需要补充一点是:调整自适应工网卡的作模式,现在的网卡大多是自适应工作模式,在配置网卡参数时我们很少考虑它的工作模式,但是在路由器、交换机、代理服务器等通信量比较大的关键设备上,应该为它指定正确的工作模式,这样可以避免故障。在Linux环境下,我们可以使用系统自带的工具mii-tool命令来配置网卡工作模式。 mii-tool[-VvRrwl][-Amedia,...|-Fmedia][interface...] media:100baseTx-FD,100baseTx-HD,10baseT-FD,10baseT-HD,100baseTx, 10baseT 主要选项:
-V表示查看网卡现在的工作模。
-F表示强行修改。
-r恢复网卡的自适应工作模式。
-w显示监测链路状态。
-A使用高级修改模式。
-l表示将修改记录写入syslog日志文件。
media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。 Interface代表所选择的网卡,如eth0、eth1等。
(1)强制网卡工作在100M双工模式下,输入命令:
mii-tool-F100baseTx-FDeth0 (2)恢复网卡的自适应工作模式,输入命令: mii-tool-reth0 2、确认局域网内网络连接情况 网卡设定确认没有问题之后,接下来要确认局域网内网络连接情况。根据图-2网络拓扑结构,对集线器1组成的局域网的要求有下面几点: (1)客户机IP的设定
假设子网为192.168.1.0/24,那么局域网内所有计算机的IP应该介于192.168.1.1~192.168.1.254,且所有的计算机子屏蔽网络均为255.255.255.0,IP在所有的计算机都不可以重复。 (2)网关
假设LinuxIP为192.168.1.2,那么局域网内所有客户机的网关是192.168.1.2。 (3)Windows端的通信协议
局域网内其它的Windows系统的通信协议仅需要TCP/IP及NetBUEI即可,如果安装过多的通信协议可能会造成联机过慢。 (4)Windows端工作组与计算机名称
假如需要资源共享,那么就必须在Windows系统中建立文件共享,并且所有的计算机工作组必须相同,但计算机名称不能相同。 3、DNS故障排除 Linux域名服务器使用的是Bind9版本。域名服务器包含数据库的部分段的信息,并可提供被称之为解析器的客户来访问。DNS域名解析服务是网络的基础服务,承担着将域名翻译为计算机可以识别的IP地址,以及寻找IP地址对应的逆向翻译工作。一旦DNS服务出现故障,用户就无法通过采用域名的方式进行互联网访问,同时相应的邮件服务器也会由于无法进行正常的域名解析而出现故障。由于DNS服务对于网络非常重要,所以也成为网络故障排除的重要任务。如果在Linux网络中无法进行域名解析,很可能是没有在本地指定有效的域名服务器,通常这种情况比较常见。大多数DNS故障是因为配置文件的语法错误,或者是对计算机分配了错误的地址造成的。DNS就是DomainNameSystem,DNS服务器可以分为三种,高速存服务器(Cache-onlyserver)、主服务器(PrimaryNameserver)、辅助服务器(SecondNameServer)。Linux下主要DNS配置文件:Linux上的域名服务由named守护进程控制,该进程从主文件:/etc/named.conf中获取信息。 它包括一族将主机名称映射为IP地址的各种文件:下面是named配置文件族详细内容。表-2named配置文件族(请看附件) 当进行DNS故障诊断时,可参照下面的步骤:
(1)对全部记录检查和确认主机名称的拼写,记住绝对地址是以“.”结尾的.
(2)如果在区文件中做了任何修改,务必修改SOA记录中的序列号,这将保证服务器正确地重新上载文件。
(3)确定输入到主区的名称和IP地址匹配反向指针文件中的反向指针信息.
(4)检查防火墙相关程序。
(5)使用命令检查。(ping、dig、nslookup、named-checkzone、named-checkconf)
(6)使用dlint软件检查DNS故障。dlint是一个专门检查DNS配置文件开放源代码软件。最新版本:1.4.0,官方网址:http://www.domtools.com/dns/dlint.shtml
(7)另外如果客户端无法进行域名解析,最可能原因是没有在本地指定有效的域名服务器,这种情况比较常见。解决办法:一般修改和域名服务相关的文件如/etc/hosts或/etc/resolv.conf,在这些文件中添加有效的域名服务器的IP地址就可以解决。如果判断不是本地域名解析的问题,例如在本地可以解析公司域名,但外面的客户无法正常解析公司域名,则需要和域名注册服务提供商联系,一同解决问题。因为此种情况的发生,可能是公司系统中的IP地址和注册的域名不对应的原因造成的。 4、对于Linux服务器攻击造成网络故障
对于Linux服务器来说,最大的危险是黑客攻击。对Linux服务器攻击的定义是:攻击是一种旨在妨碍、损害、削弱、破坏Linux服务器安全的未授权行为。攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器。最严重的是远程用户获得根权限。Linux网络中超级用户拥有最高权限。一旦远程用户获得根权限你的网络随时可能被摧毁。所以部署IDS是防止这类网络故障的选择。当然你还要采取其他措施:一个配置适当的防火墙不仅是系统有效应对外部攻击的第一道防线,也是最重要的一道防线。在新系统第一次连接上Internet之前,防火墙就应该被安装并且配置好。防火墙配置成拒绝接收所有数据包,然后再打开允许接收的数据包,将有利于系统的安全。防火墙的具体设置方法请参见iptables使用方法。 5、Linux病毒造成网络故障的排除 Linux操作系统一直被认为是Windows系统的劲敌,因为它不仅安全、稳定、成本低,而且很少发现有病毒传播。但是,随着越来越多的服务器、工作站和个人电脑使用Linux软件,电脑病毒制造者也开始攻击这一系统。对于Linux系统无论是服务器,还是工作站的安全性和权限控制都是比较强大的,这主要得力于其优秀的技术设计,不仅使它的作业系统难以宕机,而且也使其难以被滥用。Unix经过20多年的发展和完善,已经变得非常坚固,而Linux基本上继承了它的优点。在Linux里,如果不是超级用户,那么恶意感染系统文件的程序将很难得逞。当然,这并不是说Linux就无懈可击,病毒从本质上来说是一种二进制的可执行的程序。冲击波(Blast)等恶性程序虽然不会损坏Linux服务器,但是却会传播给访问它的Windows系统平台的计算机。 Linux平台下的病毒分类: 1.可执行文件型病毒。
2.蠕虫(worm)病毒。
3.脚本病毒。
4.后门程序:在广义的病毒定义概念中,后门也已经纳入了病毒的范畴。活跃在Windows系统中的后门这一入侵者的利器在Linux平台下同样极为活跃。从增加系统超级用户账号的简单后门,到利用系统服务加载,共享库文件注射,rootkit工具包,甚至可装载内核模块(LKM),Linux平台下的后门技术发展非常成熟,隐蔽性强,难以清除。是Linux系统管理员极为头疼的问题。 综合以上介绍,可以看到总体来说计算机病毒对Linux系统存在较小的危险。但是由于各种原因在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,桌面端使用Windows。所以为Linux的防范病毒策略分成两个部分: 1.针对Linux本身(服务器和使用其作为桌面的计算机)防范策略。 可执行文件型病毒、蠕虫(worm)病毒、脚本病毒的防范通过安装GPL查杀病毒软件基本可以防范。服务器端可以使用AntiVir(http://www.hbedv.com/)它是工作在命令行下的,运行时可以较少占用系统资源。桌面用户可以选择tkantivir(http://www.sebastian-geiges.de/tkantivir/)是用Tcl/Tk写的,可以运行在任何X-Windows环境下面,比如KDE或Gnome等。 对于后门程序防范可以采用LIDS(http://www.lids.org/)和Chkrootkit(http://www.chkrootkit.org/),LIDS是Linux内核补丁和系统管理员工具(lidsadm),它加强了Linus内核。可以保护dev/目录下的重要文件。而Chkrootkit可以检测系统的日志和文件,查看是否有恶意程序侵入系统,并且寻找关联到不同恶意程序的信号。最新版本的Chkrootkit0.45可以检测出sniffers、Trojans、worms、rootkit等59种。 2.针对使用Linux服务器后端的Windows系统的病毒防范策略。 许多企业使用代理服务器接入互联网,许多用户Windows系统进行都是在进行HTTP网页浏览和文件下载时感染病毒,所以可以在代理服务器上加挂一个病毒过滤器,对用户浏览的HTTP网页进行病毒检测,发现有用户浏览网页感染病毒的状况即由代理服务器进行阻断,丢弃带有病毒的请求,将不安全的进程阻止在代理服务器内,禁止带有病毒的数据向客户端计算机传播。squid是一款非常优秀的代理服务器软件,但是并没有专门的病毒过滤功能。可以考虑使用德国开放源码爱好者开发的一款基于Linux的病毒过滤代理服务器——HAVP(http://www.server-side.de/)。HAVP病毒过滤代理服务器软件既可以独立使用,也可以与Squid串联使用,增强Squid代理服务器的病毒过滤功能。 提供邮件服务是Linux服务器中重要应用。可以使用ClamAV(http://www.clamwin.com/),ClamAV全名是ClamAntiVirus,它跟Liunx一样强调公开程序代码、免费授权等观念,ClamAV目前可以侦测超过40,000种病毒、蠕虫、木马程序,并且随时更新数据库,有一组分布在世界各地的病毒专家,24小时更新及维护病毒数据库,任何人发现可疑病毒也可以随时跟她们取得联系,立刻更新病毒码,在极短的时间内,网络上采用ClamAV的邮件服务器就完成最新的防护动作。 6、Linux系统本身漏洞及其软件的BUG造成网络故障 操作系统是计算机系统灵魂,维护着系统的底层,对内存、进程等子系统进行管理和调度。如果操作系统本身出现了漏洞,其影响将会是致命的。操作系统的内核,对于网络安全是至关重要的。目前,内核的维护主要分两种模式:对于私有操作系统,如Windows/Solaris等,由于个人用户不能直接接触其源代码,其代码由公司内部开发人员维护,其安全性由同样的团队保证,内核的修正与其他应用程序一样,以patch/SP包的方式发布。对于Linux这样的开放式系统,是一种开放的结构。应该说,开放的模式是双刃剑。从机制上讲,全世界的开发人员都能获得源代码,从而找出其中的纰漏,似乎安全性应该更好;但是同时,如果网络管理人员不能及时更新内核,也会留下安全隐患。Linux服务器运行的软件主要包括:Samba,Ftp,Ssh,Mysql,Php,Apache等,这些软件,大都是开源软件,而且都在不停升级,稳定版和测试版交替出现。在www.apache.org上,最新的ChangeLog中都写着:bugfix,securitybugfix的字样。所以Linux网管员要经常的关注相关网站的bugfix和升级,及时升级或添加补丁。 总结: 掌握OSI模型、TCP/IP分层模型及相对应的相关协议和正确网络拓扑结构,对于Linux网络故障分析与排除是非常重要的,另外Linux网络往往比较复杂需要你对多种网络操作系统都比较熟悉,还需要采取多种措施。如果能够配合使用一些网络检测工具(例如网络测试仪、网络嗅探器等),对于网络故障分析与排除也是非常有用的。
上一篇: 无线网络连接故障一网打尽
下一篇: Linux网络连接故障排除(上)