深入简出ftp

原理的总结

1、FTP是一种互联网的传输协议

2、FTP是基于C/S模式的

3、FTP的端口号是20(数据端口)、21(命令端口)

4、FTP的模式有三种:匿名开放模式、本地用户模式、虚拟用户模式

5、FTP的工作模式有两种:主动模式和被动模式。主动模式是主动向服务端发起请求。被动模式是等待服务器命令消息(ftp模式自动装机就是被动模式)。一般FTP都工作在被动模式

区别:

三种模式的实现:

三种模式都要先按照vsftp服务

    yum install vsftpd

然后关闭selinux和防火墙

    setenforce 0  

    systemctl stop firewalld

匿名开放模式:

    匿名开放的话,只改一个配置文件/etc/vsftpd/vsftpd.conf

    1、anonymous_enable

    2、anon_mkdir_write_enable(允许匿名用户对目录进行写)

    3、anon_other_write_enable(允许匿名用户进行其他的写操作)

测试:

如果三个选项都写成YES

我们想在pub下创建目录,但操作失败了。可能是权限的问题

我们可以试着把pub的权限改过来

使用chmod把other的权限加成7

结果是可以的

如果用chown 命令,改属主

  结果成功

    

重复建一个文档会失败

移除不是自己创建的文件会失败

只有删除自己本次创建的才可以成功

如果只第一个选项改成NO

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).

anonymous_enable=NO

很明显,anonymous_enable是控制是否允许ftp匿名登录

如果只第二个选项改成NO

# Uncomment this if you want the anonymous FTP user to be able to create

# new directories.

anon_mkdir_write_enable=NO

/var/ftp/pub权限如下:

[root@Nick ~]# ls -ld /var/ftp/pub/

drwxr-xr-x. 12 ftp root 274 7月 28 11:05 /var/ftp/pub/

结果是不允许的

如果只把第三个选项改成NO

可以创建目录的

但是不能删除

可以切换,但是不可以ls查看(有x没有r)

让anon_upload_enable=NO

 结果就是不能上传文件

但是不影响其他功能,可以下载,可以新建目录,可以删除目录

把后两项调为NO    

不能创建,不能移除,不能查看目录内容

第二种方法:本地用户模式

也只把主配置文件/etc/vsftpd/vsftpd.conf

的允许匿名用户无密登录改成NO就可以

anonymous_enable=NO

很习惯的会使用root登录,结果失败了

原因是因为本地用户模式的本地用户受控于ftpuser和user_list两个文件

ftpuser

注释写着,不会允许这些用户登录。

在vsftpuser文件里面

这些用户名列表需要先查看主配置文件里面的userlist_deny这个选项,如果为NO的话只允许这些用户名登录,否则的话,这些名单也是禁止登录的。

把root在userlist和vsftpduserlist都注释掉,root就可以登录成功

我们把nick加到用户列表里面,作为参照,

结果是失败的

vsftpuser里面提示我们可以改主配置文件的user_list deny的选项来控制登录用户

userlist_deny=NO下,nick在两个文件里面,没有注释

1、两个用户列表里面现在的 配置是root注释掉

2、现在root只在userlist下注释

3、root只有在userlist里面注释掉

4、root在两个文件都没注释

当/etc/vsftpd/vsftpd.conf中的user_list为YES的时候

当两个文件都没有注释的时候,登录失败

当只有userlist注释的时候也是失败

当只有ftpusers里root注释的时候,root成功登录

当两个文件都注释掉root的时候,root成功登录

用一个系统没有的用户登录

以上试验证明,本地用户模式主要是看本地用户有多少,还有/etc/ftpuser和/etc/user_list的用户列表,以及和/etc/vsftpd/vsftpd.conf的userlist_enable

 

当userlist_enable=YES的时候,只要看ftpusers,ftpusers有的用户就不能登录。注释掉,或者没有的就可以登录

 

当userlist_enable=NO的时候,两个文件都需要看,两个文件都需要注释掉想用的用户,或者把自己不想用的用户写上去。相当于“与”关系

虚拟用户模式:

思路是:

    首先先创建映射到虚拟用户的不存在的用户,在一个文档(/etc/vsftpd/vuser.list)写他的用户和密码。两行一个用户

再用db_load把明文加密。

db_load -T -t hash -f vuser.list vuser.db

vuser.db把权限改为600

添加一个虚拟用户virtual

家目录为共享文件的目录,shell设为/sbin/nologin

把家目录权限改为755

然后再改pam登录安全模块的设置

在/etc/pam.d/vsftpd/vu下写安全认证的东西(登录需要用到)

auth required pam_userdb.so db=/etc/vsftpd/vuser

account required pam_userdb.so db=/etc/vsftpd/vuser

最后,到主设置文件/etc/vsftpd/vsftpd.conf改5项参数,以及加上个人权限配置文件的dir名

anonymous_enable=No

guest_enable=YES

guest_username=virtual

allow_writeable_chroot=YES

pam_service_name =vsftpd.vu

user_config_dir=/etc/vsftpd/vusers_dir

重启服务就完成设置了

    

    再是

在window下,不管有没有写权限,都可以上传文件

linux下

有设置个人配置文件的设置的操作都可以做

如果没设置个人配置文件的用户基本都做不了,只可以登录

猜你喜欢

转载自blog.csdn.net/qq_41201816/article/details/81262119