Debian远程访问如何安全设置
小樊
37
2025-11-19 01:15:19
Debian远程访问安全设置
一 基线加固与访问控制
- 保持系统更新:执行sudo apt update && sudo apt upgrade,及时修补漏洞。
- 创建普通用户并加入sudo组,日常以普通用户登录,需要提权时使用 sudo。
- 配置防火墙(UFW 示例):仅放行必要端口,如 SSH 22/自定义端口、HTTP 80、HTTPS 443。
- 可选:通过 /etc/hosts.allow 与 /etc/hosts.deny 做主机级白名单/黑名单(如仅允许内网网段访问 SSH)。
- 加固口令策略:安装 libpam-cracklib,在 /etc/pam.d/common-password 启用复杂度校验,避免弱口令。
二 SSH安全配置要点
- 编辑 /etc/ssh/sshd_config,建议按下列要点调整(如某参数被注释,先取消注释再修改):
| 配置项 |
建议值 |
说明 |
| Protocol |
2 |
仅使用 SSH 协议 2 |
| Port |
非 22(如 2222) |
降低自动化扫描命中率 |
| PermitRootLogin |
no |
禁止 root 远程登录 |
| PermitEmptyPasswords |
no |
禁止空密码 |
| PasswordAuthentication |
no(已部署密钥时) |
强制密钥登录,提升安全性 |
| PubkeyAuthentication |
yes |
启用公钥认证 |
| AllowUsers / AllowGroups |
指定用户/组 |
精确控制可登录账户 |
| MaxAuthTries |
3–5 |
降低暴力尝试效率 |
| LoginGraceTime |
60 或 1m |
登录宽限时间 |
| ClientAliveInterval |
120 |
空闲 120 秒 自动断开 |
| X11Forwarding |
no |
不需要时关闭 X11 转发 |
| AllowTcpForwarding |
no |
不需要时关闭 TCP 转发 |
| Banner |
/etc/issue.net |
连接前显示合法告知 |
- 应用与验证:
- 重启服务:sudo systemctl restart sshd
- 本地回环验证:ssh -p <端口> localhost
- 保持当前会话不断开,新开终端测试,确认无误后再关闭旧会话。
三 密钥认证与登录限制
- 生成密钥对(客户端):ssh-keygen -t ed25519(或 -t rsa -b 4096),私钥妥善保存并设置 600 权限。
- 部署公钥:将公钥追加到服务器对应用户的 ~/.ssh/authorized_keys,并设置 ~/.ssh 700、authorized_keys 600。
- 禁用密码登录:在 sshd_config 中将 PasswordAuthentication no,仅保留 PubkeyAuthentication yes。
- 精确用户/来源限制:
- 仅允许特定用户:AllowUsers alice bob@192.168.1.0/24
- 主机级白名单/黑名单:/etc/hosts.allow 与 /etc/hosts.deny 配合使用。
四 入侵防护与日志审计
- 防暴力破解:部署 fail2ban,针对 SSH 设置重试上限与封禁时长,自动拉黑恶意 IP。
- 集中与分离日志:
- 在 sshd_config 设置 SyslogFacility AUTHPRIV 或自定义 local1;
- 在 /etc/rsyslog.conf 增加规则:local1. /var/log/ssh.log*;
- 重启 rsyslog:sudo systemctl restart rsyslog;
- 使用 logrotate 对 /var/log/ssh.log 做按日轮转与保留策略。
五 图形与文件传输的安全替代
- 仅文件传输需求:为用户配置受限 Shell(如 scponly 或 rssh),仅允许 SCP/SFTP,禁止交互式登录。
- 远程桌面:优先使用 xrdp(RDP 风格)或 VNC over SSH 隧道;若无需图形,关闭 X11 相关端口与服务。
- 安全提示:变更 SSH 端口 仅属“安全通过 obscurity”,务必与密钥认证、防火墙、fail2ban 等措施配套使用。