linux就该这么学-11 vsftpd

1.文件传输协议

最早FTP,Telnet,HTTP协议传输数据用明文,为解决安全问题,发明了vsftpd

FTP有主动模式(服务器主动链接客户端)和被动模式(服务器等大地客户端发起请求)一般iptable主要是INPUT表规则多,所以如果想传数据,可以使用主动模式

1.1 安装

apt install vsftpd

2 vsftpd

2.1 配置

配置使用时,需合理配置防火墙,iptables默认禁止了ftp协议号:

iptables -F

iptables-save

有三种模式:

匿名方式 任何人可以无需密码登录服务器

本地模式 通过系统本地用户名和密码信息进行认证

虚拟用户模式 更安全的方式,为FSP服务单独建立用户数据库文件,虚拟出来进行密码验证的账户信息,这些信息在服务器系统中实际不存在,进攻FTP服务程序认证使用,这样即使黑客破解了账户信息也无法登录服务器(为什么?)

2.2 匿名模式

vim /etc/vsftpd.conf

添加如下配置

anoymous_enable=YES
anon_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

保存退出,重启vsftpd服务

执行ftp 192.168.80.136,连接目标主机,提示先后输入用户名和密码,登录提示no route to host,清空iptables表后就可以了。用户名输入anonymous,密码可以不输入直接回车

 

登录后根目录位于环境实际的/srv/ftp下,默认该目录下无内容,且该目录属主为root:ftp,所以anonymous无法创建文件夹

 

如果需要创建文件夹,可用root在此路径创个public,把属主改成ftp,然后就可以创文件夹了

 

 2.3 本地用户模式

即通过linux用户名密码认证登录,配置如下

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask-022 # 创的文件夹权限=777-umask =777-022=755

userlist_deny=YES

userlist_enable=YES

然后重启vsftpd服务,用一般用户登录

 用root登录,发现无法登录

 检查后发现userlist_deny=YES这个配置会检查文件/etc/ftpusers列出的用户,这些用户,即使密码正确,也无法ftp登录,功能类似黑名单,可以发现,root用户在该文件中

 在该文件中注释掉 root所在行,重启服务,重试root登录,发现成功登录

 2.4 虚拟用户模式

虚拟用户模式配置文件和manual都没提及,可以在官网看Manpage of VSFTPD.CONF (beasts.org)

1 配置如下

guest_enable=YES # 允许虚拟用户模式

guest_username=virtual # 该值为为虚拟用户模式创的一个用户的名称

pam_service_name=vsftpd.vu # 此处为虚拟用户认证的插件文件名,即一个可插拔模块文件的文件名

2 准备认证用户和密码,单数行是用户名,双数行是密码

将其用has转换为加密db文件

 

 3 虚拟用户登录后,由于登录后会默认位于用户home目录,但虚拟用户实际不存在就没有home用户目录,需要用实际用户home目录对虚拟用户home目录做个映射,禁止新创用户登录权限

4 创pam文件

pam是可认证插拔模块,即可以自定义认证信息,然后配置应用程序使用pam,pam认证路径为经处理的自定义认证文件

注意,此图/etc/pam.d/vsftpd.vir有个错误,pam_userdb.so db=/etc/virtual_user.db,要去掉.db后缀,否则用户无法登录!!

 

 再把配置文件的pam_service_name改对

5 为虚拟用户设置不同权限

每个用户权限单独配一个文件,如下图

 

在配置文件添加该用户配置文件夹

6 重启服务,验证

 

 

注意

7 总结下,弄的配置文件目前有这么多,理一下各文件意义

 3 TFTP 简单文件传输协议

TFTP是基于UDP的传输协议,可以视为FTP的简化版,协议端口号是69,不需要客户端权限认证

3.1 安装

apt install tftp tftpd

3.2 配置

tftp用xinet管理,安装完tftp后,需要修改xinet配置文件,将tftp服务开启

3.3 使用

类似vsftpd,tftp 192.168.80.136

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值