大家好,欢迎来到IT知识分享网。
FTP协议的介绍及配置实验
1、FTP协议的定义
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的应用层协议。它允许用户通过FTP客户端连接到FTP服务器,进行文件的上传和下载。FTP服务基于客户端/服务器(C/S)模式,使用TCP协议,默认服务端口号为21(用于接收客户端的FTP命令与参数),以及20(用于数据传输)。
2、FTP服务的工作模式
- 主动模式:客户端和服务器之间建立一个命令连接和一个数据连接。命令连接用于传输FTP命令,而数据连接用于传输文件数据。
- 被动模式:客户端和服务器之间建立一个命令连接,然后由服务器发起数据连接。这种方式适用于客户端和服务器位于不同网络环境的场景。
3、FTP服务的特点
- 基于TCP的传输:FTP使用TCP协议进行数据传输,保证了数据传输的可靠性。
- 控制连接和数据连接:FTP使用两个连接,一个用于控制命令(端口21),另一个用于数据传输(端口20)。
- 主动模式和被动模式:FTP支持主动模式和被动模式,以适应不同的网络环境。
- 支持ASCII模式和二进制模式:根据文件类型选择合适的传输模式,以优化传输效率。
- 需要身份验证:FTP服务器通常需要用户进行身份验证后才能进行文件传输,以保护数据的安全性。
- 支持文件列表和传输大文件:FTP允许列出目录内容,并支持传输大文件。
4、vsftpd的安装和配置
vsftpd(Very Secure FTP Daemon)是一个在Linux/Unix系统上运行的开源免费FTP服务器软件,它以安全性和速度为主要特点。
1)配置匿名访问
存在的缺点:匿名用户权限过高,存在安全隐患
配置环境:
rpm -qc vsftpd 检查vsftpd安装包是否存在,-c显示配置文件 yum install -y vsftpd 安装vsftpd 一台Linux系统和一台windows系统的虚拟机,且网络可互联
配置FTP服务:
cd /etc/vsftpd 切换到安装好vsftpd目录下 ls 查看目录下文件 cp vsftpd.confvsftpd.conf.bak 将vsftpd的配置文件进行备份 vim /etc/vsftpd/vsftpd.conf 编辑 vsftpd初始化全局配置
编辑配置文件
anonymous_enable=YES #开启匿名用户访问。默认已开启 local_enable=YES #允许系统用户进行访问(useradd zhangsan) write_enable=YES #开放服务器的写权限(若要上传,必须开启)。默认已开启 anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。 让匿名用户拥有访问本机权限和各种权限 anon_umask=022 #设置匿名用户所上传数据的权限掩码(反掩码)。 anon_upload_enable=YES #允许匿名用户上传文件。默认已注释,需取消注释 anon_mkdir_write_enable=YES #允许匿名用户创建(上传)目录。默认已注释,需取消注释 anon_other_write_enable=YES #允许删除、重命名、覆盖等操作。需添加
重启vsftpd服务,关闭防火墙和核心安全防护
systemctl restart vsftpd systemctl stop firewalld setenforce 0
chmod 777 /var/ftp/pub/ 修改匿名用户的默认根目录权限 echo 'hello world!' > test.txt 配置实验用来验证的一个文件
匿名访问测试
在Windows系统打开开始菜单,输入cmd 命令打开命令提示符
ftp 192.168.233.21 #建立ftp连接,匿名访问密码为空 ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录 ftp> ls #查看当前目录 ftp> cd pub #切换到pub目录 ftp> ls ftp> get test.txt #获取目录中的文件下载到电脑,文件在windos系统user根目录下 ftp> put test4.txt #在window系统下创建test4,并上传到Linux系统中/var/ftp/目录 ftp> ls #查看test4 文件是否上传成功
2)配置本地用户可以访问ftp,禁止匿名用户登录
创建用户
useradd huhu echo '123' | passwd --stdin zhangsan useradd feifei echo '123' | passwd --stdin lisi
编辑ftp配置文件
vim /etc/vsftpd/vsftpd.conf local_enable=Yes #启用本地用户 anonymous_enable=NO #关闭匿名用户访问 write_enable=YES #开放服务器的写权限(若要上传,必须开启) local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
在windows系统终端上进行验证
ftp 192.168.188.10 进行ftp访问 huhu 访问的用户名 123 密码
3)对本地用户访问切换目录进行限制
添加、切换目录的限制配置 :
vim /etc/vsftpd/vsftpd.conf 编辑ftp配置文件 chroot_local_user=YES 将访问禁锢在用户的宿主目录中 取消注释即可 allow_writeable_chroot=YES 允许被限制的用户主目录具有写权限 systemctl restart vsftpd 重启服务
windows上进行验证
ftp 192.168.100.21 进行访问 huhu 访问用户 123 密码 cd /etc 测试权限是否限制
4)修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户 local_root=/var/www/html #local_root 针对本地用户
5)黑名单和白名单的使用 :
白名单
白名单是一个允许访问FTP服务器的用户列表。只有在这个列表中的用户才能访问服务器。配置白名单的方法因FTP服务器软件而异,但通常涉及编辑配置文件并指定允许访问的用户。
例如,在vsftpd中,可以在/etc/vsftpd/vsftpd.conf
文件中配置白名单:
userlist_enable=YES userlist_file=/etc/vsftpd/allowed_users.txt userlist_deny=NO
这里,userlist_enable=YES
表示启用白名单功能,userlist_file
指定了包含允许访问的用户列表的文件,userlist_deny=NO
表示只允许白名单中的用户访问。
黑名单
黑名单是一个禁止访问FTP服务器的用户列表。在这个列表中的用户将被拒绝访问服务器。配置黑名单的方法也因FTP服务器软件而异。
例如,在vsftpd中,可以在/etc/vsftpd/vsft.pyd
文件中配置黑名单:
userlist_enable=YES userlist_file=/etc/vsftpd/banned_users.txt userlist_deny=YES
这里,userlist_enable=YES
表示启用黑名单功能,userlist_file
指定了包含禁止访问的用户列表的文件,userlist_deny=YES
表示禁止黑名单中的用户访问。
注意事项
- 在配置白名单和黑名单时,请确保正确设置了文件权限,以防止未经授权的用户修改列表。
- 当同时使用白名单和黑名单时,FTP服务器将首先检查白名单,然后检查黑名单。这意味着,如果一个用户在白名单中,即使他也在黑名单中,他仍然可以访问服务器。
- 不同的FTP服务器软件可能有不同的配置方法,请参考相应的文档进行配置。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144086.html