当前位置: 首页 > news >正文

云原生俱乐部-RH134知识点总结(3)

这个系列的第二篇写了将近5000字,而且还是删节内容后的,如RAID就没写,因为头已经很大了。第二篇从早上写到下午,因为偷懒了,写着写着就停笔了。不过好在总算磨完了,现在开始写RH134系列的最后一篇内容。

我这更新的速度并不慢,虽然我一天的时间都在写,但是也没有其他要紧的事要做,除了再去刷RHCSA认证的练习题,现在只刷了一遍,第二遍还没开始。如果这篇文章写完的比较早的话,我就开始刷第二遍去了。


虽然是最后一篇,但是剩下的内容也不少,podman容器的内容我这里就不写了。主要讲讲访问网络附加存储、控制启动过程以及管理网络安全三个部分,第一个其实就是NFS服务,第二个则需要学习系统的启动过程,并学会修改root密码,第三个就是讲讲防火墙的应用。

访问网络附加存储

这一章节主要讲NFS服务,包括客户端和服务端,这两个可以单独安装,分别是nfs-server和nfs-comman。NFS实现访问远程主机目录像访问本地目录一样,主要是通过mount以及unmount命令,将远程主机目录挂载到本地。

[1]服务端导出NFS目录

主要是编写/etc/exportfs文件,可以通过export -v来查看导出的本机文件目录,如果修改了该文件,不需要重启nfs-server服务,可以用exportfs -r(相当于exportfs -ua+exportfs -a)来重新加载配置文件。

编写规则如/rhome *(rw,rsync)这样,意思是将本机的/rhome目录导出,允许网络上的任何主机访问,并且以读写的方式挂载,牺牲安全换性能,异步写入。也可以指定主机才能够访,如使用192.168.241.0/24(rw,sync)则是只允许特定网段的主机访问。

[2]客户端挂载NFS目录

客户端可以编写/etc/fstab来持久挂载,如server:/export /mountpoint nfs rw 0 0条目。这样就会在系统启动时自动挂载,不过推荐使用自动挂载器autofs,可以根据需要自动挂载文件系统。

autofs服务的诞生主要是解决非特权用户没有足够权限来使用挂载命令的问题,因为如果不使用挂载命令,那么普通用户就无法访问可移动介质。还有就是autofs会保持卸载状态,直到挂载点被访问。

但需要注意的是,autofs自动挂载服务是由 ​​root 用户预先配置和管理​​,但允许普通用户​按需触发挂载​​,无需赋予他们mount命令的权限。也就是说,规则还是特权用户定义的,但是允许普通用户访问。

[3]配置自动挂载服务

在/etc/auto.master叫映射配置文件,或者在/etc/auto.master.d目录下创建.autofs映射配置文件。有两种映射方式,一种是直接映射,另一种是间接映射。

在直接映射中,映射配置文件以/-开头,后面跟直接映射文件;至于间接映射,以基础目录开头,如/shares,后面跟简介映射文件。映射文件的后缀名称没有要求,和映射配置文件中的名称保持一致即可。

直接映射

在直接映射文件中,写出完整的挂载点路径,后面跟挂载选项和远程NFS目录,如/work -rw,sync server:/export。至于间接映射文件,则是以相对于基础目录的路径开头,如work -rw,sync server:/export。

间接映射

间接映射支持使用通配符导出多个远程主机目录,在间接映射文件中,以*开头。如* -rw,sync server:/export/&,这会将远程主机的/export目录下的所有目录挂载到基础目录下的同名目录中。

并且在使用 autofs ​​自动挂载​​时,​​无需手动创建本地挂载目录​​,autofs 会动态创建和销毁这些目录。对于使用mount命令来说,这种是不允许的,必须要确保挂载点目录存在才可以挂载。

控制启动过程

这节内容包括选择启动目标,重置root密码还有修复启动时出现的文件系统问题。前者可通过systemctl来切换系统启动时的目标,重置密码则需要在启动菜单项中编辑内核参数,进入救援模式,而修复文件系统的问题则需要进入紧急模式。

[1]选择启动目标

目标是系统必须启动以达到预期状态的一组systemd服务单元,在运行时也可以切换目标(无需重启系统,立即生效)使用systemctl isolate multi-user.target来切换。使用systemctl get-default可以查看系统启动时的默认目标,并可以通过systemctl set-default targetname来 替换。

[2]重置root密码

主要是在启动菜单中编辑救援内核条目的选项,然后ctrl+e来编辑,在linux行末尾添加rd.break,接着使用ctrl+x来启动。这会进入救援模式,按enter进入维护。这时处于​​内存中的临时根文件系统​​(即 initramfs 创建的救援环境),而 /sysroot 是原始系统的根目录。

我们先重新挂载根文件系统(/sysroot现在以只读的方式挂载),使用mount -o rw,remount /sysroot,然后使用chroot /sysroot切换根文件系统到/sysroot,之后就可以开始重置密码了,退出前使用touch /.autorelabel让系统重新标记所有文件的selinux上下文。

[3]修复文件系统问题

如果/etc/fstab中的文件编写错位u,会导致系统无法完成启动过程。这时候需要进入紧急模式,由于启动菜单项中并没有紧急模式,所以在启动菜单项的默认条目中按ctrl+e编写,在linux这行的末尾添加systemd.unit=emergency.target。

然后输入root密码进入维护模式,这时候根文件系统/处于只读状态,同样要重新挂载根文件系统。接着编写/etc/fstab文件,使用systemctl daemon-reload重新加载该文件,之后mount -a测试,没有问题就能够使用systemctl reboot重启系统了。

管理网络安全

上一节其实要写启动过程的,但是这里不太想写,后面会做补充内容的。现在的防火墙使用的是nftables框架,取代了iptables,支持运行时更新规则无需重启。这里主要是了解firewall-cmd如何使用,同时会用到firewalld服务的预定义区域。

[1]管理服务器防火墙

在预定义区域中,public和trusted这两个用的比较多。后者允许所有的流量,前者则除非与传出流量相关,或者是与ssh服务以及预定义服务匹配,否则拒绝一切传入流量。

防火墙通过通过划分网络环境简化防火墙管理(默认将lo网卡的流量通过预定义区域trusted),使用firewall-cmd --get-default-zone可以获得当前的默认区域,使用firewall-cmd --set-default-zone=ZONE可以修改默认区域。

firewall-cmd --permanent --add-port=22/tcp、5000-6000/udp这允许当前默认区域(可以使用--zone=ZONE来指定特定的区域)中的22端口和5000-6000端口被访问。

还有--add-service=http允许特定服务被访问,--add-source=192.168.241.0/24表示只允许特定网段的主机访问,这进一步限制​​只有特定源IP​​能访问当前区域已开放的端口/服务(其他IP会被拒绝,即使端口已开放)。

firewall-cmd --list-ports 可以查看当前区域开放的端口,使用firewall-cmd --list-all则可以查看所有允许的访问规则,使用firewall-cmd --reload则是重新加载修改后的防火墙规则。

[2]控制selinux端口标记

semanage port -l可以列出所有具有selinux上下文标签的端口,一般结合grep来过滤需要的端口。使用semanage port -a -t type -p tcp 80命令可以给80端口添加指定类型的selinux标签(-p是选择协议的意思)。

使用semanage port -d -t type -p tcp 80则是用来删除该端口的selinux标签,使用semanage port -m -t type -p tcp 80则是需改该端口的selinux标签。

http://www.lryc.cn/news/623481.html

相关文章:

  • PyCharm与前沿技术集成指南:AI开发、云原生与大数据实战
  • Spring Boot 项目配置 MySQL SSL 加密访问
  • Debug马拉松:崩溃Bug的终极挑战
  • 本地处理不上传!隐私安全的PDF转换解决方案
  • 华为云之Linux系统安装部署Tomcat服务器
  • Git 命令指南:从 0 到熟练、从常用到“几乎全集”(含常见报错与解决)建议收藏!!!
  • LintCode第137-克隆图
  • 学习游戏制作记录(玩家掉落系统,删除物品功能和独特物品)8.17
  • 《设计模式》工厂方法模式
  • 代码随想录算法训练营四十四天|图论part02
  • 天地图开发的优点
  • The Network Link Layer: 无线传感器中Delay Tolerant Networks – DTNs 延迟容忍网络
  • GANs生成对抗网络生成手写数字的Pytorch实现
  • VS Code配置MinGW64编译Apache Arrow C++库
  • 【k8s、docker】Headless Service(无头服务)
  • python+flask后端开发~项目实战 | 博客问答项目--模块化文件架构的基础搭建
  • C++算法题目分享:二叉搜索树相关的习题
  • 【前端基础】flex布局中使用`justify-content`后,最后一行的布局问题
  • ubuntu 24.04 安装
  • Android RxJava线程调度与性能优化指南
  • (一)前端面试(cookie/)
  • PostgreSQL导入mimic4
  • 数据结构代码分享-1 顺序表
  • 简单的 VSCode 设置
  • Oracle algorithm的含义
  • 基于Vue + Node能源采购系统的设计与实现/基于express的能源管理系统#node.js
  • Qt 5.5 的安装与配置(使用 VSCode编辑)
  • 【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十二节:网关安全-信息过滤
  • 基于多Agent的AFSIM复杂场景脚本生成技术(使用Claude Code)
  • 根号算法Ⅰ