温馨提示×

如何加固Ubuntu SFTP安全

小樊
44
2026-08-28 02:28:08
栏目: 智能运维

加固 Ubuntu 上的 SFTP 安全,可以从 SSH 配置、权限控制、用户隔离、密钥认证、防火墙与审计 等多个层面进行。下面是一套实用、可落地的加固方案,适合生产环境。


一、基础:使用专用 SFTP 用户,禁止 SSH Shell

1. 创建 SFTP 专用用户组

sudo groupadd sftpusers

2. 创建 SFTP 用户

sudo useradd -m -g sftpusers -s /usr/sbin/nologin sftpuser
sudo passwd sftpuser

/usr/sbin/nologin 禁止用户登录系统 Shell


二、使用 OpenSSH 内置 SFTP Chroot(推荐)

1. 修改 SSH 配置

编辑:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

Match Group sftpusers
    ChrootDirectory /sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

2. 创建 Chroot 目录结构(非常关键)

⚠️ Chroot 目录必须归 root 所有,且其他用户不可写

sudo mkdir -p /sftp/sftpuser/upload
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser

sudo chown sftpuser:sftpusers /sftp/sftpuser/upload

目录结构示例:

/sftp/sftpuser/        ← root 所有(不能写)
/sftp/sftpuser/upload  ← 用户可写

三、禁用 root 登录 & 弱认证方式

1. SSH 主配置加固

PermitRootLogin no
PasswordAuthentication no   # 推荐用密钥
PubkeyAuthentication yes
UseDNS no
MaxAuthTries 3

四、强制使用 SSH 密钥登录(强烈推荐)

1. 生成密钥

客户端:

ssh-keygen -t ed25519

2. 上传公钥

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

五、限制 SFTP 使用的算法(防降级攻击)

KexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512
Ciphers aes256-gcm@openssh.com,chacha20-poly1305@openssh.com
MACs hmac-sha2-256-etm@openssh.com

六、防火墙 & 端口安全

1. 修改默认端口(可选)

Port 2222

2. UFW 防火墙

sudo ufw allow 2222/tcp
sudo ufw enable

3. 防止暴力破解(fail2ban)

sudo apt install fail2ban

配置示例:

[sshd]
enabled = true
maxretry = 3
bantime = 3600

七、禁用不必要的 SSH 功能

PermitEmptyPasswords no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

八、日志与审计

查看 SFTP 日志

sudo tail -f /var/log/auth.log

可开启详细日志

LogLevel VERBOSE

九、可选:使用 SFTP 替代 FTP 的额外建议

✅ 不要安装 vsftpd(除非必须)
✅ SFTP ≠ FTPS(SFTP 是 SSH 自带,更安全)
✅ 定期更新系统:

sudo apt update && sudo apt upgrade

十、安全加固 checklist(快速自查)

项目 是否
禁用 root 登录
禁用密码登录
使用密钥认证
Chroot 目录隔离
用户无 shell
fail2ban 启用
防火墙限制端口

如果你愿意,我可以:

  • ✅ 帮你 生成一份可直接使用的 sshd_config
  • ✅ 给你 Docker / 云服务器专用方案
  • ✅ 帮你 排查当前服务器 SFTP 是否安全

只要告诉我你的 Ubuntu 版本和使用场景即可。

0