linux网络服务学习(2):vsftp

1.什么是vsftp

vsftp是linux服务器上的一款使用ftp协议的软件,是linux上使用最广泛的ftp服务端软件

ftp协议是使用明文传输的,很不安全,一般用于局域网内的文件上传、下载

2.vsftp连接类型

ftp连接要用到2个端口:21、20端口。

21端口用于用户收发FTP命令,如登录等;20端口则用于传送上传、下载的数据

3.vsftp的2种工作模式

(1)主动模式(port模式)

(2)被动模式(passive)

(3)2种模式的选择

主动模式:传送数据时,服务器连接到客户端的端口。需要客户端开放端口给服务器

被动模式:传送数据时,客户端连接到服务器的端口。服务器端开放端口给客户端连接

linux中FTP默认是被动模式,因为客户端往往在防火墙后面,服务器很难连接到客户端。如果要把被动模式改为主动模式,可以在ftp界面下键入passive

4.vsftp的2种传输模式

(1)Binary模式(默认模式):不对数据进行任何处理。适合可执行文件、压缩文件、图片等

(2)ASCII模式:进行文本传输时,自动适应目标操作系统的结束符

(3)切换方式:在ftp互动界面中输入ascii就切换为ASCII模式,输入bin,就转换到Binary模式。

5.软件信息

服务端软件名vsftpd
客户端软件名ftp
服务名ftpd
配置文件/etc/vsftpd/vsftpd.conf

6.匿名登录

6.1安装ftp、vsftpd

yum -y install ftp vsftpd

需要BASE yum源,Media源安装不了

6.2开启ftp服务并设置为开机自启

systemctl start vsftpd
systemctl enable vsftpd

6.3使用匿名用户登录

(1)登录流程

在客户端键入命令:ftp FTP服务器ip

然后在用户名一栏输入ftp或anonymous,代表匿名用户

密码一栏直接回车跳过。这样就可以通过匿名用户登录上了

*匿名用户登录后的所在的服务器目录为/var/ftp,但不建议直接在这个目录下上传下载文件,因为所有的匿名用户都是使用这个目录,很容易造成文件混乱,所以最好再建一层三级目录

(2)权限设置

匿名用户的权限取决于2部分,一是ftp配置文件中对匿名用户的权限设置,二是登录后所在服务器目录的权限设置。

配置文件中匿名用户权限的设置见下表:

配置文件中有关匿名用户权限的设置作用在配置文件中的状态
anonymous_enable=YES启用匿名访问默认开启
anon_umask=022使匿名用户可以下载自己上传的文件无,需要手动写入
anon_root=/var/ftp匿名用户的FTP根目录无,需要手动写入
anon_upload_enable=YES允许上传文件默认被注释
anon_mkdir_wirte_enable=YES允许创建目录默认被注释
anon_other_write_enable=YES开放其他写入权(删除、覆盖、重命名等)无,需要手动写入

vim打开文件后可以通过/关键字来快速搜索

除此之外,还要通过chmod命令对FTP根目录的other用户权限进行设置

*如果出现下图这样的错误,说明是SElinux防火墙没关,在服务器端setenforce 0关闭SElinux防火墙即可

6.4 使用服务器本地用户登录

(1)登录流程

*在服务器端创建一个不可以登录系统,专用于FTP登录的用户:

useradd  -s  /sbin/nologin  ymyx

*给新创建的这个用户设置密码:

passwd  ymyx

通过上述方法创建不可登录系统的用户后,还需要修改/etc/shells文件,在文件中添加下图中的内容

如果是使用正常创建的可以登录系统的用户,则不需要修改/etc/shells

*在客户端登录FTP服务器:

ftp FTP服务器ip

并输入用户名与密码

(2)权限设置

配置文件中有关匿名用户权限的设置作用在配置文件中的状态
local_enable=YES启用服务器本地用户访问默认开启
local__umask=022使服务器本地用户可以下载自己上传的文件默认开启
local__root=/var/ftp服务器本地用户的FTP根目录无,需要手动写入
chroot_local_user=YES是否将用户禁锢在主目录默认被注释
chroot_list_enable=YES开启白名单,白名单中用户可以随意切换目录默认被注释
chroot_list_file=/etc/vsftpd/chroot_list白名单位置(需手动创建,在里面直接写用户名即可)默认被注释

经试验,在centos7环境下,配置文件中设置了chroot_local_user=YES后,客户端无法再用服务器本地账户登录FTP,需要在配置文件中额外加一条:allow_writeable_chroot=YES

(3)白名单与黑名单

*配置文件中可以设置允许登录FTP的白名单,以及不允许登录FTP的黑名单

黑名单:userlist_enable=YES&userlist_deny=YES

白名单:userlist_enable=YES&userlist_deny=NO

*黑名单配置文件: /etc/vsftpd/ftpusers

这个文件的优先级很高,只要在文件写入了用户名,不需要重启FTP服务就可以立即生效

6.5使用虚拟用户登录

虚拟用户是人为创建的,需要找一个本地用户作为映射。它的好处是,可以对不同的用户进行不同的权限设置,更灵活。

6.5.1建立虚拟用户数据库文件

vim /etc/vsftpd/vsftpd.user
#这个文件就是虚拟用户的数据库文件,但还需要转换为数据库格式。文件名称随意
#该文件的编辑格式为奇数行为用户名,偶数行为用户名密码

vsftpd.user内的格式见下图

db_load  -T  -t  hash  -f  vsftpd.user  vsftpd.db
#把文件转换为数据库的格式
#-T代表转换为数据库格式,-t hash代表使用hash加密,-f后接原文件

chmod 600 vsftpd.db
#修改权限为600,ftp强制的操作

6.5.2创建虚拟用户的映射用户

(1)创建映射用户

useradd  -d  /var/ftproot  -s  /sbin/nologin  xnyh
#-d后可以指定家目录

xnyh这个用户不需要设置密码,它的作用就是给虚拟用户提供一个家目录

(2)修改所映射的用户家目录权限

虽然虚拟用户是以服务器的一个本地用户为映射并使用其家目录的,但对于这个家目录而已,虚拟用户相当于other用户,因此要用chmod命令修改其权限

chmod 755 /var/ftproot

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

FTP登录默认是不会去找虚拟用户的数据库文件的,需要修改PAM认证文件。

(1)建立PAM配置文件

FTP原有的PAM认证文件是/etc/pam.d/vsftpd,可以直接对其进行修改,也可以复制一份再改名

cp -a /etc/pam.d/vsftpd  /etc/pam.d/vsftpd.pam
#复制一份PAM认证文件

vim  /etc/pam.d/vsftpd.pam
#把文件原有的内容都删掉,并添加下面两条内容
auth  required  pam_userdb.so  db=/etc/vsftpd/vsftpd
account  required  pam_userdb.so  db=/etc/vsftpd/vsftpd
#这里的/etc/vsftpd/vsftpd就是之前建立的虚拟用户数据库文件vsftpd.db,结尾的db省略掉了

(2)修改主配置文件

修改好PAM认证文件后,还需要修改FTP主配置文件:/etc/vsftpd/vsftpd.conf

*将pam_service_name=vsftpd改为pam_service_name=vsftpd.pam

#这代表登录模式将由本地用户登录转变为虚拟用户登录,二者不能同时存在

*还需要在其中添加:

guest_enable=YES

#开放映射

guest_username=xnyh

#使用的映射用户名

user_config_dir=/etc/vsftpd/dir

#虚拟用户的配置文件的目录位置,这个目录是自己创建的,名称随意。在这个目录下可以建立很多配置文件,每个配置文件对应一个虚拟用户

6.5.4给虚拟用户建立配置文件

(1)保持主配置文件中匿名用户的设置不变

因为虚拟用户与匿名用户在主配置文件中共用同样的配置,而且主配置文件的优先级高于自建的虚拟用户配置文件,所以不能在主配置文件中对匿名用户进行权限设置,只需保留最基本的即可:

anonymous_enable=YES

anon_umask=022

(2)建立虚拟用户的配置文件

虚拟用户配置文件的总目录就是/etc/vsftpd/dir(这是之前在主配置文件中自定义的),在其中创建与虚拟用户名相同的文件即为配置文件。

我之前在数据库文件中写入的4个虚拟用户是a1、a2、a3、a4,所以我就在/etc/vsftpd/dir下创建4个同名文件

(3)编辑配置文件内容

虚拟用户的权限语句与匿名用户一样,对不同用户进行不同的配置即可

anon_upload_enable=YES允许上传文件
anon_mkdir_wirte_enable=YES允许创建目录
anon_other_write_enable=YES开放其他写入权(删除、覆盖、重命名等)

6.5.5客户端登录

完成上述操作后,FTP客户端就可以使用虚拟用户进行登录了,登录流程与登录本地用户一样

6.6 ftp模式下的一些常用命令

cd、ls、pwd、mkdir

put:上传(可以用put+Tab键查看客户端当前目录下的文件)

mput:同时上传多个

get:下载

mget:同时下载多个

delete:删除文件

mdelete:同时删除多个文件

rmdir:删除目录

rename:重新命名

quit:退出

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值