CISP-PTE - 操作系统安全
本文是 CISP-PTE 认证操作系统安全课程的学习笔记。
Linux 安全
系统安全
账户基本概念
/etc/passwd # 用户信息文件——存放用户信息
/etc/shadow # 用户账号影子文件——存放用户密码散列、密码管理信息
/etc/group # 组文件
/etc/gshadow # 组影子文件
useradd # 用户管理
-u # 指定新建用户的 ID
-c # 指定新建用户的全称
-d # 指定新建用户的主目录
-g # 指定新建用户的主组
-G # 指定新建用户的附加组
-s # 指定新建用户的登录 shell
-m # 强制建立用户的主目录
passwd # 密码管理
-d # 删除用户密码
-l # 锁定指定用户账户
-u # 解除指定用户账户锁定
-S # 显示指定用户账户的状态
usermod # 更改用户信息
-c # 更改用户的全称
-d # 更改用户的主目录
-u # 更改用户的 ID
-g # 更改用户的主组
-G # 更改用户的附加组
-s # 更改用户的登录 shell
-l # 更改用户的用户名
userdel # 删除用户(目录)
-r # 删除用户及其主目录
groupadd # 创建私人组
groupmod # 修改组属性
groupdel # 删除指定组
/etc/passwd | name | coded-passwd | UID | GID | userinfo | homedirectory | shell |
---|---|---|---|---|---|---|---|
格式 | 用户名 | 密码散列 | UID | GID | 用户信息 | 用户目录 | 登陆后使用的shell |
例子 | demo | x | 523 | 100 | J.demo | /home/demo | /bin/sh |
/etc/shadow | name | passwd | lastchg | min | max | warn | inactive | expire | flag |
---|---|---|---|---|---|---|---|---|---|
格式 | 用户名 | 密码 | 修改时间 | 最少用几天 | 最多用几天 | 过期前几天提示 | 还有多少天 | 被禁时间 | 保留域 |
例子 | root | $1$acQMceF9 | 13402 | 0 | 99999 | 7 | : | : | : |
文件权限 | 类型 | 所有者权限 | 组员权限 | 其它用户权限 | 链接数 | UID | GID | 大小 | 修改时间 | 文件名 |
---|---|---|---|---|---|---|---|---|---|---|
例子 | d | rwx | r-x | r-x | 3 | root | root | 1204 | Sep 13 11:58 | test |
账户安全
检查 passwd 和 shadow 清除多余账号
特殊保留的系统伪账号锁定登录
passwd -i <用户名> # 锁定 passwd -u <用户名> # 解锁
检查 passwd 中 ID=0 的账号
检查空口令账号
awk -F: ‘( $2== "") { print $1}' /etc/shadow
设置账号登录失败锁定次数和时间
vi /etc/pam.d/system-auth auth required pam_tally.so onerr=fail deny=6 unlock_time=300 vi /etc/pam.d/sshd auth required pam_tally2.so deny=3 unlock_time=120 even_deny_root root_unlock_time=60
设置账号超时自动注销
vi /etc/profile TMOUT=600
禁止 root 登录
只允许普通用户登陆,通过 su 命令切换到 root
不把 root shell 留在终端上
不把当前目录(“ . /”)和普通用户的 bin 目录放在 root 账号的环境变量 PATH 中
不以 root 运行其他用户或不熟悉的程序
口令安全策略
vi /etc/pam.d/system-auth # 口令复杂度策略设置 password requisite pam_cracklib.so # 修改为:password requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minlen=8
禁止 su 到 root
vi /etc/pam.d/su # 增加如下两行 auth sufficient pam_rootok.so auth required pam_wheel.so group=wheel
系统服务配置
- 禁止危险的网络服务:telnet、FTP、echo、chargen、shell、finger、NFS、RPC
- 关闭非必要的网络服务:talk、ntalk
- 确保最新版本
远程登录安全
禁用 telnet,使用 SSH
限制登录 IP
vi /etc/ssh/sshd_config # 添加或修改如下行 AllowUsers xyz@192.168.1.23 # 允许用户 xyz 通过 192.168.1.23 登录本机 AllowUsers *@192.168.*.* # 允许 192.168.0.0/16 网段所有用户通过 ssh 访问
禁止 root 远程登录
cat /etc/ssh/sshd_config # PermitRootLogin no
限定信任主机,或直接关闭所有R系列远程服务:rlogin、rsh、rexec
cat /etc/hosts.equiv cat /$HOME/.rhosts # 删除不必要的主机
修改 banner
vi /etc/ssh/sshd_config # 将 banner 字段设置为 NONE vi /etc/motd # 将文件内容更改为自己想要展示的内容
文件和目录安全
设置文件的属主和属性以进行保护
chattr +i /etc/passwd # 极其重要的文件或目录设置为不可改变属性
临时文件不应该有执行权限
设置新创建文件的默认权限掩码:使用 umask 命令
SUID/SGID 的程序在运行时,将 UID 改变为该程序的 GID,因而可能存在一定的安全隐患
find / -perm -4000 -user 0 –ls # 查找 SUID 可执行程序 find / -perm -2000 -user 0 –ls # 查找 SGID 程序
/root:root 文件系统是文件系统的顶级目录。它必须包含在挂载其它文件系统前需要用来启动 Linux 系统的全部文件。它必须包含需要用来启动剩余文件系统的全部可执行文件和库。文件系统启动以后,所有其他文件系统作为 root 文件系统的子目录挂载到标准的、预定义好的挂载点上 /bin:目录包含用户的可执行文件 /boot:包含启动 Linux 系统所需要的静态引导程序和内核可执行文件以及配置文件 /dev:包含每一个链接到系统的硬件设备的设备文件,不是驱动,而是计算机上能够访问的设备 /etc:包含主机计算机的本地系统配置文件 /home:主目录存储用户文件,每一个用户都有一个位于 /home 目录中的子目录 /lib:包含启动系统所需要的共享库文件 /opt:可选文件 /sbin:系统二进制文件,用于系统管理的可执行文件 /tmp:临时目录 /var:可变数据文件存储,包括日志文件、mysql 和其他的数据库文件 /usr:包含可共享、只读的文件,包括可执行的二进制文件和库等
Ext:第一个专门针对 Liunx 的文件系统 Ext2:为解决 Ext 文件系统缺陷设计的高性能、可扩展的文件系统 Ext3:日志文件系统,Ext2 的升级版 Ext4:Ext4 提供了更为可靠性的功能 swap:Linux 的交换分区 NFS:Linux 的网络文件系统 smb:支持 smb 协议的网络文件系统 vfat:与 Windows 系统兼容的 Linux 文件系统 ntfs:Windows NT 所采用的独特的文件系统结构 proc:Linux 操作系统中的一种基于内存的伪文件系统 xfs:由 SGI 开发的一个全 64 位、快速、安全的日志文件系统
ls # 查看文件属性
-a # 列出指定目录下所有的文件和子目录(包括以“.”开头的隐含文件)
-b # 如果文件或目录名中有不可显示的字符时,显示该字符的八进制值
-c # 以文件状态信息最后一次更新的时间进行排序
-d # 如果是目录,则显示目录的属性而不是目录下的内容
-g # 与 -l 类似,但不显示文件或目录所有者的信息
-G # 与 -l 类似,但不显示文件或目录所有者的用户组信息
-l # 使用长格式显示文件或目录的详细属性信息
-n # 与 -l 类似,但以 UID 和 GID 代替文件或目录所有者和用户组信息
-R # 以递归方式显示目录下的各级子目录和文件
Linux 四种基本文件属性:普通文件、目录文件、链接文件和特殊文件。
对于每个新创建的文件和目录,系统会为它们设置默认的访问权限。通过使用 umask 命令可以更改文件或目录的默认权限。
在创建文件或目录时,系统会先检查当前设置的 umask 值,然后把默认权限的值与权限掩码值相减,就得到新创建的文件或目录的访问权限。
在 Linux 中,每个用户都有自己的 umask 值,所以可以通过为不同安全级别的用户设置不同的 umask 值,来灵活控制用户的默认访问权限。
一般常见的做法就是在 .bash_profile 配置文件中设置 umask 值。
用户每次登录系统,都必须先读取 .bash_profile 配置文件的内容并执行,所以每次用户登录完成后,新的 umask 值都会立即生效。
系统日志配置
cat /etc/logrotate.d/syslog # 检查日志存储空间大小和时间的设置
使用安全软件
日志分析
系统日志分类
连接时间日志
/var/log/wtmp /var/run/utmp /var/log/lastlog # 由多个程序执行,记录用户登录时间
进程统计日志——由系统内核执行,为系统基本服务提供命令使用统计
错误日志
/var/log/messages # 服务器系统日志,由 syslogd 守护记录,制定注意的事项 /var/log/secure # 记录系统登录行为
Access-log:记录 web 服务的访问日志,error-log 是其错误日志 Acct/pacct:记录用户命令 btmp:记录失败记录 lastlog:记录最近几次成功登录的事件和最后一次不成功的登录 messages:服务器的系统日志 Sudolog:记录使用 sudo 发出的命令 Utmp:记录当前登录的每个用户 Wtmp:一个用户每次登录进入和退出时间的永久记录 Secure:记录系统登录行为,比如 ssh 的登录记录
系统日志审计方法
日志文件应记录尽可能多的信息。
日志文件应设置只允许 root 可读的权限。
制定日志文件的覆写计划。
通过日志文件排除不必要信息,定位重要信息。先实验出错情况,并记录尽可能多的错误信息,再修改脚本文件,使之不再产生不必要信息。
Windows 安全
远程登录鉴别协议
SMB(Server Message Block):口令明文传输 LM(LAN Manager):口令哈希传输,强度低 NTLM(NT LAN Manager):提高口令散列加密强度、挑战/响应机制 Kerberos:为分布网络提供单一身份验证
关闭管理共享
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters # 修改注册表
AutoShareServer
AutoShareWks
本地用户组
Administrators:该组用户具有对服务器的完全控制权限,并且可以根据需要向用户指派用户权限。 Backup Operators:可以备份和还原服务器上的文件,无需考虑文件的权限,并且不能更改安全设置。 Guests:该组成员拥有一个在登录时创建的临时配置文件,在注销时,该配置文件也被删除。 Envent Log Readers:可以从本地计算机中读取事件日志。 Power Users:该组成员可以创建、修改和删除账户。可以创建本地组,然后在他们已创建的本地用户组中添加或删除用户,也可以在 Power Users、Users 和 Guests 组中添加删除用户。可以创建共享资源并管理所创建的共享资源,不能取得文件的所有权、备份和还原目录、加载或卸载设备驱动程序、或者管理安全性以及日志。 users:该组的成员可以执行一些常见任务,如运行应用程序、使用本地和网络打印机及锁定服务器,用户不能共享目录或创建本地打印机。默认情况下,Domain Users、Authenticated Users、Interactive是该组的成员,所以在域中创建的任何用户账户都成为该组的成员。 Remote Desktop Users:可远程登录服务器。
复制和移动对文件夹权限的影响
在 NTFS 分区内和 NTFS 分区之间复制或者移动文件、文件夹时,Windows 系统会将其作为新文件或文件夹,因此,会对源文件或文件夹的 NTFS 权限产生影响。
在复制或移动文件或文件夹时,必须对目标文件夹有写入权限。
在复制文件或文件夹时,必须对源文件夹有读取权限。
在移动文件或文件夹时,必须对源文件夹有修改权限。
在单个 NTFS 分区内移动文件或文件夹时,该文件或者文件夹保留其原来的权限。
在 NTFS 分区之间移动文件或文件夹时,该文件或文件夹将继承目的文件夹权限(当在 NTFS 分区之间移动文件或文件夹时,实际是将文件或文件夹复制到新位置,然后将其从原位置删除)。
当将文件或文件夹移动到非 NTFS 分区时,因为非 NTFS 分区不支持 NTFS 权限,所以这些文件或文件夹将丢失其 NTFS 权限。
安全日志审核
通过日志审核功能,可以快速检测黑客的渗透和攻击,防止非法用户的再次入侵,主要是通过以下事件策略审核
- 对策略的审核
- 对登录成功或失败的审核
- 对访问对象的审核
- 对进程跟踪的审核
- 对账户管理的审核
- 对特权使用的审核
- 对目录服务访问的审核