============高级安全============
计算机防止进入,和进行计算机会需要些什么验证步骤,怎么控制他能干什么,到他干了些什么我们能知道。
--物理安全-----------要保证主机的是安全的,不在物理上丢失。这里面不讨论
-- 引导-- ----别让进入系统
安全-- --主机-- -- 密码安全---验证方式,安全策略安全算法
-- 权限 ------基本ugo+rwx 高级s+ugid,stiky,acl这此是内核权限,还的文件权限服务权限
--服务
--网络
主机的安全,---我们讨论的内容。(引导,密码,权限)
(1)本地安全 (主机安全)
访问控制:首先是引导安全:grub加密(GRUB 登录验证),bios加密 。
密码安全:
密码学(验证,加密,完整性检测)
(2) 密码破解方式:
1、反向破解
2、暴力破解 利用字典 解决办法:提高密码强度加强密码复杂程度、长度、有规律的密码,关闭root用户,另外建立一个0uid用户就可以了
3、社攻 声称自己是管理员,要你告诉密码
解决办法:
(1)提高密码复杂度 ---> 防止暴力破解
(2)密码定期修改 ---> 防止黑客得出碰撞值(chage)
(3)使用shadow文件 ---> 权限限制不让其他用户访问(authconfig-tui)
(4)使用更加复杂的加密算法(默认MD5)
本地的身份验证:主要是通过login进程来验证的。/etc/shadow,/etc/shadow 验证的是:这2个文件 ,密码保存在shadow中。使用md5算法比较安全。
authconfig -tui
验证配置命令,更改加密的方式,修改密码保存在那里,是保存早shadow里还是直接保存在passwd中。 如果我们取消md5算法,默认使用des,他们都是
散列算法,但是des算法没有那么复杂。可以到shadow查看密码文件。把md5和shadow文件取消并使用 passwd 命令再次设置密码再看看/etc/passwd文件,你会发现密码已经
到/etc/passwd文件里了,并且加密方式也不同了。传统Unix系统使用 DES加密 Linux系统中,若以 $1$ 开头就是MD5算法(打开/etc/shadow文件看看就知道了)
login是我们登录的验证程序
[root@stu86 ~]# vim /etc/shadow 放密码
root:$1$cJPio2I4$JW/ABiyBnce4JuwtE5b/o0:14530:0:99999:7:1:2:
root:用户名
$1$cJPio2I4$JW/ABiyBnce4JuwtE5b/o0: md5算法
14530: 密码修改时间,以天为单位,1970年以后的第14530天更改过root密码
0:
密码修改时间的最短时间 0 --是限制什么时间内不能修改,1 是一天内。0是无限
99999: 密码多久时间必须改,可以用这个选项强制改密码,--过了这么长时间一定要改
7: 密码到期时间警告信息告诉你,要改密码 密码警告时间,提前7天警告要改密码
1: 密码过了多久就失效了
2: 保留的
[root@ stationx ~]# chage --修改时间
用法:chage [选项] 用户名
选项:
-d, --lastday 最近日期 将最近一次密码设置时间设为“最近日期”
-E, --expiredate 过期日期 将帐户过期时间设为“过期日期”
-h, --help 显示此帮助信息并退出
-I, --inactive 失效密码 将因过期而失效的密码设为“失效密码”
-l, --list 显示帐户年龄信息
-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为“最大天数”
-W, --warndays 警告天数 将过期警告天数设为“警告天数”
例子: [root@ stationx ~]# chage -E 2010-10-30 shrek shrek用户 在这个时候帐户过期!!
*************************************************************************************************
(3)权限安全 : Linux把进程是用户对象进程对文件进行访问控制. 用户分为2类: uid=0 和 uid!=0 为0帐户的什么都能干, 不为0的就有限制。
|| --------------------> ||
subject
object
进程
文件
A、文件基本权限
ugo+-rwx 针对目录和文件 ,在目录里是创建mkdir和删除rm文件,读ls 文件是编辑edit和读cat
总结一:文件的删除与文件本身没有任何关系,只与上级目录的w权限有关。目录的x相当与cd命令,r相当于ls命令
B、文件的高级权限: Suid Sgid STiky解决文件和目录, suid对可执行文件,guid针对目录,sticky针对目录下的不同用户误删除别人文件问题
-rwsr-xr-x 1 root root 22960 2006-07-17 /usr/bin/passwd #用户s权限
-rwsr-xr-x 1 root root 23960 2008-10-31 /bin/su #用户s权限
[root@stu86 aa]# chmod o+t aa/ #root用户对aa目录加t粘贴为权限
[aa@stu86 aa]$ touch abc #切换普通aa用户建立一个abc文件
[user1@stu86 aa]$ rm -rf abc #切换user1普通用户无法删除aa用户建立的abc文件
rm: 无法删除 “abc”: 不允许的操作
总结二、
SUID:只对二进制可执行文件加权限,任何人执行可执行文件都已文件的拥有者的身份执行,标记位s。如果无x权限显示大写的S
SGID:针对二进制文件和目录加权限,任何人执行可执行文件都已文件的拥有者的身份执行;如果是对目录加权限,那么目录下建立的文件的权限继承目录的权限。标记
位s。如果无x权限显示大写的S
Ticky:只对目录可以加权限,目录中a用户建立的文件,必须是a用户才可以删除。root是超级用户不受此限制
C、文件访问控制列表facl 更细致的设置文件权限 ,原因是基本权限不能满足权限的需求 facl解决ugo对用户分类太大的问题,指定对某一个目录和组的权限!
setfacl ----设置
getfacl ----查看
getfacl readme.txt
setfacl -m user:zorro:rw readme.txt ---修改
serfacl -x u:zorro readme.txt ---删除
getfacl install.log #getfacl查看文件权限
setfacl -m user:user1:rw install.log #setfacl添加user1权限rw权限
setfacl -x u:user1 install.log #删除user1权限rw
还可以设置组权限、其他用户权限,以及mask权限
总结三、setfacl可以设置更细致的权限,弥补基本权限的不足。例如两个用户a和b都想对c文件有都是用户的拥有者,基本权限只能做到的只是加入到这个组中,并不能
使这个文件是两个用户的拥有者,setfacl可以做到。
D、文件系统的特殊权限: 只能在ext2/3这样的文件系统才能用这个权限,针对特定的用户设置权限chattr权限: lsattr查看权限,chattr更改权限
[root@stu86 ~]# man chattr
+a 只能追加
-a 删除
= 去掉原来的所有的权限,更改为自己想设置的权限属性。
c 压缩 (是压缩之后存,解压之后取,自动压缩用户不用手动压缩)
d 在备份的时候跳过 (有3中备份,完成备份,诧异和增量备份)自动压缩,对用户透明,存取空间变高
i 不可变
j 行程 -没有数据恢复的功能。相当于日志(只能在ext3里用,ext2里没有日志功能)一个文件名连接到inod是硬连接 名词metadasta
日志journalling解决文件一致性,加快文件系统检测,data journalling对数据进行日志。每隔5秒,内核将缓存中的数据写入磁盘
3种方式记日志 1.只记inod号
2.记inod 和 block 号
3.看系统忙不忙,不忙就可以记block号。忙就不记了
s 安全删除要清零 (就是不想要恢复这个文件,底格7编就恢复不出来数据了) 就是完全的删除,既删除inod号,又删除blaock里面的数据,并且无法恢复
u 便于恢复,inod 仍然保留。 便于恢复数据。undeletable
A 优化,读文件的时候不更改写的权限 no atime updates 时间不变,取消时间更新,对文件不更新
D synchronous directory updates(D) 同步目录更新,修改目录时直接同步,不经过缓存。直接写入硬盘。日志可以同步,因为小,不频繁,速度快。
S synchronous updates(S)
同步文件更新,直接同步,不经过缓存。
t 尾部不合并
T 不显示目录结构
chattr +a install.log #添加权限,只能追加,不能删除文件,不能更改文件内容
chattr -a install.log #删除权限
chattr =i aa #把所有的权限去掉,就是为i权限,可以删除和写入,但是不能更改文件的内容
lsattr b
#查看系统权限
总结四、系统权限常用的有a、i、s、j、d,但是这些权限使用的前提条件是必须是ext3文件系统。
inode--->metadata 亚数据,block--->data
数据
硬连结
索引
文件名---->inode---------->block
一个文件名是一个硬连接,删除一个文件,文件inode对应计数减1
inode为0表示文件的inode和block可以被随机占用
五、系统服务的权限
磁盘配额 quota权限 挂载的时候有权限 mount权限mount 默认以rw方式挂载,mount -o r /home,还有selinux,本身就是一个访问控制
访问控制概念:对主体,客体定义规则
linux:主体是进程,客体是文件*****
文件系统挂载参数中的权限设置,以同步只读的方式挂载,Mout -o r,sync /dev/sda5 /mnt
********************************************************************************************************
不能用root身份登录,会造成安全隐患,系统管理员都用普通用户执行命令在切换身份,怕误操作
设置一个可以使用sudo 的用户列表
[root@ stationx ~]# vim /etc/sudoers
root ALL=(ALL) ALL 表示:root在所有文件下。
[root@ stationx ~]# visudo ---这个命令就是执行vim /etc/sudoers 这个命令,
[root@stu86 ~]# vim /etc/sudoers 可以设置sudo的用户列表,需要密码就是本是用户的密码
82 ## Allows people in group wheel to run all commands
83 # %wheel ALL=(ALL) ALL
84
85 ## Same thing without a password
86 # %wheel ALL=(ALL) NOPASSWD: ALL
87 用户 所有密码 无密码
88 ## Allows members of the users group to mount and unmount the
89 ## cdrom as root
90 # %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
92 ## Allows members of the users group to shutdown this system
93 # %users localhost=/sbin/shutdown -h now
[root@stu86 ~]# visudo
***********************************************************************************************************
1.对于目录来说,没有x权限就读不了目录里面的文件,查看不了目录里的子目录和权限 就是ls用不了。但是没有x权限,还是能知道时原文件个数,但是不能写也不能看。
2. 对于目录来说,没有W权限就不能创建和删除目录里的文件和子目录
3.对于目录来说,没有r权限 只有在目录里不能用ls别的操作都可以。
文件的创建 删除是会按所在文件的目录来决定的,
如果实现每个人都可以创建文件,但每个人只能删除每个人自己的文件,要加权限 +t
如果uid=0 的用户不受限制 uid不等于0 受限制
给某些命令在执行时,临时附于命令所在用户的的权限,这就是suid sgid
**********************************************