vsftpd服务器(文件传输服务器)安装及使用二

配置文件解说

配置文件默认位置:/etc/vsftpd/vsftpd.conf (修改配置文件先做好备份)
复制配置文件命令:cp vsftpd.conf ./vsftpd2020-03-30.conf
修改配置文件命令:vi vsftpd.conf

配置文件说明参考如下: http://t.csdn.cn/pziMI

使用

二、配置匿名用户登录vsftpd

1、配置匿名用户登录vsftpd操作过程

1.1、配置文件修改如下(可以直接复制来使用):

#当进入某个目录时,发送信息提示给远程用户
dirmessage_enable=YES

#是否开启 上传/下载 的日志记录
xferlog_enable=YES

#是否使用 20 端口来连接 FTP
connect_from_port_20=YES

#是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog
xferlog_std_format=YES

#如果为 YES,vsftpd 将以独立模式运行并监听 IPv4 的套接字,处理相关连接请求(该指令不能与 listen_ipv6 一起使用)
listen=NO

#是否允许监听 IPv6 套接字
l>isten_ipv6=YES

#设置 PAM 外挂模块提供的认证服务所使用的配置文件名
#即 /etc/pam.d/vsftpd 文件,此文件中 file=/etc/vsftpd/ftpusers 字段
#说明了 PAM 模块能抵挡的帐号内容来自文件 /etc/vsftpd/ftpusers 中
pam_service_name=vsftpd

#是否启用 user_list 文件来控制用户登录
userlist_enable=YES

#是否使用 tcp_wrappers 作为主机访问控制方式
tcp_wrappers=YES

#是否允许匿名用户登录FTP
anonymous_enable=YES

#是否允许本地系统用户登录
local_enable=NO

#是否开启任何形式的 FTP 写入命令,上传文件
write_enable=YES
anon_umask=022

#是否允许匿名用户上传文件
#如果要设置为允许,则需要先开启 write_enable,否则无效
#此外对应目录还要具有写权限
anon_upload_enable=YES

#是否允许匿名用户创建新目录
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO

#自定义登录标语
ftpd_banner=Welcome to Ahaoo Files Heap!

1.2、重新启动文件传输服务器

重启vsftpd命令:systemctl restart vsftpd

1.3、通过FileZilla软件进行测试

FileZilla软件下载地址:https://filezilla-project.org/download.php?type=client#close

在主机中输入IP点击连接进行访问,然后就可以上传下载文件进行使用了
在这里插入图片描述

2、匿名访问可能遇到的问题

2.1、权限问题
可能是/var/ftp/pub目录权限的问题

解决办法:执行下面两条centos7命令解决(如果文件对应的目录不一致替换后面目录即可)
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/

2.2、selinux问题
查看selinux是否开启(命令:getenforce

解决办法1:关闭selinux
vim /etc/sysconfig/selinux 编辑selinux配置文件,在其中把selinux状态改成disabled
reboot 重启系统后就可以成功上传了

解决办法2:设定bool值
如果不想关闭selinux服务,可以通过设置bool值打开使用本地用户上传功能的权限
getsebool -a | grep ftp 在这里查看ftp服务的bool值
rebootsetsebool -P ftp_home_dir on 打开本地用户上传功能

三、配置本地用户访问vsftpd

1、配置本地用户访问vsftpd操作过程

1.1、 服务器端创建两个用户ahaoo1、ahaoo2,并禁止他们本地登录

1.1.1、创建ahaoo1、ahaoo2用户
创建用户并禁止登陆命令:useradd -s /sbin/nologin (此处为用户名)
在这里插入图片描述

1.1.2、设置ahaoo1、ahaoo2用户的密码
设置用户密码命令:passwd(此处为用户名)
用户:ahaoo1 密码:wh123 (参考创建用户)
用户:ahaoo2 密码:wh321 (参考创建用户)
在这里插入图片描述
1.2、 在服务器端创建上传文件的文件夹并为该文件夹赋予其他用户读的权限

mkdir -p /home/sqlfiles/sql
chmod -R o+w /home/sqlfiles/sql

1.3、 修改安全上下文,使上传根目录具有写入(上传)的功能

chcon -t public_content_rw_t  /home/sqlfiles/sql

1.4、 修改配置文件

配置文件如下:

#当进入某个目录时,发送信息提示给远程用户
dirmessage_enable=YES

#是否开启 上传/下载 的日志记录
xferlog_enable=YES

#是否使用 20 端口来连接 FTP
connect_from_port_20=YES

#是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog
xferlog_std_format=YES

#如果为 YES,vsftpd 将以独立模式运行并监听 IPv4 的套接字,处理相关连接请求(该指令不能与 listen_ipv6 一起使用)
listen=NO

#是否允许监听 IPv6 套接字
listen_ipv6=YES

#设置 PAM 外挂模块提供的认证服务所使用的配置文件名
#即 /etc/pam.d/vsftpd 文件,此文件中 file=/etc/vsftpd/ftpusers 字段
#说明了 PAM 模块能抵挡的帐号内容来自文件 /etc/vsftpd/ftpusers 中
pam_service_name=vsftpd

#是否启用 user_list 文件来控制用户登录
userlist_enable=YES

#是否使用 tcp_wrappers 作为主机访问控制方式
tcp_wrappers=YES

#是否允许匿名用户登录FTP
anonymous_enable=NO

#是否允许本地系统用户登录
local_enable=YES

#是否开启任何形式的 FTP 写入命令,上传文件
write_enable=YES
local_umask=022

#是否允许匿名用户上传文件
#如果要设置为允许,则需要先开启 write_enable,否则无效
#此外对应目录还要具有写权限
anon_upload_enable=YES

#是否允许匿名用户创建新目录
chroot_local_user=YES

#开启能锁定用户的chroot功能
chroot_list_enable=YES

#设置锁定用户在根目录中的列表文件
chroot_list_file=/etc/vsftpd/chroot_list

#自定义登录标语
ftpd_banner=Welcome to Ahaoo Files Heap!

#设置本地用户的根目录为/home/sqlfiles/sql
local_root=/home/sqlfiles/sql

1.5、建立/etc/vsftpd/chroot_list文件,添加ahaoo1和ahaoo2帐号

vim /etc/vsftpd/chroot_list

写入用户
ahaoo1
ahaoo2

1.6、重启服务

service vsftpd restart

四、配置虚拟用户登录vsftpd

1、配置本地用户访问vsftpd操作过程

1.1、创建本地用户及虚拟用户名和密码

1.1.1、创建本地用户
创建用户并禁止登陆命令:useradd -s /sbin/nologin (此处为用户名)

1.1.2、创建虚拟用户及密码
编辑并创建文件命令:vi (文件地址路径)
如:vi /etc/vsftpd/virtual_login (此处为我存储文件的位置)
在这里插入图片描述

1.2、编译文件及修改文件权限
编译文件命令:db_load -T -t hash -f /etc/vsftpd/(自己创建文件) /etc/vsftpd/(自己创建文件).db
修改文件权限命令: chmod 600 /etc/vsftpd/{(自己创建文件),(自己创建文件).db}
如:

db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db 
chmod 600 /etc/vsftpd/{virtual_login,virtual_login.db}

1.3、修改vsftpd配置文件

配置文件修改如下:

#是否允许匿名用户登录FTP
anonymous_enable=NO

#是否允许本地系统用户登录
local_enable=YES

#是否开启任何形式的 FTP 写入命令,上传文件
write_enable=YES

#本地用户的 umask 设置,如果注释该设置则默认为 077,但一般都设置成 022
local_umask=022

#是否允许匿名用户上传文件
#如果要设置为允许,则需要先开启 write_enable,否则无效
#此外对应目录还要具有写权限
anon_upload_enable=NO

#是否允许匿名用户创建新目录
anon_mkdir_write_enable=NO

#当进入某个目录时,发送信息提示给远程用户
dirmessage_enable=YES

#是否开启 上传/下载 的日志记录
xferlog_enable=YES

#是否使用 20 端口来连接 FTP
connect_from_port_20=YES

#匿名上传的文件是否由某一指定用户 chown_username 所有
chown_uploads=YES

#匿名上传的文件由该设定用户所有
chown_username=ftptest

#设置日志文件的保存位置,默认为 /var/log/xferlog
xferlog_file=/var/log/xferlog

#是否使用标准的 ftpd xferlog日志格式,该格式日志默认保存在 /var/log/xferlog
xferlog_std_format=YES

#设置空闲连接的超时时间,单位 秒
idle_session_timeout=600

#设置等待数据传输的最大时间,单位 秒(data_connection_timeout 与 idle_session_timeout 在同一时间只有一个有效)
data_connection_timeout=180

#是否开启 ASCII 模式进行文件上传,一般不开启
ascii_upload_enable=YES

#是否开启 ASCII 模式进行文件下载,一般不开启
ascii_download_enable=YES

#自定义登录标语
ftpd_banner=Welcome to Ahaoo FTP service.

#是否将所有用户限制在主目录,当为 NO 时, FTP 用户可以切换到其他目录
chroot_local_user=YES

#如果为 YES,vsftpd 将以独立模式运行并监听 IPv4 的套接字,处理相关连接请求(该指令不能与 listen_ipv6 一起使用)
listen=YES

#设置 PAM 外挂模块提供的认证服务所使用的配置文件名
#即 /etc/pam.d/vsftpd 文件,此文件中 file=/etc/vsftpd/ftpusers 字段
#说明了 PAM 模块能抵挡的帐号内容来自文件 /etc/vsftpd/ftpusers 中
pam_service_name=vsftpd

#是否启用 user_list 文件来控制用户登录
userlist_enable=YES

#是否使用 tcp_wrappers 作为主机访问控制方式
tcp_wrappers=YES
guest_enable=YES
guest_username=ftptest
user_config_dir=/etc/vsftpd/vsftpuser_conf //这边是虚拟用户设置的文件位置
pasv_min_port=5881
pasv_max_port=5886
allow_writeable_chroot=YES

1.4、创建虚拟用户上传文件目录及增加虚拟用户配置文件
1.4.1、创建虚拟用户上传文件目录:

mkdir  /testftp/ahaoo1-p
mkdir  /testftp/ahaoo2 -p

1.4.2、创建虚拟用户配置文件目录及虚拟用户配置文件:

mkdir   /etc/vsftpd/vsftpuser_conf  -p

创建好后进入这个目录
进行创建ahaoo1、ahaoo2的配置文件

ahaoo1配置文件如下:

local_root=/testftp/ahaoo1
anon_umask=022
anon_world_readable_only=NO
write_enable=YES
#anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5

ahaoo2配置文件如下:

local_root=/testftp/ahaoo2
anon_umask=022
anon_world_readable_only=NO
write_enable=YES
#anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
idle_session_timeout=600
data_connection_timeout=120
max_clients=10
max_per_ip=5

##注意:创建虚拟用户配置文件内容,用户必要和virtual_login文件用户保持一致

1.5、修改vsftpd的PAM验证配置文件

vi /etc/pam.d/vsftpd                 ##屏蔽默认的行添加最最下面两行,注意32位系统是/lib目,64位系统是/lib64目录               
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth required          /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login
account required      /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login

1.6、重启vsftpd服务器修改虚拟用户上传文件目录用户和用户组

service vsftpd restart

版权声明:本文为qq_53022792原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。