CH08 服务器安全基础
本章讲解 Linux 物理安全、登录安全、口令安全、软件安全、服务安全、系统安全、信息安全、访问控制等内容。
- 物理安全
- 禁止 BIOS/UEFI 的附加存储介质启动系统
- 设置 BIOS/UEFI 修改口令
- 设置 GRUB 的修改口令
- 禁用
<Ctrl>+<Alt>+<Delete>
重启功能
- 登录安全
- 禁用非必要的登录设备
- 在离开终端时使用
vlock
锁屏 - 为 BASH 设置超时自动注销
- 为 OpenSSH 设置超时自动注销
- 限制 root 用户 bash 命令历史的记录条目数量
- 配置 sudo 并禁止 root 用户登录
- 配置所有用户使用用户密钥而非用户口令登录 SSH 服务
- 口令安全
- 使用
pam_unix.so
模块限制用户使用旧口令 - 使用
pam_pwquality.so
模块实现口令复杂性检查 - 使用
pam_tally2.so
模块实现登录失败的账户锁定
- 使用
- 软件安全
- 安装和运行最少的软件
- 保持软件更新
- 获取安全更新通知或直接进行安全更新
- 服务安全
- 关闭不必要的服务
- 使用安全服务替代不安全的服务(如使用 ssh 替代 telnet 服务;使用 sftp 替代 ftp 服务等)
- 在不同的系统或虚拟机上运行不同的网络服务
- 使用
fail2ban
/denyhosts
工具保护 SSH 服务及其他基于用户认证的服务 - 优化内核参数防止 DoS/DDoS 攻击
- 系统安全
- 使用合理的磁盘布局将系统数据与用户数据分离
- 使用挂装选项(
nodev
,nosuid
,noexec
)提高文件系统的安全性 - 为用户和软件执行任务赋予所必需的最低权限
- 使用
aide
工具实现重要文件的完整性检查 - 使用
rkhunter
/chkrootkit
工具实现 rootkit 检查 - 制定灾难恢复计划并检测备份的有效性
- 启用远程系统日志服务器防止入侵者篡改本地日志
- 信息安全
- PKI 体系
- 文件加密与解密
- 数字签名与验证
- SSL/TLS 协议 - 数据保密性、数据完整性、不可抵赖性
- 创建主机私钥和自签名证书
- 访问控制
- 使用
pam_access.so
实现登录访问控制 - 使用
pam_wheel.so
实现 对 su/sudo 的访问控制 - 使用
pam_listfile.so
实现基于 用户/组 的访问控制 - 使用
pam_limits.so
实现 用户/组 对系统资源的访问控制 - 使用 TCP Wrappers 实现基于 主机/网络 的访问控制
- 使用防火墙实现访问控制(见下一章)
- 使用