有人能提供任何建议吗?我有一个基于 64 位 Amazon Linux AMI 的 Amazon EC2 实例正在运行。我已使用 yum 安装了所有更新,并安装了 PHP5.3 和 vsFTPd 服务。
我创建了一个新的用户组和一个新用户,为该用户设置了密码,并为新组创建了用于存放 web php 文件的 html 文件夹。一切正常。在 vi 中创建一个 php 文件,该页面在浏览器中可见。
现在我已经启动了 vsFTPd 服务器,一切正常。我几乎可以立即从终端屏幕连接到它,但执行 ls -l 需要很长时间才能返回。
从 FTP 软件连接,可能需要 60 秒以上才能连接,更改文件夹时也是如此。然后,当您尝试上传文件时,有时会成功,并且似乎总是可以正常创建文件夹,但随后会超时或断开连接并且不会重新启动。取消传输,然后重新设置,然后重新连接即可。
有人能告诉我哪里出了问题吗?我尝试过在 FTP 客户端上打开和关闭被动模式,但没有任何区别。我认为问题不大,因为它正在连接,并且在超时之前传输了几个小文本文件。
如果你们能提供任何想法或建议,那将非常有帮助!我没有主意了!
答案1
通过 SFTP 在 AMAZON LINUX 中设置 vsFTPD 服务器
更新“yum”存储库
sudo yum 更新-y
从 yum 存储库安装 vsFTPD 服务器
sudo yum 安装 vsftpd -y
配置 vsFTPD 服务器的基本设置
sudo vi /etc/vsftpd/vsftpd.conf
a. 在文件中进行以下更改并保存 i. 禁用匿名用户 anonymous_enable=NO ii. 允许本地用户,这意味着 vsFTPD 服务器将使用 Linux 系统用户和身份验证来确定谁可以登录 local_enable=YES iii. 允许本地用户写入访问权限,以便他们可以上传材料和修改内容 write_enable=YES iv. 将用户限制在各自的主目录中 chroot_local_user=YES v. 基本 vsFTPD 相关更改 pasv_enable=YES pasv_min_port=1024 pasv_max_port=1048 pasv_address=
创建 FTP 用户
sudo 添加用户 ftpuser
为新用户分配密码
sudo passwd ftpuser
使用 vsFTPD 服务器配置 SSL a. 创建一个子目录来存储文件 # sudo mkdir /etc/ssl/private
b. 在单个文件中创建证书和密钥 # sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
c. 将 SSL 详细信息添加到 vsftpd 配置文件 # sudo vi /etc/vsftpd/vsftpd.conf
i. Specify the location of the certificate and key files rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ii. Enable the use of the files, disable anonymous users and force the use of SSL for both data transfer and login routines ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES iii. Restrict the type of connection to TLS, which is more secure than SSL ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO require_ssl_reuse=NO ssl_ciphers=HIGH
重新启动 vsFTPD 服务器以启用我们的更改
sudo /etc/init.d/vsftpd 重新启动
每次重启时自动启动 vsFTPD 服务器
sudo chkconfig vsftpd
答案2
导致 vsFTPd 功能不佳的一个因素是您的防火墙规则集。对于典型的 FTP 会话,您将需要使用被动 FTP(通常更适合用户的设置 - 他们使用的程序和防火墙)。
为此,您需要打开端口 20、21 以及您在 vsftpd 配置中指定的任何端口。
在 vsftpd 中,您可以通过设置 pasv_min_port 和 pasv_max_port 值来配置被动端口范围。这允许您使用被动 FTP,同时允许它们轻松与 EC2 实施的防火墙配合使用。
您应该选择 10000 以上的端口 - 最好是随机的。您需要为更多用户提供更多端口,因此如果您是唯一的用户,您应该只能保持 2 或 3 个端口开放(例如最小:15243,最大:15245)- 我相信通常每个连接一个端口(但用户通常可以同时建立多个连接,即使不太可能)
如果您的服务器上运行了防火墙(例如 shorewall),则需要对其进行配置 - 此外,您的 iptables 规则需要允许在您指定的端口上进行 FTP 连接。在 EC2 端,您需要在实例运行的安全组中打开相应的端口。关于我在 Amazon 的 Linux 上使用 vsftpd 设置被动 FTP 的方法,可以参见以下几点这里。