在本文中,我们将学习如何使用Proftpd在运行Fedora22的计算机或服务器上设置FTP服务器。ProFTPD是一款免费开源的FTP服务器软件,根据GPL,是Linux上主流的FTP服务器。它的主要设计目标是提供许多高级功能,并为用户提供丰富的配置选项以便于定制。它有许多其他一些FTP服务器软件所缺少的配置选项。它最初是作为wu-ftpd服务器的更安全、更易于配置的替代品而开发的。FTP服务器是一种允许用户通过FTP客户端从安装了它的远程服务器上传或下载文件和目录的软件。以下是ProFTPD服务器的一些主要功能,更详细的信息可以在http://www.proftpd.org/features.html找到。每个目录都可以包含用于访问控制的“.ftpaccess”文件,类似于Apache的“.htaccess”。支持多个虚拟FTP服务器以及多用户登录和匿名FTP服务。该服务可以作为独立进程或通过inetd/xinetd启动。它的文件/目录属性、所有权和权限基于UNIX方法。它可以独立运行并保护系统免受根访问可能造成的损害。模块化设计使得扩展其他模块变得容易,如LDAP服务器、SSL/TLS加密、RADIUS支持等。ProFTPD服务器还支持IPv6。以下是有关如何在运行Fedora22操作系统的计算机上使用ProFTPD设置FTP服务器的一些简单步骤。1.安装ProFTPD首先,我们将在运行Fedora22的机器上安装Proftpd软件。由于yum包管理器已被弃用,我们将使用最新的包管理器dnf。DNF易于使用,是Fedora22非常人性化的包管理器。我们将使用它来安装proftpd软件。这需要在终端或控制台中以sudo模式运行以下命令。$sudodnf-yinstallproftpdproftpd-utils2.配置ProFTPD现在,我们将修改软件的一些配置。要配置它,我们需要使用文本编辑器编辑/etc/proftpd.conf文件。/etc/proftpd.conf文件是ProFTPD软件的主要配置文件,因此对该文件的任何更改都会影响FTP服务器。在这里,我们在初始步骤中所做的更改。$sudovi/etc/proftpd.conf后,用文本编辑器打开这个文件后,我们要更改ServerName和ServerAdmin,分别填上自己的域名和邮箱地址。以下是我们更改的内容。ServerName"ftp.linoxide.com"ServerAdminarun@linoxide.com在此之后,我们将以下设置添加到配置文件中,这将允许服务器将访问和授权记录到相应的日志文件中。ExtendedLog/var/log/proftpd/access.logWRITE,READdefaultExtendedLog/var/log/proftpd/auth.logAUTHauth调整ProFTPD设置#p#3。添加FTP用户设置完基本的配置文件后,我们很自然地想要添加一个根植于特定目录的FTP用户。当前登录的用户可自动使用FTP服务,可用于登录FTP服务器。但是,在本教程中,我们将创建一个新用户,其主目录是ftp服务器上的指定目录。接下来,我们将创建一个名为ftpgroup的新用户组。$sudogroupaddftpgroup然后,我们将以目录/ftp-dir/为主目录添加一个新用户arunftp并加入该组。$sudouseradd-Gftpgrouparunftp-s/sbin/nologin-d/ftp-dir/创建用户并加入用户组后,我们为用户arunftp设置密码。$sudopasswdarunftp正在更改用户arunftp的密码。新密码:重新输入新密码:passwd:所有身份验证令牌已成功更新。现在,我们将通过以下命令为这个ftp用户的主目录设置读写权限(LCTT译注:这是SELinux的相关设置,如果没有启用SELinux,则不能使用)。$sudosetsebool-Pallow_ftpd_full_access=1$sudosetsebool-Pftp_home_dir=1然后,我们将设置不允许其他用户移动或重命名该目录及其内容。$sudochmod-R1777/ftp-dir/4.开启TLS支持FTP目前使用的加密方式并不安全,任何人都可以通过监控网卡读取FTP传输的数据。因此,我们将为我们的服务器打开TLS加密支持。在这种情况下,需要编辑/etc/proftpd.conf配置文件。在此之前,我们先备份一下当前的配置文件,确保问题修复后可以恢复。$sudocp/etc/proftpd.conf/etc/proftpd.conf.bak然后,我们可以使用我们喜欢的文本编辑器修改配置文件。$sudovi/etc/proftpd.conf然后,将以下行附加到我们在步骤2中添加的内容中。etc/pki/tls/certs/proftpd.pem打开TLS配置完成以上设置后,保存退出。然后,我们需要生成SSL证书proftpd.pem并将其放在/etc/pki/tls/certs/目录中。在这种情况下,您首先需要在Fedora22上安装openssl。$sudodnfinstallopenssl然后,可以通过执行以下命令生成SSL证书。$sudoopensslreq-x509-nodes-newkeyrsa:2048-keyout/etc/pki/tls/certs/proftpd.pem-out/etc/pki/tls/certs/proftpd.pem系统会询问一些会写入证书基本信息。填写信息后,会生成一个2048位的RSA私钥。正在生成一个2048位RSA私钥......+++................................+++写入新的私钥到'/etc/pki/tls/certs/proftpd.pem'-----你将被要求输入信息,这些信息将被合并到你的证书请求中。你将要输入的是所谓的杰出证书名称或DN。有很多字段,但您可以留空某些字段会有默认值,如果您输入“.”,该字段将留空。-----国家名称(2个字母code)[XX]:NPStateorProvinceName(fullname)[]:NarayaniLocalityName(eg,city)[DefaultCity]:BharatpurOrganizationName(eg,company)[DefaultCompanyLtd]:LinoxideOrganizationalUnitName(eg,section)[]:LinuxFreedomCommon名称(例如,您的姓名或服务器的主机名)[]:ftp.linoxide.com电子邮件地址[]:arun@linoxide.com在此之后,我们必须更改生成的凭证文件的权限以增加安全性。$sudochmod600/etc/pki/tls/certs/proftpd.pem5.允许FTP通过防火墙现在,您需要允许ftp端口,该端口通常默认被防火墙阻止。也就是说,需要允许ftp端口通过防火墙。如果启用了TLS/SSL加密,请执行以下命令。$sudofirewall-cmd--add-port=1024-65534/tcp$sudofirewall-cmd--add-port=1024-65534/tcp--permanent如果没有开启TLS/SSL加密,执行以下命令。$sudofirewall-cmd--permanent--zone=public--add-service=ftpsuccess然后,重新加载防火墙设置。$sudofirewall-cmd--reloadsuccess#p#6。启动并激活ProFTPD一切设置完成后,最好的办法是启动ProFTPD并试一试。可以运行以下命令来启动proftpdftp守护进程。$sudosystemctlstartproftpd.service然后,我们就可以设置开机启动了。$sudosystemctl启用proftpd.serviceCreated从/etc/systemd/system/multi-user.target.wants/proftpd.service到/usr/lib/systemd/system/proftpd.service.7的符号链接。登录FTP服务器现在如果按照本教程都设置好了,我们一定可以连接到ftp服务器,并使用上面设置的信息登录。这里,我们将配置FTP客户端filezilla,使用服务器的IP或名称*作为主机名,协议选择*FTP,用户名填写arunftp,使用上面第3步设置的密码。如果您已按照步骤4所述启用TLS支持,则还需要在加密类型中选择RequireexplicitTLS-basedFTP。如果未启用且您不想使用TLS加密,则选择简单FTP作为加密类型。上面需要设置FTP登录详细信息,需要打开菜单中的文件,点击站点管理器,然后点击新建站点,然后按照上面的方法进行设置。FTPSSL证书系统会询问是否允许使用SSL证书,点击确定。之后,您可以从我们的FTP服务器上传和下载文件和文件夹。总之***,我们已经在Fedora22机器上成功安装和配置了ProftpdFTP服务器。Proftpd是一个超级强大、高度可定制和可扩展的FTP守护进程。上面的教程展示了如何使用TLS加密配置安全的FTP服务器。强烈建议将FTP服务器设置为支持TLS加密,因为它允许使用SSL证书进行加密数据传输和登录。在本文中,我们也没有配置对FTP的匿名访问,因为通常不建议将其用于受保护的FTP系统。FTP访问使上传和下载对人们来说非常简单和高效。我们还可以更改用户端口以增加安全性。好了,如果大家有什么问题、建议、反馈,欢迎在下方评论区留言,以便我们完善和更新文章内容。谢谢!玩得开心:-)
