本文基于生产环境最常用的CentOS 7系统编写,所有操作命令可直接复制执行,你仅需要拥有服务器root权限,即可完成全流程配置,无需额外技术基础。
合规要求首先清除系统中不必要的默认账号,避免被入侵利用,执行以下命令查看所有系统账号:
``` cat /etc/passwd | cut -f 1 -d: ```
对列表中不需要的账号,执行以下命令删除:
``` userdel -r 你要删除的用户名 ```
符合合规要求的密码规则为:最小长度8位,必须包含大写、小写、数字、特殊字符四类字符,密码90天过期,提前10天提醒修改。执行vi /etc/pam.d/system-auth,找到password开头的规则行,替换为以下内容:
``` password required pam_cracklib.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 ```
修改全局密码过期配置,打开/etc/login.defs,修改以下参数:
``` PASS_MAX_DAYS 90 PASS_MIN_DAYS 1 PASS_WARN_AGE 10 ```
合规要求禁止root账号直接远程登录,首先创建一个带sudo权限的普通管理员账号,执行以下命令:
``` useradd -m admin && usermod -aG wheel admin passwd admin ```
修改SSH配置,打开/etc/ssh/sshd_config,找到PermitRootLogin配置项,修改为:
``` PermitRootLogin no ```
重启SSH服务生效:注意:操作前不要断开当前root连接,新开窗口测试普通账号登录正常后再关闭原连接
``` systemctl restart sshd ```
合规要求默认拒绝所有访问,仅开放业务必需端口,执行以下命令启用firewalld防火墙并配置规则:

``` systemctl start firewalld systemctl enable firewalld firewall-cmd --set-default-zone=drop firewall-cmd --zone=drop --add-port=22/tcp --permanent firewall-cmd --zone=drop --add-port=80/tcp --permanent firewall-cmd --zone=drop --add-port=443/tcp --permanent firewall-cmd --reload ```
你可以根据自己的业务需求增删开放的端口,只需要复制对应端口行修改即可。
仅允许指定IP段访问SSH,打开/etc/hosts.allow,在文件末尾添加以下内容:
``` sshd: 你的允许IP段:allow ```
打开/etc/hosts.deny,在文件末尾添加以下内容,禁止所有其他IP访问SSH:
``` sshd: ALL ```
合规要求日志至少保留180天,修改日志轮转配置,打开/etc/logrotate.d/syslog,替换为完整配置:
```
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
daily
rotate 180
missingok
notifempty
compress
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
```
记录所有管理员sudo操作,方便合规审计,执行visudo打开sudo配置,在末尾添加以下内容:
``` Defaults logfile=/var/log/sudo.log ```
所有sudo操作都会被完整记录到/var/log/sudo.log,可随时回溯审计。
执行以下命令安装自动更新工具,开启安全补丁自动更新:
``` yum install -y yum-cron sed -i 's/apply_updates = no/apply_updates = yes/' /etc/yum/yum-cron.conf systemctl start yum-cron systemctl enable yum-cron ```
执行以下命令查看当前系统开放的所有端口:
``` ss -tulpn ```
对业务不需要的端口对应的服务,执行以下命令停止并禁用开机自启:
``` systemctl stop 服务名 systemctl disable 服务名 ```
grep PermitRootLogin /etc/ssh/sshd_config,确认返回结果为PermitRootLogin nogrep ^PASS /etc/login.defs,确认PASS_MAX_DAYS不大于90firewall-cmd --list-ports,确认列表中仅包含业务必需端口grep rotate /etc/logrotate.d/syslog,确认rotate值不小于180完成以上所有配置后,你的服务器已经满足基础等保合规要求,后续只需要定期登录检查审计日志即可,所有配置长期生效。












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图