在Debian或Ubuntu上,使用ProFTPd安装一个FTP服务器

・7 分钟阅读

使用不同的系统?

在本指南中,我们将了解如何配置FTP服务器(ProFTPd)以在PC和服务器之间传输文件。

前提条件

  • 新部署的Debian或Ubuntu服务器实例,
  • 一个sudo用户

安装

更新系统。


sudo apt-get update
sudo apt-get dist-upgrade

安装proftpd


sudo apt-get install proftpd

如果安装过程中,你会被询问是否要安装在inetdstandalone模式,选择standalone模式。

配置

打开Proftpd配置文件。


sudo nano /etc/proftpd/proftpd.conf

文件将类似于以下文本。


#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
#

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
# If set on you can experience a longer connection delay in many cases.
IdentLookups off

ServerName"Debian"
ServerType standalone
DeferWelcome off

MultilineRFC2228 on
DefaultServer on
ShowSymlinks on

TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200

DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions"-l"

DenyFilter *.*/

# Use this to jail all users in their homes
# DefaultRoot ~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off

# Port 21 is the standard FTP port.
Port 21
...

主要配置指令

  • ServerName :指定FTP服务器的名称,此名称将在客户端连接到服务器时显示,
  • TimeoutIdle :客户端在FTP服务器上不再活动时自动断开的时间(以秒为单位),
  • DefaultRoot :控制登录时分配给用户的默认root目录,
  • Port :FTP服务器的连接端口,此端口是21,除非你被防火墙阻塞,否则你不应该更改它,
  • PassivePorts :限制服务器从客户端发送PASV命令时将从其中选择的端口范围,
  • MaxInstances :FTP服务器上允许的最大同时连接数,

现在,我们必须激活DefaultRoot选项,为此,找到DefaultRoot注释的行,并且取消注释。


DefaultRoot ~

~表示用户将被限制在个人文件夹(e.g /home/user12 )中。

注意:默认情况下,连接到FTP服务器的人可以访问所有服务器文件夹,因此建议启用选项DefaultRoot

更改ServerName


ServerName : the name of your FTP server

查找并取消注释以下行(删除每行开头的# )以允许匿名连接到你的服务器。


# A basic anonymous configuration, no upload directories.

 <Anonymous ~ftp>
 User ftp
 Group nogroup
 # We want clients to be able to login with"anonymous" as well as"ftp"
 UserAlias anonymous ftp
 # Cosmetic changes, all files belongs to ftp user
 DirFakeUser on ftp
 DirFakeGroup on ftp

 RequireValidShell off

 # Limit the maximum number of anonymous logins
 MaxClients 10

 # We want 'welcome.msg' displayed at login, and '.message' displayed
 # in each newly chdired directory.
 DisplayLogin welcome.msg
 DisplayFirstChdir .message

 # Limit WRITE everywhere in the anonymous chroot
 <Directory *>
 <Limit WRITE>
 DenyAll
 </Limit>
 </Directory>
 </Anonymous>

注意:如果你在FTP服务器上启用匿名连接,任何用户都可以连接到它,他们可以访问/home/ftp目录,能够读取和下载文件,但是,不能修改或添加文件。

你可以通过添加以下行禁止root用户访问FTP 。

 
RootLogin off

 

配置更改后,重新启动服务器。


sudo service proftpd restart

注意:如果错误行显示为"unable to resolve host",请注意,这并不重要,你可以忽略它。

添加FTP用户

添加用户,例如"myuser"


useradd --shell /bin/false myuser

创建用户"myuser"的主目录。

 
mkdir/home/myuser

 

将该目录的所有权更改为用户和组"myuser"


chown myuser:myuser /home/myuser/

为用户"myuser"设置密码。

 
passwd myuser

 

连接到你的FTP服务器

在浏览器的地址栏中键入ftp://server_ip_address ,将server_ip_address替换为服务器的IP地址,然后你将被询问你的usernamepassword

你可以使用以下命令,查看都有谁连接到你的FTP服务器。

 
ftpwho

 

此外,你可以看到统计信息。

 
ftpstats

 
杨和超 profile image