为了账号安全,请及时绑定邮箱和手机立即绑定

在Amazon Cloud Server上设置FTP

在Amazon Cloud Server上设置FTP

莫回无 2019-11-21 10:53:12
我试图在Amazon Cloud Server上设置FTP,但是没有运气。我通过网络搜索,没有具体步骤。我发现这些命令可以运行:$ yum install vsftpd$ ec2-authorize default -p 20-21$ ec2-authorize default -p 1024-1048$ vi /etc/vsftpd/vsftpd.conf#<em>---Add following lines at the end of file---</em>    pasv_enable=YES    pasv_min_port=1024    pasv_max_port=1048    pasv_address=<Public IP of your instance>$ /etc/init.d/vsftpd restart但是我不知道在哪里写。
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

Jaminto在回答问题方面做得很出色,但是我最近亲自完成了此过程,并希望扩展Jaminto的答案。


我假设您已经创建了一个EC2实例,并且已将其关联到一个IP地址。




步骤1:安装vsftpd

SSH到您的EC2服务器。类型:


> sudo yum install vsftpd

这应该安装vsftpd。



步骤#2:在您的EC2实例上打开FTP端口

接下来,您需要在EC2服务器上打开FTP端口。登录到AWS EC2管理控制台,然后从左侧导航树中选择“安全组”。选择分配给您的EC2实例的安全组。然后选择“入站”选项卡,然后单击“编辑”:


在此处输入图片说明


添加两个自定义TCP规则,端口范围为20-21和1024-1048。对于来源,您可以选择“任何地方”。如果决定将“源”设置为自己的IP地址,请注意,如果通过DHCP分配了IP地址,则IP地址可能会更改。


在此处输入图片说明





步骤#3:对vsftpd.conf文件进行更新

通过键入以下内容来编辑您的vsftpd conf文件:


> sudo vi /etc/vsftpd/vsftpd.conf

通过更改以下行来禁用匿名FTP:


anonymous_enable=YES


anonymous_enable=NO

然后将以下行添加到vsftpd.conf文件的底部:


pasv_enable=YES

pasv_min_port=1024

pasv_max_port=1048

pasv_address=<Public IP of your instance> 

您的vsftpd.conf文件应类似于以下内容-除了确保用面向公众的IP地址替换pasv_address之外:


在此处输入图片说明


要保存更改,请按Escape键,然后输入:wq,然后按Enter键。





步骤#4:重新启动vsftpd

通过键入以下命令重新启动vsftpd:


> sudo /etc/init.d/vsftpd restart

您应该看到一条如下所示的消息:


在此处输入图片说明



如果这不起作用,请尝试:


> sudo /sbin/service vsftpd restart




步骤5:创建一个FTP用户

如果您浏览/ etc / vsftpd / user_list,将会看到以下内容:


# vsftpd userlist

# If userlist_deny=NO, only allow users in this file

# If userlist_deny=YES (default), never allow users in this file, and

# do not even prompt for a password.

# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers

# for users that are denied.

root

bin

daemon

adm

lp

sync

shutdown

halt

mail

news

uucp

operator

games

nobody

基本上是说:“不允许这些用户通过FTP访问。” vsftpd将允许对该列表以外的任何用户进行FTP访问。


因此,为了创建一个新的FTP帐户,您可能需要在服务器上创建一个新用户。(或者,如果您已经拥有未在/ etc / vsftpd / user_list中列出的用户帐户,则可以跳到下一步。)


在EC2实例上创建新用户非常简单。例如,要创建用户“ bret”,请输入:


> sudo adduser bret

> sudo passwd bret

它将是这样的:


在此处输入图片说明





步骤#6:限制用户访问其主目录

此时,您的FTP用户不限于其主目录。那不是很安全,但是我们可以很容易地修复它。


通过输入以下内容再次编辑您的vsftpd conf文件:


> sudo vi /etc/vsftpd/vsftpd.conf

取消注释:


chroot_local_user=YES

完成后,它应该看起来像这样:


在此处输入图片说明


再次重新启动vsftpd服务器,如下所示:


> sudo /etc/init.d/vsftpd restart

全部做完!




附录A:重启后仍能生存

服务器启动时,vsftpd不会自动启动。如果您像我一样,那意味着在重新启动EC2实例后,当FTP似乎已损坏时,您会感到一阵恐怖-但实际上,它没有运行!这是一种方便的解决方法:


> sudo chkconfig --level 345 vsftpd on

另外,如果您使用的是redhat,另一种管理服务的方法是使用此漂亮的图形用户界面来控制应自动启动的服务:


>  sudo ntsysv

在此处输入图片说明


现在,当服务器启动时,vsftpd将自动启动。




附录B:更改用户的FTP主目录

*注意:Iman Sedighi发布了一种更为优雅的解决方案,用于限制用户对特定目录的访问。请参考他出色的解决方案作为答案*


您可能想要创建一个用户并将其FTP访问限制到特定的文件夹,例如/ var / www。为此,您需要更改用户的默认主目录:


> sudo usermod -d /var/www/ username

在此特定示例中,通常向用户授予“ www”组的权限,该组通常与/ var / www文件夹相关联:


> sudo usermod -a -G www username


查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 480 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信