Chinaunix首页 | 论坛 | 博客
  • 博客访问: 656062
  • 博文数量: 121
  • 博客积分: 1425
  • 博客等级: 中尉
  • 技术积分: 2059
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-03 15:34
文章分类

全部博文(121)

文章存档

2018年(1)

2017年(2)

2016年(1)

2015年(11)

2014年(14)

2013年(47)

2012年(45)

分类: LINUX

2012-04-06 13:14:27

用户帐号安全优化

v      帐号安全基本措施

Ü      删除不使用的帐号、禁用暂时不使用的帐号

Ü      检查程序用户的登录Shell是否异常

Ü      强制用户定期修改密码(设置密码有效期)

î       /etc/login.defs文件、chage命令

Ü      增强普通用户的密码强度

î       /etc/pam.d/system-auth文件中的minlen参数

Ü      减少记录命令历史的条数

î       环境变量 HISTSIZE

Ü      设置在命令行界面中超时自动注销

î       环境变量 TMOUT

使用su切换用户身份

v      su命令

Ü      用途:Substitute User,切换为新的替换用户身份

Ü      格式:su  [-]  [用户名]

[tom@localhost ~]$ su -

口令:

[root@localhost ~]# whoami

Root

 

[root@localhost ~]# su - tom

[tom@localhost ~]$ pwd

/home/tom

 

[root@localhost ~]# su tom

[tom@localhost root]$ pwd

/root

 

         缺省用户名时,表示切换为root用户

         root用户可切换为任意普通用户,无需提供密码;而普通用户切换为其他用户时,需要提供目标用户的密码

         “-”可选项相当于“--login”,表示使用目标用户的登录shellLogin Shell)环境,工作目录、PATH变量等都会做相应改变

应用示例:

         仅允许tom用户使用su命令切换身份

[root@localhost ~]# vi /etc/pam.d/su

……

auth            required        pam_wheel.so use_uid      --------去掉此行行首的“#”

……

[root@localhost ~]# gpasswd -a tom wheel        -------------------tom用户加入wheel

使用sudo提升执行权限

v      sudo机制

Ü      用途:以可替换的其他用户身份执行命令,若未指定目标用户,默认将视为root用户

Ü      格式:sudo  [-u  用户名]  命令操作

 

[root@localhost ~]# sudo -u tom /bin/touch /tmp/sudotest.file

[root@localhost ~]# ls -l /tmp/sudotest.file

-rw-r--r-- 1 tom tom 0 05-26 09:09 /tmp/sudotest.file

 

l         su命令切换用户身份时的局限性(需要知道目标用户的密码),

l         要想正常使用sudo命令,需要有目标用户的授权(由管理员设置),

l         通用户使用sudo执行命令时会要求提供自己的密码进行验证;

l         sudo机制的作用主要在于 —— 能够允许经过授权的个别普通用户以root权限执行一些授权使用的管理命令。

l         需要某个普通用户以另一个普通用户权限执行命令时,一般不建议使用sudo机制,否则容易造成帐号冒用等问题

l         root用户默认可以使用sudo命令以任何用户身份执行任何命令,但是其他用户需要使用sudo执行命令时,必须经过管理员的授权设置……

l         配置文件:/etc/sudoers

a)        授权哪些用户可以通过sudo方式执行哪些命令

l         以下2种方法都可以编辑sudoers文件

a)        visudo

b)        vi  /etc/sudoers

l         使用visudo或者vi都可以打开”/etc/sudoers“文件进行编辑

l         使用”visudo“方式时将间接调用vi编辑器并打开”/etc/suders“配置文件,修改完毕后可以直接使用末行命令:w进行保存

l         使用”vi /etc/sudoers“方式时则是直接使用vi编辑器,将无法直接保存(必须使用:w!强制保存),因为sudoers文件的权限为440

 

 

 

 

l         sudoers文件中的基本配置格式

用户            主机名列表=命令程序列表

 

 

v      针对root用户的sudo配置特例

[root@localhost ~]# grep "^root" /etc/sudoers

root    ALL=(ALL)       ALL

 

         可以使用”%组名的形式同时为一个组的用户授予权限

         主机名列表指的是本机的不同名称,而不是远程登录的客户机,因此一般均使用”localhost”

         命令列表部分可以用逗号分隔多条命令,每条命令建议都使用绝对路径

应用示例1

         需求描述:

          允许用户mikey通过sudo执行/sbin/usr/bin目录下的所有命令,但是禁止调用ifconfigvim命令

          授权wheel组的用户不需验证密码即可执行所有命令

          sudo机制增加日志功能

root@localhost ~]# visudo

Defaults logfile="/var/log/sudo"

……

mikey   localhost=/sbin/*,/usr/bin/*,!/sbin/ifconfig eth0,!/usr/bin/vim

%wheel        ALL=(ALL)       NOPASSWD: ALL

[root@localhost ~]# vi /etc/syslog.conf        

local2.debug                /var/log/sudo

 

         若没有mikey用户则需要先建立该用户

         禁止普通用户通过sudo执行ifconfigvim命令是为了防止用户修改网络配置、用vim修改其他系统文件等

         设置命令列表时可以使用通配符”*“,也可以使用感叹号”!”表示取反的意思,“NOPASSWD”表示不需要验证用户的密码

         其中syslog.conf文件中的local2表示sudo程序使用的日志设备类别

         测试sudo配置的效果

          查看允许执行的命令列表(-l选项)

          通过sudo执行命令(sudo 命令行)

          清除用户密码验证的时间戳(-k

          重新校验密码(-v

sudo配置项定义别名

         关键字:User_AliasHost_AliasCmnd_Alias

         sudo配置行中,可以调用已经定义的别名

[root@localhost ~]# visudo

……

User_Alias  OPERATORS=jerry,tom,tsengyia

Host_Alias  MAILSERVERS=mail,smtp,pop

Cmnd_Alias  SOFTWARE=/bin/rpm,/usr/bin/yum

OPERATORS   MAILSERVERS=SOFTWARE

         注意设置的别名名称要使用大写字母

应用示例2

         设立组帐号“managers”,授权组内的各成员用户可以添加、删除、更改用户帐号

         推荐步骤:

          创建管理组帐号“managers”

          将管理员帐号(如tomjerry)加入到managers

          配置sudo文件,针对managers组放开对useradduserdel等用户管理命令的权限

          使用tom帐号登录后,验证是否可以添加、删除用户

         gpasswd“-M”选项可以同时将多个用户添加到指定的组()

[root@localhost ~]# groupadd managers

[root@localhost ~]# gpasswd -M tom,jerry managers

[root@localhost ~]# visudo

Cmnd_Alias USERADM = /usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod

%managers localhost=USERADM

文件系统级安全控制

v      合理规划系统分区

Ü      /boot/home/var/opt 等建议单独分区

v      文件系统(分区)的挂载选项

Ü      mount命令的 -o nosuid-o noexec 选项

v      锁定文件的i节点

Ü      chattr命令、lsattr命令

v      mount命令的nosuidnoexec挂载选项的作用,

v      chattr命令的作用,锁定(+i)、解锁(-i)文件的操作,可附加介绍一下“+a”选项的作用(只能追加内容),例如:

[root@localhost ~]# chattr +i /etc/passwd

[root@localhost ~]# useradd newuser

useradd无法打开密码文件

[root@localhost ~]# lsattr /etc/passwd

----i-------- /etc/passwd

 

安全使用应用程序和服务

v      关闭不需要的系统服务

Ü      使用ntsysvchkconfig管理工具

v      禁止普通用户执行init.d目录中的脚本

Ü      限制“other”组的权限

v      禁止普通用户执行控制台程序

Ü      consolehelper控制台助手

Ü      配置目录:/etc/security/console.apps/

[root@localhost ~]# cd /etc/security/console.apps/

[root@localhost ~]# tar zcpvf conpw.tgz poweroff halt reboot --remove

 

chattr命令

v      作用:设置ext2文件系统上的文件或目录的隐藏权限

v      语法:

Ü      chattr [+-=] [ASacdistu] [文件或目录名称]

v      选项说明:

Ü      AAtime,不修改文件或目录的最后访问时间;

Ü      S:Sync,同步数据到磁盘;作用与D(仅对目录)选项相反

Ü      aAppend Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件;如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件

Ü      iImmutable,系统不允许对这个文件进行任何的修改;如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件

Ü      dNo dump,在进行文件系统备份时,dump 程序将忽略这个文件

Ü      CCompress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘

Ü      sSecure Delete,让系统在删除这个文件时,使用0 填充文件所在的区域

Ü      uUndelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件

lsattr命令

v      作用:显示ext2文件系统上的文件或目录的隐藏权限

v      语法:

Ü      lsattr [-RVadv] [文件或目录]

v      常用选项说明:

Ü      -R:递归显示目录及其子目录中的文件属性

Ü      -a:显示指定目录中的所有文件或目录的属性,包括...目录

Ü      -d:显示目录自身的属性,而非其内部的文件的属性

去除程序文件中非必需的set位权限

Ü      set uidset gid的用途?有何隐患?

Ü      如何找出设置了set位权限的文件?

[root@localhost ~]# ls -lh $(find / -type f -perm +6000)

或者

[root@localhost ~]# find / -type f -perm +6000 -exec ls -lh {} ;

 

         展示查找系统中使用了set位权限的两种方法,其中核心的部分为find命令中-perm选项的使用:

       -perm +6000 表示不检查基本权限(000),只要附加权限中匹配任何一位(6包含了42)即满足条件

         结合“ls -lh”命令是为了同时显示出结果文件的详细属性

         两种方法的区别在于:前者使用了Shell的命令替换操作( $() 符号或者反撇号 ``),只有在find命令执行完毕后才能看到结果;而后一种方法则每找到一条结果就立即显示出来了

应用示例:

         监控系统中新增了哪些使用set位权限的文件

         推荐步骤:

          建立系统正常状态下的suid/sgid文件列表

          查找当前系统中所有的suid/sgid文件列表

          比较前后结果,输出新增加的内容

          编写脚本文件实现比对功能

          可以结合cron设置计划任务定期进行检查

#!/bin/bash

OLD_LIST=/etc/sfilelist

for i in `find / -type f -a -perm +6000`

do

    grep -F "$i" $OLD_LIST > /dev/null

    [ $? -ne 0 ] && ls -lh $i

done

开关机安全控制

v      服务器的物理安全控制

v      调整BIOS引导设置

Ü      修改启动顺序

Ü      设置管理密码

v      禁用Ctrl+Alt+Del重启热键

Ü      修改/etc/inittab文件,并执行“init q”重载配置

GRUB引导菜单加密

v      加密引导菜单的作用

Ü      修改启动参数时需要验证密码

Ü      进入所选择的系统前需要验证密码

v      grub.conf文件中设置密码的方式

Ü      password  明文密码串

Ü      password  --md5  加密密码串

v      密码设置行的位置

Ü      全局部分(第一个“title”之前)

Ü      系统引导参数部分(每个“title”部分之后)

v      grub.conf文件中的加密配置行示例

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

password --md5 $1$Qq15d$bEjy8VeMCrNcIJCEESqyY/

title Red Hat Enterprise Linux Server (2.6.18-8.el5)

        password 123456

        root (hd0,0)

        ……

v      获得MD5加密格式的密码字符串

Ü      grub-md5-crypt

v      GRUB菜单加密的实际操作过程:先生成加密密码串,然后修改grub.conf文件(可同时设置明文、密文两种形式的密码),重启后演示在GRUB菜单中如何使用密码(按“p”键)

v      依次提出2个问题:

       如果忘记了GRUB密码进不去系统怎么办? —— (光盘修复)

       如果BIOS密码也忘记了,无法设置光盘优先启动怎么办? —— CMOS放电)

本地终端及登录控制

v      立即禁止普通用户登录

Ü      /etc/nologin

v      设置启用哪些tty终端

Ü      /etc/inittab

v      控制允许root用户登录的终端

Ü      /etc/securetty

v      更改系统登录提示,隐藏系统版本信息

Ü      /etc/issue /etc/issue.net

v      pam_access认证控制

Ü      配置文件/etc/pam.d/login

v       account   required   pam_access.so

Ü      配置文件:/etc/security/access.conf

v       权限  用户  来源

[root@localhost ~]# vi /etc/security/access.conf

……

- : ALL EXCEPT root : tty1           ----------禁止普通用户从tty1终端登录

- : root : 192.168.1.0/24 172.16.0.0/8   -------禁止root用户从指定网段远程登录

         pam_access认证控制的作用及相关配置文件,启用该功能需要设置这两个文件

         login文件中添加的配置记录用于启用该认证模块;access.conf文件中可以对各用户设置登录访问控制策略

         权限使用“+”或者“-”,分别表示允许、拒绝;用户部分可以使用用户名或者”@组名;来源可以是终端名、网络地址、IP地址等

 
阅读(1148) | 评论(0) | 转发(0) |
0

上一篇:ros2.96

下一篇:如何利用客户端在CU发博客

给主人留下些什么吧!~~