什么是匿名FTP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是匿名FTP相关的知识,希望对你有一定的参考价值。

匿名FTP 即匿名文件传输协议。用于对远程计算机的连接,这些计算机是作为匿名或客户用户进行连接的,以将公共文件传输到用户的本地计算机。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上传或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。匿名FTP就是为解决这个问题而产生的。

互联网中有很大一部分FTP服务器称为“匿名”FTP服务器。这类服务器的目的是向公众提供文件拷贝服务,不要求用户事先在该服务器进行登记注册,也不用取得FTP服务器的授权。

匿名文件传输能够使用户与远程主机建立连接并以匿名的身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。

扩展资料

用户使用特殊的用户名anonymous,许多系统用户要求用户将E-mail地址作为口令,便可登陆“匿名”FTP服务器,访问远程主机上公开的文件。

匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。如 red hat、autodesk等公司的匿名站点。

参考资料:百度百科 - 匿名FTP

参考技术A

匿名文件传输协议,简称匿名FTP,又称不具名FTP、无名FTP。它具有一个称为“匿名”的特殊注册账户,用户用这个名字去登录,用自己的电子函件地址作为口令去进行访问,便可获得网上公开发布的文件。

通常情况下,计算机联网的主要目的是实现资源共享,包括信息资源、硬件资源、软件资源的共享等,以方便人与人之间更广泛的沟通交流,其中文件传输是信息共享非常重要的内容和手段之一。

互联网上早期实现传输文件,并不是一件容易的事,随着互联网的不断发展,连接互联网的计算机已无法统计,而且运行各种不同的操作系统,而要完成各种操作系统之间的文件传输问题,就需要建立一个统一的文件传箱协议,这就是所谓的FTP。

扩展资料:

匿名FTP的工作原理:

匿名FTP是这样一种机制,用户可通过它连接到远程FTP服务器上,进行文件的上传或下载,而不需要成为其注册用户。系统管理员建立一个特殊的用户帐号(匿名帐号),一般名为anonymous或助,互联网上的任何人在任何地方都可使用该用户的帐号。

通过FTP程序连接匿名FTP服务器的方式同连接普通FTP服务器的方式类似,只是在要求提供用户帐号时必须输人anonymous或ftP,而该用户帐号的口令可以是任意的字符。

当远程服务器提供匿名FTP服务时,会预先指定某些目录及文件向公众开放,允许匿名用户的存取,而系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP服务器都只允许用户下载文件,而不允许用户上传文件。

参考资料来源:百度百科-匿名文件传输协议

参考技术B 匿名FTP 是这样一种机制,用户可通过它连接到远程主机上,并从其下载文
件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous,
Internet上的任何人在任何地方都可使用该用户ID. 通过FTP 程序连接匿名FTP 主机的方式同连接普通FTP 主机的方式差不多,
只是在要求提供用户标识ID时必须输入anonymous ,该用户ID的口令可以是任意
的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下
来谁在存取这些文件。 值得注意的是,匿名FTP 不适用于所有Internet主机,它只适用于那些提供
了这项服务的主机。 当远程主机提供匿名FTP 服务时,会指定某些目录向公众开放,允许匿名存
取,系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP 主
机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将
匿名FTP 主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任
何一个文件拷贝至匿名FTP 主机上。即使有些匿名FTP 主机确实允许用户上传文
件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查
这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载。利用
这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病
毒的文件。
参考技术C 匿名就是没有名字,是一种特殊的人,匿名是ta没有起名字会出现的名字,我们正常人不会有这种名字,未登录的人也会有。所以我也对这个名字了解的不太多,大家有什么需要补充的,请回复。 参考技术D   FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
  FTP服务器
  简单地说,支持FTP协议的服务器就是FTP服务器。
  与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

  匿名FTP
  使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。
  匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。
  通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。
  值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。
  当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

FTP 匿名 本地 虚拟用户认证方式

FTP是在互联网中进行文件传输的一种协议,基于C/S模式,有一个服务端,有一个客户端
FTP默认有两个工作端口
       一个是20端口,用于数据的传输端口
       一个是21端口,是FTP服务端用于接收客户端发来的FTP指令和参数
       
       
FTP服务器按照FTP协议在互联网上提供文件存储,以便客户端能够快捷的访问数据
FTP客户端向服务端寻求资料

FTP工作模式主要分为两种
    主动模式:FTP服务器主动向客户端发起连接请求
    被动模式:FTP服务器在等待,等待客户端发来请求
    
    
##################安装FTP服务
FTP是一种文件传输协议,那么在linux系统下,有一款工具实现FTP协议,名为vsftpd,
非常安全的FTP守护进程服务

等于centos系统平台,直接用yum安装即可
yum install vsftpd -y

###########
学习修改vsftpd的配置文件,/etc/vsftpd/vsftpd.conf
linux在默认安装的软件配置文件都是/etc目录

[root@backup ~]# grep -Ev "^#|^$" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES      #是否开启匿名用户允许访问
local_enable=YES           #是否允许本地用户登录FTP
write_enable=YES           #全局设置,是否允许写入,开启允许上传的权限
local_umask=022             #本地用户上传文件的umask
dirmessage_enable=YES        #允许为目录配置显示信息,显示每个目录下面的message_file文件内容    
xferlog_enable=YES           #开启日志功能,以及存放路径
connect_from_port_20=YES       #使用20端口进行连接
xferlog_file=/var/log/xferlog   #日志路径
xferlog_std_format=YES           #标准日志格式
listen=yes                       #绑定到监听端口
listen_ipv6=YES                # 开启ipv6
pam_service_name=vsftpd         #设置PAM的名称
userlist_enable=YES             #设置用户列表,允许或者禁止
tcp_wrappers=YES                #控制主机访问,检查/etc/hosts.allow  hosts.deny的配置得到防火墙作用



#########################333
vsftpd服务程序
vsftpd允许用户用三种认证的模式,登录到ftp服务器
-本地用户模式,基于linux本地账号密码进行认证,配置简单,但是一旦被破解,服务器信息很危险
-匿名用户模式,任何人无需密码直接登录
-虚拟用户模式,单独为ftp创建用户数据库,基于口令验证账户信息,只使用与FTP,不会影响其他
用户信息,最为安全。


【匿名用户模式】
修改/etc/vsftpd/vsftpd.conf配置文件如下参数
[root@backup ~]# grep "^anon" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES                允许匿名用户访问
anon_upload_enable=YES              允许匿名用户上传
anon_mkdir_write_enable=YES          允许匿名用户创建目录
anon_other_write_enable=YES          允许匿名用户修改目录


重启服务,且加载开启自启
systemctl restart vsftpd
systemctl enable vsftpd


此时已经可以使用ftp命令连接到FTP服务器了
连接ftp服务端,其实连接的是目录/var/ftp/
[root@backup ftp]# pwd
/var/ftp
[root@backup ftp]# ls
pub

使用ftp客户端命令,连接ftp服务端
[root@backup ~]# ftp 10.0.0.200
Connected to 10.0.0.200 (10.0.0.200).
220 (vsFTPd 3.0.2)
Name (10.0.0.200:root): anonymous            输入默认账号
331 Please specify the password.
Password:                                    密码为空,直接回车
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (10,0,0,200,80,111).
150 Here comes the directory listing.
drwxr-xr-x    3 14       50             35 Jun 04 09:03 pub
226 Directory send OK.
ftp> cd pub                               切换目录
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (10,0,0,200,218,155).
150 Here comes the directory listing.
drwxr-xr-x    2 14       50              6 Jun 04 08:56 匿名用户你好啊
226 Directory send OK.
ftp> ll
?Invalid command
ftp> mkdir chaoge                      
550 Create directory operation failed.          创建目录chaoge失败

由于我们使用的是匿名用户登录ftp,默认访问的/var/ftp/目录,我们检查下目录权限
[root@backup ftp]# ll
total 0
drwxr-xr-x 3 root root 35 Jun  4 17:03 pub
由于pub文件夹,是属于root用户,因此无法向其写入内容,可以修改文件夹属主属组
[root@backup ftp]# id ftp
uid=14(ftp) gid=50(ftp) groups=50(ftp)
[root@backup ftp]# chown  ftp.ftp /var/ftp/pub/
[root@backup ftp]# ll
total 0
drwxr-xr-x 3 ftp ftp 35 Jun  4 17:03 pub

再次登录ftp写入数据

ftp> mkdir chaoge                         ###########创建目录chaoge
257 "/pub/chaoge" created
ftp> ls
227 Entering Passive Mode (10,0,0,200,223,26).
150 Here comes the directory listing.
drwx------    2 14       50              6 Jun 04 09:25 chaoge
drwxr-xr-x    2 0        0               6 Jun 04 08:56 匿名用户你好啊
226 Directory send OK.
ftp> rename chaoge   chaoge668            ##########改变chaoge名称 为chaoge668
350 Ready for RNTO.
250 Rename successful.
ftp> ls
227 Entering Passive Mode (10,0,0,200,129,158).
150 Here comes the directory listing.
drwx------    2 14       50              6 Jun 04 09:25 chaoge668
drwxr-xr-x    2 0        0               6 Jun 04 08:56 匿名用户你好啊
226 Directory send OK.
ftp> rmdir chaoge668                          ###删除chaoge668
250 Remove directory operation successful.
ftp> ls
227 Entering Passive Mode (10,0,0,200,69,112).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Jun 04 08:56 匿名用户你好啊
226 Directory send OK.

此时已经成功向ftp文件夹写入了数据,服务器上检查文件信息
[root@backup ftp]# ll pub/
total 0
drwxr-xr-x 2 root root 6 Jun  4 16:56 匿名用户你好啊











【本地用户模式】
使用linux本地用户模式,比匿名用户来的安全,修改配置文件,关闭匿名模式,开启本地用户模式
/etc/vsftpd/vsftpd.conf 配置文件路径
[root@backup ftp]# grep -Ev "^$|^#" /etc/vsftpd/vsftpd.conf
anonymous_enable=no              ##关闭匿名模式
local_enable=YES                  ##开启本地用户模式
write_enable=YES                  ##允许用户写入
local_umask=022                  
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=yes
pam_service_name=vsftpd
userlist_enable=YES
userlist_denye=YES                  新增加的参数
tcp_wrappers=YES


重启vsftpd,加载配置
[root@backup ~]# systemctl  restart vsftpd

【此时我们可以用ftp客户端进行远程连接,使用linux本地账号】
1.确保服务器上有一个用户可以进行ftp连接,比如pyyu
[root@backup ~]#
[root@backup ~]# useradd pyyu
[root@backup ~]# passwd pyyu
Changing password for user pyyu.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.


2.此时用客户端连接ftp,使用pyyu账号,ftp连接后,默认进入用户家目录,以保证其他目录安全
linux系统的本地用户可以登录ftp,进入家目录后,进行增删改查
ftp 10.0.0.200
Connecting to 10.0.0.200:21...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.
220 (vsFTPd 3.0.2)
Name (10.0.0.200:Administrator): pyyu
331 Please specify the password.
Password:
230 Login successful.
ftp:/home/pyyu>


3.有些用户是无法登录ftp,在一个用户名单里面被禁止了
[root@backup ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp    以下用户无法登录ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

尝试用这些用户登录ftp
ftp 10.0.0.200
Connecting to 10.0.0.200:21...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.
220 (vsFTPd 3.0.2)
Name (10.0.0.200:Administrator): root            ##尝试用root用户登录
530 Permission denied.                    ####权限拒绝



############333
【ftp虚拟用户模式】
顾名思义虚拟用户认证方式,就是虚拟创建出来的用户,对于服务器而言也是最安全的方式

1.安装DB工具,能够转化普通文件为vsftpd识别的数据库加密文件
yum install db4 db4-utils -y

2.创建用于验证vsftpd的数据文件
[root@backup ~]# cd /etc/vsftpd/
[root@backup vsftpd]# vim ftp_user.txt
chaochao
888
chaoyu
666

3.由于这样普通文件很不安全。vsftpd也无法识别该TXT的文件数据,因此还得使用
db_load命令对于这个ftp_user.txt文件进行加密,并且修改他的文件属性,让普通
用户无法查看

3.1 加密文件
db_load -T -t hash -f /etc/vsftpd/ftp_user.txt  /etc/vsftpd/ftp_user.db

3.2降低文件的读写权限
[root@backup vsftpd]# chmod 600 /etc/vsftpd/ftp_user.db

3.3删除旧的数据文本
[root@backup vsftpd]# rm ftp_user.txt

4.创建当虚拟用户登录ftp之后进入的文件夹路径,且和linux中的一个用户做一个映射关系,
防止虚拟用户登录后,创建了文件夹,但是系统没有此用户会报错的一个问题

4.1 创建一个系统用和虚拟用户做映射,且不需要家目录,禁止用户登录shell
[root@backup vsftpd]# useradd -d /var/ftpdir -s /sbin/nologin virtual_chao
[root@backup vsftpd]# id virtual_chao
uid=1002(virtual_chao) gid=1002(virtual_chao) groups=1002(virtual_chao)


4.2检查该用户的家目录
[root@backup vsftpd]# ll -d  /var/ftpdir/
drwx------ 2 virtual_chao virtual_chao 62 Jun  5 04:58 /var/ftpdir/

4.3更改文件夹权限
[root@backup vsftpd]# chmod 755 /var/ftpdir/

4.4 修改virtual_chao用户添加到ftpsuer文件中,增大系统安全,该操作不会影响虚拟用户的操作
[root@backup vsftpd]# echo "virtual_chao" >> /etc/vsftpd/ftpusers

5.需要修改vsftpd的配置文件,添加一个虚拟用户验证的PAM文件,PAM是一组安全机制的模块,认证文件路径
在/etc/pam.d/vsftpd
注释掉文中所有语句,添加以下两句,注意db参数指定的db_load生成的文件路径。无需添后缀
auth        required    pam_userdb.so db=/etc/vsftpd/ftp_user
account     required    pam_userdb.so db=/etc/vsftpd/ftp_user

6.最后来修改vsftpd的配置文件,加载支持虚拟用户模式
[root@backup ftpdir]# grep -Ev "^$|^#" /etc/vsftpd/vsftpd.conf
anonymous_enable=no
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=yes
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
tcp_wrappers=YES
guest_enable=YES                        ##开启虚拟用户
guest_username=virtual_chao             ##指定虚拟用户账号
allow_writeable_chroot=YES              ## 如果用户被限制只能在其家目录,允许用户可以对家目录写入数据

7.针对不同的虚拟用户设置不同的权限
chaochao    针对该用户,允许它能够上传、新建、修改、查看、删除等权限
chaoyu      只读权限

8.如上操作,需要修改vsftpd文件,定义 user_config_dir参数即可


8.1 创建一个管路虚拟用户的家目录,并且创建虚拟用户的配置文件
mkdir /etc/vsftpd/virtual_user_dir
[root@backup virtual_user_dir]# pwd
/etc/vsftpd/virtual_user_dir
[root@backup virtual_user_dir]# ll
total 8
-rw-r--r-- 1 root root 88 Jun  5 05:33 chaochao
-rw-r--r-- 1 root root 85 Jun  5 05:34 chaoyu

分别给两个虚拟用户的配置文件添加参数
[root@backup virtual_user_dir]# cat chaochao
anon_upload_enable=YES      
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

[root@backup virtual_user_dir]# cat chaoyu
anon_upload_enable=NO      
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

9.修改vsftpd的主配置文件,加载如上的权限控制
修改/etc/vsftpd/vsftp.conf  添加一行参数,自定义的vsftpd的用户配置文件
user_config_dir=/etc/vsftpd/virtual_user_dir

10.重启服务,加载配置
[root@backup virtual_user_dir]# systemctl restart vsftpd

11.此时使用客户端连接ftp,用虚拟用户进行验证

技术图片

 

以上是关于什么是匿名FTP的主要内容,如果未能解决你的问题,请参考以下文章

FTP/Vsftpd服务的部署及匿名用户访问控制详解

FTP匿名(Anonymous)可以提权吗?

搭建FTP服务

centos7搭建ftp服务器并配置匿名用户

ftp的匿名用户的搭建

CentOS如何搭建匿名ftp服务