FTP文件传输与vsftpd配置

一 存储类型

直连式存储DAS

适用于那些数据量不大,对磁盘访问速度要求较高的中小企业

存储区域网络SAN

用来存储非结构化数据,虽然受限于以太网的速度,但是部署灵活,成本低

网络附加存储NAS

适用于大型应用或数据库系统,缺点是成本高、较为复杂

FTP工作原理

1文件传输协议

是典应用层协议, c/s架构

20数据端口 用于建立数据连接,并传输文本数据

21命令端口 建立控制连接,并传输FTP控制命令

2 数据传输格式:二进制 文本

3 双通道协议:命令与数据的连接

从服务器角度

主动模式:服务器主动开启20端口连接客户端传输真实数据

被动摸式:服务器随机开启端口等待客户端连接,客户机通过21命令来获取 服务端的随机端口

数据给客户端

被动(PASV style):服务器被动等待客户端连接

FTP服务状态码

服务器数据端口为:

用户认证:

  • 匿名用户:ftp,anonymous,对应Linux用户ftp root,两种协议

  • 一般提供公共文件的下载,如免费文件,学习资料,百度网盘

  • 系统用户: Linux用户,用户/etc/passwd,密码/etc/shadow

  • 虚拟用户: 特定服务的专用用户,独立的用户/密码文件

常见 FTP 相关软件

vsftpd:

ftp.redhat.com数据

Wu-ftpd

vsftpd 软件介绍

用户认证配置文件: /etc/pam.d/vsftpd

配置文件或子目录: /etc/vsftpd

:/usr/sbin/vsftpd

:/var/log/vsftpd.log

用户和其共享目录

  • 匿名用户(映射为系统用户ftp )共享文件位置:/var/ftp

  • 系统用户共享文件位置:用户家目录

  • 虚拟用户共享文件位置:为其映射的系统用户的家目录

安装服务端

客户端连接服务端

vsftpd服务常见配置

修改默认命令端口

服务端:修改 默认命令端口号

客户端:连接时需要指明 端口号

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

listen_port=2121 #默认值为21

root@localhost \~#systemctl restart vsftpd

#ss -ntl #查看端口

主动模式端口

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

connect_from_port_20=YES #主动模式端口为20

ftp_data_port=20 #指定主动模式的端口,默认为20

root@localhost \~#systemctl restart vsftpd

被动模式端口

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

pasv_min_port=6000

pasv_max_port=6010

root@localhost \~#systemctl restart vsftpd

#0为随机分配,规定端口范围会影响客户端的并发数

使用当地时间

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

use_localtime=YES #使用当地时间 , 默认为NO,使用GMT

root@localhost \~#systemctl restart vsftpd

匿名用户登录

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES #支持匿名用户,

no_anon_password=YES #匿名用户略过口令检查 , 默认NO

root@localhost \~#systemctl restart vsftpd

匿名用户上传

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES 匿名上传,注意:文件系统权限

anon_mkdir_write_enable=YES 匿名建目录

还需要开启文件系统访问的权限,不能给FTP根目录写权限否则报如下错误

匿名用户 下载 删除文件
指定匿名用户的上传文件的默认的所有者是ftp用户,这是可以修改的

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

chown_uploads=YES #默认NO

chown_username=mcb #匿名用户的上传文件的默认的所有者用户

chown_upload_mode=0644 #指定上传文件的权限

root@localhost \~#systemctl restart vsftpd

Linux 系统用户

系统用户登录:使用普通用户登录默认是在 系统用户的 家目录

将所有系统用户映射为指定的guest用户

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

guest_enable=YES #所有系统用户都映射成guest用户

guest_username=ftp #配合上面选项才生效,指定guest用户

#local_root=/ftproot #注释此行,默认所有用户都在ftp用户的家目录

user_config_dir=/etc/vsftpd/conf.d/ #每个用户独立的配置文件目录,可自由指定

root@localhost \~#systemctl restart vsftpd

禁锢系统用户

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO #默认YES

root@localhost \~#systemctl restart vsftpd

禁锢所有系统用户在家目录中

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

guest_enable=YES #所有系统用户都映射成guest用户

guest_username=ftp #配合上面选项才生效,指定guest用户

#local_root=/ftproot #注释此行,默认所有用户都在ftp用户的家目录

user_config_dir=/etc/vsftpd/conf.d/ #每个用户独立的配置文件目录,可自由指定

root@localhost \~#systemctl restart vsftpd

禁锢用户开启白名单和黑名单

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

chroot_list_enable=YES #默认是NO

chroot_list_file=/etc/vsftpd/chroot_list #默认值

当chroot_local_user=YES和chroot_list_enable=YES时,则chroot_list中用户不禁锢,即白名单,只允许名单里的用户登录

当chroot_local_user=NO和chroot_list_enable=YES时, 则chroot_list中用户禁锢,即黑名单,只有文件里的用户禁锢

root@localhost \~#systemctl restart vsftpd

ftp 默认启动日志

#wu-ftp 日志:默认启用

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

xferlog_enable=YES #启用记录上传下载日志,此为默认值

xferlog_std_format=YES #使用wu-ftp日志格式,此为默认值

xferlog_file=/var/log/xferlog #可自动生成, 此为默认值

root@localhost \~#systemctl restart vsftpd

#vsftpd日志:默认不启用

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

dual_log_enable=YES #使用vsftpd日志格式,默认不启用

vsftpd_log_file=/var/log/vsftpd.log #可自动生成, 此为默认值

root@localhost \~#systemctl restart vsftpd

提示信息

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

ftpd_banner="welcome to mcb ftp server"

banner_file=/etc/vsftpd/ftpbanner.txt

root@localhost \~#systemctl restart vsftpd

传输速率,单位:字节/秒 百度网盘限速就是这样玩

root@localhost \~#vim /etc/vsftpd/vsftpd.conf

anon_max_rate=1024000 #1024000表示1MB/(数字随时改)

local_max_rate=102400

root@localhost \~#systemctl restart vsftpd

pam模块实现用户访问

在内网环境ftp下,搭建本地yum仓库

①服务端搭建本地yum仓库,并下载vsftp软件

服务端IP 192.168.11.9

客户端搭建yum仓库下载vsftpd软件与ftp协议

客户端192.168.11.5 搭建仓库

教训

在内网环境下http搭建yum仓库

服务端IP192.168.11.9

指令小金刚

1 root@localhost \~#sort --help

sort -t

sort -n

2 root@localhost \~#cut --help

用法:cut 选项... 文件...

cut -d 使用指定分界符代替制表符作为区域分界

3 root@localhost \~#seq --help

seq -s

4 root@localhost \~#tr --help 转换 压缩 删除

5 root@localhost \~#uniq --help

相关推荐
.千余几秒前
【Linux】 TCP进阶详解:字节流、粘包问题、异常情况与UDP完整对比2
linux·运维·c语言·开发语言·经验分享·笔记·php
PascalMing几秒前
从零实现一款 Windows 下的 SSH 批量运维工具:LinuxSshTools 技术详解
运维·windows·ssh
Bert.Cai5 分钟前
Linux chown命令详解
linux·运维·服务器
青梅橘子皮8 分钟前
Linux---进程切换与调度
linux·运维·服务器
utf8mb4安全女神15 分钟前
【forwarding】怎么把客户端的日志转发到服务器【日志转发】【rsyslog服务】
运维·服务器
承渊政道25 分钟前
Linux系统学习【进程控制:进程创建、终止与等待、进程程序替换、自主shell命令行解释器详解】
linux·服务器·c++·学习·ubuntu·bash·远程工作
志起计算机编程25 分钟前
挖掘单节点Clickhouse极致性能上限
服务器·开发语言·python
Kurisu57529 分钟前
深度拆解:从 Linux 内核 Namespace 与 Cgroups 洞察容器技术的底层本质
java·linux·运维
llf_cloud31 分钟前
docker compose滚动部署实践
运维·docker·容器
liulilittle35 分钟前
Linux SS快速诊断命令
linux·运维·智能路由器