温馨提示×

linux ftpserver怎么安全

小樊
50
2026-07-17 20:39:22
栏目: 智能运维

在 Linux 上搭建 安全的 FTP 服务器,核心原则是:尽量不用明文 FTP,改用加密协议(FTPS / SFTP),并严格控制权限和访问范围。下面给你一套实用、可落地的做法。


一、先说结论(很重要)

推荐方案

  • SFTP(SSH File Transfer) ✅(最安全、最简单)
  • FTPS(FTP over TLS) ✅(兼容传统 FTP 客户端)

不推荐

  • 传统 FTP(21 端口,明文)

二、最推荐:使用 SFTP(基于 SSH)

优点

  • 自带加密(传输 + 认证)
  • 不需要额外服务
  • 配置简单
  • 默认 Linux 已支持

1️⃣ 安装 SSH(一般都已安装)

sudo apt install openssh-server        # Debian/Ubuntu
sudo yum install openssh-server        # CentOS/RHEL

2️⃣ 禁止 root 登录(非常重要)

编辑:

sudo vim /etc/ssh/sshd_config

修改或添加:

PermitRootLogin no
PasswordAuthentication no   # 建议用密钥

重启:

sudo systemctl restart sshd

3️⃣ 创建仅用于 SFTP 的用户(安全隔离)

sudo useradd -m sftpuser
sudo passwd sftpuser

如果想 限制只能 SFTP,不能 SSH 登录

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no

⚠️ 权限要求:

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload

三、如果必须用 FTP,使用 vsftpd + TLS(FTPS)

1️⃣ 安装 vsftpd

sudo apt install vsftpd

2️⃣ 生成 TLS 证书

sudo openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/ssl/private/vsftpd.key \
  -out /etc/ssl/certs/vsftpd.crt

3️⃣ 配置 vsftpd(重点)

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

重启:

sudo systemctl restart vsftpd

四、防火墙 & 端口安全

FTP(如果是 vsftpd)

sudo ufw allow 21
sudo ufw allow 40000:50000/tcp

vsftpd 被动模式:

pasv_min_port=40000
pasv_max_port=50000

SFTP

sudo ufw allow 22

五、安全加固清单 ✅

✔ 禁用匿名访问
✔ 禁用 root 登录
✔ 使用 密钥认证(SSH)
✔ 开启 TLS 加密
✔ 限制用户目录(chroot)
✔ 使用 非默认端口
✔ 定期更新系统
✔ 日志审计

/var/log/auth.log
/var/log/vsftpd.log

六、方案选择建议

场景 推荐
内部文件传输 ✅ SFTP
对外客户系统 ✅ FTPS
云服务器 ✅ SFTP
老旧设备 ⚠️ FTPS

七、如果你愿意

你可以告诉我:

  • ✅ 用的是 Ubuntu / CentOS / Rocky / Debian
  • ✅ 对内还是对外
  • ✅ 是否需要 Web 管理界面
  • ✅ 是否必须兼容旧 FTP 客户端

我可以直接给你一套 可复制的完整配置文件

0