一、vsftp安装环境
vsftp—VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件。关于这个软件的详细信息大家可以自行百度。
以上自己安装vsftp系统环境
二、查看自己的服务器是否安装了vsftp
如果没有安装vsftp现在安装
yum -y install vsftpd
三、关闭CentOS7的防火墙
systemctl stop firewalld.service
停止firewall
systemctl disable firewalld.service
禁止firewall开机启动
四、启动vsftp服务
systemctl restart vsftpd.service # 重启服务
systemctl start vsftpd.service # 启动服务
systemctl status vsftpd.service # 服务状态查看
我的服务器已经装好了vsftp,上图是查看vsftp服务的截图
五、vsftp安装配置
vsftp装完默认情况下是开启匿名登录的,对应的是 /var/ftp 目录,这时只要服务启动了,就可以直接连上FTP了。默认用户名是
ftp,密码是空的。如果你在配置里面配置了anonymous_enable=NO,匿名就无法登录。
vsftp的配置文件路径:/etc/vsftpd/vsftpd.conf
vsftp配置文件一般选项(如何没有这个选项则到文件末尾添加)
anonymous_enable=YES (是否允许匿名登陆,默认是允许的)
anon_umask=022 (FTP上传本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022)
anon_upload_enable=YES (允许匿名ftp 用户上传文件)
anon_mkdir_write_enable=YES (允许匿名用户 创建新的目录)
anon_other_write_enable=YES (允许匿名用户改名和删除文件)
pasv_min_port=30000
pasv_max_port=35000 (PASV模式下指定端口范围,这里服务器如果是云服务器那安全组必须添加这个端口,而且防火墙也要放行这个端口)
anon_world_readable_only=YES (匿名用户可以读文件 反之就是不能读)
科普:FTP的连接一般是有两个连接的,一个是客户程和服务器传输命令的,另一个是数据传送的连接一种是Port模式,一种是Passive模式
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后 就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
(详细资料参考:https://blog.csdn.net/newborn2012/article/details/15812821/ 这篇博客)
六、设置文件权限
vsftp默认文件上传路径 /var/ftp/pub
其中 pub文件要更改权限
chmod 777 pub
(可以看到,图片123456.jpg 能正常上传也能删除并且能建立新的文件夹)
到这里vsftp已经安装好了并进行了基本配置(在这里使用的是匿名登录)
systemctl enable vsftpd 添加到开机启动
七、vsftp 配置文件翻译
anonymous_enable=YES 是否允许匿名登陆
local_enable=YES 允许本地登陆
write_enable=YES 启用任何形式的ftp 写入命令
local_umask=022 FTP上本本地的文件权限,默认是077,不过vsftp安装后的配置文件里默认是022
anon_upload_enable=YES 允许匿名ftp 用户上传文件
anon_mkdir_write_enable=YES 允许匿名用户 创建新的目录
dirmessage_enable=YES 激活目录消息,向远程用户发送消息,进入某个目录
xferlog_enable=YES 激活上传/下载 日志记录
connect_from_port_20=YES 确保RORT传输连接来自端口 20
chown_uploads=YES
chown_username=whoever
设置 匿名用户上传文件的默认用户,不推荐使用root
xferlog_file=/var/log/xferlog 日志文件路径
xferlog_std_format=YES 日志文件使用标准ftpd xferlog格式的日志文件 ,默认位置 /var/log/xferlog
idle_session_timeout=600 更改超时空闲会话的默认值
data_connection_timeout=120 超时数据连接的默认值
nopriv_user=ftpsecure 创建ftp服务器 独立的用户
async_abor_enable=YES 启用 异步 ABOR 请求
ascii_upload_enable=YES 允许ASCII模式上传文件
ascii_download_enable=YES 允许ASCII模式下载文件
ftpd_banner=Welcome to blah FTP service. 自定义登陆标题字符串
deny_email_enable=YES 指定不允许匿名登陆电子邮件
banned_email_file=/etc/vsftpd/banned_emails 默认路径
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
指定 chroot 参数
CHROOT就是Change Root,也就是改变程序执行时所参考的根目录位置。CHROOT可以增进系统的安全性,限制使用者能做的事
ls_recurse_enable=YES 启用 ls –R 选项
listen=NO 启用 listen 指令,vsftp 以独立模式运行侦听ipv4 套接字,该指令不能同时使用 with listen_inv6 指令
listen_ipv6=YES 监听ipv6
pam_service_name=vsftpd 虚拟用户使用PAM认证方式
userlist_enable=YES 只允许userlist 文件中的账户登陆
tcp_wrappers=YES 是否允许tcp_wrappers 管理
anon_other_write_enable=YES 允许匿名用户改名和删除文件
anon_world_readable_only=YES 匿名用户可以读文件 反之就是不能读
pasv_min_port=30000
pasv_max_port=35000 PASV模式下指定端口范围