按账号权限、SSH 加固、系统基础、防火墙、日志审计、服务最小化、文件权限、内核安全、入侵防护、定期维护分类整理,生产环境通用,适用于 CentOS、Debian、openEuler、银河麒麟等主流发行版。
一、账号与权限安全
禁止 root 直接登录
SSH 禁止 root 登录,使用普通用户 + sudo 提权。
/etc/ssh/sshd_config:PermitRootLogin no
禁用无用账号
bash
userdel 废弃用户名 passwd -l 用户名 #锁定账号sudo 权限精细化
不直接给 ALL 权限,只分配业务所需命令,编辑
/etc/sudoers。密码策略加固
密码复杂度、有效期、重试次数,修改
/etc/security/pam_unix.so、/etc/login.defs
ini
PASS_MAX_DAYS 90 #密码90天过期 PASS_MIN_DAYS 7 PASS_WARN_AGE 14删除闲置的 UID=0 账号,除 root 外不允许其他用户 UID 为 0。

二、SSH 服务加固(最常用入口)
编辑/etc/ssh/sshd_config
ini
Port 2222 # 修改默认22端口(可选)
PermitRootLogin no # 禁止root登录
PasswordAuthentication no # 关闭密码登录,优先密钥登录
PubkeyAuthentication yes # 开启密钥认证
MaxAuthTries 3 # 最大尝试次数
AllowUsers user1 user2 # 白名单,仅允许指定用户登录
PermitEmptyPasswords no # 禁止空密码
X11Forwarding no # 关闭X11转发
AllowTcpForwarding no # 不需要端口转发就关闭
修改后重载:systemctl restart sshd
最佳实践:密钥登录,彻底关闭密码登录,避免暴力破解。
三、防火墙配置
firewalld(CentOS/openEuler)
bash
systemctl enable --now firewalld
firewall-cmd --set-default-zone=drop # 默认拒绝
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
ufw(Debian/Ubuntu)
bash
ufw default deny incoming
ufw allow ssh
ufw allow 80/tcp
ufw enable
原则:默认全部拒绝,只放行业务需要端口,不要直接
iptables -F清空规则。
四、系统更新与软件最小化
定期更新系统补丁
bash
yum update -y # RHEL系
apt update && apt upgrade -y # Debian系
卸载不用的服务、软件包,关闭开机自启
bash
systemctl disable --now avahi-daemon cups rpcbind
移除不需要的编译工具、telnet、rlogin 等不安全老协议。
生产服务器不要装 gcc、cmake 等编译环境,避免被提权利用。
五、文件与目录权限安全
关键文件权限锁定
bash
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group
chmod 600 /etc/ssh/sshd_config
chmod 700 /root
/etc/profile、~/.bashrc检查恶意环境变量,防止 PATH 劫持。禁止 SUID/SGID 危险文件,定期扫描:
bash
find / -type f \( -perm -4000 -o -perm -2000 \) -ls
重要配置文件设置不可修改属性
bash
chattr +i /etc/passwd
chattr -i /etc/passwd #取消锁定
六、内核安全参数 (sysctl)
编辑/etc/sysctl.conf,执行sysctl -p生效
ini
# 关闭IP源路由
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
# 关闭ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
# 禁止响应ICMP广播,防smurf攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 防范syn洪水
net.ipv4.tcp_syncookies = 1
# 内核地址空间随机化,对抗内存漏洞
kernel.randomize_va_space = 2
# 禁止core dump,防止泄露敏感信息
fs.suid_dumpable = 0
七、日志与审计
开启 rsyslog,保证系统日志留存;重要环境部署auditd 审计服务
bash
systemctl enable --now auditd
auditd 可监控文件修改、用户登录、sudo 操作。
2. 日志远程转发,把 syslog、auth.log 发送到日志服务器,防止攻击者删除本地日志。
3. 重点关注日志:
/var/log/secure(RHEL)/var/log/auth.log(Debian)定期监控异常登录、暴力破解。
八、防暴力破解
fail2ban:扫描 SSH 等日志,封禁爆破 IP
bash
yum install fail2ban
systemctl enable --now fail2ban
配置 jail,多次密码错误自动 ban IP。
九、关闭危险服务与协议
关闭 telnet、rsh、rlogin,全部替换 ssh
不使用 ftp 明文传输,改用 sftp
NFS、RPC 如果不用,直接关闭;业务需要则严格限制 IP 访问
禁用不必要的 systemd socket

十、限制资源与防止 DoS
/etc/security/limits.conf,限制进程数、最大打开文件数,防止账号耗尽资源:
ini
* soft nofile 65535
* hard nofile 65535
* soft nproc 8192
* hard nproc 16384
十一、定时任务安全
检查全局 crontab,防止恶意定时任务
bash
crontab -l
ls /etc/cron.*
限制哪些用户可以使用 crontab:
/etc/cron.allow、/etc/cron.deny
十二、安全基线附加建议
关闭 SELinux 不推荐,生产尽量开启 SELinux,出现问题做策略放行,不要直接
setenforce 0;openEuler / 麒麟也有类似安全模块。服务器不要公网暴露不必要端口,优先内网访问,重要服务走堡垒机跳转。
定期备份,备份文件不要放在本机同一服务器。
定期安全巡检:账号、计划任务、异常进程、监听端口
netstat -tulnp / ss -tulnp。部署主机安全工具:aide(文件完整性校验),检测文件是否被篡改。
最简安全检查清单(可直接脚本化执行)
是否允许 root ssh 登录
是否还在使用密码登录 ssh
防火墙默认策略是否为拒绝
是否存在多余 UID=0 账号
检查异常 SUID 文件
检查 crontab 异常任务
检查监听端口,确认没有多余对外服务
系统包是否长期未更新
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢