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)

(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)

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

2、su限制

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

因此,我们需要对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)

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

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服务器.Empire CMS,phome.net

利用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权限的控制策略和方法还有很多,希望本文提供的思路对大家有所帮助. Empire CMS,phome.net

linux如何开启root权限控制,Linux下的Root权限控制相关推荐

  1. linux 检查权限,检查目录下 文件的权限-linux shell脚本,

    检查目录下 文件的权限-linux shell脚本, #!/bin/bash #History: #2019/07/23    Fsq #This Program will check Permiss ...

  2. 嵌入式linux内核开启键盘,- 基于嵌入式Linux内核的特殊矩阵键盘设计完整驱动控制模块方案...

    首先设置输入设备的功能,input_set_capability(&sim_key,EV_KEY,KEY_A)函数完成键盘A键的输入使能,类似可完成B-X共24个按键的输入使能.然后设置键盘的 ...

  3. win系统oracle文件目录权限设置,win7下怎么设置完全控制权限

    点击查看win7下怎么设置完全控制权限具体信息 答:安装后 在需要修改的文件夹右键获取权限 答:(注意我是用的是英文版所以有些翻译可能不完全和见到的一样,看意思一样的就是了.) 右击该文件点击属性,选 ...

  4. linux同时开启两个端口,linux下squid开多个端口的办法

    visible_hostname fu_host1 #设定squid的主机名,如无此项squid将无法启动 http_port 80 accel vhost vport http_port 48888 ...

  5. linux桌面开启垂直同步刷新,关于Linux下AMD显卡关闭垂直同步的方法

    为什么会想到修改垂直同步 在写OpenGL代码的时候发现帧率只有60fps左右,非常无语,我的RX470D怎么着也不可能才跑这么点,连特么核显都不如啊.想想一定是开了垂直同步.那就想辙关闭呗. 查找关 ...

  6. linux oracle开启监听服务器,linux服务器启动oracle监听端口

    oracle监听 原理 客户端向服务器端发送连接请求,监听器监听到客户端德连接请求 监听器监听到客户端德连接请求后,把客户端德连接请求交给数据库服务器处理 客户端和服务器端建立连接,连接建立后,服务器 ...

  7. 【转】如何在忘记CentOS的root密码的情况下修改root密码。

    注意,此方法只能在控制台上进行操作,不能远程操作. 进入单用户模式的前提是系统引导器能正常工作.下面以 GRUB 为例说明进入方法.在 GRUB 启动菜单里有"a"."e ...

  8. linux mint 18支持安卓编译,Linux mint 18版本开启SSH服务

    linux mint 18版本默认是没有安装ssh server的 需要手动安装 安装ssh server: 此命令需要联网,会自动下载安装 安装之后看是否开始了ssh, 看到ssh-agent 和s ...

  9. linux内核开启ssh,linux开启ssh服务

    本文概略:1)ubuntu发行版开启ssh.2)centos发行版开启ssh 1.ubuntu发行版安装/开启ssh服务 1.1 安装ssh服务端 sudo apt-get install opens ...

  10. linux脚本赋权命令765,Linux权限命令chmod

    一.Linux chmod命令修改文件和文件目录权限(默认情况下只有root用户才能使用).命令格式:chmod+修改内容+要修改的文件或者 目录 或者 chmod -R 修改内容 要修改的文件或者 ...

最新文章

  1. hdu 3081(并查集+最大流)
  2. php里面的耗时操作,PHP执行时间那点事
  3. step1 . day4 C语言基础练习之日历
  4. python变成exe后启动弹出选文件窗口_通过.py脚本执行的.exe文件隐藏控制台窗口...
  5. Node.js学习之路24——Express框架的app对象
  6. 缓冲文件系统(fopen/fread/fwrite)和非缓冲文件系统(open/read/write)
  7. go基本数据类型与运算符
  8. maven添加子工程_Maven建立父子项目和跨项目调用内容的步骤—佳佳小白
  9. 怎样让公式编号不从1开始
  10. 行内元素多出的空白文本节点的解决方法
  11. 【超详细】| 使用Vmware 安装win7虚拟机
  12. 会计教学APP软件,实现教学的快速运转
  13. 呼叫中心系统的工单流转处理流程
  14. Python案例1—人民币与美元的汇率兑换V_6.0
  15. 和自然语言处理有关的英语_自然语言处理对非英语语言的重要性
  16. 微信浏览器禁止下载APK文件 微信扫描二维码 下载app的方法
  17. hadoop集群HA模式(JN+ZK)+yarn搭建
  18. SecureCRT和SecureFX的下载和安装2021
  19. 第一部文学理论和评论专著是谁的著作?全书分为几个部分?
  20. Qt QTabWidget详解

热门文章

  1. 生如夏花之绚烂,死如秋叶之静美。 [泰戈尔诗词收集]
  2. es7之Reflect Metadata
  3. 极速还原 V4.0 简体中文绿色免费版
  4. python读取txt文件中的内容并用逗号分割_数据分析—gt;文件读写
  5. cocos creator 全局变量的几种方法
  6. java山地车 故障,山地车经常会出现的十个小故障,你都遇到了几个
  7. xp提示计算机内存不足,在xp系统中,经常提示虚拟内存不足的原因是什么?
  8. 我在小公司,当了五年的前端切图仔
  9. 02-客房预订系统数据库-用户和客房预订数据操作
  10. 分叉币的发展史及价值|ETH、BCH、BSV 2020-03-08