首页 > 其他分享 >Vsftpd

Vsftpd

时间:2023-05-11 15:12:05浏览次数:43  
标签:enable etc 用户 Vsftpd vsftpd YES 客户端

Vsftpd 文件传输服务

ftp是典型的C/S结构,由服务端跟客户端两个部分共同实现文件传输功能

一、Ftp工作原理

ftp采用TCP协议的20、21端口与客户端进行通信

  • 20端口:用于建立数据连接并传输文件数据

  • 21端口:用于建立控制连接,并传输ftp控制命令

二、ftp的传输模式

1、主动模式

首先由客户端向服务端的21端口建立ftp控制连接,当需要传送数据时,服务端从 20 端口主动向客户端发起连接。

在主动模式下, FTP客户端从任意端口5150(端口号>1023)发起一个FTP请求, 并携带自己监听的端口号5151(发送的端口号+1=监听端口号);随后服务器返回确认, 然后从服务器本地的20端口主动发起连接请求到客户端的监听端口5151, 最后客户端返回确认。

img

2、被动模式

首先由客户端向服务端的21端口建立ftp控制连接,当需要传送数据时,客户端向服务端的非20端口发送请求并建立连接数据

在被动模式中,命令连接和数据连接都由客户端来发起,如上图所示,客户端用随机命令端口5150向服务器的21命令端口发送一个PASV请求,然后服务器返回数据端口3267,告诉客户端我在哪个端口监听数据连接。然后客户端向服务器的监听端口3268发起数据连接,最后服务器回复确认。

vsftpd默认是被动模式。所以客户端要设置被动模式连接,如果到现在还没连接成功的看客户端有没有设置被动传输模式。

img

三、FTP 常见的服务端及客户端

1、常见的服务端程序

  • IIS、Serv-U
  • wu-ftpd、Proftpd
  • vsftpd(Very Secure FTP Daemon)

2、常见的 FTP 客户端程序

  • ftp 命令
  • CuteFTP、FlashFXP、LeapFTP、Filezilla
  • gftp、kuftp

四、部署 FTP 服务

1、把光盘挂载到/mnt下

mount /dev/cdrom /mnt

2、添加本地yum源

cd /etc/yum.repos.d && mkdir repo.bak
mv * repo.bak
vim  vsftp.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0

3、安装FTP 服务

yum -y install vsftpd

五、匿名用户访问

1、备份原 ftp 配置文件

cd /etc/vsftpd/
mv vsftpd.conf vsftpd.conf.bak
cat vsftpd.conf.bak |grep -v "^#"|grep -v "^$" > vsftpd.conf

2、修改配置文件

anonymous_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
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=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

image-20210721102519177

3、给予数据根目录写权限

cd /var/ftp
chmod o+w pub

4、启动服务

systemctl start vsftpd
systemctl enable vsftpd

5、ftp://IP可匿名登录访问

image-20210721104350645

image-20210721104441947

六、user_list文件限制用户登录

1、编辑/etc/vsdtpd/user_list文件,把允许登录服务的用户添加进文件

image-20210721105532858

Ps 此 ftpusers 文件中的所有用户都将禁止登陆,不管 user_list 文件中是否出现。

image-20210721105635423

image-20210721111138269

2、添加用户赋予密码

image-20210721105905780

3、编辑配置文件追加以下内容(记得把 anonymous_enable 配置改为 NO)

vim vsftpd.conf
userlist_enable=YES        # 启用 user_list 用户列表文件
userlist_deny=NO           # 不禁用 user_list 列表中用户登陆

4、重启vsftpd服务

systemctl restart vsftpd

5、测试 nlemon 用户不可以登陆访问

image-20210721111253312

6、验证 ylemon 用户可以登陆访问

image-20210721111328263

七、虚拟用户登录(常用)

vsftpd提供了三种认证方式,分别是:匿名用户认证、本地用户认证和虚拟用户认证。从安全的角度来说,虚拟用户最安全也是最常用的认证方式,下面开始配置虚拟用户。

1、创建vusers.list文件

vim /etc/vsftpd/vusers.list
tom
123123
jerry
456456

2、db_load 创建用户的数据库文件

cd /etc/vsftpd/
db_load -T -t hash -f vusers.list vusers.db
chmod 600 /etc/vsftpd/vusers.*

3、添加映射的本地用户

useradd -d /var/ftproot -s /sbin/nologin virtual
chmod 755 /var/ftproot/

4、添加编辑文件vsftpd.vu

vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
# 此句用于检查用户密码,数据库文件不要写后缀.db
auth     required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vusers

# 此句用于检查用户是否在有效期内,数据库支持虚拟用户的PAM认证文件。
account  required  /lib64/security/pam_userdb.so  db=/etc/vsftpd/vusers

5、编辑配置文件

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
allow_writeable_chroot=YES               # 必须,如果不加入此配置则无法登陆
local_enable=YES                         # 必须,本地系统用户访问
write_enable=YES                         # 必须,任何形式的写入方式
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
tcp_wrappers=YES
anon_umask=022                           # 必须,虚拟用户上传的默认权限掩码值
local_umask=022                          # 必须,本地用户上传的默认权限掩码值
guest_enable=YES                         # 必须,开启虚拟用户模式
guest_username=virtual                   # 必须,指定虚拟用户账号
pam_service_name=vsftpd.vu               # 必须,指定pam文件
user_config_dir=/etc/vsftpd/vusers_dir   # 必须,指定虚拟用户的权限配置目录

6、创建vusers_dir目录下的虚拟用户

mkdir /etc/vsftpd/vusers_dir
touch /etc/vsftpd/vusers_dir/tom
touch /etc/vsftpd/vusers_dir/jerry

7、为虚拟用户设置不同的权限

tom 权限设置

vim /etc/vsftpd/vusers_dir/tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

jerry 权限设置

# 如果不进行权限设置的话,默认该用户只有 登录、浏览、下载 的权限。

8、验证虚拟用户权限

  • 使用Tom虚拟用户登录服务,Tom可以登录、浏览、下载、上传、创建、删除
  • Jerry用户只能登录、浏览、下载、但无法上传

八、Vsftpd的常用配置项

1、修改 vsftpd 服务的监听地址、端口

image-20210721175156029

2、允许使用 FTP 服务器的被动模式

image-20210721175244990

3、限制 FTP 连接的并发数、传输速率

image-20210721175304895

标签:enable,etc,用户,Vsftpd,vsftpd,YES,客户端
From: https://www.cnblogs.com/ArMinLi/p/17391088.html

相关文章

  • vsftpd虚拟用户
    创建虚拟用户密码文件[root@web01vsftpd]#pwd/etc/vsftp[root@web01vsftpd]#catvir_usershyhftpshyhftpwebftpHTCH@trade#2014生产虚拟用户数据库[root@web01vsftpd]#db_load-T-thash-fvir_uservir_user.db[root@web01vsftpd]#chmod700/etc/vsftpd/vi......
  • vsftpd服务配置资料
    vsftpd配置详解vsftpd配置选项vsftpd.conf5vsftpd操作手册-完整版......
  • centos 7 下docker 部署vsftpd(docker-compose)
    启动命令:dockerrun-d-p21:21-p20:20-p21100-21110:21100-21110-v/opt/vsftpd/file:/home/vsftpd-eFTP_USER=admin-eFTP_PASS=1234\-ePASV_MIN_PORT=21100-ePASV_MAX_PORT=21110-ePASV_ADDRESS=0.0.0.0-ePASV_ENABLE=YES--nameftp\--restar......
  • vsftpd
    vsftpd是“verysecureFTPdaemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个UNIX类操作系统上运行的服务器的名字,它可以运行在诸如Linux、BSD、Solaris、HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的FTP服务器所不支持的特征。比......
  • 网络系统管理Linux环境——16.StorageSrv之VSFTPD
    题目要求服务器AppSrv上的工作任务3. VSFTPD禁止使用不安全的FTP,请使用“CSKGlobalRootCA”证书颁发机构,颁发的证书,启用FTPS服务;用户webadmin,登录ftp服务器,根目录为/we......
  • 40 openEuler搭建FTP服务器-配置vsftpd
    40openEuler搭建FTP服务器-配置vsftpd40.1vsftpd配置文件介绍用户可以通过修改vsftpd的配置文件,控制用户权限等。vsftpd的主要配置文件和含义如表1所示,用户可以根据需求......
  • 39 openEuler搭建FTP服务器-安装管理vsftpd服务
    39openEuler搭建FTP服务器-安装管理vsftpd服务39.1安装vsftpd使用vsftpd需要安装vsftpd软件,在已经配置yum源的情况下,通过root权限执行如下命令,即可完成vsftpd的安装。#......
  • vsftpd的一点SELinux设置
    在开了SELinux和防火墙的情况下,使用chroot_local_user=YES锁定用户在自己的home目录中,没想到vsftp的问题。FTP登录报错:500OOPS:cannotchangedirectory。下面来看看产......
  • VSFTPD的基础安全加固
    与SSL配置相关的设置(要添加)ssl_enabe=YES|NO#是否启用sslssl_sslv2=YES|NO#是否激活sslv2加密ssl_sslv3=YES|NO#是否激活sslv3加密ssl_tlsv1=YES|NO#是否激活tl......
  • vsftpd虚用户配置
    新建账号:saimeike、zhangsanvim/etc/vsftpd/vuser.list编辑文件内容如下:(账号的密码为下一行字符,不可有空行)saimeike000zhangsan000db_load-T-thash-f/etc/......