Centos 7下VSFTP服务的安装与配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos 7下VSFTP服务的安装与配置相关的知识,希望对你有一定的参考价值。

VSFTP服务 环境:Centos 7 (关闭了SELinux和防火墙)


一、安装
1、YUM安装
[[email protected] ~]# yum install -y vsftpd #过程省略
2、编译安装
在系统安装光盘可找到安装包或网络下载安装包
vsftpd.x86_64.0.3.0.2-22.el7
[[email protected] ~]# tar xvf vsftpd.x86_64.0.3.0.2-22.el7.tar.gz
[[email protected] ~]# cd vsftpd.x86_64.0.3.0.2-22.el7
#在开始编译前需要添加相关用户和目录,用户和目录记录在文件INSTALL中
#添加用户nobody,如果不添加,软件默认用户为ftp
[[email protected] ~]# useradd nobody -M -s /sbin/nologin
#添加目录
[[email protected] ~]# mkdir /var/share/empty
[[email protected] ~]# mkdir /var/ftp

二、配置
yum或rpm安装的,配置文件一般在/etc/vsftpd/vsftpd.conf
相关参数意义:
anonymous_enable=NO #禁止匿名访问
anon_upload_enable=NO #禁止匿名上传文件
anon_mkdir_write_enable=NO #禁止匿名创建文件夹
anon_other_write_enable=NO #禁止匿名其他写操作
chroot_list_enable=NO #禁止用户离开自己的FTP主目录
chroot_local_user=NO #禁止本地用户离开自己的FTP主目录
chroot_list_file=/etc/vsftpd.chroot_list #虚拟用户列表,每行一个用户名
local_enable=YES #允许本地用户访问
local_umask=022 # 设置本地用户所上传文件的默认权限掩码值
write_enable=YES #是否允许写
pam_service_name=vsftpd.vu #权限验证需要的加密文件
guest_enable=YES #开启虚拟用户功能
guest_username=ftp #虚拟用户的宿主用户
virtual_use_local_privs=YES #用户登录后操作主目录和本地用户具有同样的权限
user_config_dir=/etc/vsftpd/vconf #虚拟用户主目录设置文件
listen=yes #是否以独立运行的方式监听服务
listen_address=0.0.0.0 # 设置监听ftp服务的IP地址
listen_port=21 #设置监听FTP服务的端口号
write_enable=yes #启用任何形式的写入权限(如上传,删除文件等)都需要开启此项
download_enable=yes #是否可以下载文件(建立仅限浏览,上传的ftp服务器时可将其设为“no”)
dirmessage_enable=yes #用户切换进入目录时显示.message文件(如果存在)的类容
xferlog_enable=yes #启用xferlog日志,默认记录到/var/log/xferlog
xferlog_std_format=yes #启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式
connect_from_port_20=yes #同意服务器主动模式(从20端口建立数据连接)
pasv_enable=yes #同意被动模式连接
pasv_max_port=24600 #设置用于被动模式的服务器最大端口号
pasv_min_port=24500 #设置用于被动模式的服务器最小端口号
pam_service_name=vsftpd #设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)
userlist_enable=yes #是否启用户控制列表
userlist_deny=NO #是否禁用user_list列表文件中的用户账号
userlist_file=/etc/vsftpd/uer_list #//访问控制列表的路径
max_clients=0 #最多同意多少个客户端同是连接(0为不限制)
max_per_ip=0 #对来自同一个ip地址的客户端,最多同意多少个并发连接(0为不限制)
tcp_wrappers=yes #是否启用TCP_Wrappers主机访问控制
开启虚拟用户
guest_enable=YES #启用用户隐射功能
guest_username=ftp #映射的系统用户名字 本地用户
guest_config_dir=/etc/vsftp_user_conf #记录虚拟用配置文件的目录
pam_service_name=ftp.vu #指定 pam认证文件

1、匿名用户访问配置
#过滤注释行显示有效行,查看配置文件
[[email protected] pub]# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
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

#默认文件目录赋权给用户ftp,并启动服务
[[email protected] pub]# chown -R ftp.users /var/ftp/pub/
[[email protected] pub]# systemctl restart vsftpd

2、实名访问
#过滤注释行显示有效行
[[email protected] pub]# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=vftpuser
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vuser_conf
pasv_min_port=61001
pasv_max_port=62000
allow_writeable_chroot=YES
anon_umask=022

#编辑虚拟用户列表
[[email protected] pub]# vim /etc/vsftpd/chroot_list
vftpuser
#安装数据加密库
[[email protected] ~]# yum install db4 db4-utils -y

*如果无法安装可配置epel源
[[email protected] ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[[email protected] ~]# rpm -ivh epel-release-latest-7.noarch.rpm

#设置用户密码数据库
[[email protected]alhost pub]# vim /etc/vsftpd/vuser_passwd.txt
howard
123456
long
123456
[[email protected] vsftpd]#db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

修改认证配置文件
[[email protected] ~]# 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

#设置虚拟用户的权限配置文件
[[email protected] ~]# vim /etc/vsftpd/vuser_conf/howard
local_root=/var/ftp/upload
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
[[email protected] ~]# vim /etc/vsftpd/vuser_conf/long (内容同上)

创建虚拟用户的上传文件目录
[[email protected] ~]# mkdir /var/ftp/upload

设置防火墙
打开防火墙设置:
[[email protected] ~]# vi /etc/sysconfig/iptables
注释其他,新加如下
-A INPUT –m state --state NEW –m tcp –p tcp –dport 22 –j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10060:10090 -j ACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
systemctl restart firewalld.service


使用本地用户登录,限制目录和权限的实例:
一、编辑主服务配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_list_enable=NO
#chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
user_config_dir=/etc/vsftpd/userconfig
#local_root=/data/ftproot
tcp_wrappers=YES
pasv_enable=YES
pasv_max_port=21000
pasv_min_port=20000
pasv_address=121.201.14.168

二、编辑用户配置文件
mkdir /etc/vsftpd/userconfig
vim /etc/vsftpd/userconfig/usname
local_root=/vsftproot
write_enable=YES


使用虚拟用户配置实例:
一、编辑服务配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
local_umask=022
anon_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir

二、编辑用户配置文件
mkdir /etc/vsftpd/vusers_dir
vim /etc/vsftpd/vusers_dir/usname
local_root=/vsftproot
write_enable=YES

以上是关于Centos 7下VSFTP服务的安装与配置的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7运维管理笔记----安装ftp服务器

Centos 7安装配置 vsftp服务 (虚拟用户登录)

CentOS 7.0安装配置Vsftp服务器

CentOS中vsftp安装与配置

Centos 7安装配置 vsftp服务(虚拟用户登录)

centos 7 最小安装后 安装FTP服务器 vsftp