》》FTP
File Transfer Protocol
文件传输协议。用于控制文件的双向传输,就是下载+上传
》主动模式
服务端从20端口主动向客户端发起连接,默认。
流程:
客户端发送请求后客户端随机开启端口,客户端主动通过20端口主动向客户端发送数据
》被动模式
服务端在指定范围内某个端口被动等待客户端连接
流程:
服务器开启随机端口1024以上,将端口号告知客户端后,客户端会等待客户端访问
配置:65535<端口
》》vsftpd
Very Secure FTP Deamon
安装:
yum install vim vsftpd
启动服务:
service vsftpd start
关闭服务:
pkill vsftpd
》配置文件
主配置
/etc/vsftpd/vsftpd.conf
有需要可手动加入以下配置:
》登陆监听配置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
命令行登陆:
常用命令:
下载:
在哪个目录下执行ftp命令,文件下载就会下载在哪里
上传:
服务端在
如果是用本地用户登录:/home/登陆名
如果是匿名用户:/var/ftp/
如果报错:200 PORT command successful. Consider using PASV.
关闭windows防火墙即可。
地址栏登陆:
形如:ftp://你的服务端Ip地址
右键空白处点击登陆
登陆后如图
》》用户访问设置
》匿名用户访问(不推荐)
允许匿名用户上传,需要配置默认上传目录
本地/var/ftp/pub设置权限:chown ftp /var/ftp/pub(不建议直接修改ftp目录,因为我更改权限后匿名登陆不了了……)
配置主配置文件里修改或写入(/etc/vsftpd/vsftpd.conf)
》登陆示意
登陆后密码不需要登陆,上传需要进入到pub目录才有上传权限
》本地用户访问
本地上传到服务器地址是 /home/用户名/
但是可修改
其他配置
》虚拟用户访问
为每个虚拟用户建立自己的配置文件,单独定义权限
步骤:
添加虚拟用户口令文件
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为黑名单:
userlist反转为白名单:userlist_file小写!!图片有错
》其他