第5周

LKzzZ / 2023-09-03 / 原文

第5周

1、SUDO,PAM配置规范说明

sudo配置规范说明:

配置文件格式说明:/etc/sudoers, /etc/sudoers.d/

配置文件中支持使用通配符 glob

? 任意单一字符
* 匹配任意长度字符
[wxc] 匹配其中一个字符
[!wxc] 除了这三个字符的其它字符
\x 转义
[[alpha]] 字母

格式说明:

user: 运行命令者的身份
host: 通过哪些主机
(runas):以哪个用户的身份
command: 运行哪些命令

sudoers的别名

User和runas:
username
#uid
%group_name
%#gid
user_alias|runas_alias
host:
ip或hostname
network(/netmask)
host_alias
command:
command name
directory
sudoedit
Cmnd_Alias

别名格式:

[A-Z]([A-Z][0-9]_)*

别名定义:

Alias_Type NAME1 = item1,item2,item3 : NAME2 = item4, item5

配置规范

被授权用户名    登录主机=(代表用户)   命令
user          host=(ALL)           command    此处写该命令的绝对路径

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
ju      ALL=(root)      /sbin/pidof,/sbin/ifconfig

pam配置规范说明:

vim /etc/pam.d/<APP>
type    control  module-path  arguments
1.APP:指定服务名,如:telnet、login、ftp等,服务名字“other”代表所有没有在该文件中明确配置的其他服务
2.type:指模块类型,即功能
linux-PAM有四种模块类型:认证管理(auth)、帐号管理(account)、会话管理(session)和密码管理(password)。一个类型可能有多行,它们按顺序依次由PAM模块调用。
3.control:PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关键词实现
控制标记分为五种:required、requisite、sufficient、optional、include
4.module-path:用来指明本模块对应的程序文件的路径名
即要调用模块的位置,如果是64位系统,一般保存在/lib64/security,同一模块可以出现在不同的类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型,编制了不同的执行函数。
5.arguements:用来传递给该模块的参数

2、chrony搭建私有ntp服务

服务端配置:

[20:37:00 root@rocky8 ~]#vi /etc/chrony.conf 
server ntp.aliyun.com iburst
server time1.cloud.tencent.com iburst
server s1b.time.edu.cn iburst
# Allow NTP client access from local network.
allow 10.0.0.0/8

[20:40:25 root@rocky8 ~]#systemctl restart chron
[20:40:41 root@rocky8 ~]#chronyc sources -v

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^- 203.107.6.88                  2   6    37    48  -7397us[-7397us] +/-   40ms
^* 106.55.184.199                2   6    37    59    +57us[+1618us] +/-   52ms
^? 202.112.1.34                  0   7     0     -     +0ns[   +0ns] +/-    0ns

客户端配置:

[20:37:31 root@Rocky8 ~]#vi /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.rocky.pool.ntp.org iburst
server 10.0.0.3 iburst

[20:47:11 root@Rocky8 ~]#systemctl restart chronyd
[20:41:58 root@Rocky8 ~]#chronyc sources 
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 10.0.0.3                      3   6    17    43  -8642ns[+1428ns] +/-   56ms

3、说明CDN原理

1.用户在浏览器输入访问的域名,操作系统向本地Dns查询域名的ip地址.
2.本地Dns向根DNS查询域名的顶级域名服务器(这里假设LocalDns缓存过期)  
3.根DNS将顶级域名dns记录回应给本地Dns,本地Dns向顶级域名服务器查询权限域名服务器
4.本地Dns得到权限域名dns记录后,向权限域名dns服务器查询域名的ip地址
5.权限域名dns服务器查询到域名记录后(一般是CNAME),回应给本地Dns
6.本地Dns得到域名记录后,向智能调度DNS查询域名的ip地址
7.智能调度DNS根据一定的算法和策略(比如静态拓扑,容量等),将最适合的CDN节点ip地址回应给本地Dns
8.本地Dns将得到的域名ip地址,回应给客户端
9.用户得到域名ip地址后,访问站点服务器
10.CDN节点服务器应答请求,将内容返回给客户端.(缓存服务器一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程)

4、搭建智能DNS,实现不同地域客户端解析到不同主机

CDN是实现互联网用户就近访问
公司内部局域网实现用户就近访问网络需使用ACL功能

步骤:
1.先创建两套数据库文件
2.vim /etc/named.conf修改named.conf配置文件
acl beijingnet {
    10.0.0.0/24;
    11.0.0.0/24;
};
acl shanghai {
    192.168.10.0/24;
    192.168.20.0/24;
};
删除配置文件中zone "." IN {}整体的内容
view  beijingview {
    match-clients { beijingnet; };
    include "/etc/named.rfc1912.zones.bj";
};
view  shanghaiview {
    match-clients { shanghainet; };
    include "/etc/named.rfc1912.zones.sh";
};
3.建立view ,将ACL和区域数据库文件实现对用关系,以实现智能DNS
vim /etc/named.rfc1912.zones.bj          
zone "." IN {                                       
    type hint;                              
    file "named.ca";
};
zone "magedu.org" {
                   type master;
                   file "magedu.org.zone.bj";
};
vim /etc/named.rfc1912.zones.sh
zone "." IN {                                       
    type hint;                              
    file "named.ca";
};
zone "magedu.org" {
                   type master;
                   file "magedu.org.zone.sh";
};

5、解释DNS解析流程

1、主机首先向其本地域名服务器进行递归查询。
2、本地域名服务器采用迭代查询,它先向某个根域名服务器查询。
3、根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器的IP地址。
4、本地域名服务器向顶级域名服务器进行迭代查询。
5、顶级域名服务器告诉本地域名服务器,下一次应查询的权限域名服务器的IP地址。
6、本地域名服务器向权限域名服务器进行迭代查询。
7、权限域名服务器告诉本地域名服务器所查询的域名的IP地址。
8、本地域名服务器最后把查询的结果告诉主机。

6、iptables 5表5链解释

5表

security -->raw-->mangle-->nat-->filter
五表解释:
filter:过滤规则表,根据预定义的规则过滤符合条件的数据包,默认表
nat:network address translation 地址转换规则表
mangle:修改数据标记位规则表
raw:关闭启用的连接跟踪机制,加快封包穿越防火墙速度
security:用于强制访问控制(MAC)网络规则,由Linux安全模块(如SELinux)实现

5链

INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
五链解释:
五链解释:
INPUT, 进内核(包含:filter,mangle)
OUTPUT, 出内核(包含:filter,nat,mangle,raw)
FORWARD, 转发(包含:filter,mangle)
PREROUTING,前置路由检查(包含:nat,mangle,raw)
POSTROUTING 后置路由检查(包含:nat,mangle,raw)

三种报文流向

流入本机:PREROUTING --> INPUT–>用户空间进程
流出本机:用户空间进程 -->OUTPUT–> POSTROUTING
转发:PREROUTING --> FORWARD --> POSTROUTING

7、iptables/firewalld/nftable 实现主机防火墙。5000-6000端口仅192.168.0.0/24网段内的主机访问

Iptables:
iptables -A INPUT -p tcp --dport 5000:6000 ! -s 192.168.0.0/24 -j REJECT
firewalld:
firewalld-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 port port=5000-6000 accept' 

8、mysql的各发行版有哪些 ?

MySQL Community Server是社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition企业版本,需付费,可以试用30天。
MySQL Cluster集群版,开源免费。
MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。
MySQL Workbench又分为两个版本:
               1.分别是社区版(MySQL Workbench OSS)
               2.商用版(MySQL Workbench SE)。

9、mysql索引的作用

索引是对数据库表中一列或者多列的值进行排序的一种结构,就像是一本书的目录,使用索引可以快速访问数据表中的特定信息,提高数据查询效率。

作用:
1. 大大加快数据检索的速度
2. 加速表和表之间的连接
3. 将随机I/O变成顺序I/O
4. 帮助引擎层避免排序和临时表

10、mysql btree索引的原理

B-Tree 结构的数据可以让系统高效的找到数据所在的磁盘块

B树的特征:

关键字集合分布在整颗树中;
任何一个关键字出现且只出现在一个结点中;
搜索有可能在非叶子结点结束;
其搜索性能等价于在关键字全集内做一次二分查找;
自动层次控制;

11、mysql安全加固?

安装部署完 MySQL 服务后,系统提供了一个安全加固脚本 mysql_secure_installation,用以实现:
# 安全加固脚本
    1) 设置安全强度密码
    2) 为root用户设置密码;
    3) 删除匿名账号;
    4) 取消root用户远程登录;
    5) 删除test库和对test库的访问权限;
    6) 刷新授权表使修改生效
 
 # 低版本安全加固脚本
    1) 为root用户设置密码;
    2) 删除匿名账号;
    3) 取消root用户远程登录;
    4) 删除test库和对test库的访问权限;
    5) 刷新授权表使修改生效