Linux系统安全

、账号与认证安全(第一道防线)

1. 禁用 root 直接 SSH 登录(必做)

bash

运行

复制代码
# 编辑SSH配置
vi /etc/ssh/sshd_config
# 修改/添加
PermitRootLogin no          # 禁止root登录
PasswordAuthentication no   # 禁用密码登录(仅密钥)
PubkeyAuthentication yes    # 启用密钥认证
MaxAuthTries 3              # 最大尝试次数
ClientAliveInterval 300     # 超时断开
AllowUsers admin deploy     # 仅允许指定用户
# 重启服务
systemctl restart sshd
2. 强密码与密钥双因素
  • 密码策略(PAM):长度≥12、大小写 + 数字 + 特殊字符、定期更换、防重用。
  • 密钥登录(推荐)

bash

运行

复制代码
# 客户端生成Ed25519密钥(比RSA更安全)
ssh-keygen -t ed25519 -C "user@host"
# 上传公钥到服务器
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server -p 2222
3. 账号管理
  • 清理冗余账号:删除 / 锁定无用账号(如 games、news)。

bash

运行

复制代码
# 锁定账号
usermod -L username
# 查看非登录账号
grep "/sbin/nologin$" /etc/passwd
  • sudo 权限最小化:仅授权必要命令,禁止 NOPASSWD。

bash

运行

复制代码
visudo
# 示例:admin仅允许重启nginx
admin ALL=(ALL) /usr/bin/systemctl restart nginx

三、网络安全(边界防护)

1. 防火墙(必开)
  • UFW(Ubuntu)

bash

运行

复制代码
ufw default deny incoming
ufw default allow outgoing
ufw allow 2222/tcp  # SSH自定义端口
ufw allow 80/tcp    # Web
ufw enable
ufw status
  • Firewalld(RHEL/CentOS)

bash

运行

复制代码
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload
2. 关闭不必要服务与端口

bash

运行

复制代码
# 查看监听端口
ss -tuln
# 停止并禁用无用服务(如telnet、rsh、ftp)
systemctl stop telnet.socket
systemctl disable telnet.socket
3. 防暴力破解(Fail2ban)

bash

运行

复制代码
# 安装
apt install fail2ban  # Debian/Ubuntu
yum install fail2ban  # RHEL/CentOS
# 配置SSH防护
vi /etc/fail2ban/jail.d/sshd.local
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400  # 封禁1天
# 启动
systemctl enable --now fail2ban

四、系统与内核加固

1. 内核参数(sysctl.conf)

bash

运行

复制代码
vi /etc/sysctl.conf
# 防SYN洪水
net.ipv4.tcp_syncookies = 1
# 防IP欺骗
net.ipv4.conf.all.rp_filter = 1
# 禁止ICMP重定向
net.ipv4.conf.all.accept_redirects = 0
# 地址空间随机化(防缓冲区溢出)
kernel.randomize_va_space = 2
# 生效
sysctl -p
2. 强制访问控制(MAC)
  • SELinux(RHEL/CentOS,生产推荐 enforcing)

bash

运行

复制代码
# 查看状态
sestatus
# 启用
vi /etc/selinux/config
SELINUX=enforcing
  • AppArmor(Ubuntu/Debian):更易用的路径级 MAC。
3. 禁用不必要模块(如 USB)

bash

运行

复制代码
echo "install usb-storage /bin/true" > /etc/modprobe.d/usb-storage.conf

五、文件与权限安全

1. 关键文件权限加固

bash

运行

复制代码
# 密码文件权限
chmod 600 /etc/shadow
chmod 644 /etc/passwd
# 锁定关键文件防篡改
chattr +i /etc/passwd /etc/shadow /etc/group
2. 清理 SUID/SGID 高危文件

bash

运行

复制代码
# 查找所有SUID文件
find / -perm -4000 -type f 2>/dev/null
# 移除不必要SUID
chmod -s /path/to/file
3. 文件完整性监控(AIDE)

bash

运行

复制代码
# 安装
apt install aide
# 初始化数据库
aideinit
# 定期检查
aide --check

六、日志与审计(可观测)

1. 启用系统审计(auditd)

bash

运行

复制代码
systemctl enable --now auditd
# 记录所有sudo操作
auditctl -w /usr/bin/sudo -p rwxa -k sudo_actions
# 查看审计日志
ausearch -k sudo_actions
2. 日志集中与监控
  • 确保rsyslog运行,日志持久化到/var/log/
  • 推荐:ELK/ Grafana Loki 集中分析,告警异常登录 / 提权。

七、漏洞与补丁管理

  1. 定期更新

bash

运行

复制代码
# Debian/Ubuntu
apt update && apt upgrade -y
# RHEL/CentOS
yum update -y
  1. 自动安全更新 (测试环境):unattended-upgrades / yum-cron
  2. 漏洞扫描lynisOpenVAS 定期扫描。

八、入侵检测与应急

  • Rootkit 检测rkhunterchkrootkit

bash

运行

复制代码
rkhunter --update
rkhunter --check
  • 网络 IDS :部署Suricata/Snort 检测攻击特征。
  • 备份策略:定期全量 + 增量备份,离线存储。

九、安全加固速查清单(上线必做)

  1. ✅ 禁用 root SSH,改用密钥 + 自定义端口
  2. ✅ 启用防火墙,仅放行业务端口
  3. ✅ 安装 Fail2ban 防暴力破解
  4. ✅ 配置强密码与 sudo 最小权限
  5. ✅ 内核参数加固(sysctl)
  6. ✅ 启用 SELinux/AppArmor
  7. ✅ 关键文件权限锁定
  8. ✅ 开启 auditd 审计与日志监控
  9. ✅ 定期系统更新与漏洞扫描
  10. ✅ 关闭无用服务与端口

十、安全工具推荐

表格

类别 工具 用途
防火墙 ufw/firewalld/nftables 网络访问控制
入侵防护 fail2ban 暴力破解拦截
审计 auditd 系统操作审计
完整性 AIDE 文件篡改检测
恶意软件 rkhunter/chkrootkit Rootkit 检测
漏洞扫描 lynis 系统安全基线扫描

总结

Linux 安全是持续过程 ,需遵循最小权限 + 纵深防御,从账号、网络、系统、文件、日志、补丁多层加固,并配合监控与应急响应。先按速查清单完成基线加固,再逐步完善自动化与合规体系。

相关推荐
Elastic 中国社区官方博客5 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
Agent手记5 小时前
制造业数字化升级:生产全流程企业级智能体落地解决方案 —— 基于LLM+超自动化全栈架构的智改数转深度实战
运维·ai·架构·自动化
云安全助手5 小时前
弹性云服务器+高防IP:让DDoS攻击不再是业务“生死劫”
运维·网络·安全
AC赳赳老秦5 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
深色風信子6 小时前
Docker newapi
运维·docker·容器·newapi
mounter6256 小时前
【内核新动向】告别物理槽位束缚:深度解析 Linux Virtual Swap Space 机制
linux·内存管理·kernel·swap·virtual swap
handler016 小时前
从零实现自动化构建:Linux Makefile 完全指南
linux·c++·笔记·学习·自动化
2023自学中7 小时前
i.MX6ULL 板子的完整启动流程图(从上电 → 用户空间)
linux·嵌入式
闫利朋7 小时前
Ubuntu 24.04 桌面安装向日葵完整指南
linux·运维·ubuntu
YSF2017_38 小时前
C语言16-makefile(3)——makefile的模式规则
linux·c语言·开发语言