一 存储类型
直连式存储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