麒麟linux安全加固笔记

2025-09-29

markdown 编辑


layout: post title: “安全加固笔记” date: 2024-10-11 tags: [安全加固, Linux安全, 系统加固] comments: true author: VR2050 toc: true —

安全加固笔记

作者:VR2050
更新时间:2024-10-11
适用系统:通用 Linux 系统,特别适用于麒麟信安、凝思等国产操作系统

本文记录 Linux 系统安全加固过程中的关键配置项与操作命令,涵盖用户管理、密码策略、服务控制、访问限制等方面,适用于等保合规与日常安全运维。


1. 系统信息识别

查看操作系统发行版本

```bash cat /etc/issue

注意:麒麟信安(湖南麒麟)系统需使用以下命令:

bash 编辑

cat /etc/.kyinfo

查看内核版本

bash 编辑

uname -a

  1. 用户账户配置

查看可登录用户(排除 nologin 和 false):

bash 编辑

cat /etc/passwd grep -v “nologin” grep -v “false”
  1. 密码复杂度策略

检查密码复杂度模块配置:

bash 编辑

cat /etc/pam.d/common-password grep “pam_cracklib.so”

若未配置或需加强,建议添加以下内容:

bash 编辑

password requisite pam_cracklib.so retry=5 minlen=8 difok=3
dcredit=-2 ucredit=-1 ocredit=-2 lcredit=-1

参数 含义 retry=5 密码错误最多尝试 5 次 minlen=8 最小长度 8 位 difok=3 至少包含 3 个与旧密码不同的字符 dcredit=-2 至少包含 2 个数字 ucredit=-1 至少包含 1 个大写字母 ocredit=-2 至少包含 2 个特殊字符 lcredit=-1 至少包含 1 个小写字母

建议使用 pam_pwquality.so 替代老旧的 pam_cracklib.so(功能更强大)。
  1. 登录失败锁定策略

查看当前登录失败锁定配置:

bash 编辑

cat /etc/pam.d/common-auth grep pam_tally2.so

编辑配置文件,添加以下规则:

bash 编辑

auth required pam_tally2.so deny=5 unlock_time=600
even_deny_root root_unlock_time=600

参数 含义 deny=5 认证失败 5 次后锁定账户 unlock_time=600 普通用户锁定 600 秒(10 分钟) even_deny_root 同样适用于 root 用户 root_unlock_time=600 root 用户解锁时间

修改后可通过 pam_tally2 --user=username --reset 解锁用户。
  1. 口令有效期配置

查看当前 PAM 配置:

bash 编辑

cat /etc/pam.d/system-auth-ac grep password

编辑配置文件(如 /etc/pam.d/system-auth-ac 或 /etc/login.defs):

bash 编辑

vim /etc/pam.d/system-auth-ac

建议设置密码策略(结合 login.defs): 配置项 推荐值 说明 PASS_MAX_DAYS 90 密码最长有效期(90天) PASS_MIN_LEN 8 最小密码长度 PASS_MIN_DAYS 1 密码最短修改间隔(1天) PASS_WARN_AGE 10 到期前10天开始提醒

对 root 用户设置有效期:

bash 编辑

chage -M 90 root

注意:所有可登录用户均需执行 chage -M 90 <username> 设置。
  1. 桌面环境检查

查看桌面用户目录:

bash 编辑

ls /home/desktop

查看已安装软件包列表:

bash 编辑

rpm -qa

可用于排查冗余或可疑软件。
  1. Umask 权限配置

查看默认 umask 设置:

bash 编辑

cat /etc/login.defs grep UMASK

建议设置更严格的权限掩码:

bash 编辑

umask 027

含义:新建文件权限为 640,目录为 750,防止其他组用户访问。
  1. 安全内核模块配置

检查安全模块是否加载(如 linx_sec):

bash 编辑

lsmod grep linx_sec
若系统启用蓝牙,建议禁用以减少攻击面:

bash 编辑

service bluetooth stop

mv /lib/modules/$(uname -r)/kernel/drivers/bluetooth /BAK

rmmod bluetooth

  1. 禁用 USB 存储设备

检查 USB 存储模块是否加载:

bash 编辑

lsmod grep usb_storage

永久禁用方法:

bash 编辑

mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /BAK

rmmod usb_storage

可有效防止通过 U 盘进行数据窃取或病毒传播。
  1. 消除多余网络接口

查看当前网络接口状态:

bash 编辑

service network status ifconfig

关闭不需要的网络接口:

bash 编辑

ifconfig eth1 down

将该命令加入 /etc/rc.local 实现开机自动关闭。
  1. 禁用 CD-ROM 光驱

检查 CD-ROM 相关模块:

bash 编辑

lsmod grep sr_mod
lsmod grep cdrom

禁用方法:

bash 编辑

mv /lib/modules/$(uname -r)/kernel/drivers/scsi/sr_mod.ko /BAK

mv /lib/modules/$(uname -r)/kernel/drivers/cdrom/cdrom.ko /BAK

rmmod sr_mod

rmmod cdrom

防止通过光盘启动或加载恶意介质。
  1. 限制远程管理地址

仅允许指定 IP 访问 SSH 服务。

编辑白名单:

bash 编辑

vim /etc/hosts.allow

conf 编辑

sshd:192.168.1.100:allow sshd:10.0.1.0/24:allow

拒绝其他所有:

bash 编辑

vim /etc/hosts.deny

conf 编辑

sshd:all:deny

实现基于 IP 的访问控制,提升安全性。
  1. SSH 远程管理超时自动退出

防止会话长时间空闲,设置自动登出。

在 /etc/profile 中添加:

bash 编辑

echo “readonly TMOUT=600” » /etc/profile echo “export TMOUT” » /etc/profile

或查看现有配置:

bash 编辑

grep TMOUT /etc/profile

TMOUT=600 表示 600 秒(10 分钟)无操作自动退出。
  1. 禁止 root 用户远程登录

编辑 SSH 配置文件:

bash 编辑

vim /etc/ssh/sshd_config

修改以下参数:

conf 编辑

PermitRootLogin no

重启 SSH 服务使配置生效:

bash 编辑

systemctl restart sshd

或 service ssh restart

强烈建议禁用 root 远程登录,使用普通用户 + sudo 管理。
  1. 远程用户资源限制

查看当前用户资源限制配置:

bash 编辑

cat /etc/security/limits.conf

建议添加以下限制(防止 DoS 或资源耗尽):

conf 编辑

防止 core dump

  • soft core 0
  • hard core 0

限制进程数

  • soft nproc 1024
  • hard nproc 2048

限制打开文件数

  • soft nofile 1024
  • hard nofile 4096

锁定内存(可选)

* soft memlock 524288

* hard memlock 524288

修改后需重新登录生效。

温馨提示:

    所有操作建议在测试环境验证;
    修改前备份原始文件(如 cp sshd_config sshd_config.bak);
    安全加固后建议进行全面功能测试。