本章重点:
1.FTP的连接方式:
FTP默认使用20号端口建立数据连接,并传输文件协议;使用21号端口进行建立控制连接,并传输FTP控制命令;
主动模式:服务器主动发起数据连接;
被动连接:服务器被动等待数据连接;
注意:无论主动或被动都是先由客户端向服务器的21号端口建立ftp控制连接;详细内容参考课本p51-52
2.ftp 服务器软件的种类:windows系统中:IIS,Serv-U;
Linux系统中:proftpd,pureftpd,vsftpd(可支持15000个用户并发连接); 还有一些ftp客户端工具
注;这个不做重点,简单了解一下
3.ftp的配置文件:
(1)用户列表文件ftpusers和user_list
Ftpusers相当于黑名单,此文件中列出的用户将禁止被登录,默认已包括:root,bin,daemon等用于登录系统的特殊用户;
User_list文件:此文件中包含的用户可能被禁止登陆,也可能被允许登陆,主要取决于主配置文件vsftpd.conf的设置,当存在userlist_enable=YES 时userlist列表文件方可生效,若指定userlist_deny=YES 时,则尽禁止此列表中的用户登陆;若指定userlist_deny=NO 时,则允许列表中的用户登陆
(2.)ftp的主配置文件:vsftpd.conf(具体的配置在后面详解,可以参考课本p56)
3.安装ftp服务,也是基于RedHat的系统光盘里的包装一个vsftpd的软件包,也可用yum装包
4.基于匿名用户的ftp
将服务安装好后,修改主配置文件/etc/vsftpd/vsftpd.conf 中的anonymous_enable=YES(允许匿名访问)
执行 service vsftpd start 将服务启动即可
注意下面几个关于权限的配置项
Write_enable=YES 开放服务器的写权限
Anon_umask=022 设置匿名用户上传数据的权限设置
Anon_upload_enable=YES 允许匿名用户上传文件
Anon_mkdir_write_enable=YES 允许匿名用户创建目录
5.需用户验证的FTP服务
将anonymous_enable=YES改正为NO
可根据具体的需要将上述提到的几个权限设置更改一下,例如:为提高上传的文件权限,可将权限设为077(仅属主用户拥有权限):local_umask=077
由于是用户验证的FTP,所以可以用到前面提到的user_list用户列表文件,当配置了user_list,它位于/etc/vsftpd/user_list,一定记得要在这配置文件中将它启用(userlist_enable=YES)
6.vsftpd服务的其他配置:
(1)修改vsftpd服务的监听地址,端口、
(2)允许使用FTP服务器的被动模式
(3)限制FTP连接的并发数,传输速度
在这里就不做详解了,可参考课本p61
7.基于虚拟用户的账号数据库
Vsftpd服务使用Berkeley DB 格式的数据库文件来存放虚拟用户账户,所以要装一个db4_utils 的软件包,也是在RedHat的系统光盘里安装
Rpm -vih /media/cdrom/Server/db4_utils-4.3........
(1)创建文本格式的用户名和密码
Vi /etc/vsftpd/vusers.list
Zhangsan
123.Asd
Lisi
456.Asd
注:一个用户名对应一个密码
(2.)创建Berkeley DB 格式的数据库文件
cd /etc/vsftpd
db_load -T -t hash -f vusers.list vusers.db
file vusers.db 查看转换后的文件类型
注:db_load命令中,-t 是用于指定数据源文件,-T 允许非Berkeley DB 的应用程序使用从文本格式转换的DB数据文件,-t hash ,是指定一个hash 算法
(3)为提高虚拟用户账号文件的安全性,应将文件权限设为600,以免数据外泄
Chmod 600 /etc/vsftpd/vusers.*
(4) 添加虚拟用户的映射账号,创建FTP根目录
Useradd -d /var/ftproot -s /sbin/nologin virual(将使用的FTP根目录设为/var/ftproot/, 映射账号的名称为virtual)
(5)为虚拟用户建立PAM认证文件
Vi /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vuser
account 同上
(6)修改vsftpd配置,添加虚拟用户支持,在这配置文件中添加下列配置即可:
guest_enable=YES 启用映射功能
guest_username=virtual 指定映射的系统用户名称
pam_service_name-vsftpd.vu 制定新的PAM认证文件
(7)为不同的虚拟用户建立独立的配置文件,需要在主配置文件中添加user_config_dir 的配置项:
user_config_dir=/etc/vsftpd/vusers_conf
有了上述配置后,就可以在/etc/vsftpd/vusers_dir目录中为每个虚拟用户分别建立独立的配置文件了
mkdir /etc/vsftpd/vusers_dir 创建用户配置文件
cd /etc/vsftpd/vusers_dir
vi join 为用户join建立独立的配置文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
最后一步,重新加载或重启服务即可;
注意:本文中的所有第一个配置单词都为小写
原文地址:http://214787742.blog.51cto.com/9348358/1559174