梧州市文章资讯

在CentOS服务器上快速搭建FTP服务的完整流程

2026-03-25 23:58:01 浏览次数:2
详细信息

vsftpd(Very Secure FTP Daemon)。以下是完整流程:

一、安装vsftpd

# 1. 更新系统包
sudo yum update -y

# 2. 安装vsftpd
sudo yum install vsftpd -y

# 3. 启动服务并设置开机自启
sudo systemctl start vsftpd
sudo systemctl enable vsftpd

# 4. 检查服务状态
sudo systemctl status vsftpd

二、配置vsftpd

1. 备份原始配置文件

sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

2. 编辑配置文件(使用vim或nano)

sudo vim /etc/vsftpd/vsftpd.conf

3. 关键配置项(按需求修改)

# 匿名访问设置
anonymous_enable=NO          # 禁止匿名登录

# 本地用户设置
local_enable=YES             # 允许本地用户登录
write_enable=YES             # 允许写入操作
local_umask=022              # 文件权限掩码

# 目录限制
chroot_local_user=YES        # 将用户限制在其主目录
allow_writeable_chroot=YES   # 允许chroot目录可写

# 日志设置
xferlog_enable=YES           # 启用传输日志
xferlog_file=/var/log/vsftpd.log

# 端口设置
listen=YES                   # 以独立模式运行
listen_ipv6=NO               # 禁用IPv6

# 连接限制
max_clients=50               # 最大连接数
max_per_ip=5                 # 每IP最大连接数

# 被动模式设置(重要)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的服务器公网IP   # 需修改为实际IP

三、创建FTP用户

方法A:使用系统用户(简单)

# 1. 创建用户并设置主目录
sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser

# 2. 设置密码
sudo passwd ftpuser

# 3. 设置目录权限
sudo chmod 750 /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser

方法B:虚拟用户(更安全)

# 1. 创建数据库文件
sudo sh -c 'echo "ftpuser" > /etc/vsftpd/virtual_users.txt'
sudo sh -c 'echo "password123" >> /etc/vsftpd/virtual_users.txt'

# 2. 生成数据库
sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db

# 3. 修改权限
sudo chmod 600 /etc/vsftpd/virtual_users.*

# 4. 创建PAM配置文件
sudo cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
sudo vim /etc/pam.d/vsftpd

添加以下内容:

auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users

四、防火墙配置

# 1. 开放FTP端口(如果使用firewalld)
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
sudo firewall-cmd --reload

# 2. 如果使用iptables
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
service iptables save

五、SELinux配置(CentOS 7/8需要)

# 1. 查看SELinux状态
getenforce

# 2. 临时关闭(不推荐)
sudo setenforce 0

# 3. 正确配置SELinux
# 允许FTP访问用户主目录
sudo setsebool -P ftp_home_dir 1

# 允许vsftpd读写文件
sudo setsebool -P allow_ftpd_full_access 1

# 查看相关设置
getsebool -a | grep ftp

六、测试连接

1. 重启服务

sudo systemctl restart vsftpd

2. 本地测试

# 安装ftp客户端
sudo yum install ftp -y

# 测试连接
ftp localhost
# 输入用户名和密码

3. 使用FileZilla等客户端测试

七、安全加固建议

1. 使用FTPS(FTP over SSL)

# 生成SSL证书
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
  -keyout /etc/vsftpd/vsftpd.pem \
  -out /etc/vsftpd/vsftpd.pem

# 在vsftpd.conf中添加
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem

2. 用户访问限制

# 在配置文件中添加
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO    # 仅允许列表中的用户

3. 创建用户列表

sudo echo "ftpuser" >> /etc/vsftpd/user_list

八、常用管理命令

# 查看日志
sudo tail -f /var/log/vsftpd.log

# 重新加载配置
sudo systemctl reload vsftpd

# 查看连接状态
sudo netstat -tulpn | grep ftp

# 限制用户带宽(在配置文件中)
anon_max_rate=512000    # 匿名用户500KB/s
local_max_rate=1024000  # 本地用户1MB/s

九、故障排除

连接被拒绝

无法上传文件

被动模式失败

十、替代方案考虑

如果安全性要求高,建议考虑:

完成上述步骤后,FTP服务即可正常运行。建议初次使用后立即测试并配置适当的安全策略。

相关推荐