CentOS7 安装vsftp

Posted outsrkem

tags:

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

CentOS7 安装vsftp配置虚拟用户

yum -y install vsftpd* pam* db4*

创建虚拟用户:
1.在/etc/vsftpd/创建 ftp 软件的认证配置文件(虚拟用户的认证文件)
vim /etc/vsftpd/vsftpd.user

奇数行:用户名
偶数行:密码

 

2.将产生的认证文件转化为数据库文件 ,(后缀一定要是*.db)
cd /etc/vsftpd/
db_load -T -t hash -f vsftpd.user vsftpd.db
# 将产生的*.db 文件修改权限,保证安全
chmod 600 vsftpd.db

 

3.为虚拟用户创建映射用户并修改家目录权限为 704
useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 704 /var/ftproot/

 

4.修改 ftp 的认证机制为虚拟用户认证,各个软件服务的认证机制配置文件
cd /etc/pam.d/
cp -a vsftpd vsftpd.pam
# 用默认使用的认证配置文件生成新的认证配置文件,修改 vsftpd.pam 文件,删除所有,添加自定义的两行
cat << EOF > vsftpd.pam
#指定自定义生成的数据库文件
auth    required pam_userdb.so db=/etc/vsftpd/vsftpd
#借助 pam_userdb.so 函数文件帮助 vsftpd 软件解读认证虚拟用户的登录
account required pam_userdb.so db=/etc/vsftpd/vsftpd
EOF

 

5.修改/etc/vsftpd/vsftpd.conf 配置文件
修改:
  anonymous_enable=NO          # 关闭匿名用户登录
  pam_service_name=vsftpd.pam  # 将认证配置文件指向自己创建的
添加:
  guest_enable=YES                  # 开启虚拟用户
  guest_username=virtual            # 指定虚拟用户的映射用户为 virtual
  user_config_dir=/etc/vsftpd/dir   # 每一个虚拟用户的配置文件保存路径
  anon_umask=022                    # 添加 umask 值
  allow_writeable_chroot=YES        # 新版必须添加否则取消目录w权限,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报错

注:要保证虚拟用户上传的文件能下载,必须在配置文件中添加 umask 值,让上传的文件其他人位置有 r 权限,其虚拟用户的访问时靠匿名用户权限生效。配置文件不要有其他字符。

 

6.为虚拟用户创建配置文件(/etc/vsftpd/dir/)
虚拟用户的配置文件文件名和用户名同名即可(如 a1用户的配置文件名为a1)
a、a1 用户的配置文件
   anon_upload_enable=YES         # 开启上传

b、a2 用户的配置文件
   anon_mkdir_write_enable=YES    # 允许创建目录

c、a3 用户的配置文件
   anon_upload_enable=YES         # 开启上传
   anon_other_write_enable=YES    # 开放其他人写入权限,操作其他文件

d、a4 用户的配置文件
   local_root=/var/ftproot/a4     # 配置a4用户的根目录
   anon_upload_enable=YES         # 开启上传
   anon_mkdir_write_enable=YES    # 允许创建目录
   anon_other_write_enable=YES    # 开放其他人写入权限,操作其他文件

 

全局配置项字段详解

listen=NO                   # 是否以独立运行的方式监听服务
listen_address=IP           # 设置监听f t p服务的ip地址,默认监听所有IP地址
listen_port=21              # 设置监听ftp服务的端口号
write_enable=YES            # 开启写入权限
download_enable=YES         # 允许下载权限
dirmessage_enable=YES       # 用户切换进入目录时显示 “.message”文件(如果已存在)的内容
xferlog_enable=YES          # 启用xferlog日志,默认记录到 /var/log/xferlog
xferlog_std_format=YES      # ftp日志格式
connect_from_port_20=YES    # 数据连接端口号默认20
pasv_enable=NO              # 禁止被动模式连接;默认允许被动模式连接
pasv_max_port=21600         # 起始端口号
pasv_min_port=21700         # 结束端口号
pam_service_name=vsftpd     # 开启PAM验证
userlist_enable=YES         # 允许user_list列表用户登录ftp
userlist_deny=YES           # 不允许user_list列表用户登录ftp
max_clients=0               # 限制多个客户端同时连接(0为无限制)
max_per_ip=0                # 允许相同IP地址访问ftp连接次数(0为无限制)
tcp_wrappers=YES            # ftp的访问控制列表提升安全性使用

匿名配置项字段详解
anonymous_enable=YES          # 是否允许匿名访问;
anon_umask=022                # 设置匿名用户所上传文件的默认权限掩码值(反掩码);
anon_root=/var/ftp            # 设置匿名用户的FTP根目录;
anon_upload_enable=YES        # 是否允许匿名用户上传文件;
anon_mkdir_write_enable=YES   # 是否允许匿名用户由创建目录的写入权限;
anon_other_write_enable=YES   # 是否允许匿名用户有其他写入权限,如对文件改名、覆盖及删除文件等

本地用户配置项
local_enable=YES               # 是否允许本地用户访问;
local_umask=022                # 设置本地用户所上传文件的默认权限掩码值(反掩码);
local_root=/var/ftp            # 设置本地用户的FTP根目录(默认为用户的宿主目录);
chroot_local_user=YES          # 是否将FTP本地用户禁锢在宿主目录中;
allow_writeable_chroot=YES     # 允许被限制用户的主目录具有写权限;
local_max_rate=0               # 限制本地用户的最大传输速率(0为无限制),单位为字节/秒(B/s)

虚拟用户配置项
guest_username=virtual            # 指定映射的系统用户名称;
guest_enable=YES                  # 是否启用虚拟用户;
allow_writeable_chroot=YES        # 允许被限制用户的主目录具有写权限(此项必须写入,否则可能会报错)
anon_world_readable_only=NO       # 允许用户下载目录内容
anon_other_write_enable=YES       # 允许匿名用户有其他写入权限,如重命名、覆盖及删除文件等;
user_config_dir=/etc/vsftpd/dir   # 指定虚拟用户独立的配置文件目录;

 

 

 

以上是关于CentOS7 安装vsftp的主要内容,如果未能解决你的问题,请参考以下文章

CentOS7 安装vsftp

Centos7.3安装vsftp服务

CENTOS7安装vsftp

Linux下vsftp的安装和使用:Centos7

CentOS7配置VSFTP服务器

centos7中vsftp的搭建