I/O:网络、存储
存储:
DAS:Direct Attached Storage
接口类型:”block”
SATA,SAS;IDE,SCSI;USB;
NAS:Network Attached Storage
接口类型:file
协议:CIFS(samba), NFS(Network File System)
RPC:Remote Procedure Call,远程过程调用
SAN:Storage Area Network
接口类型:block
协议:iSCSI(IP-SAN),FC-SAN,FCoE,….
以上都是传统意义上的存储
文件服务:ftp,cifs/nfs
ftp:
ftp:file transfer protocol ,文件传输协议;
两类连接:
命令连接:传输命令
数据连接:传输数据
两种模式:
主动模式:PORT
Server:20/tcp连接客户端的命令连接使用的端口向后的第一个端口
被动模式:PASV
Server:打开一个随机端口,并等待客户端连接
PAM:Pluggable Authenticate Module
认证框架:库,高度模块化
协议:C/S
Server:
windows:Serv-U,IIS,Filezilla
开源:wuftpd,proftpd,pureftpd,vsftpd(Very Secure Daemon),…
Cilent:
Windows:ftp,Filezilla,CutFTP,FlashFXP,…
开源:lftp,ftp,Filezilla,gftp,….
vsftpd:
vsftpd is a Very Secure FTP daemon. It was written completely from
URL:
SCHEME://username:password@HOST:PORT/PATH/TO/FILE
路径映射:
用户家目录:每个用户的URL的/映射到当前用户的家目录;
vsftp以ftp用户的身份运行进程,默认用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
ftp,anonymous
注意:一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集;
程序环境:
主程序:/usr/sbin/vsftpd
主配置文件:/etc/vsftpd/vsftpd.conf
数据目录:/var/ftp
Systemd Unit File: /usr/lib/systemd/system/vsftpd.service
配置vsftpd :
用户类别:
匿名用户:anonymous —> ftp, /varlftp
系统用户:至少禁止系统用户访问ftp服务,letc/vsftpd/ftpusers,PAM ( /etc/pam.d/vsftpd ) ;
虚拟用户:非系统用户,用户账号非为可登录操作系统的用户账号(非/etc/passwd ) ;
用户通过vsftpd服务访问到的默认路径,是用户自己的家目录﹔默认可以自己有权限访问的所有路径切 换;禁锢用户于其家目录中;
配置文件:letc/vsftpd/vsftpd.conf
directilve value
注意: directive之前不能有多余字符;
匿名用户:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
系统用户:
local_enable=YES
write_enable=YES
local_umask=022
辅助配置文件/etc/vsftpd/ftpusers ;
列在此文件中的用户均禁止使用ftp服务;
chroot_local_user=YES
禁锢所有本地用户于其家目录;需要事先去除用户对家目录的写权限;
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
禁锢列表中文件存在的用户于其家目录中;需要事先去除用户对家目录的写权限;
传输日志∶
xferlog_enable=YEs
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
守护进程的类型∶
standalone:独立守护进程;由服务进程自行监听套按字,并接收用户访问请求;
transient:瞬时守护进程;由受托管方代为监听套按字,服务进程没有访问请求时不启动;当托管方收到访问请求时,才启动服务进程;
Centos 6:xilnetd独立守护进程,/etc/xinetd.d/ ,
Centos 7:由systemd代为监听;
控制可登录vsftpd服务的用户列表∶
userllst_enable=YES
启用/etc/vsftpd/user_list文件来控制可登录用户;
userlist_deny=
YES:意味着此为黑名单;
NO:白名单;