linux系统安全加固

来源:互联网 发布:步惊云教学软件多少钱 编辑:程序博客网 时间:2024/05/16 03:52

http://wenku.baidu.com/view/679246b81a37f111f1855bfa.html

目  录

 

1摘要... 2

2 Linux的网络功能... 2

2.1 服务器... 2

2.1.1  Apache HTTP服务器... 2

2.1.2  Sendmail邮件服务器... 2

2.1.3  Vsftp服务器... 3

2.1.4  Samba服务器... 3

2.1.5  Squid代理缓存服务器... 3

2.1.6  DHCP服务器... 3

2.1.7  Bind DNS服务器... 3

2.2  基本网络操作命令... 3

2.2.1  telnet命令... 3

2.2.2  ftp命令... 4

2.2.3  netstat命令... 4

3 Linux网络操作系统的基本安全机制... 4

3.1linux系统的账号安全... 4

3.2linux的文件系统权限... 4

3.3  合理利用Linux的日志文件... 4

3.3.1/var/log/lastlog文件... 5

3.3.2/var/log/secure文件... 5

3.3.3/var/log/wtmp文件... 5

4 Linux网络系统可能受到的攻击和安全防范策略... 5

4.1  Linux网络系统可能受到的攻击类型... 5

4.1.1 “拒绝服务”攻击... 5

4.1.2 “口令破解”攻击... 5

4.1.3 “欺骗用户”攻击... 6

4.1.4“扫描程序和网络监听”攻击... 6

4.2  Linux网络安全防范策略... 6

4.2.1 仔细设置每个内部用户的权限... 6

4.2.2  确保用户口令文件/etc/shadow的安全... 6

4.2.3  加强对系统运行的监控和记录... 6

4.2.4  合理划分子网和设置防火墙... 7

4.3 加强对Linux网络服务器的管理,合理使用各种工具... 7

4.3.1  利用记录工具,记录对Linux系统的访问... 7

4.3.2  慎用Telnet服务... 7

4.3.3 合理设置NFS服务和NIS服务... 7

4.3.4  小心配置FTP服务... 8

4.3.5 合理设置POP-3和Sendmail等电子邮件服务... 8

4.3.6  加强对WWW服务器的管理,提供安全的WWW服务... 8

4.3.7  最好禁止提供finger 服务... 8

5 服务器技术与系统集成... 9

6 网络安全技术与应用... 10

7 网络资源共享... 11

7.1 NFS简介... 11

7.2 NFS的配置... 11

7.2.1 配置NFS服务器... 11

7.2.2 启动和停止NFS服务... 11

7.3 使用NFS文件系统... 11

8 Linux必须学会的60个命令-文件处理... 12

结论... 19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1摘要

Linux的Apache HTTP服务器、Sendmail邮件服务器、Vsftp服务器、Samba服务器、Squid代理缓存服务器、DHCP服务器、Bind DNS服务器。即Linux网络操作系统的基本安全机制和安全防范策略。

【关键词】

服务器,网络操作命令,安全机制

Abstract

The Linux I can with Apache HTTPserver, Sendmail mail server, Vsftp server, Samba server, proxy cachingservers, Squid DHCP server, Bind the DNS server. Namely Linux network operatingsystem the basic safety mechanism and security preventive strategy.

Keywords

Server, network operation orders,security mechanism

 

2 Linux的网络功能

2.1服务器

2.1.1  Apache HTTP服务器

Apache HTTP服务器是一种具有稳定性高、速度快等特点的Web服务器软件。

2.1.2  Sendmail邮件服务器

Sendmail是Linux上著名的邮件传输程序。

2.1.3  Vsftp服务器

Vsftp是一种功能强大、适合于大吞吐量应用环境的FTP服务器。

2.1.4  Samba服务器

SMB是服务器消息块(Server Message Block)的缩写,SMB协议是一种在两台机器之间共享文件、打印机和接口的标准化协议。

Samba是在Linux系统上支持SMB协议的一组应用程序套件。它不仅允许Linux与UNIX系统之间进行数据资源共享,也允许Linux与Windows系统之间共享数据资源。

2.1.5  Squid代理缓存服务器

Squid是运行于Linux系统上的代理服务器软件,它可以将远程Internet对象保存为本地的副本,当本地用户再次访问这些对象时,Squid可以直接快速地提供这些对象的本地副本,而不必再次占用带宽来访问远地服务器上的对象。

2.1.6  DHCP服务器

DHCP服务器能自动对DHCP客户机进行TCP/IP配置,如IP地址、网络掩码、DNS及网关等。

2.1.7  Bind DNS服务器

Bind DNS是TCP/IP的域名服务器软件,它提供主机名和IP地址之间的转换以及有关电子邮件的选路信息,可以提供主域名服务器、辅助域名服务器、缓存查询服务器和自动完成反向域名解析配置等功能。

1.1.8  MySQL数据库服务器

MySQL是一个真正的多用户、多线程SQL高速数据库服务器。

2.2 基本网络操作命令

ping命令主要用于测试本机与网络上的另一台计算机的网络连接是否正确,因此在架设网络和排除网络故障时本命令显得特别有用。

2.2.1  telnet命令

telnet是TELNET协议的客户端应用程序,主要用于通过网络登录远程主机。一旦登录成功,用户就可以像使用本地计算机一样使用远程计算机。

2.2.2  ftp命令

ftp命令可以用来从主机上上载或者下载文件。

2.2.3  netstat命令

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

 

3 Linux网络操作系统的基本安全机制

Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。

3.1 linux系统的账号安全

在Linux系统中,用户帐号是用户的身份标志,它由用户名和用户口令组成。在Linux系统中,系统将输入的用户名存放在/etc/passwd文件中,而将输入的口令以加密的形式存放在/etc/shadow文件中。在正常情况下,这些口令和其他信息由操作系统保护,能够对其进行访问的只能是超级用户(root)和操作系统的一些应用程序。但是如果配置不当或在一些系统运行出错的情况下,这些信息可以被普通用户得到。进而,不怀好意的用户就可以使用一类被称为“口令破解”的工具去得到加密前的口令。

3.2 linux的文件系统权限

Linux文件系统的安全主要是通过设置文件的权限来实现的。每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。

3.3 合理利用Linux的日志文件

Linux的日志文件用来记录整个操作系统使用状况。作为一个Linux网络系管理员要充分用好以下几个日志文件。

3.3.1 /var/log/lastlog文件

记录记录最后进入系统的用户的信息,包括登录的时间、登录是否成功等信息。这样用户登录后只要用lastlog命令查看一下/var/log/lastlog文件中记录的所用帐号的最后登录时间,再与自己的用机记录对比一下就可以发现该帐号是否被黑客盗用。

3.3.2 /var/log/secure文件

记录系统自开通以来所有用户的登录时间和地点,可以给系统管理员提供更多的参考。

3.3.3 /var/log/wtmp文件

记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。可以用last命令查看,若想清除系统登录信息,只需删除这个文件,系统会生成新的登录信息。

 

 

4 Linux网络系统可能受到的攻击和安全防范策略

Linux操作系统是一种公开源码的操作系统,因此比较容易受到来自底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的安全。

4.1  Linux网络系统可能受到的攻击类型

4.1.1“拒绝服务”攻击

所谓“拒绝服务”攻击是指黑客采取具有破坏性的方法阻塞目标网络的资源,使网络暂时或永久瘫痪,从而使Linux网络服务器无法为正常的用户提供服务。例如黑客可以利用伪造的源地址或受控的其他地方的多台计算机同时向目标计算机发出大量、连续的TCP/IP请求,从而使目标服务器系统瘫痪。

4.1.2“口令破解”攻击

口令安全是保卫自己系统安全的第一道防线。“口令破解”攻击的目的是为了破解用户的口令,从而可以取得已经加密的信息资源。例如黑客可以利用一台高速计算机,配合一个字典库,尝试各种口令组合,直到最终找到能够进入系统的口令,打开网络资源。

4.1.3“欺骗用户”攻击

“欺骗用户”攻击是指网络黑客伪装成网络公司或计算机服务商的工程技术人员,向用户发出呼叫,并在适当的时候要求用户输入口令,这是用户最难对付的一种攻击方式,一旦用户口令失密,黑客就可以利用该用户的帐号进入系统。

4.1.4“扫描程序和网络监听”攻击

许多网络入侵是从扫描开始的,利用扫描工具黑客能找出目标主机上各种各样的漏洞,并利用之对系统实施攻击。

网络监听也是黑客们常用的一种方法,当成功地登录到一台网络上的主机,并取得了这台主机的超级用户控制权之后,黑客可以利用网络监听收集敏感数据或者认证信息,以便日后夺取网络中其他主机的控制权。

4.2  Linux网络安全防范策略

  纵观网络的发展历史,可以看出,对网络的攻击可能来自非法用户,也可能来自合法的用户。因此作为Linux网络系统的管理员,既要时刻警惕来自外部的黑客攻击,又要加强对内部网络用户的管理和教育,具体可以采用以下的安全策略。

4.2.1仔细设置每个内部用户的权限

为了保护Linux网络系统的资源,在给内部网络用户开设帐号时,要仔细设置每个内部用户的权限,一般应遵循“最小权限”原则,也就是仅给每个用户授予完成他们特定任务所必须的服务器访问权限。这样做会大大加重系统管理员的管理工作量,但为了整个网络系统的安全还是应该坚持这个原则。

4.2.2 确保用户口令文件/etc/shadow的安全

对于网络系统而言,口令是比较容易出问题的地方,作为系统管理员应告诉用户在设置口令时要使用安全口令(在口令序列中使用非字母,非数字等特殊字符)并适当增加口令的长度(大于6个字符)。系统管理员要保护好/etc/passwd和/etc/shadow这两个文件的安全,不让无关的人员获得这两个文件,这样黑客利用John等程序对/etc/passwd和/etc/shadow文件进行了字典攻击获取用户口令的企图就无法进行。系统管理员要定期用John等程序对本系统的/etc/passwd和/etc/shadow文件进行模拟字典攻击,一旦发现有不安全的用户口令,要强制用户立即修改。

4.2.3 加强对系统运行的监控和记录

Linux网络系统管理员,应对整个网络系统的运行状况进行监控和记录,这样通过分析记录数据,可以发现可疑的网络活动,并采取措施预先阻止今后可能发生的入侵行为。如果进攻行为已经实施,则可以利用记录数据跟踪和识别侵入系统的黑客。

4.2.4 合理划分子网和设置防火墙

如果内部网络要进入Internet,必须在内部网络与外部网络的接口处设置防火墙,以确保内部网络中的数据安全。对于内部网络本身,为了便于管理,合理分配IP地址资源,应该将内部网络划分为多个子网,这样做也可以阻止或延缓黑客对整个内部网络的入侵。

4.2.5  定期对Linux网络进行安全检查

Linux网络系统的运转是动态变化的,因此对它的安全管理也是变化的,没有固定的模式,作为Linux网络系统的管理员,在为系统设置了安全防范策略后,应定期对系统进行安全检查,并尝试对自己管理的服务器进行攻击,如果发现安全机制中的漏洞应立即采取措施补救,不给黑客以可乘之机。

4.3加强对Linux网络服务器的管理,合理使用各种工具

4.3.1 利用记录工具,记录对Linux系统的访问

Linux系统管理员可以利用前面所述的记录文件和记录工具记录事件,可以每天查看或扫描记录文件,这些文件记录了系统运行的所有信息。

4.3.2 慎用Telnet服务

在Linux下,用Telnet进行远程登录时,用户名和用户密码是明文传输的,这就有可能被在网上监听的其他用户截获。另一个危险是黑客可以利用Telnet登入系统,如果他又获取了超级用户密码,则对系统的危害将是灾难性的。因此,如果不是特别需要,不要开放Telnet服务。如果一定要开放Telnet服务,应该要求用户用特殊的工具软件进行远程登录,这样就可以在网上传送加密过的用户密码,以免密码在传输过程中被黑客截获。

4.3.3合理设置NFS服务和NIS服务

NFS(Network File System)服务,允许工作站通过网络共享一个或多个服务器输出的文件系统。但对于配置得不好的NFS服务器来讲,用户不经登录就可以阅读或者更改存储在NFS服务器上的文件,使得NFS服务器很容易受到攻击。如果一定要提供NFS服务,要确保基于Linux的NFS服务器支持Secure RPC(Secure Remote Procedure Call),以便利用DES(Data Encryption Standard)加密算法和指数密钥交换(ExponentialKey Exchange)技术验证每个NFS请求的用户身份。

NIS(Network Information System)服务,是一个分布式数据处理系统,它使网络中的计算机通过网络共享passwd文件,group文件,主机表文件和其他共享的系统资源。通过NIS服务和NFS服务,在整个网络中的各个工作站上操作网络中的数据就像在操作和使用单个计算机系统中的资源一样,并且这种操作过程对用户是透明的。但是NIS服务也有漏洞,在NIS系统中,不怀好意的用户可以利用自己编写的程序来模仿Linux系统中的ypserv 响应ypbind的请求,从而截获用户的密码。因此,NIS的用户一定要使用ypbind的secure选项,并且不接受端口号小于1024(非特权端口)的ypserv响应。

4.3.4 小心配置FTP服务

FTP服务与前面讲的Telnet服务一样,用户名和用户密码也是明文传输的。因此,为了系统的安全,必须通过对/etc/ftpusers文件的配置,禁止root,bin,daemon,adm等特殊用户对FTP服务器进行远程访问,通过对/etc/ftphosts的设定限制某些主机不能连入FTP服务器,如果系统开放匿名FTP服务,则任何人都可以下载文件(有时还可以上载文件),因此,除非特别需要一般应禁止匿名FTP服务。

4.3.5合理设置POP-3和Sendmail等电子邮件服务

对一般的POP-3服务来讲,电子邮件用户的口令是按明文方式传送到网络中的,黑客可以很容易截获用户名和用户密码。要想解决这个问题,必须安装支持加密传送密码的POP-3服务器(即支持AuthenticatedPOP命令),这样用户在往网络中传送密码之前,可以先对密码加密。

老版本的Sendmail邮件服务器程序存在安全隐患,为了确保邮件服务器的安全,应尽可能安装已消除安全隐患的最新版的Sendmail服务器软件。

4.3.6 加强对WWW服务器的管理,提供安全的WWW服务

当一个基于Linux系统的网站建立好之后,绝大部分用户是通过Web服务器,利用WWW浏览器对网络进行访问的,因此必须特别重视Web服务器的安全,无论采用哪种基于HTTP协议的Web服务器软件,都要特别关注CGI脚本(Common Gateway Interface),这些CGI脚本是可执行程序,一般存放在Web服务器的CGI-BIN目录下面,在配置Web服务器时,要保证CGI可执行脚本只存放于CGI-BIN目录中,这样可以保证脚本的安全,且不会影响到其他目录的安全。

4.3.7 最好禁止提供finger 服务

在Linux系统下,使用finger命令,可以显示本地或远程系统中目前已登录用户的详细信息,黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供finger服务,即从/usr/bin下删除finger 命令。如果要保留 finger服务,应将finger文件换名,或修改权限为只允许root用户执行finger命令。

 

5 服务器技术与系统集成

5.1服务器基本知识

在计算机网络中,服务器是一种为客户机提供各种资源的主机系统。服务器在网络操作系统的管理与控制下,将磁盘文件系统及外设(如打印机)提供给网络上的客户机共享,也能为网络用户提供集中计算、数据库管理、Web应用等服务。

服务器是一个计算系统,用于运行特定应用或需要长期运行的应用,通常极少有人干扰。尽管服务器可以由PC组件构建而成,但专用服务器必须使用专门的硬件以实现最佳可靠性。服务器与PC对比,在性能与功能方面都具有优势。

服务器的分类。

1)   文件服务器。强调资源共享是计算机网络的一种基本应用模式,其功能集中体现在利用服务器的大容量外存和快速的I/O吞吐能力,为网络中的客户机提供文件资源共享服务,包括文档库、数据库、图像库,以

2)   及文件型数据库服务等。

3)   数据库服务器。强调分布式协同信息处理是计算机网络的一种核心应用模式,其功能体现在数据库分布式

4)  操作与集中管理控制。数据库软件需要大中型数据库系统。如Oracle、SyBase、SQLServer等。

5)   Internet/Intranet通用服务器。强调异构网络环境下统一简化的客户端平台和广域网互通互连基础上的信息发布、采集、利用和资源共享,是现阶段应用最多的网络服务类型。代表性操作系统有UNIX家族、Linux和WindowsServer2003。

6)   功能服务器。按照服务器所提供的主要功能进行细分,可分为CAD服务器、视频点播(VOD)服务器、流式音频(RM)点播服务器、NetMeeting电视会议服务器、Voice-over-IP(如IP电话)服务器、打印机服务器、游戏对战服务器等。

5.2服务器的配置与选型

局域网资源系统选择服务器时,服务器的多处理特性、内容容量、性能及可扩展性是需要考虑的主要因素。下面以PC服务器为例来说明服务器的性能要求及配置要点。

1.  运用处理能力

(1)  选择既能满足当前需求又能满足未来需求的处理器。

(2)  CPU主频、CPU数量、L2Cache与服务器性能。

(3)  IA64体系结构。

(4)  内存/最大内存扩展能力。

2.  磁盘驱动的性能指标

(1)主轴转速

(2)内部传输率

(3)单碟容量

(4)平均寻道时间

(5)缓存

3.  系统可用性

系统的可用性指标可用两个参数进行简单地描述,一个是平均无障碍工作时间(MTBF),另一个是平均修复时间(MTBR)。

4.服务器硬件的冗余

 (1)磁盘冗余

(2)电源冗余

(3)网卡冗余

(4)冷却冗余

(5)双机冗余

5.数据吞吐能力

服务器对I/O的要求表现在总线宽带、I/O插槽数量等几个方面。

总线宽带是指系统事务处理的快慢,而I/O插槽数量则表现在其扩展能力上。

6.可管理性

作为一个关键指标,可管理性直接影响到企业使用PC服务器的

方便程度。在正常的情况下,系统必须支持部件有可能出现故障时的隐患提示信号,如硬盘故障提示灯、电源故障指示灯等。

7.可扩展性/可伸缩性

选择PC服务器时,首先应考虑系统的课扩展能力,即系统应留有足够的扩展空间,以便于随业务应用的增加对系统进行扩充和升级

6 网络安全技术与应用

6.1网络安全概述

从20世纪80年代开始,网络安全一直是人们关心的主要问题之一。网络安全不仅是技术问题,同时也是一个安全管理问题。网络安全面临病毒破坏、黑客入侵、信息窃取、账号盗用、地址篡改,网络瘫痪、缺少安全应急机制等问题。大力发展网络安全技术,保障网络安全、稳定运行,是网络高效、有序应用的关键之一。

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或恶意的原因而遭到破坏、更改、泄露、系统连续、可靠、正常地运行,网络服务不中断。

6.2网络安全威胁

   计算机网络是基于协议基础之上的各种网络应用的完整组合,协议本身和应用都有可能存在问题。目前,面临的网络安全威胁,主要

体现在以下几个方面。

(1)     随着网络工作模式从单机到局域网、广域网,网络应用

(2)     从分工合作到协同工作,有大量的访问者身份需要确认。

(3)     信息系统中的操作系统和网络设备均存在漏洞。操作系统与网络设备厂商也在不断地发布补丁,频于应对病毒、黑客的攻击。

(4)     病毒制造者和黑客已不再单纯,而是有一个黑色产业链在鼓励与吸引着他们,严重威胁着网络安全。

(5)     网络攻击变得越来越复杂,传统防范手段心有余而力不足,不是一个单一的安全产品就可以解决安全问题,而是更需要一个整体的安全解决方案。

(6)     有限的广域网连接带宽,常常被P2P软件、游戏软件(滥用)、蠕虫病毒、垃圾邮件等严重消耗,影响正常业务的应用,甚至严重威胁到信息系统的安全。

(7)     信息化建设安全考虑不足,许多设备、主机和应用口令缺少安全(如弱口令、非加密传输等)。

 

7 网络资源共享

7.1 NFS简介

Linux/UNIX系统之间文件共享—NFS

网络文件系统(Network File System,NFS)实际上是一种Linux/UNIX文件共享协议。

NFS是通过将NFS服务器的文件系统安装到客户机的文件系统上而得以实现的。

7.2 NFS的配置

7.2.1配置NFS服务器

要配置NFS服务器,可以通过使用文本编辑器(如vi或gedit)修改配置文件/etc/exports的方法来完成。

7.2.2启动和停止NFS服务

要启动或停止NFS服务,必须以root登录并使用命令来启动 NFS 守护进程.

7.3使用NFS文件系统

 安装远程文件系统与安装本地文件系统相同,都要使用mount命令,所不同的是,需要在文件系统路径名之前加上远程主机的名字。

 

8 Linux必须学会的60个命令-文件处理

容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。

file

1.作用

file通过探测文件内容判断文件类型,使用权限是所有用户。

2.格式

file [options] 文件名

3.[options]主要参数

-v:在标准输出后显示版本信息,并且退出。

-z:探测压缩过的文件类型。

-L:允许符合连接。

-f name:从文件namefile中读取要分析的文件名列表。

4.简单说明

使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是ShellScript文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。

5.应用实例

如果我们看到一个没有后缀的文件grap,可以使用下面命令:

$ file grap

grap: English text

此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。

mkdir

1.作用

mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。

2.格式

mkdir [options] 目录名

3.[options]主要参数

-m, --mode=模式:设定权限<模式>,与chmod类似。

-p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。

-v, --verbose:每次创建新目录都显示信息。

--version:显示版本信息后离开。

4.应用实例

在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令:

$ mkdir -m 777 tsk

grep

1.作用

grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

2.格式

grep [options]

3.主要参数

[options]主要参数:

-c:只输出匹配行的计数。

-I:不区分大小写(只适用于单字符)。

-h:查询多文件时不显示文件名。

-l:查询多文件时只输出包含匹配字符的文件名。

-n:显示匹配行及行号。

-s:不显示不存在或无匹配文本的错误信息。

-v:显示不包含匹配文本的所有行。

pattern正则表达式主要参数:

\:忽略正则表达式中特殊字符的原有含义。

^:匹配正则表达式的开始行。

$: 匹配正则表达式的结束行。

\<:从匹配正则表达式的行开始。

\>:到匹配正则表达式的行结束。

[ ]:单个字符,如[A]即A符合要求。

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。

。:所有的单个字符。

* :有字符,长度可以为0。

正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。

4.应用实例

查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。

$grep '[0-9 ]\{3 \}\.[0-0\{3\}\'ipfile

补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。

dd

1.作用

dd命令用来复制文件,并根据参数将数据转换和格式化。

2.格式

dd [options]

3.[opitions]主要参数

bs=字节:强迫 ibs=<字节>及obs=<字节>。

cbs=字节:每次转换指定的<字节>。

conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。

count=块数目:只复制指定<块数目>的输入数据。

ibs=字节:每次读取指定的<字节>。

if=文件:读取<文件>内容,而非标准输入的数据。

obs=字节:每次写入指定的<字节>。

of=文件:将数据写入<文件>,而不在标准输出显示。

seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。

skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。

4.应用实例

  dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:

$ rdev vmlinuz /dev/hda

$dd if=vmlinuz of=/dev/fd0

  上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。

find

1.作用

find命令的作用是在目录中搜索文件,它的使用权限是所有用户。

2.格式

find [path][options][expression]

path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。

3.主要参数

[options]参数:

-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。

-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。

-mindepth levels:表示至少查找到开始目录的第level层子目录。

-mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。

-version:打印版本。

[expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。

—name:支持统配符*和?。

-atime n:搜索在过去n天读取过的文件。

-ctime n:搜索在过去n天修改过的文件。

-group grpoupname:搜索所有组为grpoupname的文件。

-user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。

-size n:搜索文件大小是n个block的文件。

-print:输出搜索结果,并且打印。

4.应用技巧

find命令查找文件的几种方法:

(1)根据文件名查找

例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令:

find / -name lilo.conf

find命令后的“/”表示搜索整个硬盘。

(2)快速查找文件

根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令:

find /etc -name smb.conf

这样,使用“快速查找文件”方式可以缩短时间。

(3)根据部分文件名查找方法

有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令:

find / -name '*abvd*'

  输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。

(4) 使用混合查找方式查找文件

  find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。

find /etc -size +500000c -and -mtime +1

mv

1.作用

mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。

2.格式

mv[options] 源文件或目录 目标文件或目录

3.[options]主要参数

-i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。

-f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

4.应用实例

(1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中:

$ mv /usr/cbu/ * .

(2)将文件cjh.txt重命名为wjz.txt:

$ mv cjh.txt wjz.txt 

ls

1.作用

ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。

2.格式

ls [options][filename]

3.options主要参数

-a, --all:不隐藏任何以“.” 字符开始的项目。

-A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。

--author:印出每个文件著作者。

-b, --escape:以八进制溢出序列表示不可打印的字符。

--block-size=大小:块以指定<大小>的字节为单位。

-B, --ignore-backups:不列出任何以 ~ 字符结束的项目。

-f:不进行排序,-aU参数生效,-lst参数失效。

-F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。

-g:like -l, but do not list owner。

-G, --no-group:inhibit display of group information。

-i, --inode:列出每个文件的inode号。

-I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。

-k:即--block-size=1K。

-l:使用较长格式列出信息。

-L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。

-m:所有项目以逗号分隔,并填满整行行宽。

-n, --numeric-uid-gid:类似-l,但列出UID及GID号。

-N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。

-p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。

-Q, --quote-name:将项目名称括上双引号。

-r, --reverse:依相反次序排列。

-R, --recursive:同时列出所有子目录层。

-s, --size:以块大小为序。

diff

1.作用

diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。

2.格式

diff [options] 源文件 目标文件

3.[options]主要参数

-a:将所有文件当作文本文件来处理。

-b:忽略空格造成的不同。

-B:忽略空行造成的不同。

-c:使用纲要输出格式。

-H:利用试探法加速对大文件的搜索。

-I:忽略大小写的变化。

-n --rcs:输出RCS格式。

cmp

1.作用

cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。

2.格式

cmp[options] 文件名

3.[options]主要参数

-l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。

cat

1.作用

cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。

2.格式

cat [options] 文件1 文件2……

3.[options]主要参数

-n:由第一行开始对所有输出的行数编号。

-b:和-n相似,只不过对于空白行不编号。

-s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。

4.应用举例

(1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令:

$ cat README 

(2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中:

$ cat README INSTALL File1

(3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。

对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数:

$ cat -b /etc/named.conf

ln

1.作用

ln命令用来在文件之间创建链接,它的使用权限是所有用户。

2.格式

ln [options] 源文件 [链接名]

3.参数

-f:链结时先将源文件删除。

-d:允许系统管理者硬链结自己的目录。

-s:进行软链结(SymbolicLink)。

-b:将在链结时会被覆盖或删除的文件进行备份。

不难发现Linux已挟带盛大的气势,步步逼近企业,之所以在短期内无法看见显著的

成效,主要有以下因素:

硬件支持问题
由于Linux并不支持NAS的NDMP 2协议,就不易和其它平台的NAS来进行通讯,

因而减少了Linux对企业的吸引力。不过在服务器方面,Linux的境地就好了许多,已经广获厂商支持。
   服务问题
为进一步提高市场占有率,各平台软件生产商均高举“服务”牌,纷纷成立了专门的客户服务部或技术支持部。这些部门一般都由一些经过专门培训的高素质的专业服务人才组成,并且开通7×24小服务热线,可以通过网上直接技术支持、E-Mail、传真、现场服务等方式,以最快捷的途径完成质量最优的服务。同时,软件服务的观念还没有深入人心,有一半的用户没有申请过服务项目。
    信心问题
企业信心,来自政策支持。Linux的稳定与低成本效益众所周知,但仍然没有大型及金融企业敢把重要任务(mission critical)放在Linux上,信心问题是原因之一,而这需要有系统的带头支持。一切问题关键,在于企业信心,而政府态度则是企业信心之所系。

市场趋势

在产业格局上将出现Unix、Windows与Linux三足鼎立之势。一些专家指出,微软仅仅是在桌面部分占有垄断地位。在服务器部分,Linux与Unix和Windows NT三分天下的局面已经开始形成。Linux服务器操作系统已经非常成熟,完全可以替代Unix和NT。而在嵌入式部分,Linux现在已经走在了前面,在过去几年中,以每年100%~200%的市场成长速度遥遥领先于对手。 在用户结构上企业用户将成为Linux市场的生力军,占据着大部分使用份额。Linux的安全性是很多企业选择其作为服务器操作系统的主要因素。Linux在企业级的应用将是Linux的主要发展方向。而各个Linux厂商都认识到了这一发展趋势,所以在企业级应用的领域各个厂商都有自己丰富的产品。
    技术趋势
    LSB的标准已经形成,Linux在开放的基础上向标准迈进一步,这使得Linux避免遭遇像Unix那样的分裂命运。LSB将帮助操作系统厂商明确他们的产品开发要求、帮助软件厂商开发基于同一标准的操作系统的应用软件,使他们的产品有最广阔的市场以便取得成功,而Linux用户则可以放心地采购任何符合LSB标准的Linux产品、并且可以对获得丰富的应用软件充满信心。Linux主流化及标准化、与商业模式的成功,必将吸引大批应用软件与硬件开发商积极投身Linux市场,过去Linux所面临的应用软件少以及硬件驱动程序缺乏的状态也必然会很快得到改善。
    随着Linux技术的不断完善和发展,用户对Linux认可程度的不断提高,基于Linux的解决方案逐渐增加,因此可以断言Linux未来市场前景非常广阔。

结论

由于Linux操作系统使用广泛,又公开了源码,因此是被广大计算机用户研究得最彻底的操作系统,而Linux本身的配置又相当的复杂,按照前面的安全策略和保护机制,可以将系统的风险降到最低,但不可能彻底消除安全漏洞,作为Linux系统的管理员,头脑中一定要有安全防范意识,定期对系统进行安全检查,发现漏洞要立即采取措施,不给黑客以可乘之机。本文所述的安全措施已在红旗Linux 1.0 和蓝点Linux上获得验证,并实际应用于我院图书馆计算机集成管理系统中,确保了计算机集成管理系统安全、稳定地运转。

 

原创粉丝点击