FTP服务介绍
FTP(File Transfer Protocol)是一种应用非常广泛并且古老的一个互联网文件传输协议。
文件传输:文件上传与文件下载
主要用于互联网中==文件的双向传输==(上传/下载)、文件共享
跨平台 Linux、Windows
FTP是==C/S==架构,拥有一个客户端和服务端,使用==TCP协议==作为底层传输协议,提供可靠的数据传输
FTP的默认端口 ==21号==(命令端口) ==20号==(数据端口,主动模式下) 默认被动模式下
FTP程序(软件)==vsftpd==
FTP软件名称 => vsftpd => vs(very secure ftp daemon)
FTP服务的客户端工具
Linux:ftp、lftp(客户端程序)
Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
lftp和ftp工具区别:
lftp:默认是以==匿名用户==访问
ftp:默认是以==用户名/密码==方式访问
lftp可以批量并且下载目录
搭建FTP服务器
. 关闭防火墙和selinux
2. 配置yum源(mount /dev/sr0 /mnt)
3. 软件三部曲
4. 了解配置文件
5. 根据需求修改配置文件来完成服务的搭建
6. 启动服务,开机自启动
7. 测试验证
1.服务端安装ftp软件包
yum install vsftpd -y
2.启动ftp服务并添加到开机启动项中
# systemctl start vsftpd
# systemctl enable vsftpd
3.基于windows访问
基于软件访问
4.基于linux访问,下载ftp和lftp
yum install -y ftp lftp
FTP的配置文件详解(重要)
# rpm -ql vsftpd
/usr/lib/systemd/system/vsftpd.service 启动脚本
/etc/vsftpd 配置文件的目录
/etc/vsftpd/ftpusers 用户列表文件,黑名单
/etc/vsftpd/user_list 用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf 配置文件(主配置文件)
/usr/sbin/vsftpd 程序本身(二进制的命令)
/var/ftp 匿名用户的默认数据根目录
/var/ftp/pub 匿名用户的扩展数据目录
1.vsftpd配置文件详解:
# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 支持匿名用户访问
local_enable=YES 支持非匿名用户,普通账号登录,默认进入到自己家目录
write_enable=YES 写总开关
local_umask=022 反掩码 file:644 rw- r-- r-- dir:755
dirmessage_enable=YES 启用消息功能
xferlog_enable=YES 开启或启用xferlog日志
connect_from_port_20=YES 支持主动模式(默认被动模式)
xferlog_std_format=YES xferlog日志格式
listen=YES ftp服务独立模式下的监听pam_service_name=vsftpd 指定认证文件
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 支持tcp_wrappers功能(FTP限速操作)
FTP企业项目任务解决方案
1. 客服人员必须使用用户名密码(kefu/123)的方式登录服务器来下载相应文档
2. 不允许匿名用户访问
3. 客服部门的相关文档保存在指定的目录里/data/kefu local_root=/data/kefu
4. 客服用户使用用户kefu/123登录后就只能在默认的/data/kefu目录里活动
1.创建客服账号(Server)
# useradd kefu
# echo 123 |passwd --stdin kefu
2.不允许匿名用户访问
# vim /etc/vsftpd/vsftpd.conf
12行 anonymous_enable=NO
3.配置修改完毕后,一定要重启vsftpd服务
systemctl restart vsftpd
测试
默认账号连接就在自己的家目录,现在没做权限限制,可以访问/目录全部文件
4.指定账号访问的目录
# mkdir /data/kefu -p
# vim /etc/vsftpd/vsftpd.conf
17行 local_root=/data/kefu
测试
5.限定kefu/123只能在/data/kefu目录下活动
禁锢kefu用户只能在/data/kefu目录下
# vim /etc/vsftp/vsftpd.conf
18行 chroot_local_user=YES
测试
/就代表在自己的用户的/目录
无法上传
主要原因在于kefu这个账号对于/data/kefu文件夹没有w写权限
setfacl -R -m u:kefu:rwx /data/kefu1
# systemctl restart vsftpd