| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
龙腾教程网  
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
 
  您当前位置:您现在的位置: 龙腾软件教程网 >> 文章中心 >> 操作系统 >> linux >> 文章正文>>>>>> 
利用Sudo加固Linux系统安全

 

五、运行Sudo

我们已经配置sudo,让它给予用户bob以超级用户权限来执行ifconfig、kill和ls命令。当bob 要运行这些命令时,他必须键入sudo 命令,并输入其口令。

⒈ 首先作为用户bob登录。

⒉ 找出bob可以作为root用户执行的命令,为此,键入以下命令:

sudo –l  

⒊ 如果第一次以用户bob的身份运行sudo 的话,会给出一个警告:

We trust you have received the usual lecture from the local System Administrator.
It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type
#3) With great power comes great responsibility  

⒋ 提示您输入口令,注意,不要输入root用户的口令,而是bob的口令。

Password:  

⒌ 将列出允许bob在这个主机上运行的各个命令,如下所示:

User bob may run the following commands on this host:

(root) /sbin/ifconfig
(root) /bin/lill
(root) /bin/ls 

⒍ 运行ifconfig 来测试我们sudo的配置情况。如果不用sudo 的话,该选项需要root权限。命令如下所示:

/sbin/ifconfig eth0 down  

该命令无效,因为bob无权停用系统的连接设备。

⒎ 为了停用该连接设备,bob 必须使用sudo ,命令如下所示:

sudo /sbin/ifconfig eth0 down  

这次将会成功执行。请注意,如果bob 的票据已经过期(默认有效期为五分钟)的话,sudo会要求输入bob的口令。 如果我们在票据的有效期内运行这个命令的话,系统不会提示我们键入口令。

⒏ 用以下命令来重新激活该连接设备:

sudo /sbin/ifconfig eth0 up  

⒐ 然后,利用kill命令重新启动httpd 进程,具体如下所示:

ps aux   grep httpd  

⒑ 从显示的列表中选择一个Apache PID ;如果没有安装Apache 的话,也可以选择启动其他的服务进程。命令如下:

kill –HUP [PID NUMBER]  

⒒ 它是不会让你重启httpd进程的,因为你不是root用户。所以会收到如下信息

bash: kill: (PID NUMBER) – Not owner  

⒓ 现在,我们改为使用sudo作为root用户来运行该命令,具体如下所示:

sudo kill –HUP (PID NUMBER)  

这回成功了。

⒔ 接下来,我们以用户bob的身份利用ls 命令来显示root目录。命令如下所示:

ls /root  

结果我们被拒绝了,因为我们不是root用户。

⒕ 好了,现在我们使用sudo作为root用户执行该命令,看看结果如何:

sudo ls /root  

看到了吧,我们的请求被执行了。root用户的目录已经列出来了。

⒖ 为了使bob的时间戳过期,可以通过sudo –k命令来达此目的。这样一来,bob 下一次使用sudo时就必须再次输入口令。

六、无需口令的情形

有些情况下,没有必要每次运行sudo时都得输入口令,因为该用户已经登录到系统上了。所以,sudo 为我们提供了一种有效的方法来避免这种单调乏味的任务,办法就是在sudoers 文件中加入NOPASSWD 标签。

⒈ 为了在sudoers文件中取消对口令的要求,请登录为root 用户,然后键入以下命令:

visudo
 
⒉ Sudoers 文件会在vi 中打开。修改bob 的用户权限规定,如下所示:

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

⒊ 按ESC键,然后键入:wq 来写入并退出文件:

⒋ 登录为bob ,用下列命令来停用连接设备:

sudo /sbin/ifconfig eth0 down  

这次不会要求我们输入口令了,因为该命令将作为root用户来运行。

⒌ 用以下命令来重新激活该连接设备:

sudo /sbin/ifconfig eth0 up
七、Sudo的日志功能

前面已经说过,sudo能够记录各用户都运行了哪些命令。但是,这些需要对sudo 和syslogd 进行适当的配置。为此,我们首先要在/var/log目录中创建一个日志文件,还必须对syslog.conf进行相应的配置,让它记录sudo 命令。配置sudo 日志功能的具体步骤如下所示:

⒈ 登录为root 用户,然后在/var/log/目录下创建一个sudo 日志文件。具体命令如下所示:

touch /var/log/sudo  

⒉ 之后,您必须在syslog.conf 文件中添加相应的行来命令它将记录放到sudo的日志文件。我们可以用下列命令来打开syslog.conf:

vi /etc/syslog.conf  

⒊ 将下面一行命令放到syslog.conf文件的末尾。操作时,我们可以通过按下i键来插入文字。要注意,下面的空格必须使用TAB 键,而不是空格键。

local2.debug /var/log/sudo  

⒋ 这个syslog.conf条目会将所有成功和不成功的sudo 命令都记录到文件/var/log/sudo中。您还可以通过用网络主机代替本机目录来让日志记录到一个网络主机上。syslog.conf文件如图2所示。
 

Linux


图2 编辑syslog.conf文件进行日志记录

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

:wq  

⒍ 因为syslog.conf文件已经修改,所以必须重新启动syslogd 。要向syslogd 发送HUP信号,必须首先知道syslogd 进程标识符,为此键入以下命令来获取syslogd PID :

ps aux   grep syslogd  

第二栏表示显示PID号码,最后一栏表示显示PID 对应的进程。

⒎ 要重启syslogd ,从上面命令输出中找出syslogdPID ,然后键入以下命令:

kill –HUP [PID NUMBER]
 
⒏ 因为我们想为用户bob建立日志条目,所以作为用户bob登录。

⒐ 以用户bob的身份登录后,键入以下ifconfig命令:

sudo –l
sudo /sbin/ifconfig eth0 down
sudo /sbin/ifconfig eth0 up  

⒑ 利用kill 命令重新启动httpd进程(或者其它进程),命令如下所示:

ps aux   grep httpd  

⒒ 从以上命令的输出中找出Apache (httpd )PID ,并输入下列命令:

sudo kill –HUP [PID NUMBER]  

⒓ 现在,将以用户bob的身份列出root用户目录,具体命令如下所示:

sudo ls /root  

⒔ 作为root 用户登录,查看一下sudo 日志文件。bob 输入的全部sudo 命令都被记下来了,如下所示:

May 18 21:10:18 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=list
May 18 21:10:28 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 down
May 18 21:10:50 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 up
May 18 21:10:60 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/bin/ls /root  

⒕ 您可以记录任何root命令,方法很简单,只要在这些命令之前加上sudo 即可。例如,要记录下所有作为root使用的命令,可以像下面这样做:

sudo useradd susan
sudo passwd susan
sudo vi /hosts  

⒖ 要想访问和查看sudo 日志文件,我们可以使用下列命令:

sudo cat /var/log/sudo  

Root用户的所有输入都将记录在案,包括刚刚输入的cat 命令。如下所示:

May 18 21:10:18 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=list
May 18 21:10:28 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 down
May 18 21:10:50 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/sbin/ifconfig eth0 up
May 18 21:10:60 localhost sudo: bob: TTY=pts/1;PWD=/home/bob;USER=root; COMMAND=/bin/ls /root
May 18 21:30:22 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/usr/sbin/useradd susan
May 18 21:30:56 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/usr/bin/passwd susan
May 18 21:31:18 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/vi /hosts
May 18 21:31:30 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/vi /etc/hosts
May 18 21:32:11 localhost sudo: root: TTY=pts/1;PWD=/root;USER=root; COMMAND=/bin/cat /var/log/sudo  

如您所见,sudo 对于控制和审计root用户的访问权限是极其有益的。它使得系统管理员可以将root用户的系统管理任务分配给其他人,而无需给予他们root口令。管理员也可以根据每个用户实际所需的root访问权限来定制系统访问权限,从而达到权限最小化的目标。
八、结束语

Sudo是一款实用的安全管理软件,通过它对超级用户权限进行有效的控制和审计能有效的提高系统的安全性。本文主要讨论了sudo的sudoers文件的用户规定方面,如果您想了解其他方面的话,www.gratisoft.us/sudo/man/sudo.html上的sudo man手册会对您有所帮助。

上一页  [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 龙腾教程网