FTP文件传输协议,提供了两台计算机之间互相传输文件的机制,FTP服务具有管理简单性和双向传输功能,所以目前使用的相当广泛...
虽然FTP服务能够使文件简单快速传输,但FTP使用明文的方式传输账户和口令,也使建设FTP服务存在着一定的安全隐患,我么可以采用加密通道来访问FTP服务,确保传输安全...


FTP采用客户端/服务器模式,客户端和服务器使用TCP连接,在服务器端,FTP服务器有两个预分配端口,分别是20,21,其中21端口用于发送和接受FTP的控制信息,通过这个端口,FTP来判断是否有客户端请求,端口20用于传输数据时用,FTP客户端会用大于1024的一个随机端口去连接FTP服务器21端口..当传输数据时,客户端会随机产生另外一个大于1024的端口去请求连接服务器20端口服务器接受到命令后会用自己的20端口主动去连接客户端,文件传输完后,再将该端口释放掉...


FTP有两种工作模式:主动模式(Active Mode)被动模式(Passive Mode)


主动模式:服务端从20端口主动向客户端发起连接


被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接.
主配置文件:/etc/vsftpd/vsftpd.conf 权限是600,只有root具备可读写的权限...


禁止登陆的FTP用户列表:/etc/vsftpd/ftpusers
/etc/vsftpd/user_list.提供一份FTP用户列表,是否禁止登陆,取决于主配置文件中的设置.


常用的匿名FTP配置项...
匿名用户:anonymous或ftp
anonymous_enable=YES  启用匿名访问.
anon_umask=022 匿名用户所上传的权限掩码.
anon_root=/var/ftp 匿名用户的FTP根目录.
anon_upload_enable=YES 允许匿名用户上传文件.
anon_mkdir_write_enable=YES 允许匿名用户创建目录.
anon_other_write_enable=YES 开放匿名用户其他的权限.
anon_max_rate=0 限制最大传输速率,单位为字节.
常用的本地用户FTP配置项...


local_enable=YES 是否启用本地系统用户.
local_umask=022 本地用户上传文件的权限掩码.
local_root=/var/ftp 设置本地用户的FTP根目录.
chroot_local_user=YES 是否将用户禁锢在主目录.
local_max_rate=0 限制最大传输速率(字节/秒)


常用的全局配置项...
listen=YES 是否以独立运行的方式监听服务.
listen_address=192.168.4.1 设置监听的IP地址.
listen_port=21 设置监听FTP服务的端口号.
write_enable=YES 是否允许下载文件.
userlist_enable=YES 是否启用user_list中的用户列表.
max_clients=0 限制并发客户端连接数
max_per_ip=0 限制同一IP地址的并发连接数目.

 


我们去做个构建基于虚拟用户的vsftpd服务器....服务器IP:192.168.0.195
步骤1:建立虚拟FTP用户的账号数据库文件.
步骤2.创建FTP根目录及虚拟用户映射的系统用户.
步骤3.建立支持虚拟用户的PAM认证文件.
步骤4.在vsftpd.conf文件中添加支持配置.
步骤5.为个别虚拟用户建立独立的配置文件.
步骤6.重新加载vsftpd配置.
步骤7.使用虚拟FTP账户访问测试.


[root@station195 ~]# yum  install  vsftpd
[root@station195 vsftpd]# yum  install  db4-utils
一.建立FTP账号和数据库文件...
[root@station195 vsftpd]#vim  vusers.txt
wendy
123
natasha
456
[root@station195 vsftpd]# db_load -T -t hash -f vusers.txt vusers.db
[root@station195 vsftpd]# file vusers.db
vusers.db: Berkeley DB (Hash, version 8, native byte-order)
[root@station195 vsftpd]# chmod 600 /etc/vsftpd/{vusers.txt,vusers.db}


二.创建FTP根目录及虚拟用户映射的系统用户
[root@station195 ~]# mkdir  /var/ftproot
[root@station195 ~]# useradd  -d  /var/ftproot -s   /sbin/nologin  vsftp
[root@station195 ~]# chmod  755  /var/ftproot
[root@station195 ~]# chown  vsftp:vsftp   /var/ftproot


三.建立支持虚拟用户的PAM认证文件...
[root@station195 ~]# vim   /etc/pam.d/vsftpd.vu
autu          required         pam_userdb.so    db=/etc/vsftp/vusers (这儿vusers指的是vusers.db文件,在这要把db省略,否则报错,当时我就出错在这儿..)
account     required         pam_userdb.so     db=/etc/vsftp/vusers (这个地方同上...)


四.编辑FTP配置文件写入以下几行...
[root@station195 ~]# vim   /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
anon_umask=022
guest_enable=YES
guest_username=vsftp
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpf/vusers


五.为个别虚拟用户建立独立配置文件...
[root@station195 ~]# mkdir  /etc/vsftpd/vusers;cd  /etc/vsftpd/vusers
[root@station195 vusers]# vim   wendy
anon_upload_enable=NO
anon_mkdir_write_enable=NO
[root@station195 vusers]# vim   natasha
anon_upload_enable=YES
anon_mkdir_write_enable=YES


重新启动服务...
[root@station195 ~]# service  vsftpd  restart
测试结果wendy用户可以登录,可以下载文件,但不能上传...
natasha用户可以登录,可以下载文件,可以上传...