Vsftp安装配置(超详细版)

目录

1 FTP、Vsftp介绍

 1.1 FTP介绍

 1.2 Vsftp介绍

 1.3 Vsftp的登录类型

2 Vsftp安装配置

 2.1 更换源

 2.2 安装epel源

 2.3 安装Vsftpd及相关依赖

 2.4 vsftpd配置文件说明

 2.5 vsftpd 配置详解

 2.6 备份配置文件

3 vsftpd 配置匿名用户

 3.1 编辑配置文件

 3.2 常用的匿名FTP配置项

 3.3 启动vsftp服务 

 3.4 登录验证

 3.5 修改权限上传

  3.5.1 修改权限

  3.5.2 上传文件

4 vsftp配置本地(系统)用户

 4.1 创建测试用户

 4.2 修改配置文件

 4.3 常用的本地用户FTP配置项

 4.4 添加用户到白名单

 4.5 登录测试

5 vsftp配置虚拟用户

 5.1 建立虚拟FTP用户账号

 5.2 创建虚拟用户文件

 5.3 创建数据文件

 5.4 建立支持虚拟用户的PAM认证文件

 5.5 修改配置文件

 5.6 常用的全局配置项

 5.7 为用户建立独立的配置目录及文件

 5.8 创建虚拟用户数据存放位置

 5.9 重启vsftp服务

 5.10 登录测试


1 FTP、Vsftp介绍

 1.1 FTP介绍

FTP协议,即文件传输协议(File Transfer Protocol),是一种用于在网络上进行文件传输的协议。它是一种传输文件的标准方式,可以将文件在网络上的不同计算机之间进行传递和下载。FTP协议是TCP/IP协议族中的一个应用层协议。它利用客户端-服务器模型,通过两个不同的端口进行通信。FTP客户端通过21号端口连接到FTP服务器,然后在20号端口上进行数据传输。FTP协议支持多种认证方式,包括明文、口令、SSL/TLS等。FTP在文件传输方面已经得到广泛的应用,它被用于管理网站网页,进行软件升级和备份等。 

FTP服务是Client/Server(简称C/S)模式,基于FTP协议实现FTP文件对外共享及传输的软件称之
为FTP服务器源端,客户端程序基于FTP协议,则称之为FTP客户端,FTP客户端可以向FTP服务器上传、下载文件。
目前主流的FTP服务器端软件包括: Vsftpd、ProFTPD、PureFTPd、Wuftpd、Server-U FTP、FileZilla Server等软件,其中Unix/Linux使用较为广泛的FTP服务器端软件为Vsftpd

 1.2 Vsftp介绍

VSFTP,全称为Very Secure FTP,是一种高度安全的FTP服务器软件。它是一款针对安全和性能进行优化的FTP服务器,拥有速度快、稳定、易用和安全性高的特点。VSFTP是在GPL许可证下发布的自由软件,可以在大多数类UNIX系统中使用。VSFTP支持IPv6、SSL/TLS加密传输,同时还提供了多种认证方式,包括本地用户、PAM、LDAP等等。同时,VSFTP也支持虚拟用户和虚拟目录,便于管理员进行用户管理。总之,VSFTP是一款功能强大且安全性高的FTP服务器软件,深受系统管理员和开发者的欢迎。

 1.3 Vsftp的登录类型

VSFTP提供了系统用户、匿名用户、和虚拟用户三种不同的登陆方式。所有的虚拟用户会映射成一个系统用户,访问时的文件目录是为此系统用户的家目录,匿名用户也是虚拟用户,映射的系统用户为ftp详细信息可以通过man vsftpd.conf(手册)查看。

2 Vsftp安装配置

 2.1 更换源

将你这台机器的本地源换成国内的阿里的源。(在后面的安装过程相对较快)

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

 2.2 安装epel源

yum -y install epel-release

如图即表示安装成功~

 2.3 安装Vsftpd及相关依赖

yum -y install vsftpd* pam* db4*

vsftpd: ftp软件

pam: 认证模块

db4: 支持文件数据库

显示“完毕!”字样即表示安装成功!

 2.4 vsftpd配置文件说明

配置文件

作用

/etc/vsftpd/vsftpd.conf

vsftpd的核心配置文件

/etc/vsftpd/ftpusers

用于指定哪些用户不能访问FTP服务器

/etc/vsftpd/user_list

指定允许使用vsftpd的用户列表文件

/etc/vsftpd/vsftpd_conf_migrate_sh

是vsftpd操作的一些变量和设置脚本

/etc/ftp/

默认情况下匿名用户的根目录

 2.5 vsftpd 配置详解

属性

属性值

含义

anonymous_enable

YES/NO

是否允许匿名用户(anonymous)登录FTP,如果该设置被注释,则默认允许。

local_enable

YES/NO

是否允许本地系统用户登录

write_enable

YES/NO

是否开启任何形式的FTP写入命令,上传文件

local_umask

xxx

本地用户的umask设置,如果注释该设置则默认为077,但一般都设置成022

anon_upload_enable

YES/NO

是否允许匿名用户上传文件,如果要设置为允许,则需要先开启write_enable,否则无效,此外对应目录还要具有写权限

anon_mkdir_write_enable

YES/NO

是否允许匿名用户创建新目录

dirmessage_enable

YES/NO

当进入某个目录时,发送信息提示给远程用户

xferlog_enable

YES/NO

是否开启上传/下载的日志记录

connect_from_port_20

YES/NO

是否使用20端口来连接FTP

chown_uploads

YES/NO

匿名上传的文件时是否由某一指定用户chown_username所有

chown_username

有效用户名

匿名上传的文件由该设定用户所有

xferlog_file

有效路径

设置日志文件的保存位置,默认为/var/log/xferlog

 2.6 备份配置文件

vsftpd修改配置前备份配置文件。(如果不备份,配置错误后,要把文件、用户删除掉,非常麻烦)

进入/etc/vsftpd/中

cd /etc/vsftpd/

ls命令查看

清空/tmp/

cd /tmp/
rm -rf *

cd -:返回进入此目录之前所在目录

cd -

开始备份

cp vsftpd.conf{,.bak}

ls命令查看,发现多出vsftpd.conf.bak

3 vsftpd 配置匿名用户

 3.1 编辑配置文件

vi vsftpd.conf

进入后会发现很多注释(带#的),需要修改如下内容,但是很麻烦,建议直接全部删除,直接输入如下内容。

write_enable=YES

anon_umask=022
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

拓展 

如果使用vsftp的是本地用户,对应修改配置文件中的 local_umask 的值。
如果使用vsftp的是匿名用户,对应修改配置文件中的 anon_umask 的值。

 3.2 常用的匿名FTP配置项

anonymous_enable=YES                        # 是否允许匿名用户访问
anon_umask=022                                    # 匿名用户所上传文件的权限掩码
anon_root=/var/ftp                                   # 设置匿名用户的FTP根目录
anon_upload_enable=YES                     # 是否允许匿名用户上传文件
anon_mkdir_write_enable=YES              # 是否允许匿名用户创建目录

anon_other_write_enable=YES          # 是否允许匿名用户有其他写入权 (改名,删除,覆盖)
anon_max_rate=0                                    # 限制最大传输速率(字节/秒) 0为无限制

 3.3 启动vsftp服务 

重新启动vsftpd服务

systemctl restart vsftpd

【如果此时报错一定是因为刚才配置文件内写错了,重新回去编辑。】

查看是否有vsftpd进程。

方法一:

ps aux | grep vsftpd

 方法二:

先下载好net工具

yum -y install net-tools

查看

netstat -lnpt | grep vsftpd

 3.4 登录验证

方法一:工具访问

使用Xftp工具登录。(需要提前下载)

进入Xftp后点击建立连接,主机输入IP地址,端口号改为21,点击连接。出现FTP用户身份验证窗口,点击匿名用户登录--确定。

出现pub文件夹,说明我们成功啦~

方法二:浏览器访问

首先先关闭好防火墙。

systemctl stop firewalld

在浏览器中输入ftp://+IP地址访问。【每个人IP不一样,不知道IP地址的使用ip a命令查看】

ftp://+IP地址

 3.5 修改权限上传

  3.5.1 修改权限

进入/var/ftp/中

cd /var/ftp/

ls命令查看下

查看pub文件夹的属主和属组

ll -d pub/

修改属主和属组

chown -R ftp.ftp pub/ 

修改完成后重新查看下,root变成ftp即表示修改成功。

修改完成后,一定不要忘记重新启动vsftpd服务(不重启服务不生效)

systemctl restart vsftpd

  3.5.2 上传文件

方法一:Xftp工具

关闭刚才打开的连接窗口,重新登录。(因为修改了属主和属组)

还是使用匿名登录,登录成功后,进入到pub目录,右击桌面的“新建RTF文档”--传输,在pub目录下出现“新建RTF文档.rtf”文件,说明我们成功啦!

这时候也可以使用ls命令查看。

方法二:浏览器

先创建个文件abc.txt

touch /var/ftp/abc.txt

还是使用ftp://+IP地址访问浏览器。

出现abc.txt文件,说明我们成功啦~

4 vsftp配置本地(系统)用户

 4.1 创建测试用户

创建两个用户zhansan、lisi

useradd zhansan
useradd lisi

设置密码

passwd zhansan
passwd lisi

 4.2 修改配置文件

vi /etc/vsftpd/vsftpd.conf

将原有内容删除,编辑如下内容:

local_enable=YES
local_umask=077
chroot_local_user=YES
allow_writeable_chroot=YES
write_enable=YES

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd

userlist_enable=YES
userlist_deny=NO
tcp_wrappers=YES

 编辑完成后保存退出。

重新启动vsftp服务

systemctl restart vsftpd

【如果遇到:Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.情况,请查看另一篇文章解决:http://t.csdnimg.cn/TXZhw

 4.3 常用的本地用户FTP配置项

local_enable=YES                        # 是否允许本地系统用户访问

local_umask=077                         #本地用户所上传文件的权限掩码

local_root=/var/ftp                         # 设置本地用户的FTP根目录

chroot_list_enable=YES                # 表示是否开启chroot的环境,默认没有开启

chroot_list_file=/etc/vsftpd/chroot_list                 # 表示写在/etc/vsftpd/chroot_list文件里面的用户 是不可以出chroot环境的,默认是可以的。
Chroot_local_user=YES                 # 表示所有写在/etc/vsftpd/chroot_list文件里面的用户是可以出chroot环境的,和上面的相反。

local_max_rate=0                          # 限制最大传输建率(字节/秒) 0为无限制

 4.4 添加用户到白名单

vi /etc/vsftpd/user_list

在文件中最后添加zhangsan和lisi

zhansan
lisi

 添加完成后重新启动vsftp服务

systemctl restart vsftpd

 4.5 登录测试

方法一:使用Xftp工具

再次使用匿名登录,发现登录不上去,显示“用户身份验证失败是否要重试”页面。

点击否。

在“FTP用户身份验证”页面用户名输入zhangsan或者lisi,输入密码登录。

cd /home/lisi/

创建zhangsan.txt文件 

touch lisi.txt

 重新启动vsftp服务

systemctl restart vsftpd

 重新启动后在Xftp工具中再重新登录一下。

发现出现lisi.txt文件,成功!

方法二:使用Xshell工具

点击新建

出现如下界面,名称随便起一个,主机输入IP地址。然后点击连接。

 在如下界面输入用户名lisi,并选择记住用户名。

输入密码。选择记住密码并点击确认。 

 进入后我们ls命令查看,发现没有文件。

我们跟方法一中一样在root用户下创建lisi.txt文件并重新启动vsftp服务,然后进行查看。

root用户终端

lisi用户终端

发现本来没有,现在出现lisi.txt文件,说明我们成功啦~

5 vsftp配置虚拟用户

 5.1 建立虚拟FTP用户账号

useradd -s /sbin/nologin vu

 5.2 创建虚拟用户文件

cd /etc/vsftpd/
vi user

 添加如下内容:

zhao
12345
zhang
12345

奇数行代表用户名,偶数行代表密码。【切记,如下账号和密码不能写在同一行中】

 5.3 创建数据文件

通过 db_load工具创建出 Berkeley DB 格式的数据库文件。

db_load -T -t hash -f user user.db

-f                  指定数据原文件
-T                 允许Berkeley DB的应用程序使用文本格式转换的DB数据文件
-t hash          读取文件的基本方法

ls命令查看。

出现user.db,证明我们成功啦

 5.4 建立支持虚拟用户的PAM认证文件

vi /etc/pam.d/vsftpd.vu

编写配置文件,最后的路径不要写错!

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

【对应刚才生成user.db文件 】

 5.5 修改配置文件

vi vsftpd.conf

编写如下内容。 

write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
guest_enable=YES
guest_username=vu
pam_service_name=vsftpd.vu
local_enable=YES
local_umask=077
chroot_local_user=YES
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user_dir

 5.6 常用的全局配置项

listen=YES                                #是否以独立运行的方式监听服务

listen_address=192.168.10.112               #设置监听FTP服务的IP地址

listen_port=21                                 #设置监听FTP服务的端口号

write_enable=YES                        #是否启动写入权限(上传、删除文件)

download_enable=YES                   #是否允许下载文件

dirmessage_enable=YES                #用户切换目录显示.message文件

xferlog_enable=YES                        # 启用日志文件,记录到/var/log/xferlog

xferlog_std_format=YES    # 启用标准的xferlog日志格式,禁用此项将使用vsftpd自己的格式

connect_from _port_20=YES        # 允许服务器主动模式 (从20端口建立数据连接)

pasv_enabTe=YES                        # 允许服务器被动模式
pasv_max_port=24600                   # 设置被动模式服务器的最大端口号
pasv_min_port=24500                        # 设置黄动模式服务的最小端口
pam_service_name=vsftpd                # 用户认证的PAM文件位置

(/etc/pam.d/vsftpd.vu)

userlist_enable=YES                        # 是否启用user_list列表文件
userlist_deny=YES                        # 是否禁用user_list中的用户

max_cIients=0                                #限制并发客户端连接数

max_per_ip=0                                # 限制同一IP地址的井发连接数
tcp_wrappers=YES                        #是否启用tcp_wrappers主机访问控制

chown_username=root                #表示匿名用户上传的文件的拥有人是root,默认关闭

ascii_upload_enable=YES           # 表示是否允许用户可以上传一个二进制文件,默认不允许

ascii_download_enable=YES        #代表是否允许用户下载个一个二进制文件,默认不允许
nopriv_user=vsftpd                        #设置支撑vsftpd服务的宿主用户为手动建立的vsftpd用户

async_abor_enable=YES                # 设定支持异步传输功能
ftpd_banner=welcome to Awei FTP servers          # 设定vsftpd的登录标语
guest_enable=YES                        # 设置启用虚拟用户功能

guest_username=ftpuser                 #指定虚拟用户的宿主用户

virtual_use_local_privs=YES                # 设定虚拟用户的权限符合他们的宿主用户

user_config_dir=/etc/vsftpd/vconf        # 设定虚拟用户个人vsftp的配置文件存放路径

 5.7 为用户建立独立的配置目录及文件

mkdir /etc/vsftpd/user_dir

ls命令查看

进入刚创建的文件夹

cd /etc/vsftpd/user_dir

 vi zhao用户

vi zhao

输入如下命令(虚拟用户数据的存放路径) 

local_root=/etc/vsftpd/data

 5.8 创建虚拟用户数据存放位置

cd ..返回上一目录

cd ..

创建data目录

mkdir data

授权

chmod 777 data/

 5.9 重启vsftp服务

systemctl restart vsftpd

 5.10 登录测试

使用Xftp工具,用户名zhao,密码12345,进行登录。

cd /etc/vsftpd/data

创建一个zhao.txt文件夹。

touch zhao.txt

重点:

本地用户和虚拟用户不能同时登录、因为认证方式只有一种

本地是 pam_service_name =vsftpd

虚拟是 pam_service_name =vsftpd.vu

Xftp工具中重新登录一下,发现有zhao.txt文件,即说明成功啦~

id zhao

查看是否有zhao用户,没有得啦,O(∩_∩)O哈哈~

创作不易,给个三连吧~

  • 59
    点赞
  • 219
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
你好!关于CentOS上的vsftpd配置,以下是一些基本步骤: 1. 首先,确保你已经安装vsftpd。可以使用以下命令进行安装: ```shell sudo yum install vsftpd ``` 2. 安装完成后,你可以编辑vsftpd配置文件。默认情况下,配置文件位于`/etc/vsftpd/vsftpd.conf`。你可以使用任何文本编辑器打开它,例如vi或nano。 ```shell sudo vi /etc/vsftpd/vsftpd.conf ``` 3. 在配置文件中,你可以进行一些常见的设置,例如: - 启用匿名访问:将`anonymous_enable`设置为`YES`。 - 禁用匿名访问:将`anonymous_enable`设置为`NO`。 - 设置本地用户访问:将`local_enable`设置为`YES`。 - 允许写入权限:将`write_enable`设置为`YES`。 - 设置本地用户的默认目录:使用`local_root`指定目录路径。 你可以根据你的需求进行相应的配置。 4. 修改完配置后,保存并关闭文件。然后重启vsftpd服务以使配置生效: ```shell sudo systemctl restart vsftpd ``` 5. 防火墙设置:如果你的CentOS服务器上启用了防火墙(如iptables或firewalld),请确保你已经打开了FTP端口(默认为20和21端口),以允许FTP连接。 如果你使用的是iptables,可以使用以下命令打开FTP端口: ```shell sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT sudo service iptables save sudo service iptables restart ``` 如果你使用的是firewalld,可以使用以下命令打开FTP端口: ```shell sudo firewall-cmd --add-port=20/tcp --permanent sudo firewall-cmd --add-port=21/tcp --permanent sudo firewall-cmd --reload ``` 这些是基本的vsftpd配置步骤,你可以根据你的需求进行进一步的配置和定制化设置。希望对你有所帮助!如果你还有其他问题,请随时提问。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mortalz7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值