【Linux】-学习笔记09

第六章、nfs网络文件系统

1.nfs网络文件系统简介

NFS(Network File system,网络文件系统)是由SUN公司研制的UNIX表示层协议,它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源,主要在unix系列操作系统上使用。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

1.1NFS功能特点

  • 由于NFS支持的功能比较多,而不同的功能都会使用不同的程序来启动,
  • 每启动一个功能就会启用一些端口来传输数据,因此NFS的功能所对应的端口并不固定nfs一般使用未被使用的小于1024的端口用于传输
  • 但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口才能够连接

1.2.RPC(Remote Procedure Call)

由于当服务器在启动NFS时会随机选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port111来监听客户端的需求并向客户端响应正确的端口号。

1.3NFS的访问原理

1.server端的nfs向本机的RPC(portmap)注册服务和端口

2.client端的用户向本机RPC(portmap)提出远程访问请求

3.client端的RPC(portmap)向server端的RPC(portmap)请求获得用户需求nfs注册的端口

4.server端的RPC(portmap)向clinet端的RPC(portmap)发送nfs注册的端口

5.client端的RPC(portmap)在获得对应端口后直接向server端的nfs服务器请求访问并且挂载到client端的目录

在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册RPC若重新启动,原来注册的数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册

2.nfs服务的安装与部署

在服务端和客户端安装dnf install nfs-utils -y

安装后启动服务systemctl enable --now nfs.server

在服务器端建立一个/nfs文件

接着写一个文件vim /etc/exports

 

/nfs        192.168.0.0/24(ro,sync)
共享的目录    共享主机       (只读,先输入再同步)

编辑好之后让其生效

exportfs -rv

在另一台主机查看

showmount -e 192.168.0.200

3.客户端中挂载nfs

在该台主机中挂载

将服务器端的/nfs挂载到本机的/mnt/中
mount 192.168.0.200:/nfs /mnt/

查看挂载信息

测试:

在服务器端创建一个文件

在客户端查看

成功。

4.常用参数

vim /etc/exports
​
/nfs 192.168.0.0/24(rw,sync)
设置为读写操作
​
exportfs -rv

服务器端

客户端

我们修改参数之后在客户机建立一个文件flie2

在服务器端查看文件的权限信息如下所示

显示nobody的原因

all_squash      #客户端所有用户创建文件时,客户端会将文件的用户和组映射为匿名用户和组
no_all_squash   #客户端普通用户创建的文件的 UID 和 GID 是多少,服务端就显示为多少(默认设置)

如果不想显示nobody,可以修改参数为

vim /etc/exports   #服务器端
​
/nfs 192.168.0.0/24(rw,sync,no_root_squash)
​
exportfs -rv

此时在客户端建立文件file3时,在服务器端的显示就会是如下所示(由超级用户root创建的文件,就会显示root)

指定用户身份(指定用户lee)

vim /etc/exports    #服务器端/nfs 192.168.0.0/24(rw,sync,anonuid=1001,anongid=1001)exportfs -rv

此时建立的file4的文件属于指定用户lee的

5.nfs客户端动态挂载机制

dnf install autofs -y   #下载(在客户端下载)systemctl enable --now autofs  #启动通过cd /net/主机进入
cd /net/192.168.0.200

5.1设定动态卸载时间

vim /etc/autofs.confsystemctl restart autofs

我们退出,等待5s后df查看挂载信息,发现已经被卸载

5.2自定义动态挂载点

vim /etc/auto.master        #客户端修改主策略文件添加如下内容
/nfs                   /etc/auto.nfsshare
#最终挂载点的上层目录    #子策略文件

vim /etc/auto.nfsshare      #建立文件并编写内容添加如下内容
nfs1  -rw  192.168.0.200:/nfssystemctl restart autofs.service

进入/nfs/nfs1,查看挂载信息

5.3自动匹配策略

进入到哪个文件就自动挂载到哪个文件

服务器端建立文件

在客户端的

vim /etc/auto.nfsshare
​
编写
* -rw 192.168.0.200:/nfs/&

如下图所示,进入到哪个文件就自动挂载那个文件

第七章、SELinux

1.SElinux简介

SELinux是Security-Enhanced Linux的缩写,意思是安全强化的linux
SELinux 主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用
传统的访问控制在我们开启权限后,系统进程可以直接访问
当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞

在开启SElinux后

  • 会对进程本身部署安全上下文
  • 会对文件部署安全上下文
  • 会对服务使用端口进行限制
  • 会对程序本身的不安全功能做限制

开始设置两台主机(一台开启selinux,一台关闭selinux)

查看selinux的状态

getenforce
​
disbale为关闭状态

grubby --update-kernel ALL --args selinux=1   #修改内核参数,启动selinuxreboot   #重启

下载
dnf install vsftpd  -y  #文件传输
dnf install lftp -ysystemctl enable --now vsftpd

设置匿名用户可以登录

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
​
[root@localhost ~]# systemctl restart vsftpd

 设置上传功能

修改该文件的权限(pub用于存放可供用户公开访问的文件)

1.1对进程本身部署安全上下文

将两台主机设置好之后

ps axZ | grep vsftpd   #显示进程的 SELinux 上下文

如下所示,172.25.254.150是开启selinux的,会显示相关的selinux的上下文

192.168.0.200是关闭selinux的,不会显示相关的selinux的上下文

1.2会对文件部署安全上下文

我们建立文件leefile

ls -Z leefile    #用于显示文件或目录的 SELinux 上下文。

分别在两台主机中建立文件

在开启selinux的主机中无法查看到leefile

在关闭selinux的主机中可以查看到leefile

 

1.3会对服务使用端口进行限制

vim /etc/ssh/sshd_config

在该文件中修改端口号为2222,重启后发现

开启selinux的主机无法重新启动,但是关闭selinux的主机可以重新启动

1.4会对程序本身的不安全功能做限制

我们分别在两台主机中上传文件,

开启selinux的主机无法上传

关闭selinux的主机可以上传

getsebool -a | grep ftp
#getsebool是一个用于查看 SELinux 布尔值(Boolean values)的命令。SELinux 布尔值用于控制特定的 SELinux 策略规则,通过设置这些布尔值,可以允许或禁止某些操作。

2.selinux的工作原理

2.1SElinux的工作方式

SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源

  • 主体(subject):就是进程
  • 目标(object):被主体访问的资源,可以是文件、目录、端口等。
  • 策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全策略

targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;
strict:完整的SELinux限制,限制方面较为严格。

2.2SELinux 的安全上下文

安全上下文(security context):
主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。
最终文件的成功访问还是与文件系统的rwx权限设置有关
安全上下文的查看

文件的安全上下文
]# ls -Z
system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
unconfined_u:object_r:admin_home_t:s0 Desktop
进程的安全上下文
]# ps axZ | grep vsftpd
system_u:system_r:ftpd_t:s0-s0:c0.c1023 43035 ? Ss 0:00 /usr/sbin/vsftpd
/etc/vsftpd/vsftpd.conf

安全上下文用冒号分为四个字段:Identify:role:type:
身份标识(Identify):相当于账号方面的身份标识,主要有以下三种常见的类型:
root: 表示root的账号身份;
system_u: 表示程序方面的标识,通常就是进程;
unconfined_u:代表的是一般用户账号相关的身份。
角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有:
object_r: 代表的是文件或目录等文件资源;
system_r: 代表的是进程。
类型(type):在默认的targeted策略中,Identify与role字段基本上是不重要的,重要的在于
这个类型字段。而类型字段在文件与进程的定义不太相同,分别是:
type: 在文件资源上面称为类型。
domain: 在主体程序中则称为域
domain需要与type搭配,则该程序才能够顺利读取文件资源。
代表灵敏度,一般用s0、s1、s2来命名,数字代表灵敏度的分级。数值越大、灵敏度越高 

3.对于SElinux的管理及优化

SElinux有三种工作模式:

  • enforcing:强制模式,开始限制domain/type。

  • permissive:宽容模式,仅会有警告信息并不会实际限制domain/type的访问。

  • disabled:关闭,SELinux并没有实际运行。

3.1selinux的状态设置

1.查看SElinux当前状态查看

getenforce

2.临时更改SElinux的工作模式

setenforce 0|1

0 表示宽容模式
1 表示强制模式
setenforce只有在SElinux在激活状态下使用,不能用于开启或关闭SElinux

设置状态为Permissive,该状态下可以查看文件信息,但会有警告信息

cat /var/log/audit/audit.log   # Linux 系统中与审计(Audit)相关的日志文件

查看警告信息

3.2selinux对linux服务的影响

 1.服务的功能影响

在selinux开启的状态下上传文件是不允许的

但是可以修改

ftpd_anon_write --> off   #状态是off

修改后

setsebool -P ftpd_anon_write on

接着

chcon -t public_content_rw_t /var/ftp/pub/

此时可以上传

3.3服务的端口影响

vim /etc/ssh/sshd_config

修改端口为2222,重启不能运行

但是

semanage port -a -t ssh_port_t -p tcp 2222  #根据需求更改被允许使用的端口
​
semanage port -l | grep ssh  #查看服务被允许使用的端口

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/889072.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】LeetCode:LCR 078. 合并 K 个升序链表

题干: 给定一个链表数组,每个链表都已经按升序排列。 请将所有链表合并到一个升序链表中,返回合并后的链表。 解法:优先队列 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *ne…

minGW安装教程

一、下载 1.通过官网WinGW官网下载 http://www.mingw-w64.org 2.通过SourceForge网站下载MinGW https://sourceforge.net/projects/mingw/files/latest/download 二、安装 右键mingw-get-setup.exe,以管理员身份运行 点击Install安装 点击“Change”修改安装地…

BFS入门

目录 定义二叉树层次遍历电梯问题倒可乐BFS基本思想算法 四方访问 定义 BFS 通常是指广度优先搜索(Breadth - First Search),它是一种图形数据结构的遍历算法。从给定的起始顶点开始,首先访问起始顶点的所有邻接顶点,然…

如何将CSDN的文章保存为PDF?

目录 1、打开CSDN文章2、按F12或者鼠标右键选择检查并进入控制台3、在控制台输入以下代码4、然后回车(Enter)如果纵向显示不全就横向 1、打开CSDN文章 2、按F12或者鼠标右键选择检查并进入控制台 3、在控制台输入以下代码 (function(){ $("#side&q…

25考研软件工程 西南大学跟重庆大学哪个难?

需知晓,西南大学每年报考人数众多,可这不代表报考软件工程专业的人数就多呀,况且西南大学的优势学科并非工科,故而软件工程的报考热度不会如题主所言那般高呢。 其次得明白,软件工程专业上岸难度方面,重庆大…

普通算法——二维前缀和

二维前缀和 题目链接:https://www.acwing.com/problem/content/798/ 题目描述: 输入一个 n n n 行 m m m 列的整数矩阵,再输入 q q q 个询问,每个询问包含四个整数 ** x 1 , y 1 , x 2 , y 2 x1,y1,x2,y2 x1,y1,x2,y2 &…

Mock神器:Easy-Mock 私有化部署及使用介绍

在现代前后端分离的开发模式中,后端接口的数据模拟是一个常见且必要的需求。尤其是在后端接口尚未开发完成时,前端开发需要依赖模拟数据进行开发与测试。Easy-Mock 是一个非常流行的开源工具(虽然它已经停止更新好长时间了)&#…

Java的Mvc整合Swagger的knife4框架

Swagger的介绍 Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。使用Swagger,就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述 文件可以去更…

01_Node.js入门 (黑马)

01_Node.js入门 知识点自测 从 index.js 出发&#xff0c;访问到 student/data.json 的相对路径如何写? A&#xff1a;../public/teacher/data.json B&#xff1a;./public/student/data.json C&#xff1a;../student/data.json <details><summary>答案</sum…

2024.12.5——攻防世界Training-WWW-Robots攻防世界baby_web

2024.12.5—攻防世界Training-WWW-Robots 知识点&#xff1a;robots协议 dirsearch工具 本题与第一道Robots协议十分类似&#xff0c;不做wp解析 大致步骤&#xff1a; step 1 打开靶机&#xff0c;发现是robots协议相关 step 2 用dirsearch进行扫描目录 step 3 url传参r…

电脑无法识别usb设备怎么办?电脑无法识别usb解决方法

usb设备是我们常解除的外部操作以及存储设备&#xff0c;它可以方便用户数据传输以及操作输入。但在使用过程中&#xff0c;大家基本都碰到过电脑无法识别usb设备这种情况。这种情况下&#xff0c;我们应该怎么办呢&#xff1f;下面将为你介绍几种可能的原因和解决方法&#xf…

【学习总结|DAY014】Java面向对象高级-继承、多态

一、继承&#xff08;Inheritance&#xff09; 1. 概述 继承是面向对象编程的一种特性&#xff0c;允许我们定义一个类&#xff08;称为子类或派生类&#xff09;以继承另一个类&#xff08;称为超类或基类&#xff09;的功能。 2. 语法格式 public class Zi extends Fu {/…

筑起厂区安全--叉车安全防护装置全解析

在繁忙的工业生产领域中&#xff0c;叉车作为搬运工&#xff0c;穿梭于仓储与生产线之间。然而&#xff0c;叉车的高效运作背后&#xff0c;也隐藏着诸多安全风险&#xff0c;尤其是在那些空间狭小、物流繁忙的环境中。为了降低这些潜在的危险&#xff0c;叉车安全防护装置便成…

MS SQL SERVER服务自动停止解决

报错原因 电脑异常重启&#xff0c;导致 MS SQL server 服务启动后自动停止&#xff0c;在【计算机管理】-【事件查看器】-【windows日志】中进行查看系统错误日志&#xff0c;在【应用程序】下发现可能的错误信息&#xff1a; 传递给数据库 ‘model’ 中的日志扫描操作的日志…

网络安全信息收集(总结)更新

目录 重点&#xff1a; 前言&#xff1a; 又学到了&#xff0c;就是我们什么时候要子域名收集&#xff0c;什么时候收集域名&#xff0c;重点应该放前面 思考&#xff1a; 信息收集分为哪几类&#xff0c;什么是主域名&#xff0c;为什么要收集主域名&#xff0c;为什么要收…

使用 Postman 上传二进制类型的图片到后端接口写法

我们有的时候会有需求&#xff0c;就是通过 postman 传递二进制图片到后端接口&#xff0c;如下图&#xff1a; 那我们的 Java 接口需要怎么写呢&#xff1f; Spring Boot 接收这些数据的方式需要使用 RequestBody 注解来处理原始的二进制数据&#xff08;byte[]&#xff09;。…

Java Web 7 请求响应(Postman)

前言&#xff08;SpringBoot程序请求响应流程&#xff09; 以上一章的程序为例&#xff0c;一个基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。 而我们在开发web程序时呢&#xff0c;定义了一…

pytorch多GPU训练教程

pytorch多GPU训练教程 文章目录 pytorch多GPU训练教程1. Torch 的两种并行化模型封装1.1 DataParallel1.2 DistributedDataParallel 2. 多GPU训练的三种架构组织方式2.2 数据不拆分&#xff0c;模型拆分&#xff08;Model Parallelism&#xff09;2.3 数据拆分&#xff0c;模型…

【opencv入门教程】9.视频加载

文章选自&#xff1a; 一、VideoCapture类 用于从视频文件、图像序列或摄像头捕获视频的类。函数&#xff1a;CV_WRAP VideoCapture();brief 默认构造函数CV_WRAP explicit VideoCapture(const String& filename, int apiPreference CAP_ANY);brief 使用 API 首选项打开…

海外的bug-hunters,不一样的403bypass

一种绕过403的新技术&#xff0c;跟大家分享一下。研究HTTP协议已经有一段时间了。发现HTTP协议的1.0版本可以绕过403。于是开始对lyncdiscover.microsoft.com域做FUZZ并且发现了几个403Forbidden的文件。 &#xff08;访问fsip.svc为403&#xff09; 在经过尝试后&#xff0…