(1 )安装 vsftpd

# yum install -y vsftpd db4-utils

这里安装两个软件包,同时会把依赖的包安装上。其中 db4-utils 用来生成密码库文件。


(2 )建立账号

vsftpd 默认是可以支持使用系统账号体系登录的,但那样不×××全,所以建议参考

下面的方法使用虚拟账号体系。


建立虚拟账号相关联的系统账号

# useradd virftp -s /sbin/nologin


建立虚拟账户相关的文件

# vim /etc/vsftpd/vsftpd_login //内容如下:

test1

123456

test2

abcdef


更改该文件的权限,提升安全级别

#chmod 600 /etc/vsftpd/vsftpd_login


vsfptd 使用的密码文件肯定不是明文的,需要生成对应的库文件

# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db


建立虚拟账号相关的目录以及配置文件

# mkdir /etc/vsftpd/vsftpd_user_conf

# cd /etc/vsftpd/vsftpd_user_conf


(3 )创建和用户对应的配置文件

# vim test1 //内容如下:

local_root=/home/virftp/test1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000


说明:

    local_root 为该账号的家目录,anonymous_enable 用来限制是否允许匿名账号登陆,若为 NO 表示不允许匿名账号登陆,write_enable=YES 表示可写,local_umask 指定 umask值。

anon_upload_enable 是否允许匿名账号上传文件,anon_mkdir_write_enable 是否允许匿名账

号可写。以上为关键配置参数。创建 test2 账号的步骤和 test1 一样。


# mkdir /home/virftp/test1

# chown -R virftp:virftp /home/virftp

# vim /etc/pam.d/vsftpd //在最开头添加两行

auth sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account sufficient /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

说明:我的 Linux 为 32 位系统,所以库文件路径为/lib/security/pam_userdb.so,若你的

系统为 64,那你的库文件是在/lib64/security/pam_userdb.so。


(4 )修改全局配置文件/etc/vsftpd.conf

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES 改为 anonymous_enable=NO

#anon_upload_enable=YES 改为 anon_upload_enable=NO

#anon_mkdir_write_enable=YES 改为 anon_mkdir_write_enable=NO

再增加:

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

最后启动 vsftpd 服务

# /etc/init.d/vsftpd start