CentOS 加固指南
CentOS 是一个广泛使用的 Linux 发行版,尤其在企业环境中,为了确保 CentOS 系统的安全性,我们需要采取一系列的加固措施,本文将详细介绍如何通过用户和口令管理、服务优化、文件系统保护、日志管理和网络访问控制等方面来提高 CentOS 系统的安全性。
一、用户和口令管理
1、禁用或删除无用账号:
使用userdel <用户名>
命令删除不必要的账号。
使用passwd l <用户名>
命令锁定不必要的账号。
使用passwd u <用户名>
命令解锁必要的账号。
备份操作前的用户和组文件:cp /etc/passwd /etc/passwd_bak
和cp /etc/shadow /etc/shadow_bak
。
2、检查特殊账号:
查看空口令和 root 权限账号:
awk F: '($2=="") {print $1}' /etc/shadow awk F: '($3==0) {print $1}' /etc/passwd
为空口令账号设定密码并确认 UID 为零的账号只有 root 账号。
3、添加口令策略:
修改/etc/login.defs
配置文件:
PASS_MAX_DAYS 90 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 PASS_MIN_LEN 14
使用chage
命令修改用户设置:chage m 0 M 30 E 20000101 W 7 <用户名>
。
4、限制用户 su:
修改/etc/pam.d/su
配置文件,在头部添加:
auth required /lib/security/pam_wheel.so group=test
使用usermod G10 test
将 test 用户加入到 wheel 组。
5、禁止 root 用户直接登录:
修改/etc/ssh/sshd_config
配置文件,将PermitRootLogin
的值改为no
,然后重启 sshd 服务:systemctl restart sshd
。
6、SSH 认证次数限制:
修改/etc/ssh/sshd_config
文件,将MaxAuthTries
次数改为 3。
二、服务优化
1、关闭不必要的服务:
使用systemctl disable <服务名>
设置服务在开机时不自动启动。
systemctl disable abrtccpp abrtd acpid auditd autofs blkavailability certmonger cgconfig cpuspeed crond cups haldaemon ip6tables iptables irqbalance kdump lvm2monitor mcelogd mdmonitor messagebus netconsole netfs network nfslock portreserve postfix restorecond rpcbind rpcgssd rsyslog sshd sysstat udevpost`
2、最小化服务:
确保只保留必要的服务,停止或禁用与承载业务无关的服务。
三、文件系统保护
1、设置合理的初始文件权限:
修改/etc/profile
文件,设置umask=027
。
2、限制 su 权限:
修改/etc/pam.d/su
配置文件,在头部添加:
auth required /lib/security/pam_wheel.so group=wheel
四、日志管理
1、启用和记录登录日志:
确保/var/log/lastlog
和/var/run/faillock/
记录登录和登出事件。
修改/etc/audit/audit.rules
文件,添加如下行:
w /var/log/lastlog p wa k logins w /var/run/faillock/ p wa k logins
重启 auditd 服务:service auditd restart
。
五、网络访问控制
1、使用 SSH 进行管理:
确保 SSH 服务已开启:service sshd start
。
修改/etc/ssh/sshd_config
文件,添加以下语句以限制能够管理本机的 IP 地址:
AllowUsers *@10.138.*.
保存后重启 SSH 服务:service sshd restart
。
2、禁止 root 用户远程登录:
确保PermitRootLogin
的值设置为no
。
六、其他安全措施
1、设置核心转储的硬限制:
在/etc/security/limits.conf
文件中添加如下配置行:
hard core 0
在/etc/sysctl.conf
文件中添加如下配置行:
fs.suid_dumpable = 0
2、系统中确保删除 rpcgen 工具:
执行以下命令,返回值为空:
file df local P | awk {'if (NR!=1) print $6'} | xargs I '{}' find '{}' xdev name rpcgen 2>/dev/null 2>/dev/null| grep i “ELF” | head
七、FAQs
1、为什么需要备份配置文件?:
备份配置文件可以在操作错误导致系统无法正常启动或配置失效时,快速恢复系统。
2、如何确保 SSH 服务的安全?:
确保 SSH 服务只允许特定 IP 地址访问,并限制 root 用户远程登录,可以通过修改 SSH 配置文件中的MaxAuthTries
参数来限制认证次数,防止暴力破解。
3、如何防止用户覆盖软变量?:
通过设置核心转储的硬限制,可以防止用户覆盖软变量,在/etc/security/limits.conf
文件中添加hard core 0
,并在/etc/sysctl.conf
文件中添加fs.suid_dumpable = 0
。