利用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 ...”开头的段落,如图所示:
图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

相关内容

    暂无相关文章