一、 ftp的定义
ftp:// ##文件传输协议为internet上如今最常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法。
载RED HAT ENTERPRISE LINUX6中,FTP 服务器包的名称为 VSFTPD ,它代表Very Secure File TransferProtocol Damon 服务器名称也叫做 vsftpd
默认配置文件让 ANONYMOUS 用户只能用于下载位于 CHROOT 目录的内容。/var/ftp/这意味着远程 FTP 客户端能以用户 anonymous 或 ftp 身份连接到服务器(无需密码),并从 ftp 服务器上的 /var/ftp/ 目录下载文件(其本地 ftp 用户可以读取这些文件)
二、 ftp协议提供的软件
*地址:http://172.25.254.93/rhel7.2注:其为镜像软件,地址也为自行设定
*软件:vsftpd
三、 部署ftp服务
*前期准备操作:[[email protected] ~]# vim /etc/yum.repos.d/rhel_dvd.repo ##yum 源指定
[[email protected] ~]# vim /etc/sysconfig/selinux ##设置为disable模式
[[email protected] ~]# reboot ##重启
查看其配置文件是否更改之法:
[[email protected] vsftpd]# getenforce
Disabled
*ftp部署过程:
>>yum clean all ##清除日志--当更改好yum源指定后,无法正常安装软件,可用此命令
>>yum install vsftpd -y ##安装vsftpd服务
>>systemctl start vsftpd ##开启vsftpd服务
>>systemctl enable vsftpd ##设置服务为开机启动
>>firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload ##在防火墙中加入ftp策略
>安装lftp
yum install lftp -y
四、 ftp服务的基本信息
>软件安装包: vsftpd>默认发布目录: /var/ftp
>协议接口: 21/tcp
查看方式:
[[email protected] ~]# ss -antple | grep vsftpd
LISTEN 0 32 :::21 :::* users:(("vsftpd",2903,3)) ino:53573 sk:ffff880022fb6000 <->
>服务配置文件: /etc/vsftpd/vsftpd.conf
>报错id解析:
550表示服务本身不允许该动作--更改配置文件/...
553本地文件系统对你无权力--更改文件权限。
530表示登陆失败即用户认证失败--密码错误
500文件系统权限过大--解决:例chmod 755 /var/ftp/
五、用户权限的设置
更改在配置文件:vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd.service
**匿名用户**
>anonymous_enable=YES|NO ##匿名用户是否可以登陆ftp服务器
实操:
更改前,在匿名用户登陆ftp服务显示:
注:表示可以登陆
更改后
注:表示不可以登陆
**本地用户**
>local_enable=YES ##本地用户是否可以登陆
>write_enable=YES ##ftp是否对登陆可写
附:
1)本地用户登陆方式
lftp 172.25.254.218 -u student
2)本地用户只能上传文件,不可建立文件
关于其以上命令,大家可自行验证。
1. 匿名用户上传
>vim /etc/vsftpd/vsftpd.confwrite_enable=YES
anon_upload_enable=YES(取消注释)
>systemctl restart vsftpd.service
>chgrp ftp /var/ftp/pub
>chmod 775 /var/ftp/pub
**制定匿名用户家目录修改**
>anon_root=/directory
实操:
1)配置文件更改如下:2)错误排查
*状况:
- [[email protected] Desktop]$ lftp 172.25.254.10
- <span style="font-size:14px;">lftp 172.25.254.10:~> ls
- lftp 172.25.254.10:/> put /etc/passwd
- put: Access failed: <span style="color:#3333FF;">553</span> Could not create file. (passwd) -->553表示文件的权限不</span>
*解决1:
- [[email protected] pub]# chmod 777 /westos
- <span style="font-size:12px;">
- <span style="font-size:14px;color:#FF0000;">此种方法对于系统来说安全度不够</span></span>
*解决2:
- [[email protected] westos]# chgrp ftp /westos
- <span style="font-size:14px;">[[email protected] westos]# chmod 775 /westos</span>
3)结果如下:
- [[email protected] westos]# ls /westos
- <span style="font-size:14px;"> passwd</span>
**匿名用户上传文件默认权限**
anon_umask=xxx
实操:
1)配置文件更改如下:
2)结果如下:
**匿名用户建立目录**
anon_mkdir_write_enable=YES|NO(取消注释)
注:只能建立目录
**匿名用户下载**
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载
**匿名用户删除**
anon_other_write_enable=YES|NO
**匿名用户使用的用户身份修改**
chown_uploads=YES
chown_username=student
(以上两个更改方式:取消注释)
**最大上传速率**
anon_max_rate=102400
**最大链接数**
max_clients=2
2. 本地用户设定
> local_enable=YES|NO> write_enable=YES|NO
1)本地用户家目录修改
local_root=/directory注:若要在指定家目录(/westos)中建立文件需要更改指定家目录/westos权限
2)本地用户上传文件权限
local_umask=xxx3)限制本地用户浏览/目录
所有用户被锁定到自己的家目录中chroot_local_user=YES(取消注释)
chmod u-w /home/*
*用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(之上更改方式为取消注释)
*用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
4)限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单vim /etc/vsftpd/user_list ##用户临时黑名单
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变成白名单,只在白名单中出现的用户可以登陆ftp