温馨提示×

ubuntu ftpserver如何做安全加固

小樊
34
2026-10-14 07:57:06
栏目: 智能运维

下面从系统层、服务层、账号与权限、网络与审计几个维度,系统说明 Ubuntu 上 FTP 服务(以最常见的 vsftpd 为例)的安全加固方法。


一、选择更安全的 FTP 方案(最重要)

明文 FTP 极不安全,强烈建议使用 FTPS 或 SFTP

方案 安全性 推荐度
FTP(21端口) 明文 ❌
FTPS(FTP + SSL) 加密 ✅
SFTP(SSH) 加密 ✅✅(首选)

结论:

  • 内部/运维 → SFTP(OpenSSH)
  • 必须 FTP → vsftpd + TLS

二、vsftpd 安全加固(FTPS)

1. 安装 vsftpd

sudo apt update
sudo apt install vsftpd

2. 禁用匿名访问

sudo nano /etc/vsftpd.conf
anonymous_enable=NO

3. 限制本地用户登录

local_enable=YES
write_enable=YES

4. 启用 TLS(FTPS)

生成证书:

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

vsftpd 配置:

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

客户端必须使用 FTPS(显式/隐式)


5. 限制用户活动目录(chroot)

chroot_local_user=YES
allow_writeable_chroot=YES

防止用户访问 /etc、/root 等系统目录。


6. 限制可登录用户

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo ftpuser | sudo tee -a /etc/vsftpd.userlist

7. 禁用危险功能

ascii_upload_enable=NO
ascii_download_enable=NO

三、系统层安全加固

1. 创建专用 FTP 用户

sudo useradd -m -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

2. 使用防火墙限制来源

sudo ufw allow from 192.168.1.0/24 to any port 21

或仅允许内网。


3. 禁用 root 登录 FTP

deny_email_enable=YES

并确保:

grep root /etc/passwd

FTP 用户 shell 不为 /bin/bash 更安全。


4. 文件权限最小化

sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 750 /home/ftpuser

四、网络与攻击防护

1. 防暴力破解(fail2ban)

sudo apt install fail2ban

/etc/fail2ban/jail.local

[vsftpd]
enabled = true
port = 21
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5

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

listen_port=2121

3. 日志审计

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
log_ftp_protocol=YES

五、替代方案(强烈推荐)

✅ SFTP(无需 FTP 服务)

sudo apt install openssh-server

限制用户只能 SFTP:

sudo nano /etc/ssh/sshd_config
Match User ftpuser
    ChrootDirectory /home/ftpuser
    ForceCommand internal-sftp
    PasswordAuthentication yes

✅ 加密
✅ 无需额外端口
✅ 更安全


六、安全加固检查清单

  • [ ] 禁用匿名 FTP
  • [ ] 使用 TLS 或 SFTP
  • [ ] chroot 限制目录
  • [ ] 专用低权限用户
  • [ ] 防火墙限制来源
  • [ ] fail2ban 防爆破
  • [ ] 开启日志审计

如果你告诉我:

  • 使用的 FTP 软件(vsftpd / proftpd / pure-ftpd)
  • 是否必须 21 端口
  • 内网还是公网

我可以给你一套可直接用的配置文件。

0 踩