如何在FreeBSD 10.2上安装带TLS的Pure-FTPd

时间:2020-03-05 15:28:08  来源:igfitidea点击:

FTP或者文件传输协议是应用程序层标准的网络协议,用于在用户通过TCP网络(例如Internet)登录FTP服务器后,将文件从客户端传输到服务器。
FTP已经存在了很长时间,比P2P程序或者万维网要长得多,直到今天,它还是通过Internet与其他人共享文件的主要方法,并且直到今天它仍然非常流行。
FTP提供了一种安全的传输方式,可以保护用户名,密码并使用SSL/TLS加密内容。

Pure-FTPd是具有强大功能且专注于软件安全性的免费FTP服务器。
如果我们想提供功能丰富的FTP服务,以提供快速,安全,轻便的服务,这是绝佳选择。
Pure-FTPd可以安装在各种类似Unix的操作系统上,包括Linux和FreeBSD。
Pure-FTPd由Frank Dennis于2001年在Troll-FTPd的基础上创建,到目前为止,它是由Dennis领导的团队积极开发的。

在本教程中,我们将提供有关使用类Unix操作系统FreeBSD 10.2的“ Pure-FTPd”的安装和配置的信息。

步骤1-更新系统

我们必须做的第一件事是安装和更新freebsd存储库,请使用SSH连接到服务器,然后在下面输入命令sudo/root:

freebsd-update fetch
freebsd-update install

第2步-安装Pure-FTPd

我们可以从ports方法安装Pure-FTPd,但是在本教程中,我们将使用“ pkg”命令从freebsd存储库安装。
所以,现在让我们安装:

pkg install pure-ftpd

安装完成后,请使用以下sysrc命令在启动时将pure-ftpd添加到启动位置:

sysrc pureftpd_enable=yes

第3步-配置Pure-FTPd

Pure-FTPd的配置文件位于目录“/usr/local/etc /”,请转至该目录并将pure-ftpd的示例配置复制到“ pure-ftpd.conf”。

cd /usr/local/etc/
cp pure-ftpd.conf.sample pure-ftpd.conf

现在使用nano编辑器编辑文件配置:

nano -c pure-ftpd.conf

注意:-c选项可在nano上显示行号。

转到第59行,并将“ VerboseLog”的值更改为“ yes”。
此选项允许我们作为管理员查看用户使用的log all命令。

VerboseLog   yes

现在查看第126行“ PureDB”中的虚拟用户配置。
虚拟用户是一种用于存储用户列表以及其密码,名称,uid,目录等的简单机制。
就像/etc/passwd一样。
但这不是/etc/passwd。
这是一个不同的文件,仅适用于FTP。
在本教程中,我们将用户列表存储到文件“ /usr/local/etc/pureftpd.passwd”和“ /usr/local/etc/pureftpd.pdb”中。
请取消注释该行,并将文件路径更改为“ /usr/local/etc/pureftpd.pdb”。

PureDB   /usr/local/etc/pureftpd.pdb

接下来,在第336行“ CreateHomeDir”上取消注释,此选项使我们可以轻松添加虚拟用户,并允许在缺少虚拟目录时自动创建主目录。

CreateHomeDir   yes

保存并退出。

接下来,使用服务命令启动pure-ftpd:

service pure-ftpd start

第4步-添加新用户

在这一步,FTP服务器已启动,没有错误,但是我们无法登录FTP服务器,因为匿名用户禁用了pure-ftpd的默认配置。
我们需要使用主目录创建新用户,然后为它提供登录密码。

实际上,我们必须做的就是将新用户添加到pure-ftpd虚拟用户中,以便为此创建一个系统用户,让我们创建新系统用户“ vftp”,默认组与用户名相同,主目录为“/home /”。
vftp /”。

pw useradd vftp -s /sbin/nologin -w no -d /home/vftp \
-c "Virtual User Pure-FTPd" -m

现在,我们可以使用“ pure-pw”命令为FTP服务器添加新用户。
例如,我们将创建一个名为“ akari”的新用户,因此请参见以下命令:

pure-pw useradd akari -u vftp -g vftp -d /home/vftp/akari
Password: TYPE YOUR PASSWORD

该命令将创建用户“ akari”,并将数据存储在文件“ /usr/local/etc/pureftpd.passwd”中,而不是在/etc/passwd文件中,因此这意味着我们可以轻松创建仅FTP帐户,而无需弄乱系统帐户。

接下来,我们必须使用以下命令生成PureDB用户数据库:

pure-pw mkdb

现在重新启动纯ftpd服务,然后尝试与用户“ akari”连接:

service pure-ftpd restart

尝试与akari用户连接:

ftp SERVERIP

笔记 :

如果要再次添加新用户,可以使用“ pure-pw”命令。
如果要删除当前用户,可以使用以下命令:

pure-pw userdel useryouwanttodelete
pure-pw mkdb

第5步-将SSL/TLS添加到Pure-FTPd

Pure-FTPd支持使用TLS安全机制进行加密。
要支持TLS/SSL,请确保freebsd系统上已经安装了OpenSSL库。

现在,我们必须在目录“/etc/ssl/private”上生成新的“自签名证书”。
在生成证书之前,请在该目录中创建一个名为“ private”的新目录。

cd /etc/ssl/
mkdir private
cd private/

现在,使用下面的openssl命令生成“自签名证书”:

openssl req -x509 -nodes -newkey rsa:2048 -sha256 -keyout \
/etc/ssl/private/pure-ftpd.pem \
-out /etc/ssl/private/pure-ftpd.pem

填写个人信息。

接下来,更改证书权限:

chmod 600 /etc/ssl/private/*.pem

生成证书后,编辑pure-ftpd配置文件:

nano -c /usr/local/etc/pure-ftpd.conf

在第423行取消注释以启用TLS:

TLS     1

并在第439行输入证书文件路径:

CertFile       /etc/ssl/private/pure-ftpd.pem

保存并退出,然后重新启动pure-ftpd服务:

service pure-ftpd restart

现在,让我们测试可与TLS/SSL配合使用的Pure-FTPd。
我在这里使用“ FileZilla”连接到FTP服务器,并使用已创建的用户“ akari”。