Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

LXSecure - Linux 服务器安全加固脚本

版本 许可证 平台

LXSecure 是一个交互式的 Linux 服务器安全加固脚本,参考了 CIS Benchmarks 等安全标准[reference:0],覆盖 SSH 安全、防火墙、入侵检测、文件完整性、内核参数调优等 14 个加固模块,支持 Debian/Ubuntu、CentOS/RHEL/Rocky/Alma 等主流发行版。

为什么写这个脚本

每次买一台新 VPS,第一件事就是手动配安全:改 SSH 端口、装 Fail2ban、配防火墙……这些事情做了无数次,每次都是重复劳动。更烦的是,有时候忘了某个步骤,过几天一看 /var/log/auth.log,满屏的暴力破解记录。

这个脚本就是把那些重复的加固操作整理成一份自动化的东西。跑一遍,该加固的都加固了。

功能列表

编号 功能
0 退出
1 系统更新
2 SSH 安全加固
3 防火墙配置
4 Fail2ban
5 密码策略
6 文件权限加固
7 内核参数(多场景)
8 审计日志
9 恶意软件扫描
10 账户安全检查
11 AIDE 文件完整性
12 生成安全报告
13 自动安全更新
14 关闭不必要服务
15 Lynis 安全审计
16 执行全部加固

快速开始

交互式管理(安装/卸载/状态/运行/更新)

bash <(curl \-sSL https://raw.githubusercontent.com/gzy318/LXSecure/main/install.sh)

直接运行(不安装)

wget https://raw.githubusercontent.com/gzy318/LXSecure/main/lxsecure.sh
chmod +x lxsecure.sh
sudo ./lxsecure.sh

各功能模块详解

SSH 安全加固

脚本会帮你完成三件事:改一个高位端口(建议 10000-65535)、禁用 Root 密码登录、可选禁用所有用户的密码认证。改端口的时候脚本会先放行新端口再重启 SSH 服务——这个顺序很重要,先放行再重启,你就不会把自己锁在门外。

密钥生成用的是 Ed25519 算法,比 RSA 更快也更安全。脚本生成密钥后会提示你下载私钥并删除服务器上的副本,这是基本的安全意识——私钥不应该留在服务器上。

防火墙配置

脚本会自动检测你系统上已有的防火墙工具——UFW、Firewalld 还是原生的 iptables——然后用对应的方式配置。默认只开放 SSH、80、443 三个端口,其他全关。你也可以在配置时额外放行自己需要的端口。

Fail2ban

Fail2ban 的原理很简单:它会盯着认证日志看,同一个 IP 如果在短时间内连续失败太多次,就直接把它扔进防火墙黑名单。脚本配置了两个 jail:一个是常规的 sshd,5 次失败封 1 小时;一个是 sshd-ddos,10 次失败封 2 小时。双保险。

内核参数(多场景模式)

这是脚本里比较有特色的一个功能。内核参数调优这件事,不同场景需求完全不一样:

  • 安全优先:适用于公网 Web 服务器。开启 tcp_syncookies 防 SYN flood 攻击,开启 rp_filter 防 IP 欺骗,限制 dmesg 访问防止信息泄露。

  • 高性能:适用于数据库、游戏服务器。扩大网络缓冲区、增加文件句柄数上限、降低 swappiness 减少磁盘交换。

  • 均衡模式:适用于个人开发机,在安全和性能之间取一个折中。

AIDE 文件完整性检查

AIDE(Advanced Intrusion Detection Environment)的工作原理是给系统关键文件拍一张“快照”——记录每个文件的哈希值、权限、大小、时间戳。之后定期对比,如果哪个文件变了,就能发现。脚本会在首次运行时初始化 AIDE 数据库,并配置每日自动检查。

审计日志(auditd)

Linux 内核级别的审计系统,比应用层日志更底层、更可靠。脚本配置的规则会监控 /etc/passwd/etc/shadow/etc/sudoers 等关键文件的变化,以及 execveopenatmount 等敏感系统调用。这些日志在出事之后回溯现场非常有用。

防锁死机制

脚本里内置了一个很重要的设计:所有可能把你锁在门外的操作,都有防锁死逻辑

比如修改 SSH 端口,脚本的执行顺序是:先放行新端口 → 再修改 SSH 配置 → 最后重启 SSH 服务。这样就算新端口配置有问题,你当前的连接也不会断,还有机会修复。

又比如防火墙配置,UFW 启用之前会先确保 SSH 端口已经被放行。

这些细节看起来不起眼,但实际操作中,“把自己锁在服务器外面”是新手最常遇到的问题。

常见问题

Q: 修改 SSH 端口后连不上了怎么办?
A: 如果你还保持着原来的 SSH 连接,立即另开一个终端测试新端口。如果新端口连不上,检查防火墙是否放行了新端口。如果实在连不上,大部分 VPS 提供商都有 VNC 救援模式可以进去修复。

Q: 脚本支持哪些系统?
A: Debian/Ubuntu、CentOS/RHEL 7+、Rocky Linux、AlmaLinux。

Q: 执行全部加固大概需要多久?
A: 不包括 Lynis 审计的话,5-10 分钟。Lynis 审计单独跑需要 10-20 分钟。

Q: 脚本会破坏现有服务吗?
A: 大部分操作是配置层面的修改,不会卸载或删除现有软件。但修改 SSH 配置和防火墙规则可能会影响现有连接,建议在维护窗口执行。

相关链接

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages