如何在OpenSUSE Leap 42.1上安装带有TLS和虚拟用户的Pure-FTPd

在本教程中,我将向您展示如何在OpenSUSE Leap 42.1上安装和配置pure-ftpd。我将向您展示如何使用TLS / SSL设置pure-ftpd ...

Pure-FTPd是基于Troll-FTPd的免费和轻量级的FTP服务器,开发于2001年,它运行在许多类似Unix的操作系统中,包括Linux,* BSD,Solaris和HP-UX。 Pure-FTPd具有虚拟域,chroot主目录,虚拟用户,TLS / SSL支持,虚拟配额等诸多功能。

在本教程中,我将向您展示如何在OpenSUSE Leap 42.1上安装和配置pure-ftpd。 我将向您展示如何使用TLS / SSL设置纯ftpd,然后设置虚拟用户。

前提条件

  • OpenSUSE Leap 42.1
  • 根权限
  • OpenSUSE,Zypper知识

第1步 - 安装和配置SuSEfirewall2

SuSEfirewall2是在文件'/ etc / sysconfig / SuSEfirewall2'中生成防火墙配置的脚本。 我们将安装SuSEfirewall2,然后打开SSH和FTP服务的端口。

用zypper安装SuSEfirewall2:

zypper in SuSEfirewall2

接下来,使用vim编辑配置文件“/ etc / sysconfig / SuSEfirewall2”

vim /etc/sysconfig/SuSEfirewall2

将新服务ssh和FTP添加到第253行:

FW_SERVICES_EXT_TCP="ssh ftp"

保存并退出。

现在使用systemctl命令启动SuSEfirewall2:

systemctl start SuSEfirewall2

第2步 - 安装和配置Pure-FTPd

在此步骤中,我们将安装纯ftpd与OpenSSL TLS / SSL配置,并配置纯ftpd用户和组。

使用zypper安装应用程序,如下所示:

zypper in pure-ftpd openssl

现在,将新组' ftpgroup '和主用户'FTP用户'的新用户称为“ ftpuser ”。

groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser

转到纯ftpd目录并使用vim编辑器编辑配置文件“pure-ftpd.conf”:

cd /etc/pure-ftpd/
vim pure-ftpd.conf

将第81行中的值更改为“yes”以禁用匿名用户。

NoAnonymous                 yes

取消注释行131配置后端。 Pure-ftpd支持MySQL,PostgreSQL和LDAP作为后端,但在本教程中,我们将使用“PureDB”作为后端。

PureDB                        /etc/pure-ftpd/pureftpd.pdb

注释掉PAMAuthentication行以禁用第141行的PAM身份验证,因为我们将使用PureDB作为身份验证源。

#PAMAuthentication             yes

保存并退出。

第3步 - 为Pure-FTPd配置TLS / SSL

使用openssl命令在'/ etc / ssl / private'目录中生成新的自签名证书文件:

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

将证书文件的权限更改为0600:

chmod 600 /etc/ssl/private/pure-ftpd.pem

接下来,返回到纯ftpd目录并编辑配置文件,为客户端连接启用TLS / SSL支持。

cd /etc/pure-ftpd/
vim pure-ftpd.conf

取消注释行439启用TLS。

TLS                      1

取消注释行449并添加一个新选项,使其更安全。

TLSCipherSuite           HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3

取消注释行445以定义证书文件。

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

保存并退出。

现在使用systemctl命令启动pure-ftpd:

systemctl start pure-ftpd

第4步 - 配置虚拟用户

Pure-FTPd提供了创建和使用虚拟用户而不是真实系统(Linux)用户的功能。 Pure-FTPd提供几个验证后端,虚拟用户配置取决于服务器使用的后端。 在第2步中,我们将'PureDB'设置为后端。

我们可以使用pure-ftpd提供的'pure-pw'命令来创建一个新的虚拟用户。 在这一步中,我们将创建一个名为'shiro'的新虚拟用户,目录'/ srv / ftp / shiro'作为ftp主目录,用户被chrooted到该目录,以便他无法访问其他系统目录。

使用pure-pw创建新的虚拟用户:

pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro

创建虚拟用户的目录,并将该目录的所有者更改为主“FTP用户”。

mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro

接下来,我们必须使用以下命令保存更改:

pure-pw mkdb

添加一个纯pw用户

现在用户shiro已经可以使用了,我们可以使用命令行中的FTPp或GUI界面的FileZilla连接到服务器。

注意:

pure-pw有更多的命令选项,可以使用' pure-pw help '来查看所有有用的命令。

第5步 - 测试

我将在终端中使用FTP命令进行测试。 打开你的终端并输入“ftp”:

ftp

接下来输入纯ftpd服务器ip:

open 192.168.43.69

用用户'shiro'和密码登录,然后按'Enter'。

尝试使用'put'命令上传文件:

put picture.png mypict.png

现在,您将在下面的ls命令中看到服务器上的文件mypict.png:

ls

FTP连接

参考