我想安装 Pure-FTPd 并配置 FTP 服务器来传输文件。我该怎么做?我使用的是 Ubuntu 13.04。
答案1
安装 Pure-FTPd
root@www:~# aptitude -y install pure-ftpd
作为守护进程运行
root@www:~# echo "yes" > /etc/pure-ftpd/conf/Daemonize
禁止匿名
root@www:~# echo "yes" > /etc/pure-ftpd/conf/NoAnonymous
启用 chroot
root@www:~# echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
仅 IPV4
root@www:~# echo "yes" > /etc/pure-ftpd/conf/IPV4Only
root@www:~# /etc/init.d/pure-ftpd restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd -l pam -E -A -8 UTF-8 -B -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -4 -B
答案2
由于我遇到了一些困难,我制定了在 Xenial 上安装 PureFTP、MySQL 和 TLS 的指南,也许它会有所帮助。
http://ajoliveira.com/ajoliveira/uk/software/pure-ftpd-mysql.php
或葡萄牙语
http://ajoliveira.com/ajoliveira/pt/software/pure-ftpd-mysql.php
我安装 PureFTP 的原因在我发布的指南中有所解释,proftpd 的问题太多,在 Trusty(被动模式、TLS)之后变得无法使用,之前也出现过问题(崩溃)。我发现这个软件包安装起来很容易,而且运行起来没有明显的缺陷。
我使用 ProFTPd 已有很长时间。然而,在之前的 Ubuntu LTS (Trusty) 上,ProFTPd 已经存在错误,会自动关闭,我使用脚本纠正了这个问题。
在 Xenial 上,情况变得更糟,产品停止但并未关闭。另一方面,我无法设置 ProFTPd 进行被动 FTP 传输,并且 TLS 从未正常工作,因为 MLSD 命令因 TLS 身份验证而失败。
因此,我决定尝试一下 PureFTP。我不得不在许多不同的网站上搜索信息,因为主站点没有关于配置目录中使用的晦涩文件的信息。那些是具有不同语法的命令行选项的转录。
我发现,当您了解要采取的步骤并且产品运行良好时,安装非常简单且可重复,所以我决定与社区分享安装过程。
我假设您将在 MySQK 操作方面使用 phpMyAdmin 并且熟悉它,因此我将为所需的单个数据库提供一个 sql 文件,并假设使用 InnoDB 或其他事务引擎。如果您使用的是 MyISAM,只需注释掉提供的 mysql.conf(MySQLTransactions On) 的最后一句。所有 bash 命令前面都必须加上 ,
sudo
或者您可以使用 启动 root 会话su
。
安装软件。
sudo apt-get install pure-ftpd-mysql
设置用户和组。
sudo groupadd -g 2001 ftpgroup sudo useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
设置数据库。
现在在服务器选项卡上使用 phpmyadmin 创建一个名为 pureftpd 的用户,记下您选择的密码,然后单击“创建具有相同名称的数据库并授予所有权限”。
加载此文件并将其解压。
在左侧窗格中,转到刚刚创建的 pureftpd 数据库并单击“导入”。选择刚刚解压的文件。您最终应该得到一个包含单个表的填充数据库,其中:
• User 是用户名
• status 是0 inactive 1 active
• Password 是密码,以 MD5 加密(在 varchar(64) 下拉菜单中输入密码后选择 MD5。更改提供的测试用户的密码,否则它将永远不起作用
• uid 和 gid 将为 2001(按照上述步骤创建)
• dir 应指向您拥有文件的目录。要么将该目录设置为由创建的用户/组拥有(chown ftpuser.ftpgroup "dir"
),要么如果我们谈论的是 apache 提供的文件,您可能只会将 ftpuser 添加到您的 www-data 组。
• ULBandwidth 和 DLBandidth 是上传/下载最大带宽的限制(kb/s),0 表示无限制。
• comment 应该用于您内部的用户识别目的。
• QuotaSize 是允许用户上传的最大空间。
• QuotaFiles 是允许用户上传的最大文件数。sudo cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf.old
配置 PureFTP。
加载此文件并解压。
将 db 目录中的 mysql.conf 复制到 /etc/pure-ftpd/db/请将 mysql.conf 文件中的字符串 my_password MYSQLPassword 字段更改为您使用 mysqladmin 创建用户时定义的密码
加载此文件并解压。
将 conf 目录中的所有文件复制到/etc/pure-ftpd/conf/
这些文件假设被动端口为 50000-50010 (PassivePortRange),无被动模式强制(无 ForcePassiveIP 文件,如果需要,请创建一个并将您的 IP 保留在一行中),不自动创建用户主目录 (CreateHomeDir),无名称解析 (DontResolve),不显示隐藏文件 (DisplayDotFiles),无本地用户身份验证 (PAMAuthentication)。我将每个文件夹的最大文件数和最大目录深度 (LimitRecursion) 增加到 5000/50。如果您想更改这些,请参阅文档。
sudo aptitude install openssl
安装 ssl 证书。
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem chmod /etc/ssl/private/pure-ftpd.pem
-3650 天将为您创建有效期为 10 年的证书...
sudo chmod /etc/ssl/private/pure-ftpd.pem
投入使用
sudo service pure-ftpd-mysql restart
嗯,它应该可以工作...
安装上述内容的风险完全由您自己承担。