编译安装vsftpd及使用虚拟用户


一、安装编译依赖组件

# yum -y groupinstall "Development Tools" "Server Platform Development"
# yum -y install tcp_wrappers-devel openssl openssl-devel libcap libcap-devel pam-devel

二、编译安装配置vsftpd

# tar xf vsftpd-3.0.3.tar.gz
# cd vsftpd-3.0.3/
# vim builddefs.h
    #ifndef VSF_BUILDDEFS_H
    #define VSF_BUILDDEFS_H
    #define VSF_BUILD_TCPWRAPPERS
    #define VSF_BUILD_PAM
    #define VSF_BUILD_SSL
    #endif /* VSF_BUILDDEFS_H */

1)如果是64位系统,需要替换lib目录的位置

# sed -i 's/lib\//lib64\//g' vsf_findlibs.sh

2)编译安装

# make && make install

3)创建配置文件

# mkdir /etc/vsftpd
# cp vsftpd.conf /etc/vsftpd/vsftpd.bak
# grep -Ev "^$|^#" /etc/vsftpd/vsftpd.bak > /etc/vsftpd/vsftpd.conf        #配置文件
# cp RedHat/vsftpd.pam /etc/pam.d/vsftpd                                   #PAM认证文件

4)如果是64位系统,需要替换lib目录的位置

# sed -i 's/lib\//lib64\//g' /etc/pam.d/vsftpd

5)修改配置文件vsftpd.conf

# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO                            #不允许匿名用户登录,默认是YES
dirmessage_enable=YES                          #显示某目录下文件信息
xferlog_enable=YES                             #是否启用上传/下载日志记录
connect_from_port_20=YES                       #指定FTP使用20端口进行数据传输,默认值为YES
listen=YES                                     #设置FTP服务器建立连接所监听的端口,默认值为21
local_enable=YES                               #是否允许本地用户登入,默认是YES
write_enable=YES                               #是否允许登陆用户有写权限
local_umask=022                                #本地用户新增文件时的umask值,默认值为077
xferlog_std_format=YES                         #日志文件将会写成xferlog的标准格式
ascii_upload_enable=YES                        #是否启用ASCII模式上传数据,默认值为NO
ascii_download_enable=YES                      #是否启用ASCII模式下载数据,默认值为NO
pam_service_name=vsftpd                        #设置PAM使用的名称,默认值为/etc/pam.d/vsftpd
userlist_enable=YES                            #是否启用user_list文件
userlist_file=/etc/vsftpd/user_list            #控制用户访问FTP的文件,里面写着用户名称
tcp_wrappers=YES                               #是否与tcp wrapper相结合来进行主机的访问控制
guest_enable=YES                               #启用虚拟用户,默认值为NO
guest_username=ftpuser                         #映射虚拟用户,默认值为ftp
user_config_dir=/etc/vsftpd/vuser_conf         #设置用户配置文件所在的目录
allow_writeable_chroot=YES                     
pasv_enable=YES                                #使用PASV工作模式
pasv_min_port=40000                            #在PASV工作模式下,数据连接可以使用的端口范围的最小端口
pasv_max_port=40080                            #在PASV工作模式下,数据连接可以使用的端口范围的最大端口

6)创建ftpusers及user_list文件

# vim /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

# vim /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

三、虚拟用户配置

1)创建ftpuser用户以便虚拟用户映射

# useradd -d /data/ftpdata ftpuser

2)修改pam认证文件

# vim /etc/pam.d/vsftpd
注释掉原有所有添加如下两行
#%PAM-1.0
auth       required     pam_userdb.so db=/etc/vsftpd/vuser_passwd
account    required     pam_userdb.so db=/etc/vsftpd/vuser_passwd
#auth       required    /lib64/security/pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    /lib64/security/pam_unix.so shadow nullok
#auth       required    /lib64/security/pam_shells.so
#account    required    /lib64/security/pam_unix.so
#session    required    /lib64/security/pam_unix.so

3)创建虚拟用户文件

# vim /etc/vsftpd/vuser_passwd.txt
test                #单数行为用户名
123456              #双数行为密码




通过命令进行hash运算生成db文件
# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

4)为虚拟用户配置权限

# mkdir /etc/vsftpd/vuser_conf
# vim /etc/vsftpd/vuser_conf/test
local_root=/data/ftpdata/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

5)启动vsftpd

# /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &

至此可以使用虚拟用户登录ftp进行测试

声明:Jason|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 编译安装vsftpd及使用虚拟用户


Carpe Diem and Do what I like