Centos7安装vsftpd (FTP服务器)

简介

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。互联网上提供文件存储和访问服务的计算机,他们依照的是FTP协议提供服务!支持FTP协议的服务器就是FTP服务器!FTP协议提供存储和传输服务的一套协议。下载”(Download)和”上传”(Upload)。”下载”文件就是从远程主机拷贝文件至自己的计算机上;”上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

工作原理

FTP采用客户端/服务端的工作模式(C/S结构),通过TCP协议建立客户端和服务器之间的连接,但与其他大多数应用协议不同,FTP协议在客户端和服务端之间建立了两条通信链路,分别是控制链路和数据链路,其中,控制链路负责FTP会话过程中FTP命令的发送和接收,数据链路则负责数据的传输。FTP会话包含了两个通道,控制通道和数据通道,FTP的工作有两种方式,一种是主动模式,一种是被动模式,以FTPServer为参照物,主动模式,服务器主动连接客户端传输,被动模式,等待客户端的的连接 。(无论是主动模式还是被动模式,首先的控制通道都是先建立起来的,只是在数据传输模式上的区别)。

FTP的安装与配置

vsftpd是linux下的一款小巧轻快,安全易用的FTP服务器软件,是一款在各个Linux发行版中最受推崇的FTP服务器软件。

通过yum安装vsftpd

yum install -y vsftpd

修改vsftpd的配置文件

vi /etc/vsftpd/vsftpd.conf

修改配置文件如下:
1.不允许匿名访问

anonymous_enable=NO

2.允许使用本地帐户进行FTP用户登录验证

local_enable=YES

3.使用户不能离开主目录

当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

配置文件最后添加

allow_writeable_chroot=YES

要不然会报错

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

如果/etc/vsftpd/chroot_list不存在,则需要创建该文件

vi /etc/vsftpd/chroot_list

:wq直接保存并退出就行。

4.设定支持ASCII模式的上传和下载功能。

ascii_upload_enable=YES
ascii_download_enable=YES

最后 :wq保存修改,重启vsftpd

systemctl restart vsftpd.service

新建FTP用户

useradd -d /var/ftp/public_root -g ftp -s /sbin/nologin ftpuser

修改该FTP用户密码

passwd ftpuser

登录FTP

我使用的是FileZilla FTP客户端测试的登录

其他说明

如果登陆成功,无法上传或修改文件,这里需要修改文件权限为对应的登陆用户,
我这里使用的是ftpuser用户登陆,用户目录是/html/ftpuser

chown root:ftpuser /html/ftpuser
chmod -R 557 /html/ftpuser

参数设置与说明

用户登陆控制

参数与值说明
anonymous_enable=YES允许匿名登陆
no_anon_password=YES匿名用户login时不询问口令
ftp_username=nobody匿名用户名,默认值为ftp
anon_root=/mnt/anymous匿名用户根目录
local_enable=YES允许本地帐户登陆
check_shell=NO仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
userlist_enable=YES开启userlist_file进行访问限制,且开启后,userlist_deny选项才生效
userlist_deny=NO若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
userlist_file=/etc/vsftpd.user_list用户列表文件位置
local_root=/本地用户根目录

用户权限控制

参数与值说明
write_enable=YES允许本地帐户删除和修改文件
local_umask=022FTP上本地的文件权限,默认是077
file_open_mode=0666上传文件的权限,配合umask使用
anon_upload_enable=YES允许匿名用户上传权限
anon_mkdir_write_enable=YES允许匿名用户创建目录的同时可以在此目录中上传文件
anon_other_write_enable=YES匿名帐号删除权限
anon_world_readable_only=NO匿名用户浏览权限
guest_enable=NO虚拟用户可以登陆,如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名
guest_username虚拟用户用户名
chown_uploads=YES开启上传后更改文件所属权
chown_username=root上传后更改文件所属权的用户名
chroot_local_user=YES限制本地所有帐户只能在自己的目录中
chroot_list_enable=YES文件中的名单可以调用
chroot_list_file=/etc/vsftpd/chroot_list用户列表文件,生效前提是 chroot_local_user=NO
async_abor_enable=YES允许使用"async ABOR"命令,一般不用,容易出问题
ascii_upload_enable=YES启用上传的ascii传输方式
ascii_download_enable=YES启用下载的ascii传输方式
allow_writeable_chroot=YES在自己的目录下可写

信息设置

参数与值说明
dirmessage_enable=YES切换目录时,显示目录下.message的内容
ftpd_banner显示欢迎信息
banner_file=/var/vsftpd_banner_file用户连接后欢迎信息使用的是此文件中的相关信息
banner_fail=/path/to/file连接失败时显示文件中的内容

服务器功能选项

参数与值说明
xferlog_enable=YES激活上传和下传的日志
xferlog_file=/var/log/xferlog日志文件
xferlog_std_format=YES使用标准的日志格式
tcp_wrappers=YES开启tcp_wrappers支持
pam_service_name=vsftpd定义PAM所使用的名称,预设为vsftpd

超时设置

参数与值说明
idle_session_timeout=600用户会话空闲后10分钟(秒)
data_connection_timeout=120将数据连接空闲2分钟断(秒)
accept_timeout=60将客户端空闲1分钟后断(秒)
connect_timeout=60中断1分钟后又重新连接(秒)

数据传输选项

参数与值说明
local_max_rate=50000本地用户传输率(bite/s),50K
anon_max_rate=30000匿名用户传输率(bite/s),30K

连接选项

参数与值说明
max_clients=200FTP的最大连接数
max_per_ip=4每IP的最大连接数
connect_form_port_20=YES启用FTP数据端口的数据连接
listen_address=192.168.1.100绑定到某个IP,其它IP不能访问
listen_port=5555从5555端口进行数据连接
pasv_min_port=5000将客户端的数据连接端口改在
pasv_max_port=60005000—6000之间

服务性能选项

参数与值说明
ls_recurse_enable=NO是否能使用ls -R命令以防止浪费大量的服务器资源
one_process_model=YES是否使用单进程模式
listen=YES独立的vsftpd服务器

相关链接

如需转载,请注明出处: https://chadou.me/p/184

最新发布