系统安全
基于Linux的安全加固措施,主要是对权限进行控制:
- 账号安全
- 使用 usermod -s /sbin/nologin 用户 将非登录用户设置为nologin
- -s 指定用户的登录shell
- 登录shell设置为 /bin/bash 表示可登录
- 登录shell设置为 /sbin/nologin 表示不可以登录
- 锁定长期不使用的账号
- 锁定账号:usermod -L 用户
解锁账号:usermod -U 用户 - 锁定密码:passwd -l 用户
解锁密码:passwd -u 用户 - 这两种方式都不会影响root用户切换,但是普通用户想要切换到被锁定的用户就会被禁止
- 锁定账号:usermod -L 用户
- 删除无用的用户
- 删除用户:userdel 用户
- 在删除用户的同时删除用户的家(home)目录:userdel -r 用户
- 锁定重要文件,禁止其他用户修改
- 查看文件是否被锁定:lsattr 文件
- 锁定文件的修改:chattr +i 文件
- 哪些是重要文件?
/etc/passwd,/etc/shadow(用户密码),/etc/fstab(自动挂载文件),nginx.conf(进程的重要配置文件)
- 哪些是重要文件?
- 解锁文件:chattr -i 文件
- 使用 usermod -s /sbin/nologin 用户 将非登录用户设置为nologin
- 密码控制
- 设置密码的有效期,要求用户在特定时间修改密码
- 对于新建用户如何进行密码控制?
对 /etc/login.defs 文件进行修改,相关代码主要是这几行
一般来说都只改第一个,把99999改成想要的天数,比如30。设置完成保存退出后,所有新建的用户都会有一个30天的密码有效期。 - 对于已有用户如何进行密码控制?
- 直接改 /etc/shadow 文件,把后面的99999改成想要的天数即可,但工作中这个文件一般是锁定的,不太建议直接来这里直接修改

- 比较常用的方法:chage -M 天数 用户

- 直接改 /etc/shadow 文件,把后面的99999改成想要的天数即可,但工作中这个文件一般是锁定的,不太建议直接来这里直接修改
- 强制用户在下一次登录时修改密码:chage -d 0 用户
- 对于新建用户如何进行密码控制?
- 历史记录控制
- 查看历史记录的命令是history,可以看到输入过的命令的历史记录
- 临时清理:history -c ,全部清空,但是一重启就会还原
- 永久清理:进入 /etc/profile (/etc/profile 是Linux系统的全局配置文件,对所有用户都会生效),将 /etc/profile 中的 HISTSIZE 改为想要的大小(一般60-100)

保存退出后别忘了用 source /etc/profile 使文件立刻生效(重启也可以)
- 登录超时控制
- 进入 /etc/profile 中,在最后一行一行添加:TMOUT=10,这代表10秒内没有动作就会自动退出登录,(打字不算“动作”哦)
另外修改配置文件,如果是新增内容的话,一般建议在文件的最后一行添加,避免文件出错。
- 进入 /etc/profile 中,在最后一行一行添加:TMOUT=10,这代表10秒内没有动作就会自动退出登录,(打字不算“动作”哦)
- su 命令限制
- su 命令可以切换用户,有时需要限制普通用户切换到其他用户,使他只能在自己的环境中使用
- 进入 /etc/pam.d/su 文件,将第6行(默认)注释(#)给删除

这样设置后,所有普通用户将无法切换用户,root用户不受影响
- sudo 授权控制
- sudo 命令是使普通用户可以使用 root 的一些命令,比如

如何给予普通用户需要的 root 权限?
首先将请求的用户加入到 wheel 组。
什么是 wheel 组?
wheel 组是一个特殊的组,加入 wheel 组的普通用户将可以和 root 用户一样,使用管理员命令(需要配合 sudo 使用),把一些有特殊需要的用户加入到 wheel 组。wheel 组默认为空,需要管理人员手动添加。配置 wheel 组权限时,要注意权限最小化,即只配置用户需要的命令,只配置任务需要的最小权限。 - 进入 /etc/sudoers 文件进行 wheel 组权限配置,注意:这个文件的默认权限为400(rwx------),保存时必须用wq!
先将第107(默认)行注释掉,这一行原本表示给予 wheel 组成员所有 root 权限
接着在最后添加语句,这句表示赋予 dzd 这个用户 root 权限中的 /usr/bin/yum
- 接着使用 gpasswd -a dzd wheel 将 dzd 这个用户加入到 wheel 组中

- 这样一来 dzd 这个用户就可以使用 yum 命令了

- 如何知道自己要添加的命令在哪个目录下?
用 whereis 查看就是了
- sudo 命令是使普通用户可以使用 root 的一些命令,比如
- 关键字批量控制
- 依然是在 /etc/sudoers 文件内,在文件最后添加这样几条语句

LOCALHOST:指本机,也可以用别名
dzd:需要进行控制的用户名
/sbin*:表示赋予 /sbin 下的所有命令的权限
!/sbin/reboot:! 表示不赋予这个命令的权限,这里指不赋予 reboot(重启)的权限,后面的也类似
MYUSERS MYHOSTS=MYCMNDS:赋予在这个 MYHOSTS(主机)上的这些 MYUSERS(用户)这些 MYCMNDS(命令权限) - 实际效果如下
注意一点,如果在测试时出现 User root is logged in on sshd. 的报错,这其实是说root用户正在登录中,你需要将 root 用户退出,然后直接登录测试的用户进行测试。
- 依然是在 /etc/sudoers 文件内,在文件最后添加这样几条语句
- 设置密码的有效期,要求用户在特定时间修改密码
文件系统与日志分析
文件是存储在硬盘上的,硬盘的最小存储单位是扇区,一个扇区是512字节,连续的8个扇区组成一个块(block,4K),块是文件的最小存储单位,也就是说创建一个文件,最少也要占1个块,4K的大小。读取文件时也是按照一个块一个块读取的。
文件数据包括实际数据和元信息:
- 元信息:包含文件的创建者,创建日期,文件大小,文件权限等信息,元信息保存在inode中。
- inode:索引节点。只要创建文件,系统就会给文件分配一个 inode ,inode 在同一目录下是不重复的。(回收后的 inode 可以继续使用)。操作系统根据 inode 来识别不同的文件,每当用户打开一个文件时,系统就会读取这个文件的 inode,查看该用户是否具有权限,或者进行一些其他操作。inode 也占用空间,不过很小,一般只占用128-256字节。
查看文件 inode 的命令:ls -i
查看挂载点 inode 情况:df -i
- 如果 inode 耗尽:
- xfs 文件系统:inode 用尽后还可以创建少量文件
- ext3 文件系统:inode 一旦用尽后就无法再创建新文件了
- 通过 inode 可以删除一些系统无法删除的文件
- find -inum 121241231 -exec rm -rf {} \
XFS文件系统的备份与恢复
备份:xfsdump
恢复:xfsrestore
备份的级别:0表示完全备份,1-9表示增量备份,默认备份级别为0,工作中也是全量备份
备份的命令格式:
xfsdump -f /opt/backup /dev/sdb3 [-L backup -M sdb3]
-f 指定备份文件的路径和文件名
/opt/ 是备份文件的路径
backup 是备份文件的文件名,它不能是一个目录,且不能有内容,所以最好是一个不存在的文件,这样系统会自动创建
/dev/sdb3 是备份的设备
中括号内的 backup 最好与 /opt/backup 的名字一致,同理 sdb3 也需要与 /dev/sdb3 的名字一致
-L 指向备份文件名
-M指向备份设备分区
xfsdump 使用条件:
-
只能备份已经挂载的分区
-
只能使用root权限才可以操作
-
只能备份xfs文件系统
-
只能通过 xfsrestore 来恢复备份数据
恢复的命令格式:
xfsrestore -f /opt/backup /data3
-f 指定从哪个文件恢复
/data3 指定恢复到的目录
391



被折叠的 条评论
为什么被折叠?



