主配置文件/etc/vsftpd/vsftpd.conf.

1   查看系统是否安装所需软件包


vsftpd服务简介_休闲

2 启动与停止

service vsftpd start             #启动

service    vsftpd    stop    #停止

3 vsftpd 开机自动加载 :  chkconfig   vsftpd   on

 

4   selinux设置

 

setsebool  -p   ftp_home_dir=1                                                                                                            ( 1 )

 

 setsebool   -p  allow_ftpd_anon_write=1                        (2)

 

chcon    -R  -t   /var/ftp/                                (3)

 

注:(1)当用户登录到FTP服务器时允许将该用户引导到家目录。

 

(2)(3)允许匿名用户上传文件到FTP服务器。

 

            通过本地数据库文件实现虚拟用户访问

1   安装db4-utils包

rpm -ivh   db4-utils-4.3.29-9.fc6.i386.rpm

2   创建本地映射用户,修改本地映射用户家目录权限


vsftpd服务简介_休闲_02

3  修改/etc/vsftpd/vsftpd.conf文件,添加内容如下


vsftpd服务简介_职场_03

4 生成虚拟用户文件,在该文件中用户名和密码各一行,本次练习建立/etc/vsftpd/vftpuser.txt,内容如下:


vsftpd服务简介_休闲_04

5  生成虚拟用户数据库文件


vsftpd服务简介_休闲_05

6 处于安全考虑应修改生成数据库文件权限


vsftpd服务简介_休闲_06

7 修改PAM认证文件/etc/pam.d/vsftpd,将原有内容注释并加入以下内容。


vsftpd服务简介_职场_07

8  重启vsftpd服务后,即可使用tonyzhang,tomyang登录FTP服务器了。


vsftpd服务简介_vsftpd_08

 

                虚拟主机配置

1   创建虚拟用户

useradd -d /var/ftp2  -s /sbin/nologin   ftp2

chmoe  -R  755   /var/ftp2

chown   -R   root:root    /var/ftp2

mkdir  -m  755  /var/ftp2/pub

chown     ftp2:root   /var/ftp2/pub

2    准备虚拟FTP服务器的配置文件

cp /etc/vsftpd/vsftpd.conf    /etc/vsftpd/vsftpd1.conf

3   修改/etc/vsftpd/vsftpd.conf文件,内容如下:

listen_address=192.168.0.15

4   修改/etc/vsftpd/vsftpd1.conf,内容如下:

listen_address=192.168.1.15

ftp_username=ftp2

local_root=/var/ftp2

5   service  vsftpd  restart,重启服务后,就可以使192.168.0.0/24和192.168.1.0/24两个网络的客户端访问不同的FTP站点。

 

                                                                访问行为控制

 

1  write_enable=YES|NO   #是否允许用户上传文件,该参数只对非匿名用户有效。

2   anonymous_enable=YES|NO     #是否允许匿名用户登录。

3   local_enable=YES|NO         #是否允许本地用户登录

4   download_enable=YES|NO      #是否允许用户下载文件。

5     chown_uploads=YES,chown_username=whoever    #修改匿名用户上传的文件所有者。

 

6     userlist_file:        #指定被允许或禁止登录的用户。

 

7    userlist_enable=YES|NO      #该参数为YES时,userlist_file文件指定的用户将无法登录。

 

8    userlist_deny=YES|NO      #该参数只有在userlist_enable=YES时才有效。当userlist_deny=YES 时,禁止文件中的用户登录,当userlist_deny=NO时,允许在文件中的用户登录。

 

9  chroot_local_user=YES|NO    #是否允许用户登录后离开自己的家目录。

 

10   chroot_list_enable=YES|NO      #是否允许指定不能离开家目录的用户,只有当chroot_local_user=YES 时才有效。

 

11   chroot_list_file                   #指定不能离开家目录的用户,如chroot_list_file=/etc/vsftpd/chroot_list

 

12    local_root                      #指定所有用户的家目录。

 

13    idle_session_timeout               #指定会话超时时间,单位:秒

 

14   data_connection_timeout        #指定数据传输超时时间    单位:秒

 

15    deny_file        #不允许上传的文件类型,如 deny_file={*.exe,*.dall}

 

16     listen_address         #指定VSFTPD侦听的IP地址,当VSFTPD有多个IP地址时,可通过该参数让VSFTPD只接受指定的IP地址的请求。

 

17     listen_port      #指定VSFTPD侦听的端口

 

18    max_clients        #VSFTPD允许的最大连接数

 

19    max_per_ip         #允许相同IP的最大连接数。

 

                                         

 

                                                     实例

如一个FTP服务器,允许student1,student2登录,不允许student3登录,只允许192.168.0.0/24网段登录。

 

echo 'student1'  >>  /etc/vsftpd/chroot_list

echo 'student2'  >>  /etc/vsftpd/chroot_list

echo 'student3'  >>  /etc/vsftpd/ftpusers

vim /etc/hosts.allow    加入如下内容

vsftpd:192.168.0.0/255.255.255.0

vim  /etc/hosts.deny加入如下内容

vsftpd:ALL