+86 135 410 16684Mon. - Fri. 10:00-22:00

Amazon EC2上配置FTP服务器

Amazon EC2上配置FTP服务器

Amazon EC2上配置FTP服务器

在Amazon EC2上配置完FTP服务器(被动模式)后,发现登录不进去。马上想到了AWS的安全组(Security Group),因为FTP服务器为被动模式时,是客户端发起连接,所以需要在AWS安全组里允许,FTP服务器里配置的pasv_min_port到 pasv_max_port的端口。

FTP-2

以下是Amazon EC2上配置FTP服务器的流程。

1. yum安装vsftp。

# sudo su -
# yum install vsftpd

2. 确认没有使用的端口。

# cat /proc/sys/net/ipv4/ip_local_port_range
32768   61000      #32768 - 61000端口在没有使用的状态。

3. 修改/etc/vsftpd/vsfptd.conf文件。

修改内容请参照下表。

区分 修改内容 解释
修改 anonymous_enable=NO 禁止匿名FTP用户的登录
修改 dirmessage_enable=NO 用户初次进入新目录时,显示该目录需要注意的内容,在这里配置为不显示
修改 ls_recurse_enable=YES 允许用户删除目录
追加 ascii_upload_enable=YES 允许以ASCII模式上传文件
追加 ascii_download_enable=YES 允许以ASCII模式下载文件
修改 chroot_local_user=YES 把本地用户的根目录改为各自的FTP根目录
修改 chroot_list_enable=YES 有效chroot_list。默认文件是chroot_list_file=/etc/vsftpd/chroot_list
修改 tcp_wrappers=NO 不使用tcp_wrappers做限制(使用AWS EC2的Security Group作限制)
修改 connect_from_port_20=NO 不使用ActiveFTP
修改 xferlog_std_format=NO 以vsftpd格式记录到日志文件,YES时是wu-ftpd格式
追加 pasv_enable=YES 使用PASV FTP
追加 pasv_addr_resolve=YES 在PASV模式下从主机名,获取连接IP地址
追加 pasv_address=主机IP地址 配置EC2的Elastic IP地址
追加 pasv_min_port=60001 在PASV模式是使用的最小端口号(在手顺2确认的没有使用的端口里选择)
追加 pasv_max_port=60100 在PASV模式是使用的最大端口号(在手顺2确认的没有使用的端口里选择)
追加 use_localtime=YES 使用主机的时间
追加 force_dot_files=YES 不隐藏.开头的文件

4. 修改/etc/vsftpd/chrott_list。

指定不变更根目录用户,在这里指定的用户会访问根目录,一般指定root等用户。本文配置为空文件,不进行修改。

# vi /etc/vsftpd/chroot_list

5. 创建FTP用户。

# adduser zabbix
# passwd zabbix

6.配置开机启动并开启FTP服务。

# chkconfig vsftpd on
# chkconfig
vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
# service vsftpd start

7. 配置AWS的Security Group。

修改配置FTP服务的AWS EC2的Security Group,在Inbound追加以下内容。

Type Protocol Port Range Source
Custom TCP Rule TCP 21 0.0.0.0/0
Custom TCP Rule TCP 60001 – 60100 0.0.0.0/0