Linux一键安全加固脚本住宅主机
很多朋友把旧电脑或树莓派放在家里做文件服务器、家庭媒体中心或开发测试机,装好系统后就直接联网用了,安全配置几乎为零。
其实黑客扫描全网并不区分机房和家庭,住宅主机的安全漏洞更容易被利用。
本文用一套社区维护的 Linux 一键安全加固脚本,带你快速完成基础加固,操作简单,新手也能上手。
加固前的必要准备
在运行任何脚本前,务必做好以下三件事:
- 备份重要数据:脚本可能修改系统配置甚至锁定某些服务,建议先备份 /etc 目录和关键数据文件。
- 记录当前网络信息:如果脚本修改了防火墙或 SSH 端口,远程连接可能中断,提前记下当前 IP、跳板机配置等。
- 确认系统版本:大部分一键脚本支持 CentOS 7+、Ubuntu 18.04+、Debian 10+。用
cat /etc/os-release查看系统版本,不匹配的版本不要硬跑。
获取与执行一键加固脚本
推荐使用 GitHub 上开源且更新较勤的“A-Linux-Server-Hardening-Script”或类似项目。
以下操作以该脚本为例:
- 下载脚本
打开终端,进入一个临时目录(如 /tmp),用 wget 或 curl 获取脚本包:
wget https://github.com/example/linux-hardening/archive/main.zip
如果提示找不到包,可以搜索“linux-hardening-script”找到最新仓库链接。
- 解压并查看脚本内容
unzip main.zip && cd linux-hardening-main
强烈建议先大概翻一下脚本内容,确认没有高危操作(如直接删除系统用户):
cat hardening.sh | head -60
- 赋予执行权限并运行
chmod +x hardening.sh && sudo ./hardening.sh
脚本会自动执行一系列安全策略,如禁用 root 远程登录、安装 fail2ban、配置防火墙规则、加固 SSH 参数等。执行过程会打印日志,耐心等待完成。
执行后容易被忽略的坑
一键脚本虽然方便,但如果不注意这几点,很可能把自己锁在外面:
- SSH 端口被改:部分脚本会默认修改 SSH 端口(如改成 2222),如果你用的还是 22 端口,请先确认新端口再退出当前会话。
- 防火墙规则过严:脚本可能只开放了 SSH 和 HTTP(80)端口,如果你的服务运行在自定义端口上(如 8090 做 Web 管理),需要手动添加规则。
- 用户账号变动:有些脚本会删除非系统用户或禁用默认的普通用户,建议先创建一个有 sudo 权限的备用账号。
- 自动重启问题:少数脚本会在最后要求重启,但重启后防火墙规则才完全生效。如果没有重启,部分改进可能未生效。
避坑建议:在另一个终端窗口以备用方式(如物理机键盘或 VNC)保持登录,等完全确认网络正常后再关闭原连接。
如何验证加固效果
加固不是玄学,必须能用以下方法看到实际变化:
- 检查开放端口:
ss -tlnp或netstat -tlnp,对比加固前,应该只剩下 SSH、HTTP 等必要端口。 - 测试 SSH 密码登录:用另一台终端尝试
ssh root@你的IP,如果提示“Permission denied”说明 root 远程登录已被禁止,这是正确的加固行为。接着用普通用户登录测试。 - 查看 fail2ban 状态:
sudo fail2ban-client status,应显示 SSH 等监狱正在运行。 - 检查密码策略:
grep -E 'PASS_MAX_DAYS|PASS_MIN_LEN' /etc/login.defs,密码最大有效期和最小长度应已被修改。
高频问题解答
Q:脚本执行到一半报错怎么办?
A:常见原因是缺少依赖(如 python3、git)。根据报错信息用 apt install -y <依赖名> 补装,然后重新执行脚本。
Q:运行脚本后我连不上 SSH 了,如何恢复?
A:如果仍然能通过物理机显示器或 IPMI 登录,用 sudo ufw disable 关防火墙,再用 sudo systemctl restart sshd 恢复默认 SSH 配置。如果无法本地登录,只能找救援模式重置。
Q:加固后性能会有明显下降吗?
A:对住宅主机来说几乎无影响。fail2ban 和日志监控占用资源很少,防火墙规则也只增加毫秒级延迟。
总结
住宅主机不设防就像开着门睡觉,用一键加固脚本可以低成本获得基础防护。
记住,安全是动态过程,脚本只解决常见漏洞,定期更新系统和关注安全公告才能持续保护你的家庭服务器。
第一次使用时,务必先在小机器上测试,确认无误再应用到主力机。
如果你正在处理 Linux 一键安全加固脚本住宅主机,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。