vsftpd服务器
FTP服务的原理
- FTP(File Transfer Protocol)是一个非常古老并且应用十分广泛的文件传输协议,FTP协议是现今使用最为广泛的网络文件共享协议之一
- 现在也一直有在用着FTP协议来进行各种文件的传输,FTP为人们提供了一种可靠的方式在网络上进行文件的共享
- FTP是C/S架构的服务,拥有一个服务器端和一个客户端,FTP底层通过TCP协议来作为传输协议,所以FTP协议是一种可靠的文件传输方式
- FTP提供了两个端口号,20和21号端口,20号是数据接口,提供数据之间的传输,21号是命令接口,提供命令之间的传输
- FTP服务端与客户端连接一般有两种模式:主动模式和被动模式
† PORT(主动模式)
- FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,客户端随机开放一个端口(1024以上的就行),发送 PORT命令到FTP服务器,告诉服务器客户端采用主动模式并开放端口
- FTP服务器收到PORT主动模式命令和端口号后,通过服务器的20端口和客户端开放的端口连接,进行发送数据
† PASV(被动模式)
- FTP客户端连接到FTP服务器的21端口,发送用户名和密码登录,登录成功后要list列表或者读取数据时,发送PASV命令到FTP服务器, 服务器在本地随机开放一个端口(1024以上),然后把开放的端口告诉客户端, 客户端再连接到服务器开放的端口进行数据传输
两种模式的区别和哪种比较适合
- 主动模式和被动模式的不同简单概述为:
† 主动模式传送数据时是"服务器"连接到"客户端"的端口
† 被动模式传送数据是“客户端"连接到"服务器"的端口
- 通常还是使用的是被动连接的模式,因为服务器端都有配置防火墙,而防火墙对于内网连接外网的端口一般是放行的,而外网来连接内网的端口则一般是有限制的,所以这时如果使用主动模式连接的话,端口可能被防火墙拦截,导致无法连接FTP服务
- 如果要将内外的FTP通过NAT技术共享至外网,那么肯定需要选择被动连接才可行,可安全!
对不起的大家啊!由于昨天弄了好久没有做成功。今天我给大家发一个成功的实验!!希望大家见谅
本次实验用的是Linux6.4的系统,也许跟其他系统有点区别。。。那我就讲讲区别在哪里
实验环境
Linux6.4(192.168.10.200)
windows7测试(192.168.10.121)
首先我们创建一个文本,里面添加用户。
(注:奇数是用户,偶数是密码,依次推理)
这里我添加了两个用户,接下来认证
修改/etc/pam.d/vsftpd认证文件,把里面原有的全部注释掉 (注意的是以#号开头都是注释)
这里我要讲一下区别,因为系统是Linux6.4的与其他的系统还是有区别的。
区别在于是否要添加这句话
auth required /lib64/security/pam_userdb.so db=文明密码路径
account required /lib64/security/pam_userdb.so db=文明密码路径
如果要是32位的系统那就不用加64这个两个数
建立本地映射用户并设置权限
这句话的意思是不允许test8登录系统,固定家目录为/home/xiaoyu
给予权限
修改主配置文件(/etc/vsftpd/vsftpd.conf)
把里面的匿名登录改为NO
anonymous_enable=YES改为NO
然后在底部添加
guest_enable=YES #开启虚拟用户
guest_username=test8 #虚拟用户映射本地用户
user_config_dir=/etc/ftp #虚拟用户权限设置
比如admin虚拟用户,我们设置权限vim /etv/ftp/admin添加权限,就可以了
保存好了,然后重启服务器就可以了
接下来的测试
上传一个文件试试看
vsftpd到此就结束了,如果有什么不懂的地方加群讨论347742514
--------小雨
总结:vsftpd需要注意的是pam.d里面的认证文件,不要搞错了,还有就是权限不要给错。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步