关闭非必要TTY、禁用串口控制台、限制SSH访问是Linux本地与远程安全加固三大关键措施,分别通过修改logind.conf、GRUB参数和sshd_config实现,并需验证生效。

关闭虚拟终端(TTY)和控制台远程访问,是加固 Linux 系统物理与本地访问安全的关键动作。它能有效减少未授权本地切换、恶意进程驻留、串口提权等风险,尤其适用于服务器、工控设备或需多人共用但权限隔离的办公终端。
停用非必要虚拟终端(TTY)
系统默认启用 tty1–tty6 共 6 个字符终端,而日常使用通常只需 1~2 个(如图形界面在 tty1,备用命令行在 tty2)。多余 TTY 不仅占用资源,还可能被攻击者通过物理接触或自动脚本利用。
- 编辑 /etc/systemd/logind.conf,取消注释并修改两行:
- NAutoVTs=2 —— 限制系统自动启动的 VT 数量为 2(即只保留 tty1 和 tty2)
- ReserveVT=2 —— 指定最后保留的 VT 编号为 2(确保 Ctrl+Alt+F2 可用,F3 及以后失效)
- 执行 sudo systemctl restart systemd-logind 使配置生效
- 验证:按 Ctrl+Alt+F3~F6 应无响应;F1 进入图形界面,F2 进入备用终端
禁用串口控制台(ttyS0)
云主机、带 BMC 的服务器或部分嵌入式设备常默认启用串口控制台(如 console=ttyS0),它可能暴露内核日志、登录提示甚至 root shell,成为绕过图形/SSH 认证的后门入口。
- 检查是否启用:dmesg | grep -i "console.*ttyS" 或查看 /proc/cmdline
- 编辑 /etc/default/grub,在 GRUB_CMDLINE_LINUX 行中移除类似 console=ttyS0,115200n8 的参数
- 更新 GRUB:
• Ubuntu/Debian:运行 sudo update-grub
• RHEL/CentOS:运行 sudo grub2-mkconfig -o /boot/grub2/grub.cfg - 重启后再次检查 /proc/cmdline,确认无串口 console 参数残留
限制或关闭 SSH 控制台访问
SSH 是最常用但也最易被爆破的远程入口。若无远程管理需求,应直接关闭;若必须保留,则须剥离密码登录、限制用户与 IP,并配合防火墙收紧策略。
- 彻底禁用:sudo systemctl stop sshd && sudo systemctl disable sshd
- 若需保留 SSH:
• 编辑 /etc/ssh/sshd_config,设置:
PermitRootLogin no
PasswordAuthentication no
AllowUsers youruser(或 AllowGroups admin)
• 配合 ufw 限定源 IP:sudo ufw allow from 192.168.1.100 to any port 22 - 验证监听状态:ss -tlnp | grep ':22',确认仅绑定在预期地址(如 127.0.0.1 或内网 IP)
加固前后的关键验证项
操作完成后务必逐项确认,避免误锁导致无法登录:
- 确保当前图形会话(tty1)或已配置的 tty2 终端仍可正常访问
- 运行 loginctl list-sessions 查看活跃会话,排除意外残留的远程登录
- 若为生产服务器,先在测试机完成全流程验证,再同步部署
- 重启前,建议临时开启一个 screen/tmux 会话并保持连接,作为应急回退通道

















