如何在FreeBSD 10.2上安装带TLS的Pure-FTPd
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”。