| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 操作系统 >> linux >> 文章正文>>>>>> 
利用Sudo加固Linux系统安全
所谓系统加固就是利用手工配置及有关软件来提高系统安全性的过程。本文将向读者详细介绍利用开源软件sudo来对Root权限进行控制和审计以加固Linux系统安全的具体操作方法。

一、sudo的功能

Sudo是一款开源安全工具,最常用于对Root权限进行控制和审计。它的指导思想是“在保证人们能正常工作的条件下,尽量压缩授予他们的权限”。系统管理员不仅可以让指定的用户或用户组作为root用户或其它用户来运行某些命令,还能将指定的用户所输入的命令和参数作详细的记录。当然,该软件是可以免费下载的,具体地址是www.gratisoft.us/sudo/download.html。

Sudo程序是一款在命令行方式下工作的安全工具,并且我们每次只执行一条命令。它支持的功能有:

◆命令日志:记录命令和参数。该功能用于跟踪用户输入的命令,尤其适合于进行系统审计。因为sudo 会记录下所有作为root用户(或者规定的其他用户)的命令,所以许多管理员经常用它来替代root shell,以便记录下自己使用的命令,这不仅能增进系统安全,还能用来进行故障检修。

◆集中记录多个系统的日志:Sudo联合系统日志守护进程syslog后,能将所有日志集中存放在一个主机上。

◆命令限制:限定用户或者用户组能够使用的命令。

◆检票系统:检票系统通过在用户登录到sudo时所创建的票据来设定时间限制。票据只在规定的时间内有效。每个新的命令都会刷新票据的预设时间,默认的预设时间是五分钟。现实中,该功能非常有用,有了它即使root用户离开系统时忘了注销的话,也不至于被其他可以接触到键盘的用户肆无忌惮的窥探系统。因为票据过期后,系统必须重新登录。所以,我们最好把有效时间尽量设的短一点,如默认有效时间五分钟。检票系统还可以用来清除用户的票据文件。

◆集中管理多个系统:Sudo 的配置一般写在/etc/sudoers这个文件中,而该文件可以供多个系统所用,这样一来,我们就可以在一个主机上对这些系统进行集中管理了。

Sudo几乎支持所有的UNIX操作系统版本,但如果要从源代码进行安装的话,必须准备好C编译器和make工具。

二、Sudo 命令参数详解

利用Sudo,我们既可以让某个用户作为超级用户来执行某些命令,还可以让他作为其他用户来执行某些命令——这一点对于系统管理格外有用。sudo命令的具体配置都可以在/etc/sudoers文件中找到,该文件规定了某个命令是否可以被某特定的用户执行。

使用sudo的前提条件是 ,用户必须已经具有了自己的用户名和口令。如果一个用户企图通过sudo 来运行命令,但该用户却没有位于sudoers文件中的话,系统将自动向管理员发送一封电子邮件,指出非授权用户正在访问系统。

如前所述,因为sudo具有检票功能,所以用户登录sudo 时,会发给他一张票据,默认情况下其有效时间为五分钟。不过,用户也可以通过带–v标志的sudo命令来更新票据,这会为票据申请另外五分钟。命令如下所示:

sudo –v

如果有非授权用户运行上面的命令的话,管理员将收到一封反映该事件的电子邮件。

同时,标志-v也会通知非授权用户,他是非法用户。如果该用户很顽固,又一次次输入该sudo 命令,那么系统会再发一封电子邮件通知管理员。

无论登录的企图是否成功,Sudo 都会如实记录到默认的syslog(3)文件中。但是,我们也可以在Sudo 的配置文件改变这一行为。下表给出了sudo命令的一些选项。

 

选项

选项名

描述

-V

Version

打印版本号,然后退出。

-h

Help

打印帮助信息,然后退出。

-l

List

列出所有当前用户允许和禁止的命令。

-v

Validate

将用户的票据更新为一个预配置的时间,默认时五分钟。如果需要的话,该用户必须再次输入用户口令。

-k

Kill

作废该用户的票据。执行该选项将命令用户重新输入用户口令以更新票据。

-K

Sure kill

彻底删除该用户的票据。之后再运行该选项时,用户必须用其用户名和口令进行登录。

-u

User

作为用户名规定的用户来运行特定的命令。这个由用户名规定的用户可以是root之外的任何用户。 如果您想入口一个uid,入口#uid代替该用户名。如果您想使用uid,可以用#uid代替该用户名。

 

三、安装Sudo

将Sudor 压缩包下载到我们指定的目录下,比如/root 目录。无论使用哪种操作系统,这些操作在任何系统下都是类似的。

⒈ 切换到压缩包所在的目录,然后将其解压,命令如下所示。需要注意的是,当您执行下面命令时,因为所用版本不一定相同,所以其中的版本号实具体情况加以修改:

tar –zxvf sudo-1.6.3p5.tar.gz  

⒉ 以上命令会新建一个目录,如sudo-1.6.3p5,这要视您的版本而定。

⒊ 通过下列命令切换到sudo 目录:

cd sudo-1.6.3p5  

⒋ 利用下列命令来创建makefile 和config.h文件,我们将用它们来配置sudo:

./configure  

⒌ 您也可以在./configure 命令中加入选项来定制sudo 的安装。其实很简单,只要在/configure命令后边追加所需的选项即可。 要想了解各种可用的选项,请参阅/sudo/INSTALL文件。

⒍ 您还可以编辑makefile 来改变默认的安装路径,也可以编辑/sudo/INSTALL 文件中的其他配置。为此,我们需要先用文本编辑程序打开makefile 。例如,键入下列命令:

vi Makefile  

⒎ 在makefile 文件中找到以“Where to install things ...”开头的段落,如图所示:

Sudo


  图1 Sudo的 Makefile文件

⒏ 如有必要,可以更改默认路径。但我们这里将使用默认路径。

⒐ 退出该文件。如果要使用vi 文本编辑程序的话,可以使用以下命令: 
:q
 
⒑ 实际上,我们在前面运行./configure 命令时,也可以改变默认安装路径。为此,需要在该命令后面加上一个选项。例如,默认时sudoers 文件是安装在/etc 目录的,我们可以利用下面的命令来改变这个文件的安装位置:

./configure - -sysconfdir=DIR  

这里的DIR 就是新的安装目录。

⒒ 为编译sudo ,需要运行make 命令:

make
 
⒓ 如果我们要把sudo安装在源文件目录之外的地方的话,将需要用到GNU。 如果在安装期间出错的话,可以求助于TROUBLESHOOTING 文件和PORTING 文件。

⒔ 我们必须作为root 用户才能安装sudo,因为这需要使用超级用户权限。变成root 用户后,运行make install 命令安装手册页、visudo和sudoers 文件:

make install  

需要提醒的是,千万不可以覆盖任何现有的sudoers 文件。

⒕ 好了,我们已将sudo 安装好了,接下来介绍如何进行配置以满足我们的需求。

四、配置Sudo

要配置sudo ,我们必须对%/sudo-1.6.9p5/sudoers 文件进行编辑,该文件中定义了哪些用户可以执行哪些命令。此外,只有root用户才有编辑该文件的权限,并且还必须用visudo 命令对其编辑。在sudo 目录中,包含了一个名为sample.sudoers 的示例文件:

默认时,visudo命令会使用vi 文本编辑程序打开sudoers 文件。当然,我们可以通过编译选项来让visudo 改变默认的文本编辑程序。visudo使用环境变量EDITOR表示文本编辑程序。在编辑sudoers 文件时,visudo命令会执行以下任务:

(一) 检查语法错

即使在修改中找到一个语法错误,visudo也不会保存所做的修改。当发现语法错误时,它会指出错误所在的行号,并给出相应的指导性的提示。这时,我们会看到一个“What Now ?”提示和三个选项:“e”表示重新编辑文件;“x”表示退出并且不作任何保存;“Q”表示退出并保存更改的内容。如果sudoers 文件存在语法错误,而我们又选择Q退出并保存visudo的修改的话,那么我们是无法正常运行sudo的,直到语法问题得到纠正为止。遇到这种情况,我们必须再一次运行visudo,修正错误,然后再次保存文件。当修正问题时,最好选择e项;如果您对于正误还心存顾虑时,可以选择x项,这样在退出时便不会变成修改了。

(二) 防止同时对该文件进行多重编辑

当我们在编辑sudoers 文件的时候运行visudo的话,将收到一个错误信息,让我们稍后再试。sudoers 文件由两种类型的条目组成:用户规定和别名。下面用实例介绍如何使用用户规定条目来定义哪些用户可以运行哪些命令。别名基本上就是一些变量。

Sudoers文件中包含一个root条目,默认的权限规定如下所示:

root ALL = (ALL ) ALL  

该配置允许root用户可以执行所有命令。

要想让其他用户作为root 来运行命令,我们必须将这些用户加入到sudoers 文件中。我们还必须规定允许在哪些主机上运行这些命令。最后,我们还必须列出这些用户可以作为root 来运行的具体命令。在下面的步骤中,我们将创建用户bob ,并允许他作为root 用户在我们的机器上执行某些命令。

⒈ 打开该sudoers文件,命令如下所示:

visudo  

⒉ Sudoers 文件将在vi 中打开,在其中找到“User privilege specification”部分。然后在root 条目之后,按i键插入下面一项:

bob your-hostname = /sbin/ifconfig, /bin/kill, /bin/ls  

⒊ 这一行的作用是允许用户bob作为root用户来执行命令ifconfig、kill和ls。

需要注意的是,除非您有另行规定,否则默认凡是列在sudoers 文件中的命令,都将作为root用户来运行。比如,我们可以让用户bob作为用户Tom来运行命令。命令如下所示:

bob your-hostname = (Tom) /sbin/ifconfig  

就本例来说,ifconfig命令将以用户Tom 的身份来执行。当然,您可以允给bob 以多种不同的用户身份来执行命令,比如:

bob your-hostname = (Tom) /sbin/ifconfig, (root) /bin/kill, /bin/ls  

其中,kill 和ls 命令将作为root用户来运行,而ifconfig命令则作为用户Tom来执行。Bob可以在命令行中键入以下命令:

sudo –u Tom /sbin/ifconfig  

⒋ 按下ESC写入并退出文件,然后键入以下命令:

:wq  

这个命令利用vi写并退出该文件。

⒌ 现在,我们需要建立用户bob,命令如下:

useradd bob  

6. 提供下列命令为用户bob 创建口令:

Passwd bob

Changing password for user bob

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

[1] [2] 下一页


上一篇:
  • 上一篇文章:
  • 下一篇
  • 下一篇文章: 没有了
  • 收藏此文到百度搜藏 百度搜藏| 新浪VIvi| 365key| Younote| 博采中心| 你好BLOG| 亿友网摘| 和讯网摘|
    相关文章    
    系统中装有双系统用户如何卸载Linux
    解决Linux操作系统不能启动问题
    Linux操作系统下的K3b光盘刻录技巧
    硬盘安装SUSE Linux10系统的两种方法
    Linux 系统下利用无线网络上网设置
    Linux系统下通过GPRS模块拨号上网的方法
    Linux系统下驱动程序框架概述
    使用Linux系统架设安全的网关
    Linux系统安全机制进阶分析
    剖析Linux病毒工作过程和关键环节
     
     
     
    最新文章
    普通文章 利用Sudo加固Linux系统安全最新文章
    普通文章 解决卡巴斯基误杀导致winnet丢失最新文章
    普通文章 Firefox浏览器的下一个杀手级功能最新文章
    普通文章 QQ2009 Preview2五大新功能最新文章
    普通文章 用POCO将搞怪图客进行到底最新文章
    普通文章 Windows Media Center 中的“家长最新文章
    普通文章 暴风影音V3.6 鲜为人知的四则技巧最新文章
    普通文章 Flash绘制写意竹画最新文章
    普通文章 MAYA制作花瓣纷飞动画场景最新文章
    普通文章 Photoshop美女图片换脸技巧最新文章
     
    热门文章
  • 没有推荐文章
  •  
     
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 

    版权所有2006-2008 龙腾教程网