vsftpd服务器配置与使用
1、ftp简介
网络文件的共享主流的主要有三种,分别为ftp、nfs、samba
ftp用于internet上的控制文件的双向传输
上传和下载的操作
| 下载 | 上传 |
|---|---|
| 将主机中的内容拷贝到计算机上 | 将文件从计算机拷贝到主机上 |
2、ftp构架
FTP工作应用层,其监听端口为tcp的21,其是一种C/S架构的应用程序,其有多种客户端工具
| 客户端工具 | 服务端软件 |
|---|---|
| ftp | wu-ftpd |
| Iftp,Iftpget | proftpd |
| wget.curl | pureftp |
| filezilla | vsftpd |
| gftp | ServU |
3、ftp数据连接模式
3.1、连接模式分类
ftp有两种数据连接模式:命令连接和数据连接
命令连接模式:是指文件管理命令,始终在线的持久性连接,直到用户退出登录为止(相当于通过命令连接ftp并且操作)数据连接模式:是指数据传输,按需创建及其关闭3.2、数据传输格式和传输模式
数据传输格式有一下两种:
文件传输二进制传输
数据传输:
- 主动模式:由服务器端创建数据连接
- 被动模式:由客户端创建数据连接
说白了,就是客户端上传为被动
4、ftp的配置文件
文件位置 说明 /etc/vsftpd 配置文件目录 /etc/vsftpd 配置文件目录 /etc/vsftpd/vsftpd.conf 主配置文件 vsftp常见配置文件参数:
参数 作用 anoymous_enable=YES 启动匿名用户 anon_upload_enable=YES 允许匿名用户上传 anon_mkdir_write_enable=YES 允许用户创建目录,但是不能删除 anon_other_write_enable=YES 允许匿名用户创建和删除目录 local_enable=YES 启用本地用户登录 write_unask=022 ftp上传默认遮掩码 chroot_list_user=YES 禁锢所有本地ftp用户于其家目录中 chroot_list_enable=YES 开启禁锢文件列表,需要chroot_list_file一起使用 chroot_list_file=/etc/vsftpd/chroot_list 禁锢文件路径,在文件里面的用户将禁锢在其家目录中 allow_writeable_chroot=YES 被禁锢用户的家目录有写的权限 xferlog_enabel=YES 是否传输日志(记录ftp传输过程) xferlog_enable=/var/log/xferlog 日志储存位置 chown_uploads=YES 是否改变上传文件的属主功能 chown_username=whoever 指定上传文件属主该为那个用户 pam_server_name=vsftp 指定vsftpd使用/etc/pam.d下的那个pam配置文件进行用户认证 userlist_enable=YES 是否启用控制用户登录列表文件:默认为:/etc/vsftpd/user_list文件 userlist_deny=YES 是否拒绝userlist指定的列表文件存在的用户登录ftp max_clients=# 最大连接数 max_per_ip 同时ip请求数 anon_max_rate 匿名最大传输速录 local_max_rate 本地最大传输速率 message_file 访问目录时可以查看目录信息 data_connection_timeout=120 设置传输超时时间 idle_session_timeout=600 默认不活跃session时间 dirmessage_enable 启用某目录下的,message描述信息
5、安装vsftpd
[root@localhost ~]# yum install -y vsftpd
Loaded plugins: product-id, search-disabled-repos, subscription-
: manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
name | 3.6 kB 00:00
Resolving Dependencies
--> Running transaction check
---> Package vsftpd.x86_64 0:3.0.2-25.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================
Package Arch Version Repository Size
======================================================================
Installing:
vsftpd x86_64 3.0.2-25.el7 name 171 k
Transaction Summary
======================================================================
Install 1 Package
Total download size: 171 k
Installed size: 353 k
Downloading packages:
vsftpd-3.0.2-25.el7.x86_64.rpm | 171 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : vsftpd-3.0.2-25.el7.x86_64 1/1
Verifying : vsftpd-3.0.2-25.el7.x86_64 1/1
Installed:
vsftpd.x86_64 0:3.0.2-25.el7
Complete!
#启动ftpd
[root@localhost ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2020-04-01 03:41:21 EDT; 27s ago
Process: 1383 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 1384 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─1384 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
Apr 01 03:41:21 localhost.localdomain systemd[1]: Starting Vsftpd f...
Apr 01 03:41:21 localhost.localdomain systemd[1]: Started Vsftpd ft...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#
#查看端口
[root@localhost ~]# ss -antl | grep 21
LISTEN 0 32 :::21 :::*
[root@localhost ~]#
vsftp虚拟用户设置
#配置网络仓库和下载依赖
[root@localhost yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
--2020-04-01 03:57:17-- http://mirrors.163.com/.help/CentOS7-Base-163.repo
Resolving mirrors.163.com (mirrors.163.com)... 59.111.0.251
Connecting to mirrors.163.com (mirrors.163.com)|59.111.0.251|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1572 (1.5K) [application/octet-stream]
Saving to: ‘CentOS7-Base-163.repo’
100%[=======================================================================>] 1,572 --.-K/s in 0s
2020-04-01 03:57:19 (95.2 MB/s) - ‘CentOS7-Base-163.repo’ saved [1572/1572]
[root@localhost yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@localhost yum.repos.d]# set 's/^enabled=.*/enabled=1/g' CentOS7-Base-163.repo
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to
.........
[root@localhost yum.repos.d]# yum -y install epel-release
[root@localhost yum.repos.d]# yum -y install vsftpd
#创建用户列表,奇数行为用户,偶数行为密码
[root@localhost yum.repos.d]# printf "lzj\n123\n" >> /etc/vsftpd/vu.list
[root@localhost yum.repos.d]# printf "lal\n345\n" >> /etc/vsftpd/vu.list
[root@localhost yum.repos.d]# cat /etc/vsftpd/vu.list
lzj
123
lal
345
[root@localhost yum.repos.d]#
#下载db4工具
[root@localhost yum.repos.d]# yum install -y db4*
#将刚创的密码表转换成数据库
[root@localhost yum.repos.d]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
#提高虚拟账户的安全性,设置文件权限为600
[root@localhost yum.repos.d]# chmod 600 /etc/vsftpd/vu*
[root@localhost yum.repos.d]# ll /etc/vsftpd/vu*
-rw-------. 1 root root 12288 Apr 1 04:26 /etc/vsftpd/vu.db
-rw-------. 1 root root 16 Apr 1 04:14 /etc/vsftpd/vu.list
[root@localhost ~]# vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
#修改vsftpd配置文件,添虚拟用户支持
guest_enable=YES
guest_username=vftp
#为不同的虚拟用户建立不同的配置文件
user_config_dir=/etc/vsftpd/vuser_dir
allow_writeable_chroot=YES
#创建主用户
[root@localhost ~]# useradd -d /var/ftproot/ -s /sbin/nologin vftp
#让lzj用户可读可写可上传
[root@localhost ~]# printf "anon_upload_enable=YES" >> /etc/vsftpd/vuser_dir/lzj #允许上传
[root@localhost ~]# printf "anon_mkdir_write_enable=YES" >> /etc/vsftpd/vuser_dir/lzj #允许写但不允许删
#建立其他用户配置文件
[root@localhost ~]# touch /etc/vsftpd/vuser_dir/lal
#查看端口
[root@localhost ~]# ss -antl | grep 21
LISTEN 0 32 :::21 :::*
[root@localhost ~]# cd /var
[root@localhost var]# touch ftproot/{1,2,3}
#客户端
[root@localhost ~]# lftp -u lzj,123 192.168.135.145
lftp lzj@192.168.135.145:~> ls#刚开始别以为报错,只是加载慢过一会就好了
Interrupt
lftp lzj@192.168.135.145:~>
lftp lzj@192.168.135.145:~> ls
-rw-r--r-- 1 0 0 0 Apr 04 06:25 1
-rw-r--r-- 1 0 0 0 Apr 04 06:25 2
-rw-r--r-- 1 0 0 0 Apr 04 06:25 3
lftp lzj@192.168.135.145:/> mkdir 123
mkdir ok, `123' created
lftp lzj@192.168.135.145:/> ls
-rw-r--r-- 1 0 0 0 Apr 04 06:25 1
drwx------ 2 1000 1000 6 Apr 04 06:29 123
-rw-r--r-- 1 0 0 0 Apr 04 06:25 2
-rw-r--r-- 1 0 0 0 Apr 04 06:25 3
lftp lzj@192.168.135.145:/> put 123
put: /root/123: No such file or directory
lftp lzj@192.168.135.145:/> put geshi.sh
35 bytes transferred
lftp lzj@192.168.135.145:/> ls
-rw-r--r-- 1 0 0 0 Apr 04 06:25 1
drwx------ 2 1000 1000 6 Apr 04 06:29 123
-rw-r--r-- 1 0 0 0 Apr 04 06:25 2
-rw-r--r-- 1 0 0 0 Apr 04 06:25 3
-rw------- 1 1000 1000 35 Apr 04 06:32 geshi.s
配置匿名用户
#下载ftp服务
[root@localhost ~]# yum install -y vsftpd
#修改主配置文件,在最后一行添加
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES #允许匿名用户上传
anon_mkdir_write_enable=YES #允许匿名用户写和创建文件夹
#重启服务
[root@localhost ~]# systemctl restart vsftpd
#停止防火墙和selinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
#查看共享目录
[root@localhost ~]# ls /var/ftp/
01.sh 1 1234 2 3 4 pub 新建文本文档.txt 新文件夹 新文件夹 (2)
[root@localhost ~]#
#客户端
[root@localhost ~]# lftp -u ftp 192.168.135.145
Password:
lftp ftp@192.168.135.145:~> ls
-rw------- 1 14 50 78 Apr 03 06:22 01.sh
-rw-r--r-- 1 0 0 0 Apr 03 06:15 1
drwx------ 2 14 50 6 Apr 03 06:22 1234
-rw-r--r-- 1 0 0 0 Apr 03 06:15 2
-rw-r--r-- 1 0 0 0 Apr 03 06:15 3
-rw-r--r-- 1 0 0 0 Apr 03 06:15 4
drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
-rw------- 1 14 50 55 Apr 03 05:51 新建文本文档.txt
drwx------ 2 14 50 6 Apr 03 05:51 新文件夹
drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 (2)
lftp ftp@192.168.135.145:~> exit
[root@localhost ~]# ls
anaconda-ks.cfg geshi.sh httpd-2.4.38 httpd-2.4.38.tar.bz2 mysql-community-release-el7-5.noarch.rpm
[root@localhost ~]# lftp -u ftp 192.168.135.145
Password:
lftp ftp@192.168.135.145:~> get 1 #下载
lftp ftp@192.168.135.145:/> mkdir 12309
#报错原因没有将服务端的共享目录设置为777
mkdir: Access failed: 550 Create directory operation failed. (12309)
lftp ftp@192.168.135.145:/>
lftp ftp@192.168.135.145:/> mkdir 12309
mkdir ok, `12309' created
lftp ftp@192.168.135.145:/> ls
-rw------- 1 14 50 78 Apr 03 06:22 01.sh
-rw-r--r-- 1 0 0 0 Apr 03 06:15 1
drwx------ 2 14 50 6 Apr 03 07:35 12309
drwx------ 2 14 50 6 Apr 03 06:22 1234
-rw-r--r-- 1 0 0 0 Apr 03 06:15 2
-rw-r--r-- 1 0 0 0 Apr 03 06:15 3
-rw-r--r-- 1 0 0 0 Apr 03 06:15 4
drwxr-xr-x 2 0 0 6 Oct 30 2018 pub
-rw------- 1 14 50 55 Apr 03 05:51 新建文本文档.txt
drwx------ 2 14 50 6 Apr 03 05:51 新文件夹
drwx------ 2 14 50 6 Apr 03 05:51 新文件夹 (2)
lftp ftp@192.168.135.145:/>
配置系统用户
#下载ftp服务
[root@localhost ~]# yum install -y vsftpd
#修改主配置文件,在最后一行添加
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES #禁锢用户
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #禁锢用户列表
#创建系统用户和/etc/vsftpd/chroot_list
[root@localhost data]# useradd chroot1 -d /data
[root@localhost data]# echo "123" | passwd --stdin chroot1
[root@localhost data]# echo "chroot1" > /etc/vsftpd/chroot_list
#重启并且关闭防火墙和selinux
[root@localhost data]# systemctl restart vsftpd
[root@localhost data]# systemctl stop firewalld
[root@localhost data]# setenforce 0
[root@localhost data]# touch 1 2 3 4
#客户端
[root@localhost ~]# lftp -u chroot1,123 192.168.135.145
lftp chroot1@192.168.135.145:~> ls
lftp chroot1@192.168.135.145:~> ls
-rw-r--r-- 1 0 0 0 Apr 03 07:59 1
-rw-r--r-- 1 0 0 0 Apr 03 07:59 2
-rw-r--r-- 1 0 0 0 Apr 03 07:59 3
-rw-r--r-- 1 0 0 0 Apr 03 07:59 4
lftp chroot1@192.168.135.145:~>
vsftpd服务器配置与使用的更多相关文章
- vsftpd服务器配置虚拟用户
添加宿主用户 新建系统用户vsftpd,用户目录为/home/wwwroot, 用户登录终端设为/bin/false(即使之不能登录系统) useradd vsftpd -d /home/wwwroo ...
- Linux(CentOS)下的vsftpd服务器配置-五岳之巅
说明:VSFTPD这款软件,网上和书里有很多配置文章,但不一定适用于您的主机,不同版本默认值不一样,我现在使用的是vsftpd-2.0.5-12.el5_3.1.千万记住:修改配置文件后,必须重新启动 ...
- Red Hat Linux安装vsftpd
一.安装分区方案: (1)交换分区,两倍内存 (2)/boot分区 (3)/剩余的所有空间语言选择English(英语) 二. 配置IPIP地址.子网掩码: 编辑 /etc/sysconfig/net ...
- vsftp linux
查看是否安装 rpm -qa|grep vsftpdyum -y install vsftpd /etc/vsftpd/vsftpd.conf #主配置文件 /usr/sbin/vsftpd ...
- VSFTP安全加固
这几天在公司需要做基线安全,一直都没有经验,所以在网上找了一些,做来参考学习. vsftp配置详解 这里是对vsftp配置文件的详细解释,主要参考了<RedHat8.0网络服务>一书中&l ...
- Linux服务器配置---安装vsftpd
安装vsftpd 大多数Linux系统都使用vsftpd,因此这里我们也安装vsftpd 1.安装vsftpd [root@localhost phpMyAdmin]# yum install -y ...
- vsftpd FTP服务器配置
步骤如下: 0. 进入目录/etc/vsftpd,将vsftpd.conf备份为vsftpd.conf.bak(否则启动时会启动这个)1. 进入目录/etc/vsftpd,创建文件myserver.c ...
- centos6.8服务器配置之vsftpd配置
vsftpd: version 2.2.2一.安装:因对版本要求不高,所以采用yum安装 yum install -y vsftpdckconfig vsftpd on 二.配置: 1.建立ftp用户 ...
- 【T电商 3】Nginx的Http(图片)服务器配置+ftp上传使用说明
在前两篇博客中提到了搭建Nginx和Ftp服务器,在本篇博客,主要是介绍Nginx的配置文件的使用,怎样修改配置文件使其成为一个图片服务器. 一.Nginx图片服务器配置 <span style ...
随机推荐
- 201771010128 王玉兰《面象对象程序设计 (Java) 》第六周学习总结
---恢复内容开始--- 第一部分:基础知识总结: 1.继承 A:用已有类来构建新类的一种机制,当定义了一个新类继承一个类时,这个新类就继承了这个类的方法和域以适应新的情况: B:特点:具有层次结构. ...
- 二,文件上传控件el-upload
需求: 上传文件,保存到服务器,并保存历史记录 上效果图 <el-form-item label="文件"> <el-upload ref="uploa ...
- [JavaWeb基础] 018.Struts2 Action通配符使用
Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...
- 创建执行线程方式三:实现Callable接口
Callable接口 ① Java 5.0 在 java.util.concurrent 提供了一个新的创建执行 线程的方式:Callable 接口② Callable 接口类似于 Runnable, ...
- 泛微 e-cology OA 前台SQL注入
poc https://github.com/AdministratorGithub/e-cology-OA-SQL 用法:python elog_sql.py http://target 不存在返回 ...
- IDEA 插件推荐 —— 让你写出好代码的神器!
概述 今天介绍的插件主要是围绕编码规范的.有追求的程序员,往往都有代码洁癖,要尽量减少代码的「坏味道」. 代码静态检查是有很多种类,例如圈复杂度.重复率等.业界提供了很多静态检查的插件来识别这些不合规 ...
- 分享按钮(QQ,微信,微博等)移入动画效果
ps:最近写的很多博客都是在以前在项目里写过的,之所以现在写出来,最大的目的就是希望自己以后用到的时候比较容易找,而且现在再写一遍,有助于加深印象! 很简单的效果,说先实现方式: 1.图标来自 阿里巴 ...
- Java实现 LeetCode 432 全 O(1) 的数据结构
432. 全 O(1) 的数据结构 实现一个数据结构支持以下操作: Inc(key) - 插入一个新的值为 1 的 key.或者使一个存在的 key 增加一,保证 key 不为空字符串. Dec(ke ...
- Java实现 蓝桥杯VIP 算法提高 快速幂
算法提高 快速幂 时间限制:1.0s 内存限制:256.0MB 问题描述 给定A, B, P,求(A^B) mod P. 输入格式 输入共一行. 第一行有三个数,N, M, P. 输出格式 输出共一行 ...
- Java实现 LeetCode 198 打家劫舍
198. 打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报 ...