如何在Ubuntu上搭建FTP服务器?

要在 Ubuntu 服务器上搭建 FTP,首先安装 vsftpd,配置相关文件,启动服务并设置防火墙规则。

Ubuntu系统上搭建FTP服务器是一个常见且实用的任务,尤其是在需要文件传输和共享的环境中,本文将详细介绍如何在Ubuntu 20.04系统上安装和配置vsftpd(Very Secure FTP Daemon)以搭建FTP服务器

如何在Ubuntu上搭建FTP服务器?

一、准备工作

1、更新系统:确保你的Ubuntu系统是最新的,打开终端,运行以下命令:

   sudo apt update
   sudo apt upgrade

2、检查是否安装了vsftpd:可以通过以下命令检查是否已经安装了vsftpd:

   vsftpd -version

如果未安装,执行下面的命令进行安装:

   sudo apt install vsftpd

二、配置vsftpd

1、备份配置文件:在进行任何配置更改之前,最好先备份原始配置文件:

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

2、编辑配置文件:使用你喜欢的文本编辑器打开配置文件,

   sudo nano /etc/vsftpd.conf

3、修改配置文件:找到以下行,并确保其前面的#号被去掉或进行相应修改:

   anonymous_enable=NO
   local_enable=YES
   write_enable=YES
   local_umask=022
   chroot_local_user=YES

4、创建FTP用户:为了安全起见,可以创建一个专门的FTP用户:

   sudo adduser ftpuser

5、配置用户目录权限:确保FTP用户的主目录权限设置正确:

   sudo chown ftpuser:ftpuser /home/ftpuser
   sudo chmod 755 /home/ftpuser

6、启用SSL/TLS加密:为了提高传输的安全性,可以启用SSL/TLS加密,生成SSL证书:

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

在vsftpd配置文件中添加以下行:

   ssl_enable=YES
   rsa_cert_file=/etc/ssl/private/vsftpd.crt
   rsa_private_key_file=/etc/ssl/private/vsftpd.key

7、重启vsftpd服务:每次修改配置文件后,都需要重启vsftpd服务以使更改生效:

如何在Ubuntu上搭建FTP服务器?

   sudo systemctl restart vsftpd

三、测试FTP服务器

1、安装FTP客户端:在本地机器或另一台计算机上安装FTP客户端,例如FileZilla。

2、连接到FTP服务器:打开FTP客户端,输入以下信息进行连接:

主机:你的服务器IP地址

用户名:ftpuser

密码:你在创建用户时设置的密码

端口:21(默认FTP端口)

3、上传和下载文件:成功连接后,可以尝试上传和下载文件以确保FTP服务器配置正确。

四、增强安全性

1、配置防火墙:确保你的服务器防火墙允许FTP流量通过:

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

2、限制用户访问其他目录:为防止FTP用户访问其主目录之外的其他目录,在/etc/vsftpd.conf文件中,取消chroot_local_user=YES的注释:

   chroot_local_user=YES

3、锁定用户:可以通过在/etc/vsftpd.chroot_list文件中添加用户名单来锁定用户在其主目录中:

   touch /etc/vsftpd.chroot_list
   vi /etc/vsftpd.chroot_list

在该文件中加入用户名单,如:netseek_com。

如何在Ubuntu上搭建FTP服务器?

五、相关FAQs问答

Q1: 如果FTP登录报错530 Login incorrect. Login failed.怎么办?

A1: 这是由于PAM认证问题导致的,可以通过修改pam_service_name来解决,编辑/etc/pam.d/vsftpd文件,将以下内容:

   auth required pam_listfile.so sense=deny onerr=fail item=user_ignore file=/etc/vsftpd.user_ignore from=getenv fallthrough=yes
   account required pam_permit.so
   session required pam_loginuid.so pam_succeed_if_terminal_not /usr/bin/false pam_exec_log passwd-auth service=vsftpd user_change=no env=USER,TERM,TERMPROGRAM,VSFTPD_LOGLEVEL,VSFTPD_SECCOMP,VSFTPD_BANNER,VSFTPD_MESSAGE,LSCOLORS,SSH_CLIENT,SSH_TTY,LSCOLORS,LANG,LC_*,LC_MESSAGES,LC_MESSAGEMODE,LC_NUMERIC,LC_TIME,LC_MONETARY,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONE,LC_MEASUREMENT,LC_IDENTIFICATION,LC_ALL
   session optional pam_motd.so pam_session=yes mailer=root standard

修改为:

   auth required pam_listfile.so sense=deny onerr=fail item=user_ignore file=/etc/vsftpd.user_ignore from=getenv fallthrough=yes
   account required pam_permit.so
   session required pam_loginuid.so pam_succeed_if_terminal_not /usr/bin/false pam_exec_log passwd-auth service=ftp user_change=no env=USER,TERM,TERMPROGRAM,VSFTPD_LOGLEVEL,VSFTPD_SECCOMP,VSFTPD_BANNER,VSFTPD_MESSAGE,LSCOLORS,SSH_CLIENT,SSH_TTY,LSCOLORS,LANG,LC_*,LC_MESSAGES,LC_MESSAGEMODE,LC_NUMERIC,LC_TIME,LC_MONETARY,LC_PAPER,LC_NAME,LC_ADDRESS,LC_TELEPHONELC_MEASUREMENT,LC_IDENTIFICATION,LC_ALL
   session optional pam_motd.so pam_session=yes mailer=root standard

然后重启vsftpd服务:

   sudo systemctl restart vsftpd

Q2: 如何更改FTP服务器的监听端口?

A2: 你可以通过修改vsftpd配置文件中的listen_port参数来更改FTP服务器的监听端口,编辑/etc/vsftpd.conf文件,找到以下行:

   listen_port=21

将其修改为你想要的端口号,例如8021:

   listen_port=8021

然后重启vsftpd服务以使更改生效:

   sudo systemctl restart vsftpd

注意,还需要在防火墙中开放新的端口号。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1257720.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希的头像未希新媒体运营
上一篇 2024-11-01 10:38
下一篇 2024-11-01 10:46

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入