【Vsftpd】Linux下Vsftpd的安装与配置

检查软件包

在开始安装Vsftpd之前,请确认已经获得以下软件包。

软件包文件说明
vsftpd-3.0.2-22.el7.x86_64.rpmvsftpd安装包,必须在centos7版本以上安装。
libdb-5.3.21-24.el7.x86_64.rpm、libdb-java-5.3.21-24.el7.x86_64.rpm、libdb-tcl-5.3.21-24.el7.x86_64.rpm、llibdb-utils-5.3.21-24.el7.x86_64.rpmDB4软件包,用来支持文件数据库

安装Vsftpd

  • 以root用户登录linux系统;
  • 创建vsftpd目录用于存放安装软件;
mkdir /usr/vsftpd
  • 利用SSH或WinSCP等工具将vsftpd的安装包上传到/usr/vsftpd目录下;
  • 进入 /usr/vsftpd 目录:
cd /usr/vsftpd
  • 安装Vsftpd:
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm
  • 创建vsftpd需要的特殊目录(如果已经存在则跳过此步骤):
mkdir /usr/share/empty
  • 根据自己的需要创建ftp目录结构,并全部赋予可读写权限(以小编自己的目录为例):
mkdir /FTP
mkdir /FTP/excelloaddir
mkdir /FTP/main
mkdir /FTP/main/default
mkdir /FTP/unuploaddir
mkdir /FTP/transcode
mkdir /FTP/transcode/HD
mkdir /FTP/transcode/SD
mkdir /FTP/uploaddir
mkdir /FTP/liveEpg
mkdir /FTP/excelloaddir/640x480
mkdir /FTP/nonetranscode
mkdir /FTP/main/channelPoster
mkdir /FTP/main/category
mkdir /FTP/nonetranscode/640x480
mkdir /FTP/un_zip_live_epg
mkdir /FTP/mediaDeficiency
chmod 777 /FTP/*

将需要上传的文件传到对应文件夹下。

安装db4软件包

  • 以root用户登录linux系统;
  • 利用SSH或WinSCP等工具将db4的软件包libdb-5.3.21-24.el7.x86_64.rpm、libdb-java-5.3.21-24.el7.x86_64.rpm、libdb-tcl-5.3.21-24.el7.x86_64.rpm、libdb-utils-5.3.21-24.el7.x86_64.rpm上传到/usr/vsftpd目录下;
  • 进入该目录:
cd /usr/vsftpd
  • 安装db4软件包,用来支持文件数据库:
rpm -Uvh --nodeps libdb-5.3.21-24.el7.x86_64.rpm
rpm -Uvh libdb-java-5.3.21-24.el7.x86_64.rpm
rpm -Uvh libdb-tcl-5.3.21-24.el7.x86_64.rpm
rpm -Uvh libdb-utils-5.3.21-24.el7.x86_64.rpm
  • 检测db4是否安装:
db_load

显示如下信息,则表示db4安装成功:
在这里插入图片描述

配置Vsftpd

  • 修改/etc/vsftpd/vsftpd.conf文件:
  1. 备份/etc/vsftpd/vsftpd.conf文件:
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak 
  1. 打开/etc/vsftpd/vsftpd.conf文件:
vim /etc/vsftpd/vsftpd.conf
  1. 修改/etc/vsftpd/vsftpd.conf文件,将以下内容拷贝到文件中,可以到备份文件中查看各参数的相关说明。(按“i”进入编辑模式,编辑完成后按“ESC”退出编辑模式,按“:wq”保存):
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
#ftp的根目录
local_root=/FTP/
ftpd_banner=Welcome to cms FTP server
#虚拟用户的具体权限配置
user_config_dir=/etc/vsftpd/userconf
  • 配置虚拟用户的登录名和密码:

(1)创建用户密码文件vsftpuser.txt:

vim /etc/vsftpd/vsftpuser.txt

(2)编辑/etc/vsftpd/vsftpuser.txt文件,输入如下内容后保存。(按“i”进入编辑模式,编辑完成后按“ESC”退出编辑模式,按“:wq”保存):

root
123456

其中,单数行为用户名,偶数行为密码。

(3)使用db_load生成用户口令库文件:

db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db

(4)查看用户口令文件是否生成

find /etc/vsftpd/vsftpuser.db

(5)修改该口令库文件的权限

chmod 600 /etc/vsftpd/vsftpuser.db

(6)查看该口令库文件权限

ls -l /etc/vsftpd/vsftpuser.db

ls -l /etc/vsftpd/vsftpuser.db
系统显示如下信息,说明修改口令库文件权限成功。
在这里插入图片描述

  • 编辑虚拟用户所需的PAM配置文件

(1)打开/etc/pam.d/vsftpd文件:

vim /etc/pam.d/vsftpd

(2)2. 修改/etc/pam.d/vsftpd文件,注释掉文件中所有的内容,然后添加:
如果不是64位机器,在文件末尾添加如下两行:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpuser

如果是64位机器,则在文件末尾添加下面两行:

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpuser

注意:查看系统是32还是64可以使用 uname -a 命令查看。

  • 创建虚拟用户权限配置文件

(1)创建虚拟用户对应权限配置的目录

mkdir /etc/vsftpd/userconf

(2)进入/etc/vsftpd/userconf目录

cd /etc/vsftpd/userconf

(3)创建root配置文件

vim root

(4)编辑root文件,输入如下内容后保存。(按“i”进入编辑模式,编辑完成后按“ESC”退出编辑模式,按“:wq”保存)

guest_enable=YES
#guest_username=ftpusercms
anon_world_readable_only=NO
anon_upload_enable=YES
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=5000000
anon_umask=022
  • 配置root用户访问权限

(1)进入/etc/vsftpd目录

cd /etc/vsftpd

(2)创建chroot_list文件:

vim chroot_list

(3)编辑chroot_list文件,输入如下内容后保存。

root
ftpuser4transcode
  • 修改SELinux设置

(1)打开/etc/selinux/config文件:

vim /etc/selinux/config

(2)编辑/etc/selinux/config文件,修改SELINUX的值为disabled。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

(3)重启Linux系统

reboot

(4)重新登录服务器后,查看是否设置成功:

getsebool -a | grep ftp

系统显示如下信息,说明设置成功。
在这里插入图片描述

  • 创建4个不能登录系统的用户(ftpusertranscode,ftpusercms,ftpusermain,ftpusercpm)以下语句执行会提示用户已经建立。请仍然将语句执行完。
useradd -d /FTP -s /sbin/nologin ftpusermain
useradd -d /FTP -s /sbin/nologin ftpusercms
useradd -d /FTP -s /sbin/nologin ftpusertranscode
useradd -d /FTP/main -s /sbin/nologin ftpusercpm
  • 注意:如果是Redhat6.3 系统,会提示用户已经添加。

启动Vsftpd

  • 以root用户登录vsftpd服务器;
  • 启动vsftpd服务
systemctl start vsftpd
  • 查看状态
systemctl status vsftpd
  • 开机自动启动配置
    • 打开开机自启动vsftpd服务,命令:chkconfig vsftpd on
    • 关闭开机自启动vsftpd服务,命令:chkconfig vsftpd off

验证Vsftpd

  1. 在验证之前,我们需要确认linux系统上的防火墙是否已经关闭,相关具体命令查看博客文章https://blog.csdn.net/houwanle/article/details/98979603;
  2. 在接下来将要远程登录的用户,在linux系统中的/etc/vsftpd/ftpusers文件里有没有被禁掉;

在完成上面的步骤后,在其他电脑(Windows)上运行cmd,在c盘下创建test.txt文件输入test,进行如下操作:

  • 登录
    在这里插入图片描述
  • 测试上传
    在这里插入图片描述
  • 测试下载
    在这里插入图片描述
    用记事本打开test1.txt内容和test.txt一样,说明vsftpd安装正确。

**注意:**在上传和下载的时候会报如下错误:
在这里插入图片描述
解决办法:
第一条命令可以解决的话,就不用执行第二条命令了;

//o 表示其他以外的人,+ 表示增加权限,w 表示可写入

sudo chmod o+w /(这里是可访问文件夹的路径) //注意这里写目录的绝对或相对路径,不是直接写根目录'/'

sudo chmod 777 -R /(跟上面一样) //将目前目录下的所有文件与子目录皆设为任何人可读取和执行

sudo systemctl restart vsftpd.service   //重启一下服务
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值