怎么在云主机上搭建FTP账号?

HCRM技术_小炮 云主机 2025-12-12 71 2

在云主机上搭建FTP服务器,以下是详细步骤(以Linux系统为例):

一、安装FTP服务器软件

vsftpd(推荐,轻量安全)

Ubuntu/Debian
sudo apt update
sudo apt install vsftpd
CentOS/RHEL
sudo yum install vsftpd

ProFTPD(功能丰富)

Ubuntu/Debian
sudo apt install proftpd
CentOS/RHEL
sudo yum install proftpd

二、配置vsftpd(以vsftpd为例)

备份原始配置

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

编辑配置文件

sudo nano /etc/vsftpd.conf

修改关键配置

禁止匿名登录
anonymous_enable=NO
允许本地用户登录
local_enable=YES
允许写入
write_enable=YES
设置本地用户创建文件的umask
local_umask=022
启用chroot,将用户限制在其主目录
chroot_local_user=YES
allow_writeable_chroot=YES
用户列表文件
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO  # 仅允许列表中的用户登录
被动模式配置(重要:需要开放端口范围)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的云主机公网IP  # 重要!

三、创建FTP用户

创建系统用户

创建用户(指定主目录,禁止shell登录)
sudo useradd -m -d /home/ftpuser1 -s /bin/false ftpuser1
sudo passwd ftpuser1  # 设置密码

或创建虚拟用户(更安全)

1. 创建用户数据库文件
sudo sh -c 'echo "ftpuser1" >> /etc/vsftpd/virtual_users.txt'
sudo sh -c 'echo "password1" >> /etc/vsftpd/virtual_users.txt'
sudo sh -c 'echo "ftpuser2" >> /etc/vsftpd/virtual_users.txt'
sudo sh -c 'echo "password2" >> /etc/vsftpd/virtual_users.txt'
2. 生成数据库文件
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db
sudo chmod 600 /etc/vsftpd/virtual_users.db
3. 创建PAM配置文件
sudo nano /etc/pam.d/vsftpd.virtual
添加内容:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users

四、设置目录权限

创建FTP根目录
sudo mkdir -p /var/ftp
sudo chown nobody:nogroup /var/ftp
sudo chmod 755 /var/ftp
为用户创建目录
sudo mkdir -p /home/ftpuser1/ftp
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp

五、防火墙配置

开放端口

开放21端口(控制连接)
sudo ufw allow 21/tcp
开放被动模式端口范围
sudo ufw allow 30000:31000/tcp
CentOS使用firewalld
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload

云主机安全组配置(重要!)

- 登录云服务商控制台

- 找到安全组/防火墙规则

- 添加入站规则:

- 端口21(TCP)

- 端口30000-31000(TCP,被动模式)

六、启动服务

启动vsftpd
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
检查状态
sudo systemctl status vsftpd

七、测试连接

本地测试
ftp localhost
使用客户端连接
主机:云主机公网IP
用户名/密码:ftpuser1/password1
端口:21

八、安全增强建议

使用SSL/TLS加密

生成SSL证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/ssl/private/vsftpd.key \
  -out /etc/ssl/certs/vsftpd.crt
配置vsftpd使用SSL
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

限制IP访问

在配置文件中添加
deny_file=*.php,*.sh,*.exe  # 禁止上传特定文件
max_clients=10  # 最大连接数
max_per_ip=3    # 每个IP最大连接

日志监控

启用日志
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

常见问题解决

1、连接超时:检查云主机安全组规则

2、530 Login incorrect:检查用户名/密码,用户是否在允许列表

3、550 Permission denied:检查目录权限和chroot设置

4、被动模式失败:确保被动模式端口范围已开放

替代方案:使用SFTP(更安全)

如果不需要FTP协议,建议使用SFTP(基于SSH):

1. 安装SSH(通常已安装)
2. 创建用户
sudo useradd -m sftpuser1
sudo passwd sftpuser1
3. 配置SSH
sudo nano /etc/ssh/sshd_config
添加:
Match User sftpuser1
    ForceCommand internal-sftp
    ChrootDirectory /home/sftpuser1
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

这样可以通过SSH客户端连接,更安全且无需额外配置防火墙规则。

文章摘自:https://idc.huochengrm.cn/zj/21121.html

评论

精彩评论
  • 2026-02-03 12:38:59

    在Linux云主机上搭建FTP服务器,推荐使用vsftpd,安装后配置用户、权限、防火墙,并开启SSL/TLS加密和日志监控,确保安全高效。

  • 2026-03-19 15:19:25

    在Linux云主机上搭建FTP服务器,推荐使用vsftpd,步骤包括安装、配置、创建用户、设置权限、防火墙配置、启动服务,并建议使用SSL/TLS加密和限制IP访问以提高安全性。