当前位置: 首页 > news >正文

Ubuntu FTP服务搭建与配置

目录

1. 安装vsftpd

2. 配置vsftpd

关键配置修改:

3. 创建FTP专用用户

4. 设置目录权限

5. 防火墙放行端口

6. 重启服务

7. 客户端连接测试

常见问题排查

安全增强建议


        在Ubuntu系统中搭建FTP服务,推荐使用vsftpd(Very Secure FTP Daemon),它轻量、安全且易于配置。以下是详细步骤:


1. 安装vsftpd

sudo apt update
sudo apt install vsftpd

2. 配置vsftpd

编辑配置文件:

sudo nano /etc/vsftpd.conf
关键配置修改
# 禁止匿名登录(增强安全)
anonymous_enable=NO# 允许本地用户登录
local_enable=YES# 允许文件写入(上传/删除)
write_enable=YES# 限制用户访问其主目录(防越权)
chroot_local_user=YES
allow_writeable_chroot=YES  # 允许被限制的用户写入# 设置被动模式端口范围(避开常用端口)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000# 可选:启用用户列表白名单(更安全)
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list  # 白名单文件路径
userlist_deny=NO  # 仅允许白名单中的用户登录

3. 创建FTP专用用户

# 创建用户(无SSH登录权限)
sudo useradd -m ftpuser -s /usr/sbin/nologin
sudo passwd ftpuser  # 设置密码# 将用户加入白名单
echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list

4. 设置目录权限

# 用户主目录(例如 /home/ftpuser)
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser# 创建上传目录并授权
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 775 /home/ftpuser/upload

5. 防火墙放行端口

# 开放FTP控制端口(21)和被动端口范围
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload

6. 重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd  # 开机自启

7. 客户端连接测试

  • 命令行工具
    ftp your_server_ip
    # 输入用户名 ftpuser 和密码
    
  • 图形工具(如FileZilla):
    • 协议:FTP
    • 主机:服务器IP
    • 用户名/密码:ftpuser及其密码
    • 端口:21

常见问题排查

  1. 连接超时

    • 检查防火墙:sudo ufw status
    • 确认服务器IP是否正确,云服务器需检查安全组规则。
  2. 登录失败

    • 检查白名单:用户是否在/etc/vsftpd.user_list中。
    • 验证密码:sudo passwd ftpuser重设密码。
  3. 无法上传文件

    • 目录权限:确保上传目录(如upload)有写权限(chmod 775)。
    • 配置项:确认write_enable=YES

安全增强建议

  1. 启用TLS加密(FTPS)
    在配置中添加:

    ssl_enable=YES
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    

    客户端需使用FTPS协议连接。

  2. 替代方案(更安全)

    • 使用 SFTP(基于SSH):无需额外安装,通过OpenSSH提供。
      sftp ftpuser@your_server_ip  # 直接使用SSH登录
      

        通过以上步骤,您已成功在Ubuntu上部署了安全的FTP服务。根据需求选择基础FTP或更安全的FTPS/SFTP方案。

http://www.lryc.cn/news/591613.html

相关文章:

  • Qt软键盘
  • Redis学习-03重要文件及作用、Redis 命令行客户端
  • Rabbitmq Direct Exchange(直连交换机)多个消费者,配置相同的key ,队列,可以保证只有一个消费者消费吗
  • IAR编译后处理 并复制日期
  • QT跨平台应用程序开发框架(10)—— Qt窗口
  • 《每日AI-人工智能-编程日报》--2025年7月17日
  • 突破AI模型访问的“光标牢笼”:长上下文处理与智能环境隔离实战
  • 记录timesfm2.0复现及调优
  • Shell编程简介
  • 解决leetcode第3614题用特殊操作处理字符串II
  • DolphinScheduler 如何高效调度 AnalyticDB on Spark 作业?
  • Redis学习-02安装Redis(Ubuntu版本)、开启远程连接
  • leetcode 206.反转链表(c++详细解释)
  • LeetCode--48.旋转图像
  • ACOUSLIC-AI挑战报告:基于低收入国家盲扫超声数据的胎儿腹围测量|文献速递-医学影像算法文献分享
  • Leetcode 03 java
  • 记录Leetcode中的报错问题
  • Java数组补充v2
  • sqli-labs靶场通关笔记:第25-26a关 and、or、空格和注释符多重过滤
  • 融智兴科技: RFID超高频洗涤标签解析
  • 代码随想录算法训练营第二十三天
  • Java 中的类和对象
  • 数据结构自学Day9: 二叉树的遍历
  • Git简介与特点:从Linux到分布式版本控制的革命
  • redis中间件
  • git merge-base查看某个分支从哪里拉出来的、主main分支上的某个时间之后某人的提交合并到特定分支(使用 cherry-pick 的场景)
  • 【MySQL事务】事务的隔离级别
  • 逆向破解京东评论加密参数|Python动态Cookie解决方案
  • 开源Agent平台Dify源码剖析系列(五)核心模块core/agent之CotChatAgentRunner
  • 文字转图片的字符画生成工具