[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用

》》FTP 

File Transfer Protocol 

文件传输协议。用于控制文件的双向传输,就是下载+上传

》主动模式

服务端从20端口主动向客户端发起连接,默认。

流程:

客户端发送请求后客户端随机开启端口,客户端主动通过20端口主动向客户端发送数据

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第1张图片

》被动模式

服务端在指定范围内某个端口被动等待客户端连接

流程:

服务器开启随机端口1024以上,将端口号告知客户端后,客户端会等待客户端访问

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第2张图片

配置:65535<端口

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第3张图片

》》vsftpd

Very Secure FTP Deamon

安装:

 yum install vim vsftpd

启动服务:

service vsftpd start

关闭服务:

pkill vsftpd

》配置文件

主配置

/etc/vsftpd/vsftpd.conf
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第4张图片

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第5张图片
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第6张图片
有需要可手动加入以下配置:
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第7张图片

》登陆监听配置listen_address=ip

这个真是个神奇的选项。
我本来以为监听ip禁止登陆,谁知道居然是禁止客户端连接服务器ip,也就是说这个必须写和服务器ip地址一致,或者网卡一致,否则无法登陆进去。

》用户控制列表文件

黑名单……写进去的用户名会禁止登陆ftp:

/etc/vsftpd/ftpusers

也是黑名单,但是可反转为白名单:
/etc/vsftpd/user_list

》相关用户

匿名用户

annonymousf或ftp
密码可为空,不安全,一般禁止访问

本地用户

系统用户,使用系统用户的密码可登陆

虚拟用户

管理员自定义的模拟用户,推荐使用

》关闭防火墙和SELnuix

关闭防火墙

不保存服务只会临时生效
iptables -F
service iptables save

关闭SELnuix

vim /etc/selinux/config
修改为SELINUX=disabled
查看生效
getenforce
同时sestatus也可以
如果临时关闭:setenforce 0
1是开始

》》客户端连接


如果是虚拟机,请开启两块网卡,一块NAT,一块hostonly,前者连接putty,后者用来连接真实主机如本机windows,并且后者最后配置一个ip
打开dos
注意关闭防火墙以及SELinux

命令行登陆:

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第8张图片

常用命令:

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第9张图片

下载:

在哪个目录下执行ftp命令,文件下载就会下载在哪里

上传:

服务端在 
如果是用本地用户登录:/home/登陆名
如果是匿名用户:/var/ftp/

如果报错:200 PORT command successful. Consider using PASV.
关闭windows防火墙即可。

地址栏登陆:

形如:ftp://你的服务端Ip地址
右键空白处点击登陆
登陆后如图 [Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第10张图片


》》用户访问设置

》匿名用户访问(不推荐)

允许匿名用户上传,需要配置默认上传目录

本地/var/ftp/pub设置权限:chown ftp /var/ftp/pub(不建议直接修改ftp目录,因为我更改权限后匿名登陆不了了……)

配置主配置文件里修改或写入(/etc/vsftpd/vsftpd.conf)
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第11张图片

》登陆示意

登陆后密码不需要登陆,上传需要进入到pub目录才有上传权限
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第12张图片

》本地用户访问

[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第13张图片
本地上传到服务器地址是 /home/用户名/
但是可修改
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第14张图片
其他配置
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第15张图片


》虚拟用户访问

为每个虚拟用户建立自己的配置文件,单独定义权限

步骤:

添加虚拟用户口令文件

 vim /etc/vsftpd/vuser.txt
T#用户名
123#密码
J
123

生产虚拟用户口令认证文件

安装口令认证命令
 yum -y install db4-utils
把文本文档转变为认证的数据库
 db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db

编辑vsftpd的PAM认证文件

文件的其他行针对本地登录用户,可注释掉,注释掉后本地就禁止登陆ftp

vim /etc/pam.d/vsftpd
写入(如果是64位操作系统是lib64,32为/lib/ 实测写错会登陆失败……
auth       required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account    required     /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser

建立本地映射用户并设置宿主目录权限

/home/vftproot为用户默认上传的目录
useradd -d /home/vftproot -s /sbin/nologin vuser
chmod 755 /home/vftproot

修改配置文件(vsftpd.conf)

开启虚拟用户///FTP虚拟用户对应的系统用户///PAM认证文件(默认存在)
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd
重启服务
service vsftpd restart
配置到这里可以正常下载,但是不能上传。
调整虚拟用户权限
ftp同意上传
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

》》用户访问限制

urserlist为黑名单:
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第16张图片
userlist反转为白名单:userlist_file小写!!图片有错
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第17张图片
》其他
[Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用_第18张图片

你可能感兴趣的:(Linux)