本文主要是介绍linux网络服务学习(2):vsftp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.什么是vsftp
vsftp是linux服务器上的一款使用ftp协议的软件,是linux上使用最广泛的ftp服务端软件
ftp协议是使用明文传输的,很不安全,一般用于局域网内的文件上传、下载
2.vsftp连接类型
ftp连接要用到2个端口:21、20端口。
21端口用于用户收发FTP命令,如登录等;20端口则用于传送上传、下载的数据
3.vsftp的2种工作模式
(1)主动模式(port模式)
FTP服务器默认使用主动模式
(2)被动模式(passive)
(3)2种模式的选择
主动模式:传送数据时,服务器连接到客户端的端口。需要客户端开放端口给服务器
被动模式:传送数据时,客户端连接到服务器的端口。服务器端开放端口给客户端连接
linux中FTP默认是被动模式,因为客户端往往在防火墙后面,服务器很难连接到客户端。如果要把被动模式改为主动模式,可以在ftp界面下键入passive
4.vsftp的2种传输模式
(1)Binary模式(默认模式):不对数据进行任何处理。适合可执行文件、压缩文件、图片等
(2)ASCII模式:进行文本传输时,自动适应目标操作系统的结束符
(3)切换方式:在ftp互动界面中输入ascii就切换为ASCII模式,输入bin,就转换到Binary模式。
5.软件信息
服务端软件名 | vsftpd |
客户端软件名 | ftp |
服务名 | ftpd |
配置文件 | /etc/vsftpd/vsftpd.conf |
6.匿名登录
6.1安装ftp、vsftpd
yum -y install ftp vsftpd
需要BASE yum源,Media源安装不了
6.2开启ftp服务并设置为开机自启
systemctl start vsftpd
systemctl enable vsftpd
6.3使用匿名用户登录
(1)登录流程
在客户端键入命令:ftp FTP服务器ip
然后在用户名一栏输入ftp或anonymous,代表匿名用户
密码一栏直接回车跳过。这样就可以通过匿名用户登录上了
*匿名用户登录后的所在的服务器目录为/var/ftp,但不建议直接在这个目录下上传下载文件,因为所有的匿名用户都是使用这个目录,很容易造成文件混乱,所以最好再建一层三级目录
(2)权限设置
匿名用户的权限取决于2部分,一是ftp配置文件中对匿名用户的权限设置,二是登录后所在服务器目录的权限设置。
配置文件中匿名用户权限的设置见下表:
配置文件中有关匿名用户权限的设置 | 作用 | 在配置文件中的状态 |
anonymous_enable=YES | 启用匿名访问 | 默认开启 |
anon_umask=022 | 使匿名用户可以下载自己上传的文件 | 无,需要手动写入 |
anon_root=/var/ftp | 匿名用户的FTP根目录 | 无,需要手动写入 |
anon_upload_enable=YES | 允许上传文件 | 默认被注释 |
anon_mkdir_wirte_enable=YES | 允许创建目录 | 默认被注释 |
anon_other_write_enable=YES | 开放其他写入权(删除、覆盖、重命名等) | 无,需要手动写入 |
vim打开文件后可以通过/关键字来快速搜索
除此之外,还要通过chmod命令对FTP根目录的other用户权限进行设置
*如果出现下图这样的错误,说明是SElinux防火墙没关,在服务器端setenforce 0关闭SElinux防火墙即可
6.4 使用服务器本地用户登录
(1)登录流程
*在服务器端创建一个不可以登录系统,专用于FTP登录的用户:
useradd -s /sbin/nologin ymyx
*给新创建的这个用户设置密码:
passwd ymyx
通过上述方法创建不可登录系统的用户后,还需要修改/etc/shells文件,在文件中添加下图中的内容
如果是使用正常创建的可以登录系统的用户,则不需要修改/etc/shells
*在客户端登录FTP服务器:
ftp FTP服务器ip
并输入用户名与密码
(2)权限设置
配置文件中有关匿名用户权限的设置 | 作用 | 在配置文件中的状态 |
local_enable=YES | 启用服务器本地用户访问 | 默认开启 |
local__umask=022 | 使服务器本地用户可以下载自己上传的文件 | 默认开启 |
local__root=/var/ftp | 服务器本地用户的FTP根目录 | 无,需要手动写入 |
chroot_local_user=YES | 是否将用户禁锢在主目录 | 默认被注释 |
chroot_list_enable=YES | 开启白名单,白名单中用户可以随意切换目录 | 默认被注释 |
chroot_list_file=/etc/vsftpd/chroot_list | 白名单位置(需手动创建,在里面直接写用户名即可) | 默认被注释 |
经试验,在centos7环境下,配置文件中设置了chroot_local_user=YES后,客户端无法再用服务器本地账户登录FTP,需要在配置文件中额外加一条:allow_writeable_chroot=YES
(3)白名单与黑名单
*配置文件中可以设置允许登录FTP的白名单,以及不允许登录FTP的黑名单
黑名单:userlist_enable=YES&userlist_deny=YES
白名单:userlist_enable=YES&userlist_deny=NO
*黑名单配置文件: /etc/vsftpd/ftpusers
这个文件的优先级很高,只要在文件写入了用户名,不需要重启FTP服务就可以立即生效
6.5 ftp模式下的一些常用命令
cd、ls、pwd、mkdir
put:上传
mput:同时上传多个
get:下载
mget:同时下载多个
delete:删除文件
mdelete:同时删除多个文件
rmdir:删除目录
rename:重新命名
quit:退出
这篇关于linux网络服务学习(2):vsftp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!