• 如何使用纯FTPd在Debian 10上设置安全的FTP服务器

    Pure FTPd是一款免费的开源FTP服务器,其设计考虑了安全性。在本教程中,我们将学习如何使用纯FTPd在Debian 10上设置FTP服务器,以及如何实施TLS加密。 纯FTPd功能: 它支持SSL/TLS加密,因此可以保护密码和命令。 它可以在大多数类Unix系统上运行:Linux、BSDs、Solaris、Darwin、HPUX、AIX,甚至iPhone。 有21种语言可供选择。 允许您监视活动会话。 支持虚拟配额系统。 还有更多 有关完整的功能列表,请访问Pure FTPd官方网站。 步骤1:在Debian 10服务器上安装Pure FTPd 它位于软件存储库中,因此发出以下命令来安装FTP服务器。 sudo apt安装纯ftpd 一旦安装,Pure FTPd将自动启动,如下命令所示: systemctl状态纯ftpd 输出: ● 纯ftpd。已加载服务:已加载(/etc/init.d/pure-ftpd;已生成)活动:自2021-06-16 13:15:52 UTC周三起活动(运行);23秒前的文档:man:systemd sysv generator(8)任务:1(限制:558)内存:972.0K CGroup:/system。切片/纯ftpd。服务└─9223纯ftpd(服务器) 如果它没有运行,请用以下代码启动: sudo systemctl启动纯ftpd 它在TCP端口21上监听,这是控制端口,可以从中看到 sudo ss-lnpt |格雷普纯ftpd 另一个端口是数据端口(TCP端口20),用户通过FTP传输文件时将使用该端口。 默认情况下禁用匿名访问。从现在起,您可以使用系统帐户登录,但纯文本FTP是不安全的,强烈建议不要使用。为了有一个安全的FTP服务器,我们需要加密与TLS的通信。 第2步:实施TLS加密 要同时启用纯文本和TLS加密,请运行以下命令,创建/etc/pure-ftpd/conf/TLS文件,并将数字1放入该文件中。 echo 1 | sudo-tee/etc/pure-ftpd/conf/TLS 但建议禁用纯文本,只使用TLS加密,因此将数字2改为文件。 echo 2 | sudo-tee/etc/pure-ftpd/conf/TLS 现在我们实施了TLS,我们需要获得有效的TLS证书。不建议使用自签名证书,因为用户会看到如下屏幕截图所示的警告消息。 步骤3:从Let's Encrypt获取受信任的TLS证书 运行以下命令,从默认的Debian 10存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot 我建议使用standalone或webroot插件获取纯FTPd的TLS证书。 独立插件 如果Debian 10服务器上没有运行web服务器,可以使用独立插件。运行以下命令。别忘了为你的子域设置DNS记录。 sudo certbot certonly--独立--首选挑战http--同意tos--电子邮件[email ;protected]-d ftp。实例通用域名格式 哪里: certonly:获取证书,但不要安装它。 --standalone:使用standalone插件获取证书 --首选挑战http:执行http-01挑战以验证我们的域,该域将使用端口80。 --同意:同意让我们加密服务条款。 --电子邮件:电子邮件地址用于帐户注册和恢复。 -d:指定你的域名。 从下面的截图可以看出,我成功地获得了证书。 使用webroot插件 如果Debian 10服务器有一个web服务器,那么最好使用webroot插件来获取证书,因为webroot插件几乎适用于所有web服务器,我们不需要在web服务器中安装证书。 首先,您需要为ftp创建一个虚拟主机。实例通用域名格式。 阿帕奇 如果您使用的是Apache,那么 sudo nano/etc/apache2/sites available/ftp。实例通用域名格式。形态 并将以下行粘贴到文件中。 <虚拟主机*:80>服务器名ftp。实例com DocumentRoot/var/www/Pure-FTPd&lt/VirtualHost> 保存并关闭文件。然后创建web根目录。 sudo mkdir/var/www/Pure-FTPd 将www数据(Apache用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 启用此虚拟主机。 sudo a2ensite ftp。实例通用域名格式 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd Nginx 如果您使用的是Nginx,那么 sudo nano/etc/nginx/conf.d/ftp。实例通用域名格式。形态 将以下行粘贴到文件中。 服务器{listen 80;listen[:]:80;server_name ftp.example.com;root/var/www/Pure-FTPd/;location~/.well-known/acme challenge{allow all;} 保存并关闭文件。然后创建web根目录。 sudo mkdir-p/var/www/Pure-FTPd 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd 步骤4:安装证书 Pure FTPd要求将证书和私钥合并到一个名为Pure FTPd的文件中。pem并存储在/etc/ssl/private/目录下。 更改为/etc/letsencrypt/live/ftp。实例com/directory。 sudo su-cd/etc/letsencrypt/live/ftp。实例com/ 您可以使用cat命令将两个文件合并为一个文件,如下所示。 猫全链。佩姆·普列夫基。pem | sudo-tee/etc/ssl/private/pure-ftpd。佩姆 确保只有root用户才能读取该文件。 sudo chmod 600/etc/ssl/private/pure-ftpd。佩姆 我们需要生成Diffie-Hellman参数: sudo openssl dhparam-out/etc/ssl/private/pure-ftpd dhparams。pem 4096 如果您的服务器只有一个CPU核心,那么这将需要很长时间(大约10分钟)。 完成后,重新启动纯FTPd。 sudo systemctl重新启动纯ftpd 检查状态以查看它是否正在运行。 systemctl状态纯ftpd 现在,您可以通过TLS连接到FTP服务器。 第5步:在防火墙中打开FTP端口 如果使用UFW防火墙,则运行以下命令打开TCP端口20和21。 sudo ufw允许20,21/tcp 第6步:连接到FTP服务器 如果您使用Nautilus file manager通过纯文本FTP://协议连接到FTP服务器 连接将被拒绝。 您必须使用ftps://,而不是ftp://。 默认情况下,FTP用户将被带到服务器上的/root目录。 请注意,Filezilla默认情况下不信任任何证书(自签名或CA签名)。用户必须选择为自己信任证书。 FileZilla未知证书警告 您需要使用FTP显式TLS协议(ftpes://ftp.example.com)在菲齐拉。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开根用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&cd/etc/letsencrypt/live/ftp。实例com/&amp&猫全链。佩姆·普列夫基。pem | tee/etc/ssl/private/pure ftpd。pem&amp&systemctl重新加载纯ftpd 有必要重新加载纯ftpd,使其获取新的证书和私钥。 收尾 我希望本教程能帮助您在Debian 10上使用纯FTPd设置一个安全的FTP服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Twitter或Facebook上关注我们。

    2022.03.22 浏览:366
  • 如何在Ubuntu404上使用纯FTPd设置安全的FTP服务器

    Pure FTPd是一款免费的开源FTP服务器,其设计考虑了安全性。在本教程中,我们将了解如何使用纯FTPd在Ubuntu服务器上设置一个安全的FTP服务器,以及如何实施TLS加密。 注意:本教程适用于所有当前的Ubuntu版本,包括Ubuntu 20.04、18.04和21.04。 纯FTPd功能: 它支持SSL/TLS加密,因此可以保护密码和命令。 它可以在大多数类Unix系统上运行:Linux、BSDs、Solaris、Darwin、HPUX、AIX,甚至iPhone。 有21种语言可供选择。 允许您监视活动会话。 支持虚拟配额系统。 还有更多 有关完整的功能列表,请访问Pure FTPd官方网站。 第一步:在Ubuntu服务器上安装Pure FTPd 它位于软件存储库中,因此发出以下命令来安装FTP服务器。 sudo apt install pure-ftpd 一旦安装,Pure FTPd将自动启动,如下命令所示: systemctl status pure-ftpd 输出: ● pure-ftpd.service Loaded: loaded (/etc/init.d/pure-ftpd; bad; vendor preset: enabled) Active: active (running) since Mon 2016-12-12 21:51:46 EST; 23s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/pure-ftpd.service └─3435 pure-ftpd (SERVER) 预设:启用表示它将在系统启动时自动启动。如果它没有运行,请用以下代码启动: sudo systemctl start pure-ftpd 它在TCP端口21上监听,这是控制端口,可以从中看到 sudo netstat -lnpt | grep pure-ftpd 默认情况下禁用匿名访问。从现在起,你可以使用你的系统帐户登录,但纯文本FTP是不安全的,强烈反对。为了有一个安全的FTP服务器,我们需要加密与TLS的通信。 第2步:实施TLS加密 要同时启用纯文本和TLS加密,请运行以下命令,创建/etc/pure-ftpd/conf/TLS文件,并将数字1放入该文件中。 echo 1 | sudo tee /etc/pure-ftpd/conf/TLS 但建议禁用纯文本,只使用TLS加密,因此将数字2改为文件。 echo 2 | sudo tee /etc/pure-ftpd/conf/TLS 现在我们实施了TLS,我们需要获得有效的TLS证书。不建议使用自签名证书,因为用户会看到如下屏幕截图所示的警告。 步骤3:从Let's Encrypt获取受信任的TLS证书 运行以下命令从默认的Ubuntu存储库安装Let's Encrypt client(certbot)。 sudo apt install certbot 我建议使用standalone或webroot插件获取纯FTPd的TLS证书。 独立插件 如果你的Ubuntu服务器上没有运行web服务器,你可以使用独立插件。运行以下命令。别忘了为你的子域设置DNS记录。 sudo certbot certonly --standalone --preferred-challenges http --agree-tos --email [email protected] -d ftp.example.com 哪里: certonly:获取证书,但不要安装它。 --standalone:使用standalone插件获取证书 --首选挑战http:执行http-01挑战以验证我们的域,该域将使用端口80。 --同意:同意让我们加密服务条款。 --电子邮件:电子邮件地址用于帐户注册和恢复。 -d:指定你的域名。 从下面的截图可以看出,我成功地获得了证书。 使用webroot插件 如果你的Ubuntu服务器有一个web服务器,那么使用webroot插件来获取证书是一个好主意,因为webroot插件适用于几乎所有的web服务器,我们不需要在web服务器中安装证书。 首先,您需要为ftp创建一个虚拟主机。实例通用域名格式。 阿帕奇 如果您使用的是Apache,那么 sudo nano /etc/apache2/sites-available/ftp.example.com.conf 并将以下行粘贴到文件中。 <VirtualHost *:80> ServerName ftp.example.com DocumentRoot /var/www/Pure-FTPd </VirtualHost> 保存并关闭文件。然后创建web根目录。 sudo mkdir /var/www/Pure-FTPd 将www数据(Apache用户)设置为web根目录的所有者。 sudo chown www-data:www-data /var/www/Pure-FTPd -R 启用此虚拟主机。 sudo a2ensite ftp.example.com 重新加载Apache以使更改生效。 sudo systemctl reload apache2 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly --webroot --agree-tos --email [email protected] -d ftp.example.com -w /var/www/Pure-FTPd Nginx 如果您使用的是Nginx,那么 sudo nano /etc/nginx/conf.d/ftp.example.com.conf 将以下行粘贴到文件中。 server { listen 80; listen [::]:80; server_name ftp.example.com; root /var/www/Pure-FTPd/; location ~ /.well-known/acme-challenge { allow all; } } 保存并关闭文件。然后创建web根目录。 sudo mkdir -p /var/www/Pure-FTPd 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data /var/www/Pure-FTPd -R 重新加载Nginx以使更改生效。 sudo systemctl reload nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly --webroot --agree-tos --email [email protected] -d ftp.example.com -w /var/www/Pure-FTPd 步骤4:安装证书 Pure FTPd要求将证书和私钥合并到一个名为Pure FTPd的文件中。pem并存储在/etc/ssl/private/目录下。 更改为/etc/letsencrypt/live/ftp。实例com/directory。 cd /etc/letsencrypt/live/ftp.example.com/ 您可以使用cat命令将两个文件合并为一个文件,如下所示。 sudo cat fullchain.pem privkey.pem | sudo tee /etc/ssl/private/pure-ftpd.pem 确保只有root用户才能读取该文件。 sudo chmod 600 /etc/ssl/private/pure-ftpd.pem 我们需要生成Diffie-Hellman参数: sudo openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 4096 如果您的服务器只有一个CPU核心,那么这将需要很长时间(大约10分钟)。 完成后,重新启动纯FTPd。 sudo systemctl restart pure-ftpd 检查状态以查看它是否正在运行。 systemctl status pure-ftpd 现在,您可以通过TLS连接到FTP服务器。 如果您使用Nautilus file manager通过纯文本FTP://协议连接到FTP服务器 连接将被拒绝。 您必须使用ftps://,而不是ftp://。 默认情况下,FTP用户将被带到服务器上的/root目录。 请注意,Filezilla默认情况下不信任任何证书(自签名或CA签名)。用户必须选择为自己信任证书。 FileZilla未知证书警告 您需要使用FTP显式TLS协议(ftpes://ftp.example.com)在菲齐拉。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开root用户的crontab文件。 sudo crontab -e 在文件底部添加以下行。 @daily certbot renew --quiet && cd /etc/letsencrypt/live/ftp.example.com/ && cat fullchain.pem privkey.pem | tee /etc/ssl/private/pure-ftpd.pem && systemctl reload pure-ftpd 有必要重新加载纯ftpd,使其获取新的证书和私钥。 收尾 我希望本教程能帮助您在Ubuntu上使用纯FTPd设置一个安全的FTP服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Twitter上关注我们,或者喜欢我们的Facebook页面。

    2022.03.23 浏览:203