Linux文件共享之FTP

FTP概述

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一
FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源

在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上 由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议,默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息,但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定

同大多数Internet服务一样,FTP也是一个客户/服务器系统 用户通过一个客户机程序连接至在远程计算机上运行的服务器程序 依照 FTP,协议提供服务,进行文件传送的计算机就是 FTP服务器 而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端,用户要连上FTP 服务器,就要用到 FTP 的客户端软件,通过lftp命令连接

FTP服务的基本信息
软件安装包vsftpd
默认发布目录/var/ftp
默认发布目录的子目录/var/ftp/pub/
协议接口21/tcp
服务配置文件/etc/vsftpd/vsftpd.conf
配置参数
530表示认证失败 ,服务器不允许或者密码错误
550表示服务本身的功能没有开启
553表示权力过小或者所访问的服务器的文件系统有问题
500服务本身认为我所操作的服务的权力过大
主要配置文件
/etc/logrotate.d/vsftpd日志文件
/etc/pam.d/vsftpd认证文件
/etc/vsftpd/ftpusers黑名单文件
/etc/vsftpd/user_list用户名单文件
/etc/vsftpd/vsftpd.conf配置文件

前期准备

server1-172.25.70.11服务端
server2-172.25.70.12客户端

关闭selinux

部署FTP

server1

yum install vsftpd lftp -y 
systemctl start vsftpd 开启vsftpd服务
systemctl enable vsftpd 设置开机启动 
systemctl stop firewalld
firewall-cmd --premanent --add-service=ftp 或者在防火墙上添加ftp
安装完之后在/etc/vsftpd/路径下会存在三个配置文件。
vsftpd.conf: 主配置文件
ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。
user_list: 指定的用户是否可以访问ftp服务器,通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,
userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。
查看主配置文件的默认配置

cat /etc/vsftpd/vsftpd.conf |grep -v '^#';

anonymous_enable=YES     允许匿名用户
local_enable=YES     允许使用本地用户账号登陆
write_enable=YES    允许ftp用户写数据
connect_from_port_20=YES    通过20端口传输数据

复制代码
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
tcp_wrappers=YES
chroot_local_user=yes
其它的一些参数说明
ftpd_banner=welcome to ftp service设置连接服务器后的欢迎信息
idle_session_timeout=60限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)
data_connection_timeout=120设置客户机在进行数据传输时,设置空闲的数据中断时间
accept_timeout=60设置在多长时间后自动建立连接
connect_timeout=60设置数据连接的最大激活时间,多长时间断开,为别人所使用;
max_clients=200指明服务器总的客户并发连接数为200
max_per_ip=3指明每个客户机的最大连接数为3
local_max_rate=50000(50kbytes/sec)本地用户最大传输速率限制
anon_max_rate=30000匿名用户的最大传输速率限制
pasv_min_port=端口/pasv-max-prot=端口号定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;
listen_address=IP地址设置ftp服务来监听的地址,客户端可以用哪个地址来连接;
listen_port=端口号设置FTP工作的端口号,默认的为21
local_root=path无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;
chroot_local_user=yes/no是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
chroot_list_enable=yes/no启用不锁定用户在主目录的名单
chroot_list_file=/etc/vsftpd/chroot_list指定列表文件
userlist_enable=YES/NO是否加载用户列表文件;
userlist_deny=YES表示上面所加载的用户允许登录;
userlist_file=/etc/vsftpd/user_list指定列表文件

匿名用户参数解析

匿名用户登录限制

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO

在这里插入图片描述

匿名用户上传文件

write_enable=YES 匿名用户可写
anon_upload_enable=YES匿名用户可上传
匿名用户默认以ftp用户的身份访问ftp服务器的,所以将ftp目录的所有组改为ftp以及赋予目录较大的权限,这样匿名用户才可以上传文件
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub

在这里插入图片描述

匿名用户家目录修改

anon_root=/direcotry

匿名用户上传文件默认权限修改

anon_umask=xxx

在这里插入图片描述

匿名用户建立目录

anon_mkdir_write_enable=YES|NO

在这里插入图片描述
在这里插入图片描述

匿名用户下载文件

anon_world_readable_only=YES|NO

在这里插入图片描述

匿名用户删除文件

anon_other_write_enable=YES|NO

在这里插入图片描述

匿名用户使用的用户身份修改

chown_uploads=YES
chown_username=student

在这里插入图片描述在这里插入图片描述

最大上传速率

anon_max_rate=102400

在这里插入图片描述在这里插入图片描述

最大连接数

max_clients=2

本地用户参数解析

本地用户登录

local_enable=YES|NO 

在这里插入图片描述在这里插入图片描述

本地用户限制登录

在这里插入图片描述

本地用户写权限限制

write_enable=YES|NO

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
可以看出原先在student用户下建立的文件权限与在lftp下建立的文件权限不同
在这里插入图片描述

本地用户家目录修改

local_root=/directory

在这里插入图片描述

本地用户建立目录权限设定

local_umask=xxx

在这里插入图片描述

所有用户被锁定到自己的家目录中

chroot_local_user=YES
chmod u-w /home/*
 防止本地用户随便访问其他重要目录文件,安全性降低
 改参数前s以tudent用户身份登录后可以进入/mnt目录

在这里插入图片描述
更改参数后就不被允许了
在这里插入图片描述

虚拟账号

创建虚拟帐号

vim /etc/vsftpd/westosfile ##文件名称任意 创建一个虚拟帐号的名单,里面的帐号是不存在的

vim /etc/vsftpd/loginusers ##文件名称任意
db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db
db_load	-T	-t	hash	-f	/etc/vsftpd/westosfile	/etc/vsftpd/westosfile.db
加密命令	转换	建立	加密方式	文件	被加密文件	加密的文件

vim /etc/pam.d/ckvsftpd ##文件名称任意(设置转换桥梁)
account	required	pam_userdb.so	db=/etc/vsftpd/westosfile
auth	required	pam_userdb.so	db=/etc/vsftpd/westosfile
帐号和密码	请求访问允许或者拒绝	验证程序	在该文件里面验证


vim /etc/vsftpd/vsftpd.conf
pam_service_name=ckvsftpd(使它生效)
guest_enable=YES

虚拟帐号身份指定

guest_username=ftpuser
chmod u-w /home/ftpuser

虚拟帐号家目录独立设定

使虚拟用户的登陆进去不再是ftp用户的默认家目录
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/$USER
user_sub_token=$USER

虚拟帐号配置独立

(想让哪个用户干什么用户就干什么 ,vsftpd的安全性就体现在这里)

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

黑白名单

黑名单

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

永久黑名单

vim /etc/vsftpd/ftpusers 用户黑名单

临时名单

vim /etc/vsftpd/vsftpd.conf
	userlist_deny=NO|YES
vim /etc/vsftpd/user_list 用户临时黑名单|白名单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值