gtxyzz

企业安全分享:Linux文件系统安全攻略

gtxyzz 安全防护 2023-01-02 373浏览 0

Linux支持的文件系统种类繁多,他们为用户的数据存储和管理提供了良好的操作和使用界面。在文件系统中,存在着文件/目录访问权限管理和控制、加密文件系统等的安全机制和问题需要考虑,本文将详细介绍保证Linux文件系统安全的技术和方法。

Linux中的文件系统类型

随着Linux的不断发展,其所能支持的文件格式系统也在迅速扩充。特别是Linux2.6内核正式推出后,出现了大量新的文件系统,其中包括日志文件系统Ext4、Ext3、ReiserFS、XFS、JFS和其他文件系统。Linux系统核心可以支持十多种文件系统类型:JFS、ReiserFS、Ext、Ext2、Ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。

文件系统安全性对比

从自动修复损坏的文件系统来看,ext2、ext3都能自动修复损坏的文件系统,也都是在开机时进行。ext2和ext3文件系统在默认的情况下是“每间隔21次挂载文件系统或每180天,就要自动检测一次。通过实践来看ext2和ext3在自动检测上是存在风险,有时文件系统开机后就进入单用户模式,并且把整个系统“扔”进lost+found目录,如果要恢复系统,就得用fsck来进行修复;当然fsck也同样存在风险;所以对ext2和ext3文件系统的使用,对新手来说的确需要心里准备;毕竟修复已经损坏的ext2和ext3文件系统是有困难的;另外ext2和ext3文件系统对于意外关机和断电,也可能导致文件系统损坏,所以我们在使用过程中,必须是合法关机;比如执行poweroff指令来关掉机器。

从文件系统的反删除来看,ext2支持反删除,对于一般使用者来说应该是安全的,但对于保密单位来说可能意味着不安全。从反删除角度来说明文件系统的安全性,也是有两方面。如果用户的工作是从事比较机密的,用ext3比较好,因为ext3一旦删除文件,是不可恢复的,因为反删除能恢复相应的绝秘资料的泄秘,所以ext3可能更适合从事机密工作的用户。

新型的Ext4文件系统

Ext4是Linux内核版本2.6.28的重要部分。它是Linux文件系统的一次革命。在很多方面,Ext4相对于Ext3的进步要远超过Ext3相对于Ext2的进步。Ext3相对于Ext2的改进主要在于日志方面,但是Ext4相对于Ext3的的改进是更深层次的,是文件系统数据结构方面的优化。一个高效的、优秀的、可靠的和极具特点的文件系统就此诞生。目前,该文件系统并未在所有的Linux发行套件中完全普及使用,还处于初期的测试阶段。

安全设定文件/目录访问权限

Linux系统中的每个文件和目录都有访问许可权限,通过其确定谁可以通过何种方式对文件和目录进行访问和操作。下面将对文件/目录访问的方法和命令进行介绍。

文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作;只写权限允许对文件进行任何的修改操作;可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。

有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。它可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中的每一位用户都能访问该用户拥有的文件或目录。

每一个文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限(如图1所示)。当用ls-l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。例如:

企业安全分享:Linux文件系统安全攻略

横线代表空许可(即表示不具有该权限)。r代表只读,w代表写,x代表可执行。注意:这里共有10个位置。第1个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第1个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。后面的9个字符每三个构成一组,依次表示文件主、组用户、其他用户对该文件的访问权限。

例如:

企业安全分享:Linux文件系统安全攻略

表示文件sobsrc.tgz的访问权限,说明sobsrc.tgz是一个普通文件;sobsrc.tgz的属主有读写权限;与sobsrc.tgz属主同组的用户只有读权限;其他用户也只有读权限。

确定了一个文件的访问权限后,用户可以利用Linux系统提供的chmod命令来重新设定不同的访问权限。也可以利用chown命令来更改某个文件或目录的所有者。

企业安全分享:Linux文件系统安全攻略

▲图1.文件/目录访问权限示意图

1、改变文件/目录的访问权限

chmod命令用于改变文件或目录的访问权限,它是一条非常重要的系统命令。用户可用其控制文件或目录的访问权限。

该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文字设定法

文字设定法的一般使用形式为:chmod[who][+|-|=][mode]文件名。其中,操作对像who可以是下述字母中的任一个或者为各字母的组合:

表示“用户(user)”,即文件或目录的所有者。

表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。

表示“其他(others)用户”。

表示“所有(all)用户”。其为系统默认值。

操作符号可以是:

添加某个权限。

取消某个权限。

赋予给定权限并取消其他所有权限(如果有的话)。

设置mode所表示的权限可用下述字母的任意组合:

可读。

可写。

可执行。只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性。

在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。

将程序的文本保存到交换设备上。

与文件属主拥有一样的权限。

与和文件属主同组的用户拥有一样的权限。

与其他用户拥有一样的权限。

如果在一个命令行中可给出多个权限方式,其间用逗号隔开。图2给出了使用该设定法的例子:

企业安全分享:Linux文件系统安全攻略

▲图2.chmod命令文字设定法使用示例

首先,设定文件test1的属性为:文件属主(u)增加执行权限;与文件属主同组用户(g)增加执行权限;其他用户(o)增加执行权限,其命令为:

企业安全分享:Linux文件系统安全攻略

接着,设定文件test2的属性为:文件属主(u)增加写权限;与文件属主同组用户(g)增加写权限;其他用户(o)删除执行权限,其命令为:

企业安全分享:Linux文件系统安全攻略

最后,对可执行文件test3添加s权限,使得执行该文件的用户暂时具有该文件拥有者的权限:

企业安全分享:Linux文件系统安全攻略#p#

在上述例子中,当其他用户执行test3这个程序时,他的身份将由于这个程序而暂时变成该test3程序的拥有者(由于chmod命令中使用了s选项),所以他就能够读取test3.c文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。在整个系统中特别是root本身,最好不要过多地设置这种类型的文件(除非必要),这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。

数字设定法

数字设定法是与文字设定法功能等价的设定方法,只不过比文字设定法更加简便。数字表示的属性的含义为:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)、(g)、(o)。其他的与文字设定法基本一致。

如果想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)。

数字设定法的一般形式为:chmod[mode]文件名。图3给出使用该数字设定法的例子:

企业安全分享:Linux文件系统安全攻略

▲图3.chmod命令数字设定法示意

可以看到,图3中设定文件test1的属性为:文件属主(u)拥有读、写权限;与文件属主同组人用户(g)拥有读权限;其他人(o)拥有读权限,而设定test2这个文件的属性为:文件主本人(u)具有可读/可写/可执行权限;与文件主同组人(g)可读/可执行权;其他人(o)没有任何权限。

2、更改文件/目录的所有权

该命令用来更改某个文件或目录的属主和属组。举个例子,root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。

该命令的使用形式为:chown[选项]用户或组文件

Chown的功能是将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。该命令的选项为:

R:递归地改变指定目录及其下面的所有子目录和文件的拥有者。

v:显示chown命令所做的工作。

图4给出了使用该命令的例子,笔者把文件test1的所有者改为super,把目录./test_dir及其下面的所有文件和子目录的属主改成super,属组改成super。

企业安全分享:Linux文件系统安全攻略

▲图4.chown命令使用示意

3、改变文件的执行权限

通过前面的介绍我们知道,Linux系统中的每一个文件都有一个所有者,表示该文件是谁创建的。同时,该文件还有一个组编号,表示该文件所属的组,一般为文件所有者所属的组。并且,在一般情况下,我们也可以通过设定对文件的权限来控制对其的相关操作。

在此情况中,如果是一个可执行文件,那么在执行时,一般该文件只拥有调用该文件的用户具有的权限。而setuid/setgid则可以来改变这种设置:

setuid:设置使文件在执行阶段具有文件所有者的权限。典型的文件是/usr/bin/passwd。如果一般用户执行该文件,则在执行过程中,该文件可以获得root权限,从而可以更改用户的密码

setgid:该权限只对目录有效。目录被设置该位后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。

stickybit:该位可以理解为防删除位。一个文件是否可以被某用户删除,主要取决于该文件所属的组是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能被删除,同时也不能添加新的文件。如果希望用户能够添加文件但同时不能删除文件。则可以对文件使用stickybit位。设置该位后,j即便用户对目录具有写权限,也不能删除该文件。

在前面我们讨论了通过文字设定和数字设定的方法来设定文件/目录的访问权限问题,同样的道理,下面我们通过这两种方法来介绍如何操作这些标志。操作这些标志与操作文件权限的命令是一样的,都是使用chmod命令来进行:

文字设定法

chmodu+sfilename:为文件filename加上setuid标志。

chmodg+sdirname:为目录dirname目录加上setgid标志。

chmodo+tfilename:为文件filename加上sticky标志。

数字设定法

对一般文件通过三组八进制数字来置标志,如444、777、644等。如果设置这些特殊标志,则在这组数字之前外加一组八进制数字。如4666、4777等。这一组八进制数字三位的意义如下:

setuid位:如果该位为1,显示为“S”,则表示设置setuid,其显示在原来的x标志位上;

setgid位:如果该位为1,显示为“S”,则表示设置setgid,其显示在原来的x标志位上;

sticky位:如果该位为1,显示为“T”,则表示设置sticky,其显示在原来的x标志位上。

设置完这些标志后,可以用ls–l命令来查看。如果有这些标志,则会在原来的执行标志位置上显示。如下所示:

r-srw-r–:表示有setuid标志;

rwxrwsrw-:表示有setgid标志;

rwxrw-rwt:表示有sticky标志。

如果本来在该位上有x,则这些特殊标志显示为小写字母(s,s,t)。否则,显示为大写字母(S,S,T)。

另外非常值得读者注意的是,虽然setuid/setgid机制非常方便实用,但是由于提升了执行者的权限,因而不可避免地存在许多安全隐患和风险,所以作者并不太赞成广大读者广泛使用,并且,在实际的系统管理过程中,我们还经常需要找出设置有这些标志的文件,并对他们进行检查和清理,那么,一般我们可以使用如下命令来对系统中的具有特殊标志的文件进行寻找:

企业安全分享:Linux文件系统安全攻略#p#

使用额外属性保护ext3文件系统安全

1、ext3中的额外属性

从Linux的1.1系列内核开始,ext2文件系统就开始支持一些针对文件和目录的额外标记或者叫作属性(attribute)。在2.2和2.4系列及其高版本的内核中,ext3文件系统支持以下属性的设置和查询(如表1所示):

企业安全分享:Linux文件系统安全攻略

▲表1.ext3文件系统支持的属性含义

虽然文件系统能够接受并保留指示每个属性的标志,但是这些属性不一定有效,这依赖于内核和各种应用程序的版本。表2显示了Linux每个版本内核支持的属性标志的具体情况,其中:

OK:表示允许设置这个标志并使设置生效;

POK:允许设置这个标志但忽略其值;

——:表示完全忽略这个标志。

企业安全分享:Linux文件系统安全攻略

▲表2.Linux各内核版本对属性的支持情况

从上述表格可以看出:虽然早期的内核版本支持安全删除特征,但是从1.3系列的内核开始,开发者抛弃的对这个特征的实现,因为它似乎只能够提高一点点的安全性,而糟糕的是它会给不熟悉安全删除继承问题的用户造成安全的假象。在对具有A属性的文件进行操作时,A属性可以提高一定的性能。而S属性能够最大限度的保障文件的完整性。

因此,我们将主要讨论a属性和i属性,因为这两个属性对于提高文件系统的安全性和保障文件系统的完整性有很大的好处。同样,一些开放源码的BSD系统(比如FreeBSD和OpenBSD),在其UFS或者FFS实现中也支持类似的特征。

2、使用ext3文件系统的属性

在任何情况下,标准的ls命令都不会一个文件或者目录的扩展属性。ext3文件系统工具包中有两个工具:chattr和lsattr。它们被专门用来设置和查询文件属性。因为ext3是标准的Linux文件系统,因此几乎所有的发布都有e2fsprogs工具包。如果由于某些原因,系统中没有这个工具,用户可以从以下地址下载这个工具包的源代码编译并安装:http://sourceforge.net/projects/e2fsprogs。

Lsattr命令

lsattr命令只支持很少的选项,其选项如下:

a:列出目录中的所有文件,包括以.开头的文件。

d:以和文件相同的方式列出目录,并显示其包含的内容。

R:以递归的方式列出目录的属性及其内容。

v:列出文件版本(用于网络文件系统NFS)。

Chattr命令

chattr命令可以通过以下三种方式执行:

chattr+Sifilename:给文件添加同步和不可变属性。

chattr-aifilename:把文件的只扩展(append-only)属性和不可变属性去掉。

chattr=aiAfilenamet:使文件只有a、i和A属性。

最后,每个命令都支持-R选项,用于递归地对目录和其子目录进行操作。

3、ext3属性和文件权限的区别

几乎所有的系统管理员都理解Linux风格文件系统的权限和所有者以及ls命令的显示,如图5所示:

企业安全分享:Linux文件系统安全攻略

▲图5.ls显示结果

从ls的输出结果看,这些文件属于用户super,而super所在的用户组是super。用户super本人和super用户组的成员对test2和test3具有对文件的修改权限,而其他的用户对test1、test2、test3均只有读取文件的权限。图6给出了与图5对比的lsattr命令的输出:

企业安全分享:Linux文件系统安全攻略

▲图6.lsattr显示结果

输出结果显示,test2只能被添加,而test1文件不准修改。在Linux系统中,如果一个用户以root的权限登录,文件系统的权限控制将无法对root用户和以root权限运行的进程进行任何的限制。这样对于Linux类的操作系统,如果攻击者通过远程或者本地攻击获得root权限将可能对系统造成严重的破坏。而ext3文件系统可以作为最后一道防线,最大限度地减小系统被破坏的程度,并保存攻击者的行踪。ext3属性是由sys_open()和sys_truncate()等系统调用检查和赋予的,不受用户识别号和其他因素的影响,在任何情况下,对具有不可修改(immutable)属性的文件的进行任何修改都会失败,不管是否是root用户进行的修改。

但是,还有一个问题是root权限的用户可以通过删除i属性实现对文件的修改。这种防护只不过给获得root权限的攻击者加了一点小麻烦罢了,系统的安全性并没有根本性的提高。

在2.1之前的内核版本中,存在一个安全层(securelevel)的特征。使用安全层可以解决上述问题,因为如果系统的安全层大于0,内核将不允许对任何文件的i属性进行修改。这些版本的内核由sysctl命令的"kernel.securelevel"变量进行控制。如果在启动时,这个变量的值被设置为1或者更大的值,内核将不允许对具有i属性和a属性文件进行修改,除非国旗动到单用户状态。但是,由于引入了更为灵活的内核能力特征(kernelcapabilities),以后的内核不再支持安全层。使用内核能力,也可以实现类似的限制。工具lcap用来查询和调整内核能力约束集(kernelcapabilitiesboundingset)。在启动脚本中加入以下命令,就可以实现对具有i属性和a属性文件的保护:

企业安全分享:Linux文件系统安全攻略

第一个命令删除任何用户(包括超级用户)对i标志的修改能力。第二个命令删除任何用户(主要针对超级用户)对块设备的原始访问(rawaccess)能力,防止一些技术高超的攻击者直接修改文件系统索引节点的immutable域。BTW,在系统启动时,CAP_SYS_RAWIO能力应该直接删除,这个能力是一个非常大的潜在威胁。高明的攻击者获得了超级用户权限之后,通过/dev/kmem设备可以直接修改内核内存。通过这种方式,可以破坏系统的内核能力约束集(kernelcapabilitiesbounding)。如果没有任何参数,会列出内核支持的能力和目前生效的内核能力。一旦一个内核能力被删除,就只有在系统重新启动,进入到单用户模式才能删除能力限制。

使用chattr

Linux主机直接暴露在Internet或者位于其它危险的环境,有很多shell帐户或者提供HTTP和FTP等网络服务,一般应该在安装配置完成后使用如下命令:

企业安全分享:Linux文件系统安全攻略

如果很少对帐户进行添加、变更或者删除,把/home本身设置为immutable属性也不会造成什么问题。在很多情况下,整个/usr目录树也应该具有不可改变属性。实际上,除了对/usr目录使用chattr-R+ii/usr/命令外,还可以在/etc/fstab文件中使用ro选项,使/usr目录所在的分区以只读的方式加载。另外,把系统日志文件设置为只能添加属性(append-only),将使入侵者无法擦除自己的踪迹。当然,如果使用这种安全措施,需要系统管理员修改管理方式。

由于软件管理程序需要加入和删除某些文件和目录,因此在进行软件安装和升级之前需要删除某些目录和文件的immutable和append-only属性。对于Linux系统,一般使用rpm管理软件包,用户可以使用以下命令查看要安装或者升级的软件包都有哪些文件:

企业安全分享:Linux文件系统安全攻略

然后去掉有关目录和文件的immutable和append-only属性。大多数软件包需要rpm命令对以下目录的一个或者多个进行写操作

企业安全分享:Linux文件系统安全攻略

值得注意的是:如果用户需要升级/usr/sbin/someprogram,应该去掉someprogram文件以及目录/usr/sbin的immutable属性。#p#

使用加密文件系统(EFS)

下面将详细介绍利用dm-crypt来创建加密文件系统的方法。与其它创建加密文件系统的方法相比,dm-crypt系统有着无可比拟的优越性:它的速度更快,易用性更强。除此之外,它的适用面也很广,能够运行在各种块设备上,即使这些设备使用了RAID和LVM也毫无障碍。dm-crypt系统之所以具有这些优点,主要得益于该技术是建立在2.6版本内核的device-mapper特性之上的。device-mapper是设计用来为在实际的块设备之上添加虚拟层提供一种通用灵活的方法,以方便开发人员实现镜像、快照、级联和加密等处理。此外,dm-crypt使用了内核密码应用编程接口实现了透明的加密,并且兼容cryptloop系统。

1、内核准备

dm-crypt利用内核的密码应用编程接口来完成密码操作。一般说来,内核通常将各种加密程序以模块的形式加载。对于AES来说,其安全强度已经非常之高,即便用来保护绝密级的数据也足够了。为了保证用户的内核已经加载AES密码模块,请根据图7所示命令进行检查:

企业安全分享:Linux文件系统安全攻略

▲图7.检查AES模块是否成功加载

否则,可以使用modprobe来手工加载AES模块,命令如下所示:

企业安全分享:Linux文件系统安全攻略

接下来,用户安装dmsetup软件包,该软件包含有配置device-mapper所需的工具,如下命令所示:

企业安全分享:Linux文件系统安全攻略

为检查dmsetup软件包是否已经建立了设备映象程序,键入下列命令进行:

企业安全分享:Linux文件系统安全攻略

然后,需要使用如下命令加载dm-crypt内核模块:

企业安全分享:Linux文件系统安全攻略

dm-crypt加载后,它会用evice-mapper自动注册。如果再次检验的话,device-mapper已能识别dm-crypt,并且把crypt添加为可用的对象。执行完上述步骤后,用户应该可以根据如下命令看到crypt的下列输出,如图8所示:

企业安全分享:Linux文件系统安全攻略

企业安全分享:Linux文件系统安全攻略

▲图8.成功做好装载加密设备的显示

这说明系统已经为装载加密设备做好了准备。下面,我们先来建立一个加密设备。

2、创建加密设备

要创建作为加密设备装载的文件系统,有两种选择:一是建立一个磁盘映像,然后作为回送设备加载;二是使用物理设备。无论那种情况,除了在建立和捆绑回送设备外,其它操作过程都是相似的。

3、建立回送磁盘映象

如果用户没有用来加密的物理设备(比如存储棒或另外的磁盘分区),作为替换,你可以利用命令dd来建立一个空磁盘映象,然后将该映象作为回送设备来装载,照样能用。下面我们以实例来加以介绍:

企业安全分享:Linux文件系统安全攻略

这里我们新建了一个大小为100MB的磁盘映象,该映象名字为virtual.img。要想改变其大小,可以改变count的值。

接下来,我们利用losetup命令将该映象和一个回送设备联系起来:

企业安全分享:Linux文件系统安全攻略

现在,我们已经得到了一个虚拟的块设备,其位于/dev/loop0,并且我们能够如同使用其它设备那样来使用它。

4、设置块设备

准备好了物理块设备(例如/dev/hda1),或者是虚拟块设备(像前面那样建立了回送映象,并利用device-mapper将其作为加密的逻辑卷加载),我们就可以进行块设备配置了。

下面我们使用cryptsetup来建立逻辑卷,并将其与块设备捆绑:

企业安全分享:Linux文件系统安全攻略

其中,ly_EFS是新建的逻辑卷的名称。并且最后一个参数device_name必须是将用作加密卷的块设备。所以,如果要使用前面建立的回送映象作为虚拟块设备的话,应当运行以下命令:

企业安全分享:Linux文件系统安全攻略

无论是使用物理块设备还是虚拟块设备,程序都会要求输入逻辑卷的口令,-y的作用在于要你输入两次口令以确保无误。这一点很重要,因为一旦口令弄错,就会把自己的数据锁住,如图9所示:

企业安全分享:Linux文件系统安全攻略

▲图9.为EFS输入密码#p#

为了确认逻辑卷是否已经建立,可以使用下列命令进行检查一下:

企业安全分享:Linux文件系统安全攻略

只要该命令列出了逻辑卷,就说明已经成功建立了逻辑卷。不过根据机器的不同,设备号可能有所不同,如图10所示:

企业安全分享:Linux文件系统安全攻略

▲图10.显示成功建立的逻辑卷

device-mapper会把它的虚拟设备装载到/dev/mapper下面,所以,你的虚拟块设备应该是/dev/mapper/ly_EFS,尽管用起来它和其它块设备没什么不同,实际上它却是经过透明加密的。

如同物理设备一样,用户也可以在虚拟设备上创建文件系统:

企业安全分享:Linux文件系统安全攻略

现在为新的虚拟块设备建立一个装载点,然后将其装载。命令如下所示:

企业安全分享:Linux文件系统安全攻略

用户能够利用下面的命令查看其装载后的情况,如图11所示:

企业安全分享:Linux文件系统安全攻略

企业安全分享:Linux文件系统安全攻略

▲图11.EFS成功装载后的显示

通过上述的步骤后,用户看到装载的文件系统,尽管看起来与其它文件系统无异,但实际上写到/mnt/ly_EFS/下的所有数据,在数据写入之前都是经过透明的加密处理后才写入磁盘的,因此,从该处读取的数据都是些密文。

5、卸载加密设备

要卸载加密文件系统,和平常的方法没什么两样:

企业安全分享:Linux文件系统安全攻略

即便已经卸载了块设备,在dm-crypt中仍然视为一个虚拟设备。如若不信,用户可以再次运行如图10所示的命令dmsetupls来验证一下,将会看到该设备依然会被列出。因为dm-crypt缓存了口令,所以机器上的其它用户不需要知道口令就能重新装载该设备。为了避免这种情况发生,用户必须在卸载设备后从dm-crypt中显式的删除该设备。命令具体如下所示:

企业安全分享:Linux文件系统安全攻略

此后,它将彻底清除,要想再次装载的话,用户必须再次输入口令。

6、重新装载加密设备

在卸载加密设备后,用户很可能还需作为普通用户来装载它们。为了简化该工作,需要在/etc/fstab文件中添加下列内容:

企业安全分享:Linux文件系统安全攻略

此外,用户也可以通过建立脚本来替我们完成dm-crypt设备的创建和卷的装载工作,方法是用实际设备的名称或文件路径来替换/dev/DEVICENAME:

企业安全分享:Linux文件系统安全攻略

如果用户使用的是回送设备的话,用户还可以利用脚本来捆绑设备,脚本如下所示:

企业安全分享:Linux文件系统安全攻略

7、在Linux系统安装时使用EFS

上面介绍了使用dm-crypt来创建加密文件系统的方法,对于初级用户来说,可能这个过程有些繁杂和不好理解。那么,本节将介绍一个非常简单的方法来使用EFS文件系统。以Fedora10的安装步骤为例子,选择相关选项进行安装就可以方便地进行使用了。

用户可以在空闲空间新建分区,也可以选择某个分区进行编辑,还可以删除某些分区。在图12中,需要选中[加密文件系统]选项,并且,根据系统要求,输入访问EFS所需要的密码,如图13所示。然后,根据第3章的介绍接下来一步一步按照系统的提示进行系统安装即可。那么,在成功安装系统后,用户就拥有了一个安全的加密文件系统,并且,在每次登录系统的时候,系统都会要求用户输入在图13所示步骤中设定的密码来进行安全访问。

企业安全分享:Linux文件系统安全攻略

▲图12.安装时选中[加密系统(E)]选项

企业安全分享:Linux文件系统安全攻略

▲图13.输入EFS所需的密码

继续浏览有关 安全 的文章
发表评论