概述
用于快捷安装并配置vsftpd服务。
安装部署
vsftpd官网:http://www.linuxfromscratch.org/blfs/view/svn/server/vsftpd.html
环境信息
部署ip | 部署软件 | 开放端口 |
---|---|---|
192.168.199.10 | vsftpd | 21/10060-10090 |
vftpd安装
yum -y install vsftpd
基础配置
功能一(匿名用户)
# 创建匿名上传目录
mkdir -p /data/vsftpd/niming
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conf
# 允许匿名用户登录
anonymous_enable=YES
local_enable=YES
# 禁止匿名用户写入权限
write_enable=NO
local_umask=022
anon_upload_enable=YES
# 禁止匿名用户创建权限
anon_mkdir_write_enable=NO
# 匿名登录不需要密码
no_anon_password=YES
# 指定匿名用户默认访问目录
local_root=/data/vsftpd/niming
anon_root=/data/vsftpd/niming
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 指定被动端口,【添加】以下行,指定的端口范围,要在防火墙中开放
pasv_min_port=10060
pasv_max_port=10090
功能二(虚拟用户)
# 创建虚拟用户上传目录
mkdir -p /data/vsftpd/xuni
mkdir -p /data/vsftpd/xuni01
chmod -R 777 /data/vsftpd/xuni
chmod -R 777 /data/vsftpd/xuni01
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
##############################################################################################
vim /etc/vsftpd/vsftpd.conf
# 设定不允许匿名访问
anonymous_enable=NO
# 设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
# 记录上传下载文件的日志
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
# 日志记录文件位置
xferlog_file=/var/log/vsftpd.log
# 格式化日志
xferlog_std_format=YES
# 设定支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
# 使用户不能离开主目录
chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
# 监听IPv4 sockets
listen=YES
# 注释IPv6 sockets监听
#listen_ipv6=YES
# PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证 //已下三个请在配置文件中手动添加
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
# /etc/vsftpd/user_list中的用户禁止登录ftp
# 如果只配置userlist_enable=YES,有可能出现错误 “530 Permission denied”,因此加上如下配置
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
# 设定启用虚拟用户功能
guest_enable=YES
# 指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
guest_username=ftp
# 设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名)
user_config_dir=/etc/vsftpd/vuser_conf
pasv_min_port=10060
pasv_max_port=10090
# 文件上传下载权限设置
allow_writeable_chroot=YES
anon_umask=022
file_open_mode=777
# 虚拟用户和本地用户有相同的权限
virtual_use_local_privs=YES
##############################################################################################
<!-- 创建chroot list,将vftpd.conf配置文件中的guest_username加入其中 -->
echo ftp >> /etc/vsftpd/chroot_list
echo xuni >> /etc/vsftpd/chroot_list
echo xuni01 >> /etc/vsftpd/chroot_list
<!-- 创建用户密码文件,注意奇行是用户名,偶行是密码 -->
vim /etc/vsftpd/vuser_passwd.txt
xuni
123456
xuni01
123456
<!-- 生成虚拟用户认证的db文件 -->
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
##############################################################################################
<!-- 编辑认证文件,全部注释掉原来语句再增加以下两句,根据版本号加入 -->
vim /etc/pam.d/vsftpd
#系统为32位的
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
#系统为64位的
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
##############################################################################################
<!-- 创建虚拟用户配置文件 -->
mkdir -p /etc/vsftpd/vuser_conf/
vim /etc/vsftpd/vuser_conf/xuni
# 虚拟用户根目录,根据实际情况修改(如果没有需要创建),该目录必须要有读写权限chmod -R 777目录。
local_root=/data/vsftpd/xuni
# 可写
write_enable=YES
# 掩码
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
##############################################################################################
vim /etc/vsftpd/vuser_conf/xuni01
# 虚拟用户根目录,根据实际情况修改(如果没有需要创建),该目录必须要有读写权限chmod -R 777目录。
local_root=/data/vsftpd/xuni01
# 可写
write_enable=YES
# 掩码
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
功能三(本地用户)
# 创建用户并修改密码
useradd -d /home/hcr -m hcr
echo hcr | passwd --stdin hcr
# 创建文件上传目录,修改权限
mkdir -p /data/vsftpd/hcr
chown -R hcr:hcr /data/vsftpd/hcr
# 修改配置文件
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
vim /etc/vsftpd/vsftpd.conf
# 禁用匿名用户登录,【修改】以下行
anonymous_enable=NO
# 允许上传,取消以下两行的注释,也可直接【添加】
anon_upload_enable=YES
anon_mkdir_write_enable=YES
# 所有系统用户都映射成guest用户,指定主目录,【添加】以下配置
guest_enable=YES
guest_username=hcr
local_root=/data/vsftpd
# 允许修改和删除文件,【添加】以下行
anon_other_write_enable=YES
# 设置上传文件的默认用户和权限
chown_uploads=yes
chown_username=hcr
chown_upload_mode=0644
# 新建的目录和上传的文件可删除,【添加】以下行
anon_umask=022
# 指定被动端口,【添加】以下行,指定的端口范围,要在防火墙中开放
pasv_min_port=10060
pasv_max_port=10090
开机自启设置
# 加入开机启动
systemctl daemon-reload
systemctl enable vsftpd
# 查看开机是否启动成功
systemctl is-enabled vsftpd
# 启动服务
systemctl start vsftpd
# 停止服务
systemctl stop vsftpd
防火墙开放端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=10060-10090/tcp --permanent
firewall-cmd --reload
setenforce 0