Linux_lftp服务器的搭建及登陆控制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sr_1114/article/details/83544995

 想要实现文件的远程传输可以使用scp命令和rsync命令,可以参考《Linux基础_文件在系统中的传输rsync》这篇博客,最近我又学到了ftp远程传输服务,只要在ftp服务器上下载相应的软件,将文件放到ftp的发布目录下,客户端只要登陆ftp服务器,就能浏览,下载,上传文件。
 要搭建ftp服务器很简单,只要下载其相应的软件vsftp服务端软件lftp客户端软件就完成了。
在安装软件之前,首先要将selinux内核级防火墙关闭,否则会影响客户端的登陆。编辑/etc/sysconfig/selinux文件,关闭selinux。

[root@localhost ~]# vim /etc/sysconfig/selinux

如下图编辑:
在这里插入图片描述
在改变selinux之后需要重启主机,让内核重新加载,识别selinux的值。
除此之外还需要修改防火墙配置,关闭防火墙或者如下方式将lftp服务加入防火墙策略:

[root@localhost ~]# systemctl start firewalld
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
[root@localhost ~]# firewall-cmd --reload #平滑加载火墙配置
[root@localhost ~]# firewall-cmd --list-all	#查看火墙策略
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ftp ssh	#如果此处有ftp则添加成功
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

下来就可以安装vsftp和lftp了:

[root@localhost ~]# yum install vsftpd -y	#安装服务端软件
[root@localhost ~]# yum install lftp -y	#安装客户端软件
[root@localhost ~]# systemctl start vsftpd 	#打开vsftpd
[root@localhost ~]# systemctl enable vsftpd	开机启动

下来客户端就可以进行测试,可以在本机上测试,也可以在别的主机上测试。

[root@localhost ~]# lftp 172.25.254.182

在这里插入图片描述
lftp的默认发布目录为/var/ftp/,所以在客户端登陆后看到的是pub目录。
像上面的这种方式是以匿名用户登陆的lftp,除此之外还可以用本地用户的身份登陆服务器,需要强调的是这里的用户是服务端的用户,不是客户端的用户,并且本地登陆的用户是具有创建,删除,上传和下载权限的。
我在我的服务端创建了一个westos用户,并给该用户一个密码:
在这里插入图片描述
在客户端使用westos用户登陆ftp服务器:

[root@foundation80 mnt]# lftp 172.25.254.182 -u westos

在这里插入图片描述

lftp中没有touch命令,可用的命令可以使用**?** 进行查看。
作为一个有尊严的服务器,是绝对不允许客户端在服务端为所欲为,所以需要对客户端的登陆进行控制,只要在lftp的配置文件/etc/vsftpd/vsftpd.conf中添加相应的参数,就可以进行控制。
常用的lftp配置文件参数:

anonymous_enable=YES		#允许匿名用户登陆
local_enable=YES		#允许本地用户登陆
write_enable=YES		#允许登陆的用户可写
anon_upload_enable=YES		#匿名用户可写
anon_root=/westos		#更改匿名用户登陆后的家目录(+)
anon_umask=022			#更改匿名用户上传文件的权限(+)
anon_world_readable_only=NO 	#匿名用户可以下载(+),此处设置为NO表示可以下载
anon_other_write_enable=YES 	#匿名用户可以删除(+)
anon_mkdir_write_enable=YES	#匿名用户可以makidr
anon_max_rate=1024000  		#1000K,控制下载速率(+)
max_clients=2			#最大链接数(+)

chown_uploads=YES		#更改用户登陆时的用户
chown_username=westos

local_root=/directory		#本地用户家目录修改
local_umask=077			#本地用户上传文件的保留权限

上列所有参数带(+)的,配置文件中是没有的,需要写入到配置文件中。下面是这些参数的示例,所有修改都在配置文件/var/vsftpd/vsftpd.conf中,并且在修改后重启服务,建议在客户端退出登陆后再重启vsftpd

禁止匿名用户登陆
在这里插入图片描述
重启服务后如下图,登陆成功是可以浏览到其内容,否则为失败:
在这里插入图片描述
禁止本地用户登陆
在这里插入图片描述
客户端再次登陆会出现530的报错,即成功禁止本地用户登陆:
在这里插入图片描述
相应的错误号如下:

530:认证失败,服务不给认证或者认证过程有问题
550:服务本身未开放这样的功能
553:本地文件系统权限过小
500:本地文件系统权限过大

禁止登陆的用户可写
在这里插入图片描述
默认情况下匿名用户只有读权限,本地用户有写权限,所以是对本地用户写权限的控制,如下图,本地用户westos登陆后不能上传和删除文件:
在这里插入图片描述
匿名用户可以上传文件
在这里插入图片描述
上传文件时会有553的报错,是因为文件权限过小导致的:
在这里插入图片描述
所以需要将pub目录的属性进行更改:

[root@localhost westos]# chgrp ftp /var/ftp/pub/
[root@localhost westos]# chmod g+w /var/ftp/pub/ 

将pub目录的组改为ftp是因为匿名用户再登陆时默认为ftp用户,在给pub的组加上w权限之后,保证所有的匿名用户可以上传文件:
在这里插入图片描述
更改匿名用户家目录
默认情况下匿名用户在登陆之后的目录为/etc/var,更改为/westos
在这里插入图片描述
在这里插入图片描述
允许匿名用户上传
更改匿名用户上传文件的权限,默认为077,更改为022之后,如下:
在这里插入图片描述
group和passwd文件为修改前,inittab文件为修改默认权限后的文件。

允许匿名用户可以下载
anon_world_readable_only=NO
在这里插入图片描述
允许匿名用户可以删除
anon_other_write_enable=YES
在这里插入图片描述
允许匿名用户可写
在这里插入图片描述
不存在touch命令
在这里插入图片描述
控制传输速率
执行以下命令生成一个大小为1000M的file文件:
在这里插入图片描述
正常情况下的传输速率如下:
在这里插入图片描述
将传输速率更改为1000K之后,传输速率明显变慢:
在这里插入图片描述
在这里插入图片描述
只允许同时存在2个链接
在这里插入图片描述
当有第三个链接时,登陆失败:
在这里插入图片描述
所有用户登陆的用户都为westos
在这里插入图片描述

在这里插入图片描述
修改之后在上传文件的所有人为westos,westos的id为1001
在这里插入图片描述
在这里插入图片描述
修改本地用户登陆的权限
在这里插入图片描述
group文件为修改之后上传的文件:
在这里插入图片描述
修改本地用户登陆的目录
本地用户默认登陆之后的目录为本用户的家目录,修改为/var/ftp:
在这里插入图片描述
在这里插入图片描述
除了以上这些参数外,还可以设置登陆黑名单,禁止一些用户登陆lftp服务器。涉及两个文件

/etc/vsftpd/user_list #临时黑名单
/etc/vsftpd/ftpusers #永久黑名单

将本地用户lee加入/etc/vsftpd/user_list文件之后,lee用户就不能登陆:
在这里插入图片描述
临时黑名单和永久黑名单最大的区别是,加入永久黑名单的用户永远不能登陆,但是加入临时黑名单的用户,在给配置文件加上以下参数之后,临时黑名单就转化为了白名单,只有在user_list文件中用户可以登陆,其余用户都禁止登陆:

userlist_deny=NO

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sr_1114/article/details/83544995