https://blog.imzhengfei.com/centos-an-zhuang-pei-zhi-vsftpd/

vsftpd 是“very secure FTP daemon”的缩写,是一款在Linux发行版中最受推崇的 FTP 服务器程序。特点是小巧轻快,安全易用。支持很多其他的 FTP 服务器所不支持的特征,比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

安装 Vsftpd

安装 Vsftpd

更新 yum 源

yum -y update
Shell

检查是否已安装:

rpm -qa | grep vsftpd
Shell

如果无,则安装:

yum -y install vsftpd
Shell

如果有,则更新:

yum -y update vsftpd
Shell

查看版本信息:

vsftpd -v
Shell

vsftpd: version 3.0.2

启动 vsftpd 服务:

systemctl start vsftpd.service
Shell

设置开机启动:

systemctl enable vsftpd.service
Shell

安装依赖工具

安装 Berkeley DB,用于生成虚拟用户数据 db 文件:

yum -y install db4-utils
Shell

安装 PAM,用于用户认证:

yum -y install pam*
Shell

配置 Vsftpd

核心配置

备份默认的配置文件:

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
Shell

重新创建配置文件:

vi /etc/vsftpd/vsftpd.conf
Shell

添加配置信息**(注意等号两边不能有空格)**:

anonymous_enable=NO
local_enable=YES
local_umask=022
#
tcp_wrappers=NO
reverse_lookup_enable=NO
pam_service_name=vsftpd
#
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list
#
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#
listen=YES
listen_port=21
connect_from_port_20=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=8000
pasv_max_port=8100
#
accept_timeout=120
connect_timeout=120
data_connection_timeout=180
idle_session_timeout=600
local_max_rate=0
#
dirmessage_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
#log_ftp_protocol=YES
xferlog_std_format=YES
#
guest_enable=YES
guest_username=root
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vuser_conf
Shell

注意:guest_username 一般填写目录所有者,一般为 root 或者 www、ftp 等。

虚拟用户权限配置

备份 user_list(允许访问 FTP 的用户名单):

mv /etc/vsftpd/user_list /etc/vsftpd/user_list.bak
Shell

重新创建 user_list 文件并添加允许访问的 FTP 用户名(一行一个):

vi /etc/vsftpd/user_list
Shell

创建 chroot_list 文件:

touch /etc/vsftpd/chroot_list
Shell

如果有允许访问上级目录的用户,在该文件中添加用户名(一行一个)。

虚拟用户独立配置

新建虚拟用户独立配置路径文件夹:

mkdir /etc/vsftpd/vuser_conf
Shell

添加虚拟用户独立配置(文件名为用户名):

vi /etc/vsftpd/vuser_conf/test
Shell

写入该用户的独立配置:

local_root=/home/wwwroot/www.xxx.com
write_enable=YES
download_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
Shell

注意: local_root 为 FTP 用户根目录。

日志文件

创建日志文件:

touch /var/log/vsftpd.log
Shell

设置文件权限:

chown ftp:ftp /var/log/vsftpd.log
Shell

重启 Vsftpd:

systemctl restart vsftpd.service
Shell

虚拟用户认证

生成用户认证文件

添加虚拟用户认证文件:

vi /etc/vsftpd/vsftpd_vuser
Shell

在文件中添加虚拟用户名和密码,奇数行用户名,偶数行密码:

test
test123
Shell

生成虚拟用户认证文件**(每次修改虚拟用户密码均需重新生成一次)**:

db_load -T -t hash -f /etc/vsftpd/vsftpd_vuser /etc/vsftpd/vsftpd_vuser.db
Shell

如果出现以下错误:

db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs

请在 /etc/vsftpd/vsftpd_vuser 最后添加一行空行,再尝试生成用户认证文件。

设置文件权限,只有 root 用户可以读写:

chmod 600 /etc/vsftpd/vsftpd_vuser.db
Shell

配置 PAM

备份 vsftpd 的 PAM 认证文件:

mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
Shell

重新创建 PAM 文件:

vi /etc/pam.d/vsftpd
Shell

添加配置:

auth required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
account required pam_userdb.so db=/etc/vsftpd/vsftpd_vuser
Shell

64 位系统再在下面添加以下两行

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

防火墙设置

查看 ftp 服务是否已经永久启用:

firewall-cmd --permanent --query-service=ftp
Shell

如果没有,则启用 ftp 服务:

firewall-cmd --permanent --add-service=ftp
Shell

给 ftp 服务添加 vsftpd 命令传输端口和被动模式端口:

# 添加 vsftpd 命令传输端口 20/tcp
firewall-cmd --permanent --service=ftp --add-port=20/tcp
# 添加上面设置的被动模式端口段 8000-8100/tcp
firewall-cmd --permanent --service=ftp --add-port=8000-8100/tcp
Shell

查看下次重启(防火墙重新加载、服务器重启或者系统重启)之后永久生效的服务:

firewall-cmd --permanent --list-service
Shell

ssh http ftp

查看下次重启(防火墙重新加载、服务器重启或者系统重启)之后永久生效的 ftp 服务的信息:

firewall-cmd --permanent --info-service=ftp
Shell

ftp
ports: 21/tcp 20/tcp 8000-8100/tcp
protocols:
source-ports:
modules: ftp
destination:

重新加载防火墙规则:

firewall-cmd --reload
Shell

注意: 阿里云主机需要在安全组规则中添加入方向的 20/tcp, 21/tcp, 8000-8100/tcp 端口。

FTP 客户端

推荐使用免费开源的全平台支持的 FileZilla:FileZilla 官方下载

添加站点信息,常规配置即可:

  • 主机:填写主机 IP
  • 端口:如果没改过端口不需填写
  • 协议:FTP - 文件传输协议
  • 加密:只使用普通的 FTP
  • 登录类型:正常
  • 用户:test
  • 密码:test123

高级配置:

  • 默认本地目录:选择电脑上面需要和服务器上面传输文件的路径
  • 默认远程目录:一般情况下是根目录,就填写 /
  • 同步浏览:开启后在两边界面切换目录时会同步切换,只有一边有的目录会提示是否下载或上传
  • 比较浏览:会高亮显示两边不同的文件或目录,对齐显示都有的文件或目录

CentOS 7 安装配置 Vsftpd的更多相关文章

  1. Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)

    Centos下安装配置LAMP(Linux+Apache+MySQL+PHP)   关于LAMP的各种知识,还请大家自行百度谷歌,在这里就不详细的介绍了,今天主要是介绍一下在Centos下安装,搭建一 ...

  2. CentOS 7安装配置Apache HTTP Server

    原文 CentOS 7安装配置Apache HTTP Server   RPM安装httpd # yum -yinstall httpd //安装httpd会自动安装一下依赖包: apr apr-ut ...

  3. CentOS 7 安装配置 NFS

    CentOS 7  安装配置 NFS 环境 nps 192.168.1.97 client 192.168.1.98 一.yum 安装 yum -y install nfs-utils rpcbind ...

  4. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

  5. CentOS 7安装配置Samba服务器

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  6. CentOS 7安装配置Samba服务器(挂载共享文件夹)

    CentOS 7安装配置Samba服务器 CentOS 7下Samba服务器安装配置过程笔记. 假设我们有这样一个场景 共享名 路径 权限 SHAREDOC /smb/docs 所有人员包括来宾均可以 ...

  7. 记录:CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1

    CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1 软件下载:http://download.csdn.net/download/qingchunwuxian1993/9897458 ...

  8. CentOS gitlab 安装配置

    CentOS gitlab 安装配置 2018-11-02 11:23:09   Visit  5 在/etc/yum.repos.d 目录下创建文件gitlab-ce.repo,使用国内的安装源 b ...

  9. <转>CentOS 7 安装配置 NFS

    CentOS 7  安装配置 NFS 环境 nps 192.168.1.97 client 192.168.1.98 一.yum 安装 yum -y install nfs-utils rpcbind ...

随机推荐

  1. Luogu P2922 [USACO08DEC]秘密消息Secret Message 字典树 Trie树

    本来想找\(01Trie\)的结果找到了一堆字典树水题...算了算了当水个提交量好了. 直接插入模式串,维护一个\(Trie\)树的子树\(sum\)大小,求解每一个文本串匹配时走过的链上匹配数和终点 ...

  2. sys用户的操作

    oracle中查找某个表属于哪个用户? select owner from dba_tables where table_name=upper('t_l_tradelist' )          1 ...

  3. MySQL5.7单实例二进制包安装方法

    MySQL5.7单实例二进制包安装方法 一.环境 OS: CentOS release 6.9 (Final)MySQL: mysql-5.7.20-linux-glibc2.12-x86_64.ta ...

  4. linux优化之系统参数调优篇

    linux优化之系统参数调优篇 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.用户限制配置文件(首先需要编辑/etc/security/limits.conf文件) 大家可以 ...

  5. Numpy 笔记: 多维数组的切片(slicing)和索引(indexing)【转】

    目录 切片(slicing)操作 索引(indexing) 操作 最简单的情况 获取多个元素 切片和索引的同异 切片(slicing)操作 Numpy 中多维数组的切片操作与 Python 中 lis ...

  6. Java Web之表单重复提交问题

    上篇文章讲了验证码的制作,提及到了一个问题,就是表单重复提交的问题,可能在上次那个验证码中感觉不是那么的重要 现在我新写一个例子,转钱.通过这个例子你就知道表单重复提交有多恐怖了. 先来简单的介绍一下 ...

  7. Sublime Text3中 less 自动编译成 css 的方法

    使用sublime text的less2css插件 步骤: 1.安装node.js,这个到官网下载即可 2.安装less,方法:命令行输入: npm install -g less 3.sublime ...

  8. Dubbo服务启动脚本

    ## /usr/wangfajun/service/user #!/bin/sh ## java env export JAVA_HOME=/usr/java/jdk1..0_79 export JR ...

  9. go结构体方法

    Golang中的方法是作用在特定类型的变量上,因此自定义类型,都可以有方法,而不仅仅是struct. 定义格式 func (var *Struct_Name) FuncName( var0, var1 ...

  10. LeetCode(192. Word Frequency)

    192. Word Frequency Write a bash script to calculate the frequency of each word in a text file words ...