Linux学习第十一章使用vsftpd服务传输文件

文件传输协议(FTP):为了能够在如此复杂多样的设备之间解决问题解决文件传输问题。

FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口

20端口用于数据传输

21端口用于接受客户端发出的ftp命令和参数

FTP协议主要用两种工作模式

主动模式:FTP服务器主动向客户端发起连接请求

被动模式:FTP服务器等待客户端发起的连接请求(默认工作模式)

vsftpd是一种非常安全的FTP守护进程,完全开源,免费,具有高安全性、传输速度快以及支持虚拟客户验证等其他ftp程序服务不具备的特点

使用yum安装vsftpd服务

iptables防火墙管理工具默认禁止了FTP传输协议的端口号,因此在正式配置vsftpd服务程序之前,为了避免这些默认的防火墙策略“捣乱”,还需要清空iptables防火墙的默认策略,并把当前已经被清理的防火墙策略状态保存下来:

[root@zhang ~]# iptables -F
[root@zhang ~]# service iptables save

由于vsftpd服务配置文件条目很多 但是大多数都是注释

所以通过grep -v 进行反选,结果发现只有十几条

[root@zhang vsftpd]# mv vsftpd.conf vsftpd.bak

[root@zhang vsftpd]# grep -v "#" vsftpd.bak > vsftpd.conf
vsftpd服务程序   

vsftpd作为更加安全的文件传输服务程序,允许用户以三种认证模式登陆到FTP服务器上

匿名开放模式:这是一种最不安全的认证模式,任何人都可以访问且不需要密码

本地用户模式:通过Linux的本地账号密码信息进行认证模式,相对第一种比较安全

虚拟用户模式:最安全的认证模式,他需要为FTP服务器建立用户数据库文件,虚拟出用来进行口令认证的账户信息,这些账号信息在服务器中是不存在的,仅供FTP服务程序进行认证。

 匿名访问模式

编辑配置文件

[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES
2 anon_umask=022
3 anon_upload_enable=YES
4 anon_mkdir_write_enable=YES
5 anon_other_write_enable=YES
6 local_enable=YES
7 write_enable=YES
8 local_umask=022
9 dirmessage_enable=YES
10 xferlog_enable=YES
11 connect_from_port_20=YES
12 xferlog_std_format=YES
13 listen=NO
14 listen_ipv6=YES
15 pam_service_name=vsftpd
16 userlist_enable=YES
17 tcp_wrappers=YES

关闭防火墙

[root@zhang ~]# iptables -F
[root@zhang ~]# service iptables save

在vsftpd服务程序的匿名开放认证模式下,其账户统一为anonymous,密码为空。而且在连接到FTP服务器后,默认访问的是/var/ftp目录,但是该目录权限为root,所以需要更新权限到ftp用户

chown -Rf ftp /var/ftp/pub

修改selinux策略

[root@linuxprobe ~]# getsebool -a | grep ftp 
[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

客户端连接服务器

ftp 192.168.10.10

d88f419785fbc56e85d070f1f81f6904cf8.jpg

本地用户模式

 

编辑配置文件

[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
5 dirmessage_enable=YES
6 xferlog_enable=YES
7 connect_from_port_20=YES
8 xferlog_std_format=YES
9 listen=NO
10 listen_ipv6=YES
11 pam_service_name=vsftpd
12 userlist_enable=YES
13 tcp_wrappers=YES

关闭防火墙

[root@zhang ~]# iptables -F
[root@zhang ~]# service iptables save

vsftpd服务程序所在的目录中默认存放着两个名为“用户名单”的文件(ftpusers和user_list)

如果在这两个文件中的用户皆为“黑名单”无法使用ftp登陆,所以需要将其去掉

在采用本地用户模式登录FTP服务器后,默认访问的是该用户的家目录,也就是说,如果用root,那么访问的是/root目录。

虚拟用户模式

第1步:创建用于进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。例如,我们分别创建出zhang和quan两个用户,密码均为redhat:

[root@linuxprobe ~]# cd /etc/vsftpd/
[root@linuxprobe vsftpd]# vim vuser.list
zhangsan
redhat
lisi
redhat

但是明文不够安全 所以需要进行加密,并授权

[root@zhang vsftpd]# db_load -T -t hash -f vuser.list vuser.db
[root@zhang vsftpd]# chmod 600 vuser.db

第2步:创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。FTP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。 创建并授权

[root@zhang ~]# useradd -d /var/ftproot -s /sbin/nologin ftpuser
[root@zhang ~]# chmod -Rf 755 /var/ftproot/

第3步:建立用于支持虚拟用户的PAM文件。PAM是一组安全机制的模块,系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。

[root@zhang ~]# vim /etc/pam.d/vsftpd.vu
auth       required     pam_userdb.so db=/etc/vsftpd/vuser
account    required     pam_userdb.so db=/etc/vsftpd/vuser

第4步:在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件的名称修改为vsftpd.vu,PAM作为应用程序层与鉴别模块层的连接纽带,可以让应用程序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM认证时,则需要在应用程序中定义负责认证的PAM配置文件,实现所需的认证功能。    

[root@zhang ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 guest_enable=YES
4 guest_username=virtual
5 allow_writeable_chroot=YES
6 write_enable=YES
7 local_umask=022
8 dirmessage_enable=YES
9 xferlog_enable=YES
10 connect_from_port_20=YES
11 xferlog_std_format=YES
12 listen=NO
13 listen_ipv6=YES
14 pam_service_name=vsftpd.vu
15 userlist_enable=YES
16 tcp_wrappers=YES

第5步:为虚拟用户设置不同的权限,即zhang可以创建 quan不可以

[root@zhang ~]# mkdir /etc/vsftpd/vusers_dir/
[root@zhang ~]# cd /etc/vsftpd/vusers_dir/
[root@zhang  vusers_dir]# touch quan
[root@zhang  vusers_dir]# vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

再次编辑配置文件

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
最后面加上   user_config_dir=/etc/vsftpd/vusers_dir

修改selinux,并重启vsftpd服务

[root@linuxprobe ~]# setsebool -P ftpd_full_access=on

注释:ftp> lcd /root 确定文件下载位置    get 文件名称  即下载文件

TFTP简单文件传输协议

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。顾名思义,它提供不复杂、开销不大的文件传输服务(可将其当作FTP协议的简化版本)。

不需要认证 效率高 。但是由于TFTP在传输文件时采用的是UDP协议,占用的端口号为69,因此文件的传输过程也不像FTP协议那样可靠

安装

[root@zhang ~]# yum install tftp-server tftp

配置文件

[root@zhang ~]# vim /etc/xinetd.d/tftp

9bf213a7390e53c691fcfea472aba8a04a7.jpg

 yes修改为no

重启xinetd服务并将它添加到系统的开机启动项中,以确保TFTP服务在系统重启后依然处于运行状态。考虑到有些系统的防火墙默认没有允许UDP协议的69端口,因此需要手动将该端口号加入到防火墙的允许策略中:

[root@zhang ~]# systemctl restart xinetd
[root@zhang  ~]# systemctl enable xinetd
[root@zhang  ~]# firewall-cmd --permanent --add-port=69/udp
success
[root@zhang  ~]# firewall-cmd --reload 
success

TFTP的根目录为/var/lib/tftpboot

[root@linuxprobe ~]# tftp 192.168.10.10
tftp> get readme.txt
tftp> quit

转载于:https://my.oschina.net/u/4159006/blog/3097935

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值