FTP协议占用两个端口号:
21端口:命令控制,用于接收客户端执行的FTP命令。
20端口:数据传输,用于上传,下载文件数据。
过程:
首先安装vsftpd服务程序使用命令 yum install vsftpd
Vsftpd 的程序与配置文件:
主程序: /usr/sbin/vsftpd
用户禁止登陆列表:/etc/vsftpd/ftpusers /etc/vsftpd/user_list
主配置文件: /etc/vsftpd/vsftpd.conf
接下来我们分别配置Vsftpd的验证方式 分别为:匿名访问 ,本地用户。
1.匿名访问模式
FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。
vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入下面的参数:
使用命令 vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
由于各参数不在同一区域 只截取了部分参数 在配置文件中我们可以在命令模式下输入/anon 查找关键字用n N上下查询。
接下来我们用systemctl restart vsftp重启一下服务 然后使用客户端验证
现在我们尝试登入FTP服务:
由图可见我们已经成功登入ftp服务,但是在创建目录的时候失败了,这是因为我们匿名登录是使用root登录的,ftp根目录的所有者/组都是root ,所以匿名用户没有写入权限,我们新建一个用户ftpd 然后将属主改为ftpd 然后再尝试创建目录就成功了。
至此我们匿名访问的配置就ok了。
2.本地用户模式
这次我们直接配置主配置文件
anonymous_enable=NO 禁止匿名访问模式。
local_enable=YES 允许本地用户模式。
write_enable=YES 设置可写入权限。
local_umask=022 本地用户模式创建文件的umask值。
userlist_deny=YES 参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户。
userlist_enable=YES允许“ 禁止登陆名单”,名单文件为ftpusers与user_list。
配置完成之后我们重启一下vsftp服务 systemctl restart vsftpd
然后我们新建一个普通用户并设置登录密码
然后我们就可以在客户端尝试登录了
由图可见我们已经ok了。至此我们的ftp 匿名用户与普通本地用户登录大功告成了。
末尾:
疑惑与问题:1.在配置匿名用户登录的时候,我把客户端pub文件夹设置成属主为sdy后,在客户端就无法创建目录了,而再将属主改为其他新创建的用户后就可以创建目录了。是因为sdy用户和其他普通用户权限不一样吗?
2.本地用户登录时,为什么没有权限切换目录,cd pub时提示操作失败。