文件服务:ftp,cifs,nfs
ftp:file transmission protocol,文件传输协议
两类连接:命令连接,用于传输命令
数据连接,用于传输数据。有两种模式:
1. 主动模式:port。Server:20/tcp,连接客户端的命令连接使用的端口向后的第一个可用端口;
2. 被动模式:PASV。Server:打开一个随机端口,并等待客户端连接
ftp Server有:Windows --> Server-U,IIS,FileZilla
开源的有:wuftpd,proftpd,pureftpd,vsftpd(Very Secure FTP daemon)
ftp Client:Windows -->ftp,Filezilla,CuteFTP,FlashFXP
开源的有:lftp,ftp,Filezilla,gftp
Vsftpd:URL规则
Scheme://username:password@HOST:Port/PATH
路径映射:用户家目录为每个用户的URL的/映射到当前用户的家目录
Vsftpd以ftp用户的身份运行进程,默认认证用户即为ftp用户,匿名用户的默认路径即ftp用户的家目录/var/ftp
注意,一个用户通过文件共享服务访问文件系统上的文件的生效权限为此二者的交集
Linux下的程序环境:
主程序:/usr/sbin/vsftpd
主配置文件:/etc/vsftp/vsftpd.conf
数据目录:/vat/ftp
Systemd Unit File:/usr/lib/systemd/system/vsftpd.service
Linux下配置vsftpd:
用户类别,匿名用户:anonymous -->ftp,/var/ftp
系统用户,至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers,PAM(etc/pam.d/vsftpd)
虚拟用户:非系统用户,用户账号不是可登陆操作系统的用户账号(非/etc/passwd)
匿名用户(映射为ftp用户)共享资源位置:/var/ftp
系统用户通过ftp访问的资源的位置:用户自己的家目录
虚拟用户通过ftp访问的资源的位置:给虚拟用户指定的映射成为的系统用户的家目录
匿名用户的配置:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_ohter_write_enable=YES
系统用户的配置:
local_enable=YES
write_enable=YES
local_umask=022
禁锢所有的ftp本地用户于其家目录中:
chroot_local_user=YES
禁锢文件中指定的ftp本地用户于其家目录中:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
日志:
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
改变上传文件的属主:
chown_uploads=YES
chown_username=whoever
vsftpd使用pam完成用户认证,其用到的pam配置文件:
pam_service_name=vsftpd
是否启用控制用户登录的列表文件
userlist_enable=YES
userlist_deny=YES|NO
默认文件为/etc/vsftpd/user_list
连接限制:
max_clients:最大并发连接数;
max_per_ip:每个IP可同时发起的并发请求数;
传输速率:
anon_max_rate:匿名用户的最大传输速率, 单位是“字节/秒”;
local_max_rate:本地用户。。。
虚拟用户:
所有的虚拟用户会被统一映射为一个指定的系统账号,访问的共享位置即为此系统账号的家目录;
各虚拟用户可被赋予不同的访问权限;
通过匿名用户的权限控制参数进行指定;
虚拟用户账号的存储方式:
文件:编辑文件
奇数行为用户名
偶数行为密码
此文件需要被编码为hash格式;
关系型数据库中的表中:
即时查询数据库完成用户认证;
mysql库,pam要依赖于pam_mysql
# yum -y install pam_mysql
网友评论