公司企业多用Linux服务器,其中涉及到的一些安全管理对于安全运维人员来说是必不可少的应知技能,
以下案例沿着背景->需求->具体要求->操作步骤的流程进行描述,可以加深对安全管理的理解。
1. 操作条件: (1)装有 Cent OS Linux 操作系统的虚拟机一台 2. 背景: 某企业有一台服务器,其信息如下: (1) 该服务器上存在管理员 root,密码为 root,另存有一些具有 root 权限的 其他账户,经确认这些账户长期未使用; (2) “/secure”文件夹为公司开发部的重要文件夹,目前权限为所有人完全 控制。实际使用需求为:只有 “develops”组的管理员“deadmin”和 “develops”小组成员能对组进行任何操作;其他用户组只能查看。 (3) 服务器默认可以通过所有的 TTY 进行登录,并且 root 用户可以通过 SSH进行远程登录; (4) 任何用户可以切换 su 登录。
3. 需求: 现需要对该服务器进行安全加固,减少攻击面: (1) 防止黑客爆破 root 用户密码,并防止黑客通过其他管理员用户入侵的可能性。对新建账户强制要求8位以上的复杂密码,
并至少每两个月修改一次密码,到期前一个礼拜 醒客户修改密码; (2) 防止未经授权的文件访问; (3) 防止未经授权的 TTY 登录,仅留 1,2 两个 TTY 登录入口; (4) 防止 root 用户直接远程登录; (5) 防止因忘记注销而产生的安全问题,超时 5 分钟后自动注销;
(6) 防止任意用户使用 su 切换成 root 账户; (7) 防止账户文件被修改。
4. 具体要求: (1) 找出并锁定未使用的管理员账户,并对管理员账户设置强密码 1qaz@WSX;
(2) 检查口令策略是否符合要求,并正确设置; (3) 根据访问需求设置“/secure”文件夹权限; (4) 正确部署登录策略(包括 TTY 登录、远程登录、和 su 切换限制); (5) 正确设置自动注销; (6) 正确限制 su 切换,仅限 wheel 组才能切换至 root;
(7) 锁定账户文件防止被修改。
5. 操作步骤: 步骤1. 安全管理账户: (1) 为 root 用户设置强密码:打开终端,依次输入下列命令
passwd root 1qaz@WSX 1qaz@WSX (2) 找出 UID 为 0 的用户,并锁定:在终端中依次输入下列命令 cat/etc/passwd //发现UID为0的用户为testadmin
passwd -l testadmin //锁定 testadmin 用户 (3) 创建/secure 文件夹的使用账户和组:在终端中依次输入下列命令 groupadd develops useradd -g develops deadmin passwd deadmin zaq1@WSX zaq1@WSX //这里密码任意 步骤2. 文件系统安全管理: (1) 设置适当的用户文件权限:在终端中依次输入下列命令 chown deadmin:develops /secure
chmod 774 /secure 步骤3. 系统加固 (1) 设置口令策略:在终端中依次输入下列命令 cat /etc/login.defs vi /etc/login.defs(按 i 进行编辑,qw 保存并推出) 修改如下行: PASS_MAX_DAYS 60 PASS_MIN_DAYS 0 PASS_MIN_LEN 8 PASS_WARN_AGE 7 (2) 防止 TTY 登录,仅留 1,2 两个 TTY 登录入口:在终端中输入下列命令 vi /etc/inittab (按 i 进行编辑,qw 保存并推出) 注释如下行: #3:2345:respawn:/sbin/mingetty tty3
#4:2345:respawn:/sbin/mingetty tty4
#5:2345:respawn:/sbin/mingetty tty5
#6:2345:respawn:/sbin/mingetty tty6 (3) 设置自动注销超时时间:在终端中输入下列命令 vi /etc/profile (按 i 进行编辑,qw 保存并推出) 在 HISTSIZE=1000 下面加入行: TMOUT=300 (4) 防止任意用户使用 su 切换到 root:在终端中输入下列命令 vi /etc/pam.d/su (按 i 进行编辑,qw 保存并推出) 在头部加入行: auth required pam_wheel.so group=wheel (5) 防止 root 用户远程登录:在终端中输入下列命令 vi /etc/ssh/sshd_config (按 i 进行编辑,qw 保存并推出) 修改如下行: PermitRootLogin no (6) 锁定账户文件:在终端中依次输入下列命令 chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/gshadow
chattr +i /etc/group