首页 > 其他分享 >SRE-第五周作业

SRE-第五周作业

时间:2023-08-16 17:38:14浏览次数:34  
标签:SRE 作业 用户 节点 etc 第五 MySQL 服务器 PAM

一、SUDO,PAM配置规范说明
(一)SUDO配置规范说明

1.1sudo权限的配置

sudo(superuser do)是 Linux 系统中一种很常用的权限管理机制,允许非 root 用户以特定的身份执行特定的命令。sudo 命令通过 /etc/sudoers 配置文件实现。

它允许已验证的用户以其他用户的身份来运行命令。其他用户可以是普通用户或者超级用户。然而,大部分时候我们用它来提权运行命令,以替代直接使用 root 用户的操作。sudo 命令与安全策略配合使用,安全策略可以通过文件 /etc/sudoers 来配置。其安全策略具有高度可拓展性,支持插件扩展。默认情况下 /etc/sudoers 是不能被任何人直接编辑的,因为它的权限是 440,虽然也可以对其赋予写权限后再编辑,可以使用 visudo 命令编辑该文件。

1.2.sudo的工作流程:

  • sudo 会读取和解析 /etc/sudoers 文件,查找调用命令的用户及其权限。
  • 然后提示调用该命令的用户输入密码,
  • 或者也可以通过 NOPASSWD 标志来跳过密码验证。 之后,sudo 创建一个子进程,调用 setuid() 来切换到目标用户。 最后,它会在上述子进程中执行参数给定的 shell 或命令。

1.3.理解 sudo 命令授权配置

  • USER/GROUP HOST=(USER[:GROUP]) [NOPASSWD:] COMMANDS
  • USER/GROUP: 表示需要被授权的用户或者组;如果是组则需要以 % 开头
  • HOST: 表示允许从哪些主机登录的用户运行 sudo 命令;ALL 表示允许从任何终端、机器访问
  • (USER[:GROUP]): 表示使用 sudo 可切换的用户或者组,组可以不指定;ALL 表示可以切换到系统的所有用户
  • NOPASSWD: 如果指定,则该用户或组使用 sudo 时不必输入密码
  • COMMANDS: 表示运行指定的命令;ALL 表示允许执行所有命令
# 允许 sudo 组执行所有命令
%sudo ALL=(ALL:ALL) ALL
 
# 允许用户执行所有命令,且无需输入密码
escape ALL =(ALL) NOPASSWD: ALL
 
# 仅允许用户执行 echo, ls 命令
escape ALL =(ALL) NOPASSWD: /bin/echo /bin/ls
 
# 运行本机的用户执行关机命令
escape localhost=/sbin/shutdown -h now
 
# 允许 users 用户组中的用户像 root 用户一样使用 mount、unmount、chrom 命令
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
(二)PAM配置规范说明

1.1PAM模块的含义:   PAM是一套应用程序接口,提供了一连串的验证机制,只要使用者将验证阶段的需求告知PAM后,   PAM就能够汇报使用者验证的结果(成功或者失败)

1.2PAM被调用的流程:   1.使用者执行/usr/bin/passwd时,并输入密码   2.passwd调用PAM模块进行验证   3.PAM模块会到/etc/pam.d/中找与程序passwd同名的配置文件   4.依据/etc/pam.d/passwd内的设置,引用相关的PAM模块逐步进行验证分析   5.将验证结果回传给passwd这只程序   6.passwd会根据PAM回传的结果决定下一步操作 1.3常用模块介绍: /etc/pam.d/login 登陆 /etc/pam.d/system-auth

1. auth 组件:认证接口,要求并验证密码。即使第一个模块失败,用来防止用户知道在哪个过程失败,主要目的是防止攻击。
2. account组件:检测是否允许访问。检测账户是否过期或则在末端时间内能否登陆。
3. password组件:设置并验证密码
4. session组件:配置和管理用户sesison。
5. required:该模块必须success才能进行继续。即使失败用户也不会立刻获知,直到所有相关模块完成。
6. requisite:该模块必须success才能使认证继续进行。
7. suffifient:如果失败则忽略。
8. optinal:忽略结果,不管是否失败。

1.4PAM模块主要配置文件说明:

/etc/pam.d/*:每个程序个别的 PAM 配置文件;
/lib64/security/*:PAM 模块文件的实际放置目录;
/etc/security/*:其他 PAM 环境的配置文件;
/usr/share/doc/pam-*/:详细的 PAM 说明文档.

1.5PAM模块里设定普通用户或组能打开的最多文件数量:

vim limits.conf:

* soft nofile 655350

hard nofile 655350
设置限制
  ulimit -a: 查看所有限制信息
  ulimit -n: 设置最大可以打开的文件数量

1.6PAM日志信息存放位置:

/var/log/secure
/var/log/messages
如果发生登陆错误或者无法预期的错误时,PAM会把信息记录在文件中,可以查看日志。
二、chrony搭建私有ntp服务

1.安装chrony

2.看看包里有哪些重要配置文件,chrony里面一个是/etc/chrony.conf配置文件,还有一个是/usr/bin/chronyc命令文件:

3.修改配置文件,将时间改成国内比较稳定的时间如:阿里云时间解析专用服务器

4.在客户端配置时间同步

5.用“chronyc sources“命令确认一下 修改后的时间同步设置是否已成功生效

三、说明CDN原理

CDN原理:

1.用户向浏览器输入www.a.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;

2.网站的DNS域名解析器设置了CNAME,指向了www.a.tbcdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;

3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;

4.用户向该IP节点(CDN服务器)发出请求;

5.由于是第一次访问,CDN服务器会通过Cache内部专用DNS解析得到此域名的原web站点IP,向原站点服务器发起请求,并在CDN服务器上缓存内容;

6.请求结果发给用户。
四、搭建智能DNS,实现不同地域客户端解析到不同主机
  1. 环境配置 :
两台主机分别添加两块网卡:
#第一台主机dns服务器:
eth0:10.0.0.5
eth1:192.168.10.2
#第二台主机为测试服务器:
eth0:10.0.0.11
eth1:192.168.10.5
#1.1.1.1 指的是北京
#2.2.2.2 指的是上海
  1. 服务器安装bind:
yum -y install bind bind-utils
  1. 修改配置文件:
vim /etc/named.rfc1912.zones.bj

vim  /etc/named.rfc1912.zones.sh

vim /etc/named.conf

vim magedu.org.zone.bj

vim magedu.org.zone.sh

  1. 启动bind服务:
  systemctl start named
  1. 查看bind服务状态:
systemctl status named

  1. 测试服务器测试:

五、解释DNS解析流程

(1)客户机发出请求解析域名www.google.com的报文

(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器10.1.1.1则向根域名服务器发出请求解析域名www.google.com

(3)根域名服务器收到请求后查询本地记录得到如下结果:google.com NS dns.google.com (表示google.com域中的域名服务器为:dns.google.com ), 同时给出dns.google.com的地址,并将结果返回给域名服务器10.1.1.1

(4)域名服务器10.1.1.1 收到回应后,再发出请求解析域名www.google.com的报文.

(5)域名服务器10.1.1.1收到请求后,开始查询本地的记录,找到如下一条记录:www.google.com A 64.233.189.104(表示google.com域中域名服务器dns.google.com的IP地址为:64.233.189.104),并将结果返回给客户本地域名服务器10.1.1.1

(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机.
六、iptables 5表5链解释

iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。

五表:
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现
五链:
INPUT, 进内核(包含:filter,mangle)
OUTPUT, 出内核(包含:filter,nat,mangle,raw)
FORWARD, 转发(包含:filter,mangle)
PREROUTING,前置路由检查(包含:nat,mangle,raw)
POSTROUTING 后置路由检查(包含:nat,mangle,raw)
三种报文:
到本机某进程的报文:PREROUTING –> INPUT
由本机转发的报文:PREROUTING –> FORWARD –> POSTROUTING
由本机的某进程发出报文(通常为响应报文):OUTPUT –> POSTROUTING
七、iptables/firewalld/nftable 实现主机防火墙。5000-6000端口仅192.168.0.0/24网段内的主机访问
iptables:
iptables -A INPUT 192.168.0.0/24 -p tcp -m multiport --dports 5000:6000 -j ACCEPT

firewalld:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24" port protocol="tcp" port="5000:6000" accept"

nftable:
nft add rule ip filter INPUT ip saddr 192.168.0.0/24 tcp dport {5000-6000} ct state new,established counter accept
八、mysql的各发行版有哪些
1. MySQL 5.5

MySQL 5.5是MySQL 5.x系列中的一个版本。该版本于2010年底推出。MySQL 5.5的主要目的是提高性能和稳定性。以提高多核CPU的利用率、改进查询执行时间、提高InnoDB存储引擎的性能为重点。

2. MySQL 5.6

MySQL 5.6是MySQL 5.x系列中的一个版本。该版本于2013年初推出。MySQL 5.6主要改进了InnoDB和存储过程。它还增加了一些新的功能和特性,包括前缀索引、Memcached API和InnoDB表压缩等。

例如,下面是MySQL 5.6中新加的一些参数:

– binlog_checksum:用于启用/禁用二进制日志校验和。

– thread_handling:可配置线程池的行为。

– log_slow_rate_limit:设置慢查询日志的速率限制。

3. MySQL 5.7

MySQL 5.7是MySQL 5.x系列中的一个版本。该版本于2015年推出。MySQL 5.7引入了新的JSON数据类型,改进了GIS功能,支持全文索引,加强了安全性,提高了性能。

MySQL 5.7的新特性包括:

– 消除了MSISAM存储引擎,并使用InnoDB作为默认存储引擎。

– 增加了NO_ZERO_DATE和NO_ZERO_IN_DATE设置。

– 允许使用MySQL Connector/Python新的X DevAPI和X Plugin的Python API。

– 增加在线重做日志文件。

4. MySQL 8.0

MySQL 8.0是MySQL 6.x系列中的一个版本。该版本于2018年推出。MySQL 8.0引入了一些新功能和改进。例如,增加了支持IPv6、在线数据定义语言(DDL)操作、全球事物ID(GTID)、数据字典等。

MySQL 8.0的新特性包括:

– 增加了window函数和common table表达式。

– 增加了rudderless replication。

– 改进了锁策略以提高并发性能。

– 增加了对云平台的支持。
九、mysql索引的作用
索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引擎实现.
·索引可以降低服务需要扫描的数据量,减少了IO次数
·索引可以帮助服务器避免排序和使用临时表
·索引可以帮助将随机I/O转为顺序I/0
十、mysql btree索引的原理
二叉树导致树高度非常高,逻辑上很近的节点,物理上非常远,无法利用局部性,IO 次数多,查找效率低

Btree是一种平衡的m-way查找树,它可以利用多个分支节点(子树节点)来减少查询数据时所经历的节点数,从而达到节省存取时间的目的。m称为B-Tree的度。

B 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点。

特点

有一个根节点,根节点只有一个记录和两个孩子或者根节点为空;

每个节点记录中的key和指针相互间隔,指针指向孩子节点;

d是表示树的宽度,除叶子节点之外,其它每个节点有[d/2,d-1]条记录,并且些记录中的key都是从左到右按大小排列的,有[d/2+1,d]个孩子;

在一个节点中,第n个子树中的所有key,小于这个节点中第n个key,大于第n-1个key;

所有的叶子节点必须在同一层次,也就是它们具有相同的深度;

由于B-Tree的特性,在B-Tree中按key检索数据的算法非常直观:首先从根节点进行二分查找,如果找到则返回对应节点的data,否则对相应区间的指针指向的节点递归进行查找,直到找到节点或找到null指针,前者查找成功,后者查找失败。
十一、mysql安全加固
一、更改默认端口

yf文件中修改端口号,并且在防火墙中开放该端口。

二、创建强密码

MySQL的安全性取决于账户和密码的安全性。我们需要创建强密码来保护MySQL。强密码应该包含大小写字母、数字和特殊字符,并且长度不少于8位。

三、限制远程访问

yfd-address参数,以限制只能在本地访问MySQL。如果需要远程访问MySQL,则应该使用SSH隧道或VPN来进行安全访问。

四、限制权限

MySQL的权限控制非常重要,因为它可以确保只有授权用户才能访问和修改数据库。我们需要限制权限,只授予必要的权限。可以使用GRANT和REVOKE命令来管理MySQL的权限。

五、定期备份

ysqldump命令来备份MySQL数据库,并将备份文件保存在安全的地方。

六、更新MySQL版本

综上所述,对MySQL进行安全加固需要更改默认端口、创建强密码、限制远程访问、限制权限、定期备份和更新MySQL版本。通过这些措施可以提高MySQL的安全性,防止数据泄露和攻击。


标签:SRE,作业,用户,节点,etc,第五,MySQL,服务器,PAM
From: https://blog.51cto.com/u_15641727/7111261

相关文章

  • 搞懂 Vue3 中的各种 ref:toRef,toRefs,isRef,unref...
    在Vue3中,有许多与响应式相关的函数,例如toRef、toRefs、isRef、unref等等。合理地使用这些函数可以在实际开发中大大提高效率。本文将详细介绍这些函数的用法,让我们在实际开发中知道应该使用哪些API并能够熟练地回答面试官的相关问题。ref()大家对于ref这个API肯定都不......
  • 第五章:网络配置和管理
    第五章:网络配置和管理网络接口配置和网络工具:在Linux系统中,网络接口配置和网络工具是管理网络连接和进行网络故障排除的重要组成部分。以下是一些网络接口配置和网络工具的基本知识:网络接口配置:查看网络接口信息:使用ifconfig命令或ip命令查看系统中的网络接口信息。例如:ifconfigip......
  • 第五章 Gateway--服务网关
    5.1网关简介大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。 这样的架构,会存在着诸多的问题:客户端多次请求不同的微服务,增加客户端代码或......
  • 大二暑假第五周博客
    第五周,一些python的代码,有一些bug还没找出来{"cells":[{"cell_type":"markdown","id":"f427f82c","metadata":{},"source":["#第一题"]},{"cell_type&......
  • 假期第五周总结
    本周学习了python的一些语句,了解了Python的一些使用方法了解了Python与Hadoop生态系统的集成,学习了如何将Python与Hadoop生态系统工具进行集成,如使用Python编写MapReduce程序、使用PySpark进行数据处理等。通过编写Python与Hadoop生态系统工具的集成应用程序,实践将Python与Hadoo......
  • 第五周总结
    周一:明确学习目标和资源准备本周的第一天,我将明确自己的学习目标,确定学习重点和方向。我计划阅读相关的大数据领域的书籍和文档,如《大数据导论》、《Hadoop权威指南》等,以了解各种大数据技术和工具的基本概念和应用场景。此外,我也会寻找一些在线学习资源和教程,如网课、博客和视频......
  • 第五章 项目范围管理
    5.1规划范围管理项目范围:为交付具有规定特性与功能的产品、服务或成果而必须完成的工作。产品范围:某些产品、服务或成果所具有的特征和功能。  规划范围管理是为记录如何定义、确认和控制项目范围及产品范围,而创建范围管理计划的过程。本过程的主要作用是,在整个项目期间对......
  • 第五章 函数和正则
    第五章函数和正则5.1函数5.1.1内置函数5.2.1创建和调用函数定义函数的格式为:函数名<-function(参数列表){​ 函数体​ return返回值}注意:没有显式的“return”关键字声明应该从函数返回哪个值。在R中,函数中计算的最后一个值将自动返回。hypotenuse<-function(x,......
  • 第五周
    这周也有点忙,没有学很多东西,只是熟悉了一下javaweb的基本开发技术。前台技术html+css和后台技术javaweb+serverlet+sqlserver。顺便看了看《河北省高校第二届网络技能大赛模拟试卷》第三部分网站建设部分,下周打算努力的完成它。另外还看了一点关于have数据库的知识点,下学期开学......
  • SV 第五章 面向对象编程基础
    SystemVerilog验证5面向对象编程基础5.1概述对于Verilog和C语言来说,由于他们不是面向对象变成语言,数据的存储往往是分布式的,例如把数据、地址、指令分别保存在不同的数组里面,不利于程序的解读。面向对象变成使得用户可以创建复杂的数据类型,将数据类型紧密地结合在一起,可以在......