一、ftp的定义
ftp是一种文件传输协议,是TCP/IP协议组中的协议之一。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。
二、ftp服务的部署
1、下载并安装:yum install vsftpd
注意:在安装过程中要使用和自己系统版本相同的安装包!!!
2、开启ftp服务:systemctl start vsftpd
3、若经常使用ftp服务,则可以设置为开机自启动:systemctl enable vsftpd
4、为了能让别的主机通过ftp远程访问,需要将防护墙关闭:systemctl stop firewalld.service
也可以对防火墙进行设置策略:firewall-cmd --permanent --add-service=ftpd
设置好后需要进行重新加载:firewall-cmd --reload
5、ftp服务的基本信息:
三、ftp对匿名用户的设定
ftp服务在使用过程中有时需要进行一些限制和开放权限,这些都在ftp服务的配置文件:/etc/vsftpd/vsftpd.conf中设置!!
1、匿名用户能否登录:vim /etc/vsftpd/vsftpd.conf
在文件中编辑anonymous_enable=YES|NO该命令,当值为YES时,匿名用户可以登录,如下:
注意:编辑完文件后需要重新启动ftp服务才能生效:systemctl restart vsftpd
可以看到当前目录中的一些内容则表明匿名用户可以登录!!
当值为NO时,匿名用户则不能进行访问,如下:
不能查看当前目录中的一些内容,则表明此时匿名用户不能进行登录!!
2、本地用户能否登录:文件中编辑:local_enable=YES|NO
值为YES时,可以登录
值为NO时则不能进行登录
此时系统报错:只允许匿名用户登录!!
3、匿名用户上传:anon_upload_enable=YES
其中write_enable=YES是允许登录用户可写!!
为了不破坏其他文件,将上传文件全部上传至服务器的/var/ftp/pub中,需要改pub目录的权限和所在组
上传文件:
用ls可以查看是否上传成功!!
4、匿名用户家目录的修改:anon_root=/westos:将匿名用户的家目录改成westos目录
修改后匿名用户的家目录即在westos中(本次实验中westos目录 为1空目录,所有ls查不到任何内容)
5、匿名用户建立 目录:anon_mkdir_write_enable=YES|NO
当为YES时,可以建立
当为NO时,不可建立:
此时系统会提示系统不允许建立目录!!
6、匿名用户对文件目录的删除:anon_other_write_enable=YES|NO
当为YES时,可以进行删除
如图,顺利删掉了pub目录下的 passwd文件
当为NO时,删除无效,即执行rm -rf命令系统不报错,但文件不会被删除
在将值改为NO后,执行rm -rf *并不报错,但pub目录下的文件并没有被删除,即删除无效!!
7、匿名用户上传文件的权限:anon_umask=xxx
未更改前:
未更改时上传的文件的权限为700
将anon_umask的值改为022后:
修改后上传同样的passwd文件,权限变为644(666-022)
8、匿名用户的下载:anon_world_readable_only=YES|NO
注意:当值为YES时为不允许下载,当值为NO时允许下载!!!!
用ls查看会发现,将file文件从pub中下载到了当前界面
9、最大上传速率:anon_max_rate=204800 :单位为字节
如上图,在上传该文件时的速率未超过最大速率,较慢
当未设置最大传输速率时,系统对上传速率不加限制
由于该文件较小,而且未对传输速率有限制,则这次传输在瞬间完成!!!
10、最大链接数:max_client=1:表示最多只能有一台主机通过ftp链接该服务器!!
如上图,在将最大链接数设置为1时,第二台主机无法链接服务器!!!
在未设置时,不限服务器链接数量!!!!
两台主机都顺利链接上!!!
三、ftp对本地用户的设定
1、本地用户家目录的修改:local_root=/westos:将本地用户的家目录改为/westos
验证前在/westos目录下先touch一个file
由上图对比可以看出,westos用户的家目录被改成了/westos目录!!
未更改前:
未更改前,本地用户的家目录位于/home中!!
2、本地用户上传文件权限:local_umask=xxx
本地用户上传文件权限默认为022
修改为002后:
由上图会发现修改后上传同样的文件权限不同!!!
3、限制本地用户浏览目录:chroot_local_user=YES
为了保护家目录中的数据,去掉可写权限
设置后用户登录后只能待在家目录中,不能访问其他目录!!!
4、用户黑名单建立,在黑名单中的用户无法访问其他目录
在配置文件中找到这三条并取消注释,让其生效
然后在/etc/vsftpd/chroot_list文件中写入用户名,即为黑名单!!
此时黑名单已生效,westos用户登录后无法访问其他目录,如下:
5、白名单:将配置文件中chroot_local_user后的NO改为YES则可将黑名单转换为白名单
刚才在黑名单中的westos用户此时变成白名单中的用户,可以访问其他目录
只有白名单中的用户才能访问其他目录
6、限制本地用户登录
用户黑名单:vim /etc/vsftpd/ftpusers
westos用户存在于黑名单中,则无法通过ftp登录访问服务器
7、用户临时黑名单:vim /etc/vsftpd/user_list
在临时黑名单中的用户也无法登录服务器
8、用户白名单:在ftp的配置文件中,设置userlist_deny=NO,临时黑名单就会变成白名单!!
变成白名单后,westos用户可以登录访问服务器
未在白名单中的hehe用户将无法登录
四、ftp常见报错:
1、500:文件系统权限过大,此时应将所对应文件系统权限改小
2、553:文件系统权限过小
3、530:用户认证失败,即登录ftp时密码输入错误
4、550:系统不允许登录,即设置了权限!!