1.ftp服务的介绍
FTP是用来在两台计算机之间传输文件,是Internet中应用非常广泛的服务之一。它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。因此,FTP服务是网络中经常采用的资源共享方式之一。FTP协议有PORT和PASV两种工作模式,即主动模式和被动模式。
FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。通过FTP协议,用户可以在FTP服务器中进行文件的上传或下载等操作。虽然现在通过HTTP协议下载的站点有很多,但是由于FTP协议可以很好地控制用户数量和宽带的分配,快速方便地上传、下载文件,因此FTP已成为网络中文件上传和下载的首选服务器。同时,它也是一个应用程序,用户可以通过它把自己的计算机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP服务的功能是实现完整文件的异地传输。
2.环境准备
主机名 | 作用 |
ftp-client | ftp服务器的客户端 |
ftp-server | ftp服务器的服务端 |
关闭防火墙与selinux
systemctl stop firewalld && systemctl disable firewalldsetenforce 0 --临时关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config ---永久关闭
3.ftp软件的安装以及启动(服务端)
yum -y install vsftpd
systemctl restart vsftpd && systemctl enable vsftpd
4.客户端工具有很多,在此以lftp作为演示(客户端)
yum -y install lftp
5.连接以及使用(在此默认是使用匿名用户进行访问)
ftp +ip --连接ftp服务端mirror -R 文件夹名称 --批量上传文件夹
mirror ./ --./代表远程目录下的所有文件
6.ftp的基本使用
6.1.ftp配置文件详解
grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 支持匿名用户访问
local_enable=YES 非匿名用户,普通账号登录,默认进入到自己的家目录
write_enable=YES 写总开关(主要针对非匿名用户)
local_umask=022 反掩码 file:644 dir:755
dirmessage_enable=YES 启用消息功能
xferlog_enable=YES 开启或启用xferlog日志
connect_from_port_20=YES 支持主动模式(默认被动模式)
xferlog_std_format=YES xferlog日志格式
listen=NO ftp服务独立模式下的监听
listen_ipv6=YESpam_service_name=vsftpd 指定认证文件
userlist_enable=YES 启用用户列表(user_list黑名单)
tcp_wrappers=YES 支持tcp_wrappers功能(FTP限速操作)
6.2.案例-使用控制特定用户的访问目录,可以做到很好的有效管理
1.创建用户并授予密码
useradd jack
echo 1 | passswd --stdin jack2.不允许匿名用户访问
anonymous_enable=NO3.指定用户访问目录
17行:local_root=目录名称4.限定用户只能在特定目录下活动
19行:chroot_local_user=YES5.实现上传的操作,对文件夹赋予w写权限
setfacl -R -m u:用户名:rwx 目录名称
6.3.ftp的黑名单
ftpusers
user_list
当用户在黑名单中时,是不被允许登录的,但我们可以使其变成白名单
userlist_deny=NO
6.4.ftp的网络访问控制
/etc/hosts.allow 允许/etc/hosts.deny 拒绝
vim /etc/hosts.deny
服务程序:主机
vsftpd:all 全部拒绝
vfstpd:all EXCEPT 192.168.0.2 拒绝所有,除了192.168.0.2
vsftpd:192.168.0.254 拒绝单个IP地址
6.5.流量的控制
vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0:代表不限速 ,默认单位为字节