Linux下vsftp的安装与使用教程

一、环境准备

yum -y install glibc
yum -y install libcap
yum -y install libnsl
yum -y install openssl
yum -y install pam

二、yum安装

yum -y install vsftpd

三、启动

systemctl start vsftpd
ps aux | grep vsftpd   #检测是否启动

在这里插入图片描述
四、本地用户登录
1、修改配置文件

vim  /etc/vsftpd/vsftpd.conf

启用如下:
anonymous_enable=NO #不允许匿名用户登录
local_enable=YES #允许本地用户登录
write_enable=YES #允许写入权限 包括删除修改
local_umask=022 #本地用户文件上传权限限制
dirmessage_enable=YES #显示目录说明文件
xferlog_enable=YES #记录所有的上传下载信息,默认放在/var/log/vsftpd.log
connect_from_port_20=YES #使用20端口
listen=YES
pam_service_name=vsftpd
userlist_enable=YES #在userlist_file文件内的用户可以使用ftp服务
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
tcp_wrappers=YES
2、添加用户

useradd ftpuser -s /sbin/nologin   #添加账户 禁止登录bash  
passwd ftpuser  #设置密码

在这里插入图片描述
3、编辑user_list文件

vim  /etc/vsftpd/user_list

添加ftpuser等用户到文件中
在这里插入图片描述
4、开启防火墙 ftp默认端口21

firewall-cmd --zone=public --add-port=21/tcp --permanent  #开启防火墙21端口
systemctl restart firewalld.service   #重启防火墙服务
firewall-cmd --query-port=21/tcp   #查询防火墙21端口是否打开

注:netstat命令是在可用接口上监听端口,若该端口没有被占用,则不会查询到
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、修改SELinux

getsebool -a | grep ftp

可以看到都是off,没有开启外网访问
在这里插入图片描述

setsebool -P allow_ftpd_full_access on 
setsebool -P tftp_home_dir on  

6、启动服务

systemctl start vsftpd

7、在另一台linux服务器安装ftp客户端,接下来的操作都在这台进行(也可以在windows终端执行)

yum -y  install ftp

同时开启本机防火墙的21端口 或者是关闭防火墙
在这里插入图片描述
8、登录到服务器端192.168.162.128

ftp 192.168.162.128

在这里插入图片描述
可以看到,提示530登陆失败,寻找错误原因
解决办法:
决定一个用户是否可以通过ftp登录有两个配置文件:ftpusers和user_list。在ftpusers中的用户都不能通过ftp登录,在user_list中的用户根据配置决定。给这两个文件授权。chmod 644 ftpusers chmod 644 user_list (不过这里好像没说权限问题)
查看日志tail -f /var/log/secure 部分信息为Unregistered Authentication Agent for unix-process:6284
修改/etc/pam.d/vsftpd文件 注释#auth required pam_shells.so
该pam设置含义为如果用户想登录系统,那么它的shell必须是在/etc/shells文件中之一的shell
在这里插入图片描述
9、测试

  • 下载文件
    -----get 文件名

在这里插入图片描述
上传文件
-----put 文件名
在这里插入图片描述
删除文件
-----delete 文件名
在这里插入图片描述
修改文件名
-----rename 原文件名 新文件名
在这里插入图片描述

五、虚拟用户登录
1、继续修改配置文件

vim  /etc/vsftpd/vsftpd.conf

在本地用户的基础下启用如下:
guest_enable=YES #启用虚拟用户
guest_username=vuser #虚拟用户使用的系统用户名
virtual_use_local_privs=YES #设定虚拟用户的权限符合他们的宿主用户。
user_config_dir=/etc/vsftpd/vusers_conf #虚拟用户使用的配置文件目录

2、在/etc/vsftpd下面建立虚拟用户信息文件,在其中写入用户和密码,奇数行为用户,偶数行为密码

vim vusers

在这里插入图片描述
3、生成虚拟用户数据库文件

db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db

在这里插入图片描述
为了保护信息,该文件是乱码文件
在这里插入图片描述
4、设置文件权限

chmod 700  /etc/vsftpd/vusers.db

在这里插入图片描述
5、配置pam文件

vim /etc/pam.d/vsftpd

注释掉所有内容,然后添加(不能写成db=/etc/vsftpd/vusers.db)

auth       required   pam_userdb.so        db=/etc/vsftpd/vusers
account    required   pam_userdb.so        db=/etc/vsftpd/vusers

在这里插入图片描述
6、添加一个系统用户vuser,用它来对应所有虚拟用户,虚拟用户使用系统用户访问ftp

useradd vuser
mkdir -p  /home/ftp/vuser #虚拟用户的目录
chown vuser:vuser  /home/ftp/vuser

在这里插入图片描述
在这里插入图片描述
7、创建虚拟用户使用的配置文件目录

mkdir /etc/vsftpd/vusers_conf

8、设置虚拟用户配置文件(文件名设置成和账户名相同)

touch /etc/vsftpd/vusers_conf/admin
touch /etc/vsftpd/vusers_conf/ham
touch /etc/vsftpd/vusers_conf/snake

并在其中写入(注意配置文件行后面不能有空格,否则会报错):

local_root= /home/ftp/vuser    #指定虚拟用户的目录
anon_world_readable_only=NO       #浏览FTP目录和下载
anon_upload_enable=YES           #允许上传
anon_mkdir_write_enable=YES         #允许建立和删除目录
anon_other_write_enable=YES         #允许改名和删除文件

9、重新启动ftp服务

systemctl restart vsftpd

10、虚拟用户登录192.168.162.128
出现权限被拒绝:
530 Permission denied.
Login failed.
解决:在user_list中加入虚拟用户
在这里插入图片描述
11、测试

  • 上传文件
    -----put 文件名
    在这里插入图片描述
    下载文件
    -----get 文件名
    在这里插入图片描述
    删除文件
    -----delete 文件名
    在这里插入图片描述
    修改文件名
    -----rename 原文件名 新文件名
    在这里插入图片描述
    在这里插入图片描述
    (注:部分资料来源于网络,如有侵权,请联系作者)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章