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
现在用户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