如何在Debian 9上用TLS设置pure-ftpd

发布时间:2023-03-12 19:49:40,浏览2973次,转载自:互联网

pure-ftpd是一个快速而轻量级的FTP服务器,它内置了安全性。在本教程中,我将向您展示如何在4个简单的步骤中安装和使用纯FTP。本指南解释了如何在Debian 9上安装纯FTPd。

第一步,安装

pure-ftpd位于Debian的稳定存储库中,因此不需要向系统添加任何额外的存储库。

使用root权限运行以下命令:

apt install -y pure-ftpd-common pure-ftpd

第二步,配置

您可以使用许多选项来更改应用程序的行为。这些选项可以应用于pure-ftpd在启动时的守护进程,或者您可以通过在 conf 目录中创建必要的文件来使它们持久。

我们希望:

创建虚拟用户。

为用户自动创建主目录。

限制(chroot) 用户只能访问他们自己的主目录。

启用pure-ftpd的数据库,禁用PAM和Unix身份验证以启用虚拟用户:

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50pure
echo no > /etc/pure-ftpd/conf/PAMAuthentication
echo no > /etc/pure-ftpd/conf/UnixAuthentication

设置pure - ftpd在第一次登录时为用户创建home目录:

echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir

Chroot每个人。

echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

如果您有兴趣了解其他选项,请访问官方文档页面。

步骤三——创建用户

pure-ftpd可以处理虚拟用户,这意味着它们被保存在pure-ftpd的数据库中,与Linux系统用户无关。

为了使pure - ftpd能够管理与虚拟用户的文件,我们需要创建一个Linux用户和组,其中所有的虚拟用户都将被关联。所有虚拟用户都可以使用相同的系统用户和组,只要它们已经被根。

运行以下命令创建系统用户和组:

groupadd ftpusr
useradd -g ftpusr -d /dev/null -s /etc ftpusr

注意:我们不希望这个用户拥有一个主目录或登录功能。

创建我们的FTP根目录:

mkdir /home/FTP

在pure - ftpd中创建一个虚拟用户:

pure-pw useradd alex -u ftpusr -g ftpusr -d /home/FTP/alex

我们添加了第一个虚拟用户(alex)并将其与系统用户/组(ftpusr)关联起来。您与alex所写的所有文件都将由系统上的ftpusr拥有。

更新Pure-FTPd的数据库:

pure-pw mkdb

检查用户的信息:

pure-pw show alex
Login : alex
Password : <encrypted password>
UID : 1000 (ftpusr)
GID : 1000 (ftpusr)
Directory : /home/FTP/alex/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited)

为了简化生活,使用以下脚本添加FTP帐户:

echo -e '#!/bin/bash\nread -p "Enter UserName: " usrname\npure-pw useradd $usrname -u ftpusr -g ftpusr -d /home/FTP/$usrname && pure-pw mkdb' > /usr/sbin/ftp-createacc
chmod u+x /usr/sbin/ftp-createacc

现在,创建FTP帐号很简单:

ftp-createacc
Enter UserName: mike
Password:
Enter it again:

步骤四- TLS支持

首先,我们需要安装OpenSSL。

apt install -y openssl

强制pure-ftpd使用TLS,或者我们可以让它是可选的,这意味着不安全的和TLS连接被接受

# force TLS
echo 2 > /etc/pure-ftpd/conf/TLS
# insecure + TLS
echo 1 > /etc/pure-ftpd/conf/TLS

创建一个目录来存储我们的密钥。

mkdir -p /etc/ssl/pure-ftpd

生成一个bundle key(私钥和公钥)。

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

重新启动pure-ftpd守护进程。

systemctl restart pure-ftpd

如果您的系统上安装了防火墙,或者您的服务器在NAT之后,那么您必须在pure - ftpd中定义被动端口,并在您的防火墙中打开这些端口,否则您将会收到这样的错误:

Server sent passive reply with unroutable address. Passive mode failed.
Failed to retrieve directory listing.
500 I won't open a connection to 192.168.1.4 (only to 10.10.10.10).

在pure - ftpd中设置被动端口:

echo "40110 42210" > /etc/pure-ftpd/conf/PassivePortRange

重新启动pure-ftpd来应用更改。

systemctl restart pure-ftpd

在您的防火墙中,打开传入端口范围从40110到42210,协议TCP。

FTP在本质上是不安全的,但它也是快速和容易设置的。对于更安全的解决方案,使用SFTP代替。

评论