FTP协议占用两个端口号:

21端口:命令控制,用于接收客户端执行的FTP命令。

20端口:数据传输,用于上传、下载文件数据。、

FTP数据传输的类型:

主动模式:FTP服务端主动向FTP客户端发起连接请求。

被动模式:FTP服务端等待FTP客户端的连接请求。

vsftpd程序提供的FTP服务可选认证方式,分别为匿名访问、本地用户和虚拟用户

匿名访问:任何人无需验证口令即可登入FTP服务端。

本地用户:使用FTP服务器中的用户、密码信息。

虚拟用户:创建独立的FTP帐号资料。

Vsftpd的程序与配置文件:

 

主程序

/usr/sbin/vsftpd

用户禁止登陆列表

/etc/vsftpd/ftpusers
/etc/vsftpd/user_list

主配置文件

/etc/vsftpd/vsftpd.conf

安装vsftpd服务程序

[root@liuxuanke-hbza ~]# yum install vsftpd -y

java ftp匿名登录 匿名登陆ftp协议用户名称_服务程序

清空默认的防火墙默认规则:

[root@liuxuanke-hbza ~]# iptables -F

保存清空后的防火墙规则表:

[root@liuxuanke-hbza ~]# service iptables save

一、匿名访问模式

1、FTP匿名访问模式是比较不安全的服务模式,尤其在真实的工作环境中千万不要存放敏感的数据,以免泄露。

vsftpd程序默认已经允许匿名访问模式,我们要做的就是开启匿名用户的上传和写入权限,写入参数

[root@liuxuanke-hbza ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES              允许匿名访问模式
anon_umask=022                          匿名用户上传文件的umask值
anon_upload_enable=YES            允许匿名用户上传文件
anon_mkdir_write_enable=YES    允许匿名用户创建目录
anon_other_write_enable=YES     允许匿名用户修改目录名或删除目录

java ftp匿名登录 匿名登陆ftp协议用户名称_服务端_02

 

2、确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

[root@liuxuanke-hbza ~]# systemctl restart vsftpd
[root@liuxuanke-hbza ~]# systemctl enable vsftpd

java ftp匿名登录 匿名登陆ftp协议用户名称_服务端_03

3、在客户机中添加ftp服务,ftp命令用于使用FTP服务,格式为:“ftp [参数] [FTP主机]”。

[root@bogon ~]# yum install ftp -y

[root@bogon ~]# ftp 192.168.10.100

java ftp匿名登录 匿名登陆ftp协议用户名称_服务程序_04

上面操作中已经将防火墙规则清空,在vsftpd.conf文件中也已经允许匿名用户创建目录与写入权限,那怎么会被拒绝了呢?

于是返回服务端匿名访问模式的FTP根目录为/var/ftp:

[root@liuxuanke-hbza ~]# ls -ld /var/ftp/pub
drwxr-xr-x 2 root root  6 8月       3 2017 /var/ftp/pub

原来匿名用户的FTP根目录所有者/组都是root,所以匿名用户没有写入权限

[root@liuxuanke-hbza ~]#  chown ftp /var/ftp/pub

java ftp匿名登录 匿名登陆ftp协议用户名称_java ftp匿名登录_05

 

 再回到客户端试试

 

java ftp匿名登录 匿名登陆ftp协议用户名称_客户端_06

完成这个需要恢复快照

二、本地用户模式

1、本地用户模式确实要比匿名访问模式更加的安全,所以本实验中会关闭匿名访问模式。

vsftpd服务程序默认已经允许本地用户模式,我们要做的是添加设置本地用户模式权限的参数:

[root@liuxuanke-hbza ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO       禁止匿名访问模式
local_enable=YES                允许本地用户模式
write_enable=YES                设置可写入权限
local_umask=022                 本地用户模式创建文件的umask值
userlist_deny=YES               参数值为YES即禁止名单中的用户,参数值为NO则代表仅允许名单中的用户
userlist_enable=YES            允许“禁止登陆名单”,名单文件为ftpusers与user_list

 

2、确认填写正确后保存并退出vsftpd.conf文件,然后重启vsftpd服务程序并设置为开机自启动。

[root@liuxuanke-hbza ~]# systemctl restart vsftpd
[root@liuxuanke-hbza ~]# systemctl enable vsftpd

3、我们先来看下ftpusersuser_list文件中禁止登陆用户名单:

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

vsftpd服务为了让FTP服务更加的安全,默认禁止以root身份登入,那么创建个普通用户吧:

[root@liuxuanke-hbza ~]#  useradd liuxuanke

为liuxuanke用户设置密码:

[root@liuxuanke-hbza ~]#  passwd liuxuanke

 

 

 

 

java ftp匿名登录 匿名登陆ftp协议用户名称_客户端_07

 

在客户机中尝试登入FTP服务

 

java ftp匿名登录 匿名登陆ftp协议用户名称_客户端_08