Linux下的Root权限控制

Linux是当前比较流行的网络服务器操作系统,它继承了UNIX系统安全、稳定、高效等优点。在Linux系统中Root拥有最高权限,正因如此攻击者往往以获取Root权限为目标。作为管理员如何有效地对Root进行有效管理呢?本文将从权限控制的角度,提供几个安全技巧。

  演示环境

  Red Hat Enterprise Linux 5

  1、远程登录

  我们知道在RHEL系统中,默认是允许Root用户直接远程登录的。假若攻击者获取了Root的密码,然后进行远程登录,那整个服务器就沦陷了。因此,我们要做好Root的权限限制,拒绝其远程登录。这样,就算攻击者获取了Root密码,也不能通过远程登录控制服务器。限制Root远程登录的方法有很多种,笔者向大家推荐两种。

  (1)SSH限制

  我们知道SSH是Linux系统中用于远程维护管理的一个服务,类似于Windows系统中的Telnet或者远程桌面3389。通过SSH限制Root远程登录,我们需要做的就是修改SSH的配置文件。找/etc/ssh/sshd_config文件,在其中添加PermitRootLogin no。需要注意的是Linux系统是大小写敏感的,不要输错。输入完毕后,保存并退出,然后输入命令service sshd restart重启SSH服务使修改生效。这样当通过Root远程连接Linux服务器时,就会拒绝连接。(图1)

Linux下的Root权限控制

  (2)PAM认证

  我们还可以使用PAM认证模块来拒绝Root用户直接登录系统,可通过下面的操作来实现。打开/etc/pam.d/sshd文件,在第一行加入auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/sshduser onerr=succeed这条语句。其含义是,在登录时认证帐户和密码是否有效,只有认证通过才能登录系统,否则结束认证拒绝登录。它的认证模块是/lib/security/pam_listfile.so,认证的用户是用户(user),当然也可以是组(group),认证的方式是拒绝(deny),认证文件是/etc/sshduser,文件名及目录随意,如果认证成功就返回(succeed)。(图2)

Linux下的Root权限控制

  然后我们创建一个认证文件,可以在终端中运行命令echo "root" > /etc/sshduser来创建,当然我们也可以使用vi打开sshduser文件来加入用户。需要说明的是,当有多个用户时,每个用户占用一行。添加完成后,再使用Root直接登录服务器就可以看到登录被拒绝了。(图3)

Linux下的Root权限控制

2、su限制

  我们知道在Linux系统中有个su命令,利用该命令只要知道Root用户的密码,默认情况下任何人都可以切换到Root用户中进行操作。例如,一个属于users组的普通用户gslw可以通过su命令切换到Root用户中。(图4)

Linux下的Root权限控制

  因此,我们需要对SU进行限制,只允许特定组的用户才能SU到Root用户。使用的方法还是通过PAM认证模块来实现。我们先前控制ssh服务,是使用/etc/pam.d/sshd文件,当然控制用户使用su命令就需要对

  /etc/pam.d/su文件进行修改。直接打开该文件进行修改,或者在终端命令窗口输入命令vi /etc/pam.d/su,然后去掉其中#auth required pam_wheel.so use_uid的注释即可。(图5)

Linux下的Root权限控制

  其含义是,使用pam_wheel.so文件来检查当前用户的UID,如果不是whell组的用户就直接拒绝。现在我们通过gslw用户登录系统,然后su到Root可以看到被拒绝。当然,要使其可以su到Root需要将其加入了wheel组才可以。(图6)

Linux下的Root权限控制

 3、Root分权

  大家知道,由于Root具有最高的权限,经常用root用户来管理系统,会给系统带来一定的安全隐患。比如,一条无意识输入的破坏性的命令有可能会给系统带来毁灭性的打击。另外,如果系统被植入了嗅探工具,如果用root登录会造成root口令被窃取。因此我们要消减Root的权限,可以让其它用户来完成Root的一些工作,避免过多地使用Root用户。

  如何为Root分权,要根据服务器的性质来确定。比如一个Linux平台的apache服务器,作为管理员经常使用的命令应该是诸如/usr/local/apache2/bin/apachect1 start/stop/restart这样的是启动/重启/停止服务器的命令。我们可以为此创建一个用户gslw来管理apache服务器,我们知道普通用户是没有权限来启动apache服务器的。这里要用到sudo命令,通过它为gslw用户加入扩展权限使其可以管理apache服务器。

  利用Vi或者直接进入/etc/pam.d打开sudo文件,然后在其中添加一行gslw ALL=(ALL) /usr/local/apache2/bin/apachectl命令就可以了。该命令分成四个字段,依次为用户名、作用对象、以谁的身份运行以及运行的命令。当然,我们也可以加入gslw localhost=(root) /usr/local/apache2/bin/apachectl start,这样过滤更严格一些。最后保存退出后,使用gslw用户登录系统就可以运行/usr/local/apache2/bin/apachectl start命令了。上面只是举例,大家可以根据自己的需要在sudo文件中添加相应的命令行。不过,需要说明的是命令一定要严格过滤,不要赋权过大。(图7)

Linux下的Root权限控制

  总结:Linux下的权限控制是非常严格的,但也非常灵活,我们可以根据自己的安全需求进行布防。当然,关于Root权限的控制策略和方法还有很多,希望本文提供的思路对大家有所帮助

分类:默认分类 时间:2012-02-18 人气:4
本文关键词:
分享到:

相关文章

  • Linux系统出错提示[root@localhost ~]# iptraf的解决方法 2012-02-27

      我们都知道Linux系统的很多操作都需要命令来执行,在执行命令的过程中,有时会遇到[[email protected] ~]# iptraf错误提示,遇到这个问题要如何解决呢?下面小编就给大家介绍下Linux执行命令提示[[email protected] ~]# iptraf的解决方法。   提示:   [[email protected] ~]# iptraf   -bash: iptraf: command not found   要解决这个问题就需要安装相应的软件包,很多时候命令名不一定就是软件包的名

  • 红帽Linux忘记root密码怎么办 2012-06-11

    红帽Linux忘记root密码怎么办 在出现以下画面后按下键盘e键 (图1) 按下后会出现如下画面,在次按下e键,将会出现如图3所示的画面 (图2) www.2cto.com 如图3所示,使用上下键将焦点移动到第2项,如果出现的和本图不一样,就找到有kerner字样的那一行, 然后再次按下E键,出现如图4所示画面 (图3) 出现图4画面后,在光标后面输入single,按下回车键,会回到类似与图3的画面,此时按下B键, 就会不用密码进入系统,进入后可以重新设置密码,设置后reboot重启,用新密码

  • linux找回root密码 2012-07-10

    linux找回root密码 “忘记了CentOS(Linux)root管理密码怎么办?可以通过单用户模式进去系统来修改root密码。 ” 有些时候在忘记了Linux的系统管理员密码的时候,我们可以在本地通过进入单用户模式来重置root密码。 www.2cto.com 对于CentOS 5.x的版本来说,进入单用户模式的方法有很多,主要的操作都是在进入grub启动菜单的时候进行的,下面说一下常用的两种: 方法一:按“a”进入单用户模式。 www.2cto.com 这是进入单用户模式最快捷的方法。在

  • 详解Linux系统中的root权限控制 2012-07-17

      在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者。普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户。   在系统中,每个文件、目录和进程,都归属于某一个用户,没有用户许可其它普通用户是无法操作的,但对root除外。root用户的特权性还表现在root 可以超越任何用户和用户组来对文件或目录进行读取、修改或删除(在系统正常的许可范围内);对可执行程序的执行、终止;对硬件设备的添加、创建和移除等; 也可以对文件和目录进行属主和权限进行修改,以适合系

  • SlackWare Linux下恢复root丢失密码口令 2013-02-15

    谁都有可能丢东西,要是把自己服务器的root密码丢了怎么办?没关系,我们用下面的方法恢复。 恢复方法 方法一:直接通过lilo制定init="/bin/bash启动来修改密码。 方法二:通过光盘启动,挂载/分区,修改/etc/shadow文件来清空密码。 方法一实现过程 首先启动启动linux,到lilo出现的时候,我们随便按一键让lilo停住(不要按回车哦),这个时候将出现和下面类似的画面。 这里我们看到lilo列表里面只有一个系统,就是启动项名称叫slack的系统。 我们输入如下命令启动这个

  • 阿里云linux服务器修改root管理密码教程 2013-04-14

      阿里云主机己是国内小型站长的一个非常好的选择了,不但技术成熟并且网络质量非常的好了,下面我们来看看阿里云linux服务器修改root管理密码方法,希望能帮助到各位。   阿里云linux服务器修改root密码流程:   通过Xshell客户端输入账号root,输入密码,登陆到linux。   输入修改密码的命令 passwd   根据提示输入新密码,输入新密码的时候,软件不会显示*号,输入后回车就行了。如下图:   修改完密码后,重新打开Xshell客户端,用新密码登陆测试是否修改成功,修改

  • linux root密码三种找回方法 2013-08-14

      linux root密码找回方法一   第1步:在系统进入单用户状态,直接用passwd root去更改。   第2步:用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下:   cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root   第3步:将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同.   linux root密码

  • Linux下root密码丢失和运行级别错误的解决办法 2012-08-05

    我们知道,root用户在Linux中是相当重要的,其地位如同Windows中的Adminstrator 有了root权限我们还能修改其他用户的密码,可是,如果root用户的密码丢失该怎么办? 不用担心,解决办法很简单,但还需理解运行级别和密码之间的微妙关系 注:以redhat为基础发行的版本都可使用此方法,此处以CentOS做实验 www.2cto.com 找回密码的方法 第1步:进入grub菜单,在需要启动的系统选项上按下 e www.2cto.com 第2步:选择第2行以kernel开头的选

  • Linux各版本root本地密码破解 2013-05-08

      (一)RedHat/CentOS/Fedora 系统密码破解   1.在grub选项菜单按E进入编辑模式   2.编辑kernel 那行最后加上S (或者Single)   3.按B,启动到single-user mode   4.进入后执行下列命令   # mount -t proc proc /proc   # mount -o remount,rw /   #passwd   #sync   #reboot   (二)Debian linux 系统密码破解   1.在grub选项菜单’

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.053 (s). 10 q(s)