vsftpd

1.vsftpd安装配置

1.1环境需求

服务器系统:CentOS7,vsftpd

客户端:win10,xftp客户端或浏览器

关防火墙、selinux

1.2安装epel源

# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum install -y epel-release

yum reinstall -y epel-release

1.3安装vsftpd及相关依赖

# yum -y install vsftpd* pam* db4*

pam:认证模块

DB4:支持文件数据库

1.4vsftpd配置文件说明

/etc/vsftpd/vsftpd.conf vsftpd的核心配置文件

/etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器

/etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件

/etc/vsftpd/vsftpd_conf_migrate.sh 是vsftpd操作的一些变量和设置脚本

/var/ftp/ 默认情况下匿名用户的根目录

1.5vsftpd配置

write_enable=YES anon_umask=022 匿名用户上传文件权限掩码anonymous_enable=YES 匿名访问 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES 改,删,覆盖

anon_root=/var/ftp

anon_max_rate=0 限制最大传输速率(字节/秒)0为无限制

chown_uploads 匿名上传的文件是否由某一指定用户

chown_username (有效用户名)匿名上传的文件由该设定用户所有

xferlog_file (有效路径)设置日志文件的保存位置,默认/var/log/xferlog

local_enable=YES 是否允许本地系统用户访问

local_root=/var/ftp 设置本地用户的FTP根目录

chroot_list_enable=YES 表示是否开启chroot的环境,默认不开启

chroot_list_file=/etc/vsftpd/chroot_list 表示写在指定文件里的用户不可以出chroot环境,默认可以

chroot_local_user=YES 表示所有写在/etc/vsftpd/chroot_list文件里的用户可以出chroot环境。和上面相反

1.6vsftpd修改配置前备份配置文件

# cd /etc/vsftpd/
# cp vsftpd.conf{,.bak}

1.7vsftpd配置匿名用户

# cat vsftpd.conf |grep -v '^#'
# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
​
dirmessage_enable=YES   当进入某个目录时,发送信息提示给远程远程用户
xferlog_enable=YES      是否开启上传和下载的日志记录
connect_from_port_20=YES    是否使用20端口来连接FTP
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# systemctl restart vsftpd
# ps aux |grep vsftpd
​
//修改权限实现上传
# cd /var/ftp/
# chown -R ftp.ftp pub/
# systemctl restart vsftpd

2.系统用户登录

2.1测试用户

# useradd zhangsan
# useradd lisi
# echo "12345" |passwd --stdin zhangsan
# echo "12345" |passwd --stdin lisi
# vim /etc/vsftpd/vsftpd.conf
local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES
​
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
​
# systemctl restart vsftpd
# vim /etc/vsftpd/user_list             目前是白名单
zhangsan
lisi
# systemctl restart vsftpd
# cd /home/zhangsan
# touch zhangsan.txt
# systemctl restart vsftpd

3.vsftp配置虚拟用户

3.1建立虚拟账号

# useradd -s /sbin/nologin vu

3.2创建虚拟用户文件

# cd /etc/vsftpd
# vim user
wangwu
12345
zhaoliu
12345

3.3创建数据文件

# db_load -T -t hash -f user user.db

-f 指定数据源文件

-T 允许非Berkeley DB的应用程序使用文本格式转换的DB数据文件

-t hash 读取文件的基本方法

3.4建立支持虚拟用户的PAM认证文件

# vim /etc/pam.d/vsftpd.vu
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user

3.5修改配置文件

# vim /etc/vsftpd/vsftpd.conf           :dG清空文档
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
allow_writeable_chroot=YES
guest_enable=YES                    //开启虚拟用户模式
guest_username=vu               //指定虚拟用户账号映射到本地账号vftp
pam_service_name=vsftpd.vu
userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES
local_enable=YES
local_umask=077
chroot_local_user=YES //禁锢用户在其家目录
virtual_user_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir
​
# mkdir /etc/vsftpd/user_dir
# cd /etc/vsftpd/user_dir
# vi zhao
local_root=/etc/vsftpd/data
# cd ..
# mkdir data
# chmod 777 data/
# systemctl restart vsftpd
配置若有遗漏或错误,请评论留言。
原文地址:https://www.cnblogs.com/BrokenEaves/p/14492959.html