1、Page,*,/37,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Linux,安全加固,主题提纲,GRUB,的使用,用户密码策略,PAM,应用,Sudo,应用,Page,2,/37,GRUB,的定义,GNU GRUB(GRand Unified Bootloader),是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个,GRUB,菜单或是,GRUB,的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的,RAM,大
2、小)。,Page,3,/37,设备名称,系统的第一个硬盘驱动器被,GRUB,称为,(hd0),第一个硬盘的第一个分区被称为,(hd0,0),第二个硬盘驱动器上的第,5,个分区被称为,(hd1,4),系统使用,IDE,硬盘或,SCSI,硬盘,都没有关系。所有的硬盘都是用,hd,开始。软盘用,fd,开头,Page,4,/37,GRU,B,的接口,菜单接口,菜单项目编辑器接口,命令行接口,Page,5,/37,Page,6,/37,Linux,安全设置,9-1,使用,GRUB,口令,编辑,/boot/grub/,grub.conf,,加入以下语句,password,12345,password -m
3、d5,$1$b347J/$n4ZBhcSGf7U75Am6iw/dX0,使用,grub-md5-crypt,生成加密密码,Page,7,/37,Linux,安全设置,9-2,修改默认,root,密码长度,/etc/pam.d/system-auth,中配置,:password requisite/lib/security/$ISA/pam_cracklib.so retry=3 minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1,)默认,lcredit ucredit dcredit ocredit,为,1,lcredit(,代表小写字母
4、)ucredit(,代表大写字母,)dcredit(,代表数字,)ocredit(,代表符号,),PAM,介绍,PAM,(,Pluggable Authentication Modules,)是由,Sun,提出的一种认证机制。它通过提供一些动态链接库和一套统一的,API,,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系 统中添加新的认证手段。,PAM,最初是集成在,Solaris,中,目前已移植到其它系统中,如,Linux,、,SunOS,、,HP-UX 9.0,等。,Page,8,/37,PAM,的框
5、架结构,Page,9,/37,PAM,支持的四种管理方式,认证管理(,authentication management,),主要是接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。,帐户管理(,account management,),主要是检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。,密码管理(,password management,),主要是用来修改用户的密码。,会话管理(,session management,),主要是提供对会话的管理和记账(,accounting,)。,Page,10,/37,PAM,的文件,/usr/
6、lib/libpam.so.*,PAM,核心库,/etc/pam.d/,PAM,配置文件,/lib/security/pam_*.so,可动态加载的,PAM,服务模块,Page,11,/37,PAM,的配置,/etc/pam.d/,目录下的每个文件的名字对应服务名,例如,ftp,服务对应文件,/etc/pam.d/ftp,如果名为,xxxx,的服务所对应的配置文件,/etc/pam.d/xxxx,不存 在,则该服务将使用默认的配置文件,/etc/pam.d/other,Page,12,/37,PAM,的配置,每个文件由如下格式的文本行所构成:,module-type control-flag
7、module-path arguments,module-type,模块类型有四种:,auth,、,account,、,session,、,password,,,即对应,PAM,所支持的四种管理方式。同一个服务可以调用多个,PAM,模块进行认证,这些模块构成一个,stack,。,control-flag,用来告诉,PAM,库该如何处理与该服务相关的,PAM,模块的成功或失败情况。它有四种可能的 值:,required,,,requisite,,,sufficient,,,optional,。,module-path,用来指明本模块对应的程序文件的路径名,一般采用绝对路径,如果没有给出绝对路径,
8、默认该文件在目录,/usr/lib/security,下 面。,arguments,是用来传递给该模块的参数,Page,13,/37,常用认证模块,Pam_unix.so,该模块的主要功能是禁止密码为空的用户提供服务,Pam_permit.so,总是无条件地使认证成功,Pam_deny.so,总是无条件地使认证失败,通常该模块被用来作为缺省的验证规则,Pam_cracklib.so,该模块对用户密码提供强健性检测,Page,14,/37,实例演示,/etc/pam.d/system-auth,auth required /lib/security/$ISA/pam_env.so,auth su
9、fficient /lib/security/$ISA/pam_unix.so likeauth nullok,auth required /lib/security/$ISA/pam_deny.so,account required /lib/security/$ISA/pam_unix.so,account sufficient /lib/security/$ISA/pam_succeed_if.so uid 100 quiet,account required /lib/security/$ISA/pam_permit.so,password requisite /lib/securit
10、y/$ISA/pam_cracklib.so retry=3,password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtok md5 shadow,password required /lib/security/$ISA/pam_deny.so,session required /lib/security/$ISA/pam_limits.so,session required /lib/security/$ISA/pam_unix.so,Page,15,/37,16,使用,sudo,提升执行权限,sudo,机制,用途:
11、以可替换的其他用户身份执行命令,若未指定目标用户,默认将视为,root,用户,格式:,sudo -u,用户名,命令操作,rootlocalhost#sudo-u zhangsan/bin/touch/tmp/sudotest.file,rootlocalhost#ls-l/tmp/sudotest.file,-rw-r-r-1 zhangsan zhangsan 0 05-26 09:09/tmp/sudotest.file,以,zhangsan,用户身份创建的文件属性,17,使用,sudo,提升执行权限,配置文件:,/etc/sudoers,授权哪些用户可以通过,sudo,方式执行哪些命令,
12、以下,2,种方法都可以编辑,sudoers,文件,visudo,vi /etc/sudoers,18,使用,sudo,提升执行权限,在,sudoers,文件中的基本配置格式,用户 主机名列表,=,命令程序列表,rootlocalhost#grep root/etc/sudoers,root ALL=(ALL)ALL,被授权的用户,在哪些主机中使用,允许执行哪些命令,针对,root,用户的,sudo,配置,特例,允许以哪些用户的身份执行命令,缺省为,root,19,使用,sudo,提升执行权限,应用示例,1,:,需求描述:,允许,用户mikey通过sudo,执行,/sbin,、,/usr/bin
13、目录下的所有命令,但是禁止调用ifconfig,、,vim,命令,授权,wheel,组的用户不需验证密码即可执行所有命令,rootlocalhost#visudo,Defaults logfile=/var/log/sudo,mikey localhost=/sbin/*,/usr/bin/*,!/sbin/ifconfig eth0,!/usr/bin/vim,%wheel ALL=(ALL),NOPASSWD:,ALL,rootlocalhost#vi/etc/syslog.conf,local2.debug/var/log/sudo,20,使用,sudo,提升执行权限,为,sudo,配置项定义别名,关键字:,User_Alias,、,Host_Alias,、,Cmnd_Alias,在,sudo,配置行中,可以调用已经定义的别名,rootlocalhost,#,visudo,User_Alias,OPERATORS=,jerry,tom,tsengyia,Host_Alias,MAILSERVERS=,mail,smtp,pop,Cmnd_Alias,SOFTWARE=/bin/rpm,/,usr,/bin/yum,OPERATORS MAILSERVERS=SOFTWARE,Page,21,/37,谢谢,






