vsftpd文件服务参数汇总和虚拟用户使用
FTP文件传输协议
FTP协议特点
- 基于C/S结构
- 双通道协议:数据和命令连接
- 数据传输格式:二进制(默认)和文本(w文本格式会修改文件内容)
两种模式:服务器角度
主动(PORT style):服务器主动连接
通信:客户端使用随机端口连接服务端21号端口通信
数据传输:服务端使用20号端口传输数据
** 被动(PASV style):客户端主动连接**
通信:客户端使用使用随机端口连接服务器端21号端口
数据传输:服务端使用客户端连接信息中的随机端口向客户端发送数据
- 服务器被动模式数据端口示例:
227 Entering Passive Mode (192,168,175,138,224,59)
服务器数据端口为:224*256+59
FTP服务
状态码
- 1XX:信息 125:数据连接打开
- 2XX:成功类状态 200:命令OK 230:登录成功
- 3XX:补充类 331:用户名OK
- 4XX:客户端错误 425:不能打开数据连接
- 5XX:服务器错误 530:不能登录
用户认证类型
- 匿名用户:ftp,anonymous,对应Linux用户ftp
- 系统用户:Linux用户,用户/etc/passwd,密码/etc/shadow,共享目录为用户家目录
- 虚拟用户:特定服务的专用用户,独立的用户/密码文件,共享目录位置为其映射的系统用户的家目录
nsswitch:network service switch名称解析框架
pam:pluggable authentication module 用户认证
/lib64/security /etc/pam.d/ /etc/pam.conf
vsftpd服务应用
- 用户认证配置文件:/etc/pam.d/vsftpd
- 服务脚本: /usr/lib/systemd/system/vsftpd.service
/etc/rc.d/init.d/vsftpd - 配置文件:/etc/vsftpd/vsftpd.conf
- 查看配置文件参数使用: man 5 vsftpd.conf
- 格式:option=value 注意:= 前后不要有空格
vsftpd服务配置
安装vsftpd
yum install vsftpd -y
yum install ftp -y (当做客户端命令行工具)
默认使用被动模式传输:可以使用ftp用户登录,默认的共享目录在/var/ftp下
[root@yufu opt]# ftp 192.168.214.130
Connected to 192.168.214.130 (192.168.214.130).
220 (vsFTPd 3.0.2)
Name (192.168.214.130:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,214,130,154,121).
150 Here comes the directory listing.
drwxr-xr-x 2 0 0 4096 Jun 25 12:13 pub
226 Directory send OK.
修改传输模式
主动传输
listen_port=21 # 命令端口
connect_from_port_20=YES #主动模式端口为20
ftp_data_port=20 #指定主动模式的端口
使用当地时间
默认客户端下载的ftp文件时间与服务端时间是不一样的。指定客户端下载使用的时间与服务端一致
use_localtime=YES 使用当地时间(默认为NO,使用GMT)
匿名用户
anonymous_enable=YES 支持匿名用户 no_anon_password=YES(默认NO) 匿名用户略过口令检查 anon_world_readable_only (默认YES)只能下载全部读的文件
- anon_upload_enable=YES 匿名上传,注意:文件系统权限
- anon_mkdir_write_enable=YES
- anon_umask=077 指定匿名上传文件的umask
- anon_other_write_enable=YES 可删除和修改上传的文件
指定上传文件的默认的所有者和权限 - chown_uploads=YES(默认NO)
- chown_username=wang
- chown_upload_mode=0644
系统用户
- guest_enable=YES 所有系统用户都映射成guest用户
- guest_username=ftp 配合上面选项才生效,指定guest用户
- local_enable=YES 是否允许linux用户登录
- write_enable-YES 允许linux用户上传文件
- local_umask=022 指定系统用户上传文件的默认权限
- local_root=/ftproot 非匿名用户登录所在目录
禁锢所有用户在家目录中
chroot_local_user=YES(默认NO,不禁锢)禁锢系统用户
禁锢或不禁锢特定的系统用户在家目录中,与上面设置功能相反
- chroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list
- 当chroot_local_user=YES时,则chroot_list中用户不禁锢
- 当chroot_local_user=NO时,则chroot_list中用户禁锢
wu-ftp日志:默认启用
- xferlog_enable=YES (默认)启用记录上传下载日志
- xferlog_std_format=YES (默认)使用wu-ftp日志格式
- xferlog_file=/var/log/xferlog (默认)可自动生成
vsftpd日志:默认不启用
- dual_log_enable=YES 使用vsftpd日志格式,默认不启用
- vsftpd_log_file=/var/log/vsftpd.log(默认)可自动生成
登录提示信息
- ftpd_banner=“welcome to mage ftp server"
- banner_file=/etc/vsftpd/ftpbanner.txt 优先上面项生效
目录访问提示信息
- dirmessage_enable=YES (默认)
- message_file=.message(默认)信息存放在指定目录下.message
使用pam模块认证
使用完成用户认证
- pam_service_name=vsftpd
- pam配置文件:/etc/pam.d/vsftpd
- /etc/vsftpd/ftpusers 默认文件中用户拒绝登录
是否启用控制用户登录的列表文件
- userlist_enable=YES 默认有此设置
- userlist_deny=YES(默认值)黑名单,不提示口令,NO为白名单
- userlist_file=/etc/vsftpd/users_list 此为默认值
连接限制 - max_clients=0 最大并发连接数
- max_per_ip=0 每个IP同时发起的最大连接数
vsftpd服务指定用户身份运行 - nopriv_user=nobody
传输速率配置
传输速率:字节/秒
- anon_max_rate=0 匿名用户的最大传输速率
- local_max_rate=0 本地用户的最大传输速率
连接时间:秒为单位
- connect_timeout=60 主动模式数据连接超时时长
- accept_timeout=60 被动模式数据连接超时时长
- data_connection_timeout=300 数据连接无数据输超时时长
- idle_session_timeout=60 无命令操作超时时长
优先以文本方式传输
- ascii_upload_enable=YES
- ascii_download_enable=YES
基于SSL传输的FTPS
查看是否支持SSL
- ldd
which vsftpd查看到libssl.so
创建自签名证书
- cd /etc/pki/tls/certs/
- make vsftpd.pem
- openssl x509 -in vsftpd.pem -noout –text
配置vsftpd服务支持SSL:/etc/vsftpd/vsftpd.conf
- ssl_enable=YES 启用SSL
- allow_anon_ssl=NO 匿名不支持SSL
- force_local_logins_ssl=YES 本地用户登录加密
- force_local_data_ssl=YES 本地用户数据传输加密
- rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
用filezilla等工具测试
实现基于文件验证的vsftpd虚拟用户
1. 创建用户数据库文件
[root@yufu ~]# vim /etc/vsftpd/vuser.txt
testuser1
testuser1passwd
yufu
123456
#奇数行写用户名,偶数行写用户密码
2. 转换数据文件为指定格式 设定600权限
[root@yufu ~]# cd /etc/vsftpd/
[root@yufu vsftpd]# db_load -T -t hash -f vuser.txt vuser.db
[root@yufu vsftpd]# chmod 600 vuser.db
3. 创建用户和访问FTP目录
创建系统的用户 vuser (将上面vuser.db中的账号映射成vuser)
[root@yufu vsftpd]# useradd -d /var/ftproot vuser -s /sbin/nologin
[root@yufu vsftpd]# chmod +rx /var/ftproot/
4. 创建pam配置文件
[root@yufu vsftpd]# vim /etc/pam.d/vsftpd.db
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
5. 指定pam配置文件
vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.db
6. 禁用selinux
setenforce 0
7 .虚拟用户建立独立的配置文件
[root@yufu vsftpd]# mkdir /etc/vsftpd/vuser.d
在主配置文件vsftpd.conf中添加新建的配置文件目录路径如下
user_config_dir=/etc/vsftpd/vuser.d/
8. 配置虚拟用户文件
cd /etc/vsftpd/vuser.d/
#
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
重启vsftpd服务测试虚拟用户登录
service vsftpd restart
在服务器端的/var/ftproot目录下创建几个文件留作远程客户端登录测试下载
客户端登录
[root@yufu ~]# ftp 192.168.214.187
Connected to 192.168.214.187 (192.168.214.187).
220 (vsFTPd 2.2.2)
Name (192.168.214.187:root): yufu
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,214,187,252,108).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 May 09 08:03 yufu
-rw-r--r-- 1 0 0 0 May 09 08:14 yufu_files
226 Directory send OK.
ftp>
测试下载
ftp> lcd /opt/
Local directory now /opt
ftp> get yufu_files
local: yufu_files remote: yufu_files
227 Entering Passive Mode (192,168,214,187,45,7).
150 Opening BINARY mode data connection for yufu_files (0 bytes).
226 Transfer complete.
ftp> quit
221 Goodbye.
[root@yufu ~]# ls /opt/yufu_files
/opt/yufu_files
vsftpd文件服务参数汇总和虚拟用户使用的更多相关文章
- vsftpd搭建ftp服务,并实现虚拟用户访问
安装vsftpd服务: yum install vsftpd -y [root@wadeson ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd /etc/pam. ...
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...
- 在wdcp环境下架设VSFTPD虚拟用户只上传功能服务器
检查系统是否已安装vsftp rpm -q vsftpd package vsftpd is not installed #说明系统没有安装vsftpd 如果生成虚拟用户数据文件的时候出现以下错误 u ...
- vsftpd配置虚拟用户为登录用户02
1.安装vsftpd 安装依赖包: yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl 新建vsftpd系统用户: #建立Vsft ...
- vsftpd虚拟用户【公司系统部分享】
一,安装相关工具包 #yum -y install pam vsftpd db4 db4-utils -- pam 是用来提供身份验证的 -- vsftpd 是ftp服务的主程序 -- db4支持文件 ...
- Linux:FTP服务匿名用户,本地用户,虚拟用户配置
匿名用户 FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传输,用于上传.下载文件数据. 实验:匿名访问,服务器192.168.10.10 客户 ...
- 【VSFTP服务】vsftpd文件传输协议
vsftpd文件传输协议 系统环境:CentOS Linux release 7.6.1810 (Core) 一.简介 FTP(文件传输协议)全称是:Very Secure FTP Server. ...
- Vsftpd: 基于PAM认证的虚拟用户和匿名用户
目录 环境说明效果说明及截图①. 安装组件②. 系统账户建立③. 编辑vsftpd的配置文件④. 生成虚拟用户的数据库文件⑤. 生成一个使用vsftpd_login.db数据文件的PAM认证文件⑥. ...
- Linux云计算-07_Linux文件服务器之vsftpd服务器
本章向读者介绍企业vsftpd服务器实战.匿名用户访问.系统用户访问及虚拟用户实战等. 1 vsftpd服务器企业实战 文件传输协议(File Transfer Protocol,FTP),基于该协议 ...
随机推荐
- C# 读写xml、excel、word、ppt、access
C# 读写xml.excel.word.access 这里只是起个头,不做深入展开,方便以后用到参考 读写xml,主要使用.net 的xml下的document using System;using ...
- 弹出框layer插件
有时候我们在网页制作中需要引用各种弹出框,弹出框的展现形式多种多样.可以是弹出图片,视频,文字,也可以是弹出图片轮播等形式: 弹出框插件——layer使用方法(其实官方文档中已经介绍的很详细): 下载 ...
- ZROJ#398. 【18提高7】随机游走(期望dp 树形dp)
题意 [题目链接]版权原因就不发了.. 给出一棵树,求出任意两点之间期望距离的最大值 Sol 比较清真的一道题吧.. 设\(f[x]\)表示从\(x\)走到\(x\)的父亲的期望步数 \(g[x]\) ...
- C#程序集
我的理解: 程序集是一个物理上的概念,一个项目生成的exe或者dll都可以叫做一个程序集,internal修饰的内容可以在程序集内可见.
- Javascript中的Prototype到底是什么
Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言.在Javascript中,类和对象看起来没有太多的区别. 什么是prototype: funct ...
- 配置环境变量时,cmd下运行java -version,报错:找不到或无法加载主类 -version
这个方面适用于报错为:java 找不到或无法加载主类,一般是找不到类的路径,问题出在CLASSPATH环境变量上,当然这是大多数.大概率的出错点 不排除根据个人情况不况,所以想起来伟大领袖毛主席的话: ...
- 科技巨头之微软-Microsoft
提起微软Microsoft,我想应该是无人不知无人不晓.Windows操作系统,Office办公软件,是我们日常经常用到的工具.而微软的创始人正是前世界首富比尔盖茨. 1997年,我刚上初中.当时学校 ...
- 小组Scrum第一次冲刺
团队任务描述: 在确定完分组,并对于敏捷开发做了相应的了解之后,我们团队开始了第一次的冲刺.对于我们团队的第一次的 Scrum冲刺,我们团队开展了团队会议.首先,我们明确了我们的目标,对其进行了相对初 ...
- 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下
系统环境变量的问题.解决办法: 1.打开终端.输入open .zshrc 会出现一个可编辑文档, 2.找到# User configuration部分,在下一行添加source ~/.bash_pro ...
- PAT1064. Complete Binary Search Tree
1064. Complete Binary Search Tree 题目大意 给定一个序列, 求其 生成Complete BST 的层序遍历. 思路 最开始把这个题想复杂了, 还想着建立结构体, 其实 ...