Ubuntu配置vsFTPd搭建匿名用户访问FTP服务器

环境

测试主机:亚马逊AWS EC2
系统:Ubuntu 16.04

主动模式和被动模式

FTP是基于TCP的服务,使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口)。通常来说这两个端口是21(命令端口)和20(数据端口)。但FTP工作方式的不同,数据端口并不总是20。这就是主动与被动FTP的最大不同之处。

主动模式:数据连接上,服务端从20端口去连接客户端大于1024的端口
命令连接:客户端 (>1024端口) ─> 服务器 21端口
数据连接:客户端 (>1024端口)<─ 服务器 20端口
优势:主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。

被动模式:数据连接上,客户端从大于1024端口去连接服务端大于1024的端口
命令连接:客户端 (>1024端口) ─> 服务器 21端
数据连接:客户端 (>1024端口) ─> 服务器 (>1024端口)
优势:被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连到一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。

查看是否已经安装ftp软件

which vsftpd                     //如果看到有vsftpd的目录说明服务器已经安装了ftp软件
sudo apt-get purge vsftpd        //为了避免冲突,先卸载vsftpd

安装

sudo -s
apt-get update
apt-get install vsftpd

配置

cp /etc/vsftpd.conf /etc/vsftpd.conf.backup      //备份配置文件
vim /etc/vsftpd.conf

设置匿名上传配置

listen=YES                       //FTP处于独立启动模式
anonymous_enable=YES             //是否允许匿名访问,匿名帐户为 ftp和 anonymous
local_enable=YES                 //是否允许本地用户访问
write_enable=YES                 //允许本地用户访问时,是否允许他们有写入的权限
local_umask=022                  //本地用户在写入文件时,这些文件默认的权限
anon_upload_enable=YES           //是否允许匿名用户上传
anon_mkdir_write_enable=YES      //是否允许匿名用户创建目录
dirmessage_enable=YES            //使用者进入某个目录时是否显示由message_file指定的文件内容
xferlog_enable=YES               //是否启用日志
connected_from_port_20=YES       //是否允许从20的连接请求
xferlog_file=/var/log/vsftpd.log //日志文件的位置
xferlog_std_format=YES           //是否用标准格式存储日志
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd          //设置PAM认证服务的配置文件名,该文件位于/etc/pam.d目录下
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES

端口开放

在安全组中开放相关端口

netstat -an | grep 21 //查看服务有没有启动 
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN

如果看到以上信息,证明ftp服务已经开启

启动停止重启FTP服务

service vsftpd status                  //查看ftp 服务器状态
service vsftpd start                   //启动ftp服务器
service vsftpd restart                 //重启ftp服务器

你可能感兴趣的:(Ubuntu配置vsFTPd搭建匿名用户访问FTP服务器)