Linux vsftpd服务配置

 

目录:

  1、FTP介绍

  2、安装vsftpd

  3、配置匿名用户登陆与上传删除文件

  4、配置vsftp本地账户认证登陆ftp

 

 

1、FTP介绍
文件传输协议(英文:File Transfer Protocol,缩写:FTP)是用于在网络上进行文件传输的一套标准协议。它工作于网络传输协议的应用层,使用客户/服务器模式,主要是用来在服务器与客户端之间进行数据传输。

FTP 其实是以 TCP 封包的模式进行服务器与客户端计算机之间的联机,当联机建立后,使用者可以在客户端端连上 FTP 服务器来进行文件的下载与上传,此外,也可以对 FTP 服务器上面的文档进行管理等。

 

FTP传输模式:
文件传输协议(File Transfer Protocol,FTP),基于该协议FTP客户端与服务端可以实现共享文件、上传文件、下载文件。
FTP基于C/S模式,FTP客户端与服务器端有两种传输模式,分别是FTP主动模式、FTP被动模式(默认的工作模式)。主被动模式均是以FTP服务器端为参照。

FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。

 

 

 

FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

 

 

 


在企业实际环境中,如果FTP客户端与FTP服务端均开放防火墙,FTP需以主动模式工作,这样只需要在FTP服务器端防火墙规则中,开放20、21端口即可。

 

2、安装vsftpd

# yum intall vsftpd
# ls /etc/vsftpd/vsftpd.conf          #默认主配置文件
# ls /var/ftp/                   #默认数据文件位置

 

vsftp 支持三种认证登陆方式:
1)、匿名登陆
2)、本地用户登陆
3)、虚拟用户模式登陆,本文暂不讨论


3、配置匿名用户登陆与上传删除文件
默认配置位置:

复制代码
# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES              #允许匿名用户登录FTP
anon_root=/var/ftp/pub              #设置匿名用户的登录目录(如需要,需自己添加并修改)
anon_upload_enable=YES              #打开匿名用户的上传权限
anon_mkdir_write_enable=YES          #打开匿名用户创建目录的权限
anon_other_write_enable=YES          #打开匿名用户删除和重命名的权限(如需要,需自己添加)
anon_umask=022                  #匿名用户的掩码(如需要,需自己添加,含义:如umask是022,这时创建一个权限为666的文件,文件的实际权限为666-022=644)
                         #anon_umask=022 这个能让我们用ftp这个账户新建目录或文件并修改,删除,查看文件属性可知所属是ftp:ftp.但无法删除所有者为0的文件。

local_enable=YES                 #以下默认配置保持不变
write_enable=YES
local_umask=022

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES                
复制代码

 

匿名ftp目录的权限设置:
  默认情况下,ftp的根目录为/var/ftp,为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问(vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的)。但是我们要匿名上传文件,需要“other”用户的写权限,正确的做法:
  在/var/ftp/pub中建立一个upload(名子自己起吧)文件夹,将个文件夹权限设置为777(也可以只修改文件夹所属人),在upload这个文件夹中,匿名用户可以上传文件、创建文件夹、删除文件等。

一般至此,便实现vsftpd匿名用户的上传下载了。

 

4、配置vsftp本地账户认证登陆ftp

/etc/vsftpd/vsftpd.conf       #FTP主配置文件
/etc/vsftpd/ftpusers         #拒绝用户登录到FTP服务器,系统默认是黑名单文件,且如果用户在ftpusers 里面,用户即使在白名单里面也无法登陆
/etc/vsftpd/user_list         #user_list需要参照userlist_deny来决定该文件是黑名单还是白名单

 

注意事项:
1): 配置文件中的userlist_enable=YES,启用"禁止用户名单"功能, ftpusers默认是黑名单文件,user_list需要参照userlist_deny来决定该文件是黑名单还是白名单。
2): userlist_deny=YES表示黑名单,userlist_deny-NO表示白名单。


创建测试用户:

# useradd -s /sbin/nologin ta
# echo '123456' |passwd --stdin ta

 

配置本地用户登陆ftp的vsftpd.conf文件:

复制代码
# cat /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO          #禁止匿名访问
local_enable=YES            #启用本地帐户
#local_root=/var/ftp/pub/upload    #表示所有认证的用户,登陆后,都直接进入到:/var/ftp/pub/upload 目录,不建议启用
write_enable=YES              #允许上传/下载文件
local_umask=022              #umask决定目录和文件被创建时得到的初始权限,022为8进制。文件=666-022,目录=777-022,默认不给x位权限(g和o)

dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES

chroot_local_user=YES          #建议配置为YES,chroot_local_user=YES时表示锁定用户在其【家目录】下, chroot_local_user=NO时表示不锁定用户在其主目录下,可以浏览根目录。

listen=YES
pam_service_name=vsftpd


userlist_enable=YES            #当userlist_enable=YES时,启用【禁用用户名单】功能。当userlist_enable=NO时,不启用上述功能。
userlist_deny=NO             #NO,表示/etc/vsftpd/user_list 为白名单,如果为YES,表示为黑名单

tcp_wrappers=YES
use_localtime=YES
dual_log_enable=YES
allow_writeable_chroot=YES
复制代码

以上就是配置的所有参数。


以下2项,做为可选参数配置:

chroot_list_enable=YES|NO     #当chroot_local_user=YES时,chroot_list_enable=YES表示开启白名单的功能,在 chroot_list名单中的用户不受限制,为例外用户。
                    #当chroot_local_user=NO时,chroot_list_enable=YES表示开启黑名单功能,在 chroot_list名单中的用户受到限制在其主目录下,其他的用户为例外。

#chroot_list_file
=/etc/vsftpd/chroot_list     #在此文件中添加例外用户,一行一个用户

 

posted on   tengq  阅读(626)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-06-07 1-VCP 框架

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示