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