新装 linux 系统必须完成 6 项基础安全配置:①关闭非必要服务与 端口 ;②强制ssh 密钥登录并禁用 root 远程直连;③启用并配置 防火墙 默认拒绝入站;④设置强密码策略与登录失败锁定;⑤创建专用管理账号并禁用交互式 shell;⑥启用 auditd 审计及日志轮转。

新装 Linux 系统后,不立即加固就等于裸奔。真正有效的基础安全配置不是 堆砌功能,而是聚焦攻击面最小化、权限最小化、认证可信化这三件事。以下 6 项是上线前必须完成的操作,每项都对应高频入侵入口。
关闭非必要服务与监听 端口
默认安装常开启 FTP、telnet、rpcbind、NFS 等高危服务,它们极易成为突破口。
- 运行 ss -tuln 或 netstat -tuln 查看所有监听端口,识别非业务必需项
- 对确认冗余的服务,执行 systemctl disable –now 服务名(如 vsftpd、telnetd)
- 特别注意禁用 rpcbind 和 ntpd(若无需时间同步可关),避免被用于 ddos 反射攻击
强制 SSH 密钥登录 + 禁用 root 远程直连
密码暴力破解占 Linux 入侵 事件 的 70% 以上,SSH 是首要防线。
- 编辑 /etc/ssh/sshd_config,确保以下三项生效:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes - 建议修改默认端口(如设为 2222),避开 自动化 扫描器首轮探测
- 重启前务必用新密钥登录测试成功,再执行 systemctl restart sshd
启用并配置 防火墙(firewalld / iptables)
系统自带防火墙是成本最低、见效最快的网络访问控制手段。
- RHEL/centos 系统优先用 firewalld:
firewall-cmd –set-default-zone=drop(默认拒绝所有入站)
firewall-cmd –add-port=2222/tcp –permanent(仅放行改后的 SSH 端口)
firewall-cmd –reload - debian/ubuntu 可用 ufw:
ufw default deny incoming
ufw allow 2222/tcp
ufw enable
设置强密码策略与登录失败锁定
防止本地提权或物理接触场景下的弱口令利用。
- 编辑 /etc/security/pwquality.conf,设定:
minlen = 10
dcredit = -1(至少 1 位数字)
ucredit = -1(至少 1 位大写字母)
ocredit = -1(至少 1 个特殊字符) - 在 /etc/pam.d/system-auth 中添加登录锁定规则:
auth [default=die] pam_faillock.so authfail deny=5 unlock_time=900
auth [default=ok] pam_faillock.so authsucc
创建专用管理账号,禁用交互式 shell
杜绝直接用 root 操作,也避免普通用户拥有过高权限。
- 新建角色化账号:
useradd -s /sbin/nologin secadm
useradd -s /sbin/nologin audadm
passwd secadm(设强密码) - 通过 visudo 为 secadm 授权最小必要命令,例如:
secadm ALL=(ALL) NOPASSWD: /usr/bin/systemctl status *, /usr/bin/journalctl -u * - 检查是否存在 UID=0 的非 root 账户:
awk -F: ‘$3 == 0 {print}’ /etc/passwd,发现即删
启用 auditd 审计 + 日志自动轮转
没有日志的安全等于没有安全。攻击发生后,日志是唯一取证依据。
- 启动审计服务:
systemctl enable –now auditd - 监控关键文件,在 /etc/audit/rules.d/critical.rules 中添加:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identity
-w /etc/sudoers -p wa -k access - 配置日志保留周期:编辑 /etc/logrotate.d/syslog,加入:
rotate 12
maxage 365
compress