`
xiangxingchina
  • 浏览: 523445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Linux网络管理员日记(7)更上一层楼:Linux服务器的安全实践

阅读更多

网络安全实践中,防火墙(Firewall)是被经常强调的重点,它的基本功能是过滤并阻挡本地网络与Internet之间的数据传送。另外,无论 是网络管理员还是黑客,对数据截获分析都十分重视,因此,在进阶提高部分,我们也将使用直观简单的方式对这两部分内容进行讲解。

1 、iptables :Linux服务器下的优秀防火墙

Linux提供了一个非常优秀的防火墙工具—iptables,它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,能够在一台低配置机器上很好地运行。

(1)安装和启动

一般情况下,iptables已经包含在Linux发行版中,运行iptables --version来查看系统是否安装了iptables。如果系统没有安装iptables,则可以从 http://www.netfilter.org下载。使用中可以运行man iptables来查看所有命令和选项的完整介绍,或者运行iptables -help来查看一个快速帮助。

iptables服务也可以在图形模式下开启,步骤为:依次打开“主菜单”下的“系统设置”,选择“服务器设置”中的“服务”,拉动滚动条找到iptables选项,选中后点击“开始”,即可启动防火墙服务;如果不想使用防火墙,点击“停止”即可。如图26所示。


图 26

(2)使用实例分析

iptables功能十分强大,它可以检测到源地址和目的地址、源端口和目的端口及流入数据包的顺序,即iptables记住了在现有连接中,哪些 数据包已经被允许接收。这使得暂时性的端口只有在需要时才会被打开,并且会拒绝所有永久性占用端口的请求,大大地加强了安全性。下面是关于 iptables防火墙的一些应用实例。

实际应用中,如果要阻止来自某一特定IP范围内的数据包,因为该IP地址范围被管理员怀疑有大量恶意攻击者在活动:

# iptables -t filter -A INPUT -s xxx.xxx.xxx.0/24 -j DROP

也可以很轻易地阻止所有流向攻击者IP地址的数据包,该命令稍有不同:

# iptables -t filter -A OUTPUT -d xxx.xxx.xxx.0/24 -j DROP

注意这里的A选项,使用它说明是给现有的链添加规则。网络上的恶意攻击者总是在变化的,因此需要不断改变IP。假设一个网上攻击者转移到新的IP地 址,而原来的IP地址被分配给一些清白的用户,那么这时这些用户的数据包将无法通过网络。这种情况下,可以使用带-D选项的命令来删除现有的规则:

# iptables -t filter -D OUTPUT -d 192.168.10.0/24 -j DROP

一旦测试结果令人满意,就可以将上述测试结果保存为脚本。可以使用“iptables-save > iptables-script”命令来实现,现在,信息包过滤表中的所有规则都被保存在文件iptables-script中。无论何时再次引导系统, 都可以使用 iptables-restore 命令将规则集从该脚本文件恢复到信息包过滤表,命令为“iptables-restore iptables-script”。

创建一个具有很好灵活性、可以抵御各种意外事件的规则需要大量的时间。对于那些没有时间这样做的人,最基本的原则是“先拒绝所有的数据包,然后再允许需要的”。下面来为每一个链设置缺省的规则:

# iptables -P INPUT DROP

# iptables -P FORWARD DROP

# iptables -P OUTPUT ACCEPT

这里选项-P用于设置链的策略,只有三个内建的链才有策略。这些策略可以让信息毫无限制地流出,但不允许信息流入。

最后需要提示的是:功能强大的iptables防火墙是完全免费的,这对于那些想要功能卓越而又想节省费用的用户来说,是一种比较理想的选择。

2 、在Linux下利用TCPDump进行网络管理

对于网络管理员来说,要保证整个网络的正常运行,就必须随时了解网络中存在的异常流量、网络阻塞等现象。打个比方,一部电话的窃 听装置,可以用来窃 听双方通话的内容,而计算机网络嗅探器则可以窃 听计算机程序在网络上发送和接收到的数据。但是,计算机所传送的数据是大量的二进制数据。因此,一个网络窃 听程序也必须使用特定的网络协议来分析数据,进行正确的解码。如图27所示,就是一个Windows下的嗅探器。

Linux
图 27

那么,对于钟爱Linux的网络安全爱好者来说,能否找到这样一款强大的Linux下的嗅探器呢?TCPDump就是一款免费的网络分析工具,它可 以将网络中传送的数据包的“头”完全截获下来提供分析,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你 去掉无用的信息。

(1)安装和启动

在Linux下TCPDump的安装十分简单,一种是以rpm包的形式来进行安装,另一种是以源程序的形式安装。以rpm包的安装方法比较简单,通 过rpm命令可以直接安装,rpm包是将软件编译后打包成二进制的格式,不需要修改任何东西。安装时,以超级用户登录,参考命令如下:#rpm -ivh TCPDump.rpm。这样,TCPDump就可以顺利地安装到Linux系统中。不过,现在较高版本的Linux操作系统都自带了这个工具,关于 TCPDump更详细的信息,可以查看Man TCPDump。

普通情况下,不带参数执行TCPDump,即:#TCPDump,截获的是通过第一个网络界面的数据包。直接启动TCPDump将监视第一个网络界面上所有流过的数据包。如图28所示。

点击放大此图片
图 28

从上面的输出结果来看,TCPDump的基本输出格式为:“系统时间 来源主机.端口 > 目标主机.端口 数据包参数”。仔细观察,我们会发现,和上面的Windows界面相比,数据包格式有很多相似之处,这样也有助于我们来了解这个软件的使用方法。

(2)参数分析

TCPDump支持多种不同参数,如使用-i参数指定TCPDump监听的网络界面,这在计算机具有多个网络界面时非常有用;使用-c参数可以指定 要监听的数据包数量;使用-w参数指定将监听到的数据包写入文件中保存,等等。然而,在数据的海洋中,TCPDump中更复杂的参数主要是用于过滤。这是 为什么呢?

因为在实际操作中,网络中流量很大,如果将所有的数据包都截留下来,数据量就会很大,反而不容易发现所需要的数据包。如果不带任何参 数,TCPDump就会搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想 好需要哪些数据,TCPDump的语法为:

TCPDump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面 >][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][- w<数据包文件>][输出数据栏位]

在实际使用中,我们可以灵活应用。现列举几个比较常用的例子:

1、截获所有192.168.10.1的主机收到的和发出的所有数据包。命令为:

TCPDump host 192.168.10.1

实际效果如图29所示。

Linux安装
图 29

2、截获主机192.168.10.1和主机192.168.10.2或192.168.10.3的通信,使用命令(在命令行中适用括号时,一定要):

#tcpdump host 192.168.10.1 and \ (192.168.10.2 or 192.168.10.3 \)

3、如果想要获取主机192.168.10.123接收或发出的telnet包,使用如下命令:

#tcpdump tcp port 23 host 192.168.10.123

4、获取主机192.168.10.1除了和主机192.168.10.2之外所有主机通信的ip包,使用命令:

#tcpdump ip host 192.168.10.1 and ! 192.168.10.2

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中还有很多优秀的服务器功能,如DNS 服务器、CVS服务器、DHCP服务器、数据库服务器、Samba网络服务器等。正是这些优秀的功能组合,再加上完全免费的优势,使得Linux的功能越 来越强大,并逐渐在激烈的操作系统市场中占据了一席之地。通过本文的讲解,相信很多用户一定会更加喜爱Linux操作系统。文章到这里,我们又想起了那只 让人爱不释手的小企鹅,毫无疑问,正是它欢快自由的脚步,我们才领略到Linux世界的无穷魅力。

分享到:
评论

相关推荐

    Linux服务器管理员教程

    Linux服务器管理员教程是一套专为初学者设计的指南,旨在帮助读者掌握Linux系统的基本管理和维护技能。在IT领域,Linux服务器因其稳定、高效和开源特性而广受青睐,成为企业和组织首选的服务器操作系统之一。本教程...

    Linux操作系统服务器管理.pdf

    本课程自2005年7月与中科红旗软件有限公司合作共建以来,不断改革,重新整合中科红旗在中小企业转平台项目中的实践案例,以企业案例为核心,针对中小企业网络管理员这一工作岗位,与企业专家共同重构课程教学体系。...

    《Linux网络服务器配置与管理》实训指导书05架设SAMBA服务器.pdf

    《Linux网络服务器配置与管理》实训指导书05架设SAMBA服务器.pdf《Linux网络服务器配置与管理》实训指导书05架设SAMBA服务器.pdf《Linux网络服务器配置与管理》实训指导书05架设SAMBA服务器.pdf《Linux网络服务器...

    Linux网络管理员认证考试考试大纲

    【Linux网络管理员认证考试】是针对推进Linux在浙江省乃至全国发展的一项专业考试,旨在评估考生的实际网络服务器配置能力和Linux操作系统下的网络管理水平。考试由浙江省Linux专业委员会统一命题,面向符合基础要求...

    Linux网络管理员认证考试考试大纲.pdf

    - **考试目的**: 评估考生是否具备实际操作Linux网络服务器的能力以及在Linux操作系统下管理网络的能力。 #### 二、报考条件 - **适用人群**: 面向所有符合Linux网络管理员基础知识要求的在职人员及大专院校在校...

    Linux系统服务器网络安全管理小技巧

    Linux系统服务器网络安全管理小技巧.doc

    Linux服务器安全策略详解 pdf[part1;分6部分下载]

    如何增强Linux服务器的安全性是Linux系统管理员最关心的问题之一。 本书共28章和1个附录。概括而言,实质是五部分内容:第一部分分级介绍对Linux服务器的攻击情况,以及Linux网络基础;第二部分是本书的核心,针对...

    Linux服务器配置与管理:Linux环境搭建.pptx

    VMWare (Virtual Machine ware)是一个虚拟机软件,它可以在一台物理主机上虚拟出多台虚拟主机。 下载软件后,双击安装包,进入安装页面。点下一步 2. Linux环境搭建 1、开启vmware程序,点击创建新虚拟机。选择典型...

    Linux网络管理员认证考试考试大纲.doc

    Linux网络管理员认证考试是针对Linux操作系统下网络管理能力的评估,旨在验证考生是否具备实际的网络服务器配置技能。考试由浙江省Linux专业委员会统一命题,面向符合基础要求的在职人员和在校学生开放,通过考试者...

    精通Linux网络服务器配置·管理·检测·应用

    ### 精通Linux网络服务器配置·管理·检测·应用 #### 一、Linux网络服务器配置 1. **网络配置**: ...掌握这些知识和技术将有助于我们更好地管理和维护Linux网络服务器,提高其稳定性和安全性。

    Linux高性能服务器编程电子版

    1. **多线程与并发处理**:Linux提供了多种机制来实现多线程和并发,如pthread库,以及进程间通信(IPC)如信号量、管道、共享内存等,用于提高服务器处理并发请求的能力。 2. **网络编程**:深入理解TCP/IP协议栈...

    《Linux服务器配置与管理》课程设计任务书.doc

    通过完成本课程设计,学生将能够综合了解 Linux 提供的网络服务,并具备基本的 Linux 服务器配置和管理能力。 Linux 服务器配置与管理是当前信息化建设中的一个关键部分。随着网络技术的不断发展,Linux 服务器...

    linux网络管理课程设计

    【Linux网络管理课程设计】是针对计算机工程系学生的一次实践教学活动,旨在让学生深入了解和熟练操作Linux系统,特别是网络管理方面。以下是该课程设计涉及的主要知识点: **1. RHEL5的安装** RHEL(Red Hat ...

    Linux 新手管理员指南

    Linux新手管理员指南是一份专为初次接触Linux操作系统的人准备的详尽教程,旨在帮助他们快速掌握Linux系统的管理和操作。这份指南涵盖了从基础概念到高级应用的广泛内容,旨在提升用户在Linux环境中的实用技能。 ...

    Linux服务器配置与管理pdf

    Linux服务器配置与管理

    DevOps故障排除 linux服务器运维最佳实践

    DevOps是一组过程、方法与系统的统称,用于促进开发者、质量保证人员(QA)以及系统管理员之间的沟通、...《DevOps故障排除:Linux服务器运维最佳实践》内容全面,结构清晰,适合开发者、QA人员和系统管理员学习参考。

    基于Linux的企业自动化实践:服务器的构建、部署与管理.docx

    Linux 在服务器端的重要性:Linux 作为一种开源、稳定、可定制的操作系统,为企业提供了诸多优势,使得其在服务器端的应用成为一种趋势。 Linux 的开源特性使得企业能够自由获取并修改源代码,根据自身需求打造定制...

Global site tag (gtag.js) - Google Analytics