Linux服务器的安全实践
3、Linux服务器实例分析
通过上面的操作了解,相信很多电脑爱好者在Linux技术上有了一个质的飞跃。下面,我们综合运用这些方法来解决一个Linux服务器上安装问题。下面是一个针对邮件服务器的网络故障分析。某单位的局域网中有一台Sendmail邮件服务器,收发邮件等基本功能正常,但在使用中发现一个普遍的怪现象:在PC机上发邮件时,连接邮件服务器后,要等待很长时间才能开始工作。从检测来看,网络连接没有问题,邮件服务器和PC性能都没有问题,问题可能出在哪里呢?
为了查找问题的所在,可以采用以下的测试方法。首先,我们在PC机client上发送邮件,同时在邮件服务器server上使用TCPDump对这个client的数据包进行捕获分析,如下:
#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: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的113端口,要求认证,但是没有收到client端的回应,server端重复尝试了3次,费时26秒后,才放弃认证请求,并主动发送了reset标志的数据包,开始push后面的数据;而正是在这个过程中所花费的26秒时间,造成了发送邮件时漫长的等待情况。问题找到后,通过修改服务器端的Sendmail配置,再次测试,看到邮件服务器不再进行113端口的认证尝试,而是在三次检测后直接push数据,问题得到完美的解决。
感谢原创作者.书名:大学生攻克Linux系统教程(又名天下没有难学的Linux)