Linux 云计算 SRE 第五周学习作业

目录

一. SUDO,PAM配置规范说明

二. chrony搭建私有ntp服务

三. 说明CDN原理

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

五. 解释DNS解析流程

六. iptables 5表5链解释

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

八. mysql的各发行版有哪些 ?

九. mysql索引的作用

十.mysql btree索引的原理

十一. mysql安全加固?


 

一. SUDO,PAM配置规范说明

sudo配置规范

sudo:允许管理员让普通用户执行一些或全部的root命令的一个工具

sodo特性

sodo能够限制用户只在某台主机上运行某些命令

sudo提供了丰富的日志,详细地记录了每个用户的操作

sudo的配置文件是/etc/sudoers,他允许系统管理员集中的管理用户的使用权限和使用的主机,他所在的位置默认是在/etc/sudoers,属性必须为0440

配置文件

[root@centos7-10 ~]#vim /etc/sudoers

配置文件部分演示:

1 ## Sudoers allows particular users to run various commands as
  2 ## the root user, without needing the root password.
  3 ##
  4 ## Examples are provided at the bottom of the file for collections
  5 ## of related commands, which can then be delegated out to particular
  6 ## users or groups.
  7 ## 
  8 ## This file must be edited with the 'visudo' command.
  9 
 10 ## Host Aliases
 11 ## Groups of machines. You may prefer to use hostnames (perhaps using 
 12 ## wildcards for entire domains) or IP addresses instead.
 13 # Host_Alias     FILESERVERS = fs1, fs2
 14 # Host_Alias     MAILSERVERS = smtp, smtp2
 15 
 16 ## User Aliases
 17 ## These aren't often necessary, as you can use regular groups
 18 ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
 19 ## rather than USERALIAS
 20 # User_Alias ADMINS = jsmith, mikem
 21 
 22 
 23 ## Command Aliases

PAM配置规范 

 PAM:插件式的认证模块

具体的pam文件夹放在/lib/security目录下,服务文件夹放在/etc/pam.d目录下

pam——access.so模块的使用,控制访问sshd服务的主机和用户

1.修改需要使用这个模块的服务文件,如sshd:/etc/pam,d/sshd添加

acconut.required pam_access.so

2.修改模块的配置文件

/etc/security/access.conf

-:redhat:ALL EXCEPT 10.0.0

3.测试

ssh

ssh

pam_access.so根据主机、IP\用户\拒绝或允许访问


二. chrony搭建私有ntp服务

服务器端配置

[root@centos7-10 ~]#hostname -I                      #查询主机IP地址
10.0.0.10 
                  
[root@centos7-10 ~]#yum -y install chrony            #安装时间同步服务
Loaded plugins: fastestmirror
BaseOS                                                      | 3.6 kB  00:00:00     
https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed to connect to 2402:f000:1:400::2: Network is unreachable"
Trying other mirror.
epel                                                        | 4.7 kB  00:00:00     
(1/3): epel/group_gz                                        |  99 kB  00:00:00     
(2/3): epel/primary_db                                      | 7.0 MB  00:00:01     
epel/updateinfo                FAILED                                          
https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/repodata/90f0d2e74030c18dc289c854e1a89673052b65db89bac8bf52260a9c4bf1172d-updateinfo.xml.bz2: [Errno 14] curl#7 - "Failed to connect to 2402:f000:1:400::2: Network is unreachable"
Trying other mirror.
(3/3): epel/updateinfo                                      | 1.0 MB  00:00:00     
Determining fastest mirrors
 * epel: mirrors.aliyun.com
Package matching chrony-3.1-2.el7.centos.x86_64 already installed. Checking for update.
Nothing to do

[root@centos7-10 ~]# vim /etc/chrony.conf          #配置时间同步文件 
#添加以下内容
#阿里云
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
#腾讯
server time1.cloud.tencent.com iburst
#国家计时中心
server 210.72.145.44 iburst
 
#allow 192.168.0.0/16
allow 0.0.0.0/0                                      #添加此行,允许所以主机同步此服务器
 
[root@centos7-10 ~]#systemctl restart chronyd.service
[root@centos7-10 ~]# systemctl enable --now chronyd  #重启并设置开机启动chronyd服务
 
 
#服务器端chronyd服务配置完成

客户端配置 

[root@centos7-20 ~]#hostname -I
10.0.0.20 

[root@centos7-20 ~]# vim /etc/chrony.conf          #配置时间同步文件 
#添加以下内容
server 192.168.23.129 iburst
 
[root@centos7-20 ~]#systemctl restart chronyd.service
 
#确认同步成功
[root@centos7-20 ~]#chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- 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               
===============================================================================
^* 10.0.0.10                     3   6    17    28    +16us[-2354ns] +/-   18ms

三. 说明CDN原理

CDN的基本原理是在用户访问相对集中的地区和网络设置一些缓存服务器。当用户访问网站时,利用全局的负载均衡技术将用户的访问指向距离最近的缓存服务器,由缓存服务器代替源站响应用户的访问请求。这样一方面减轻了源站服务器的工作压力,另一方面使用户可就近取得所需内容,解决inter网络拥挤的的状况,提高用户访问网站的响应速度。
 

CDN的优点

本地cache加速,提高了企业站点的访问速度(尤其含有大量图片和静态页面站点)

跨运营商的网络加速,保证不同网络的用户都能得到良好的访问质量

远程访问用户权限根据DNS负载均衡技术智能自动选择cache服务器

自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,减少远程访问的带宽、分担网络流量、减轻源站点web服务器负载等功能

广泛分布的CDN节点加上节点之间的智能冗余机制,可以有效预防黑客入侵


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

利用view实现智能DNS

实验目的:搭建DNS主从服务器架构,实现DNS服务冗余

环境要求

五台主机

DNS主服务器个web服务器1:10.0.0.8/24,172.16.0..8/16

web服务器2:10.0.0.7/24

web服务器3:172.16.0.7/16

DNS客户端1:10.0.0.6/24

DNS客户端2:172.16.0.6/16 

前提准备

关闭SELinux

关闭防火墙

时间同步

实现过程

DNS主服务器网卡配置

# 配置两个IP地址

# eth0:10.0.0.8/24

# eth1:172.16.0.8/16

主DNS服务端配置文件实现view 

yum -y install bind-y

# 配置文件

/etc/named.conf

vim /etc/named.conf
 
#在文件最前面加下面行
acl beijingnet {
    10.0.0.0/24;
};
 
acl shanghainet {
    176.16.0.0/16;
};
 
acl othernet {
    any;
};
 
 
#注释掉下面两行
// listen-on port 53 { 127.0.01; };
// allow-query       { localhost; };
 
#其他略
 
 
#创建view
view beijingview {
    match-clients  {beijingnet; };
    include "/etc/named.rfc1912.zones.bj";
};
view shanghaiview {
    match-clients  {shanghainet; };
    include "/etc/named.rfc1912.zones.sh";
};
view otherview {
    match-clients  {othernet; };
    include "/etc/named.rfc1912.zones.other";
};
include "/etc/named.root.key";

 实现区域配置文件

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";
};
vim /etc/named.rfc1912.zones.other
zone"." IN {
    type hint;
    file "named.ca";
};
zone"magedu.org" {
    type master;
    file "magedu.org.zone.other";
};

 chgrp named /etc/named.rfc1912.zones.bj

 chgrp named /etc/named.rfc1912.zones.sh

 chgrp named /etc/named.rfc1912.zones.other

vim /var/named/magedu.org.zone.bj
 $TTL 1D
  @       IN SOA  master admin.magedu.org. (
                                           20230820        ; serial
                                           1D      ; refresh
                                           1H      ; retry
                                           1W      ; expire
                                           3H )    ; minimum
          NS      master
  master  A       10.0.0.8
  websrv  A       10.0.0.7
  www     CNAME   websrv
vim /var/named/magedu.org.zone.sh
$TTL 1D
  @       IN SOA  master admin.magedu.org. (
                                           20230821        ; serial
                                           1D      ; refresh
                                           1H      ; retry
                                           1W      ; expire
                                           3H )    ; minimum
          NS      master
  master  A       10.0.0.8
  websrv  A       172.16.0.7
  www     CNAME   websrv
vim /var/named/magedu.org.zone.other
$TTL 1D
  @       IN SOA  master admin.magedu.org. (
                                           20230822        ; serial
                                           1D      ; refresh
                                           1H      ; retry
                                           1W      ; expire
                                           3H )    ; minimum
          NS      master
  master  A       10.0.0.8
  websrv  A       127.0.0.1
  www     CNAME   websrv
[root@centos7-20 named]#systemctl restart named

 实现位于不同区域的三个WEB服务器 

客户端测试

 


五. 解释DNS解析流程

什么是DNS

DNS就是域名系统,是因特网中的一项核心服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS解析流程

1.客户端提出域名解析请求,并将请求发送给本地域名服务器

2.本地域名服务器收到请求后,首先查询本地缓存,如果有这条记录,则本地域名服务器直接返回查询结果

3.如果本地缓存没有记录,则本地域名服务器直接向根域名服务器发送请求,然后根域名服务器返回域的主域名(根的子域)的本地域名服务器。服务器的地址

4.本地服务器向上一步返回的域名服务器发送请求后,然后接受请求的服务器查询自己的缓存,如果没有该记录,则返回相关下级域名服务器端的地址

5.重复地4条,直到找到正确的记录

6.本地域名服务器将返回的结果保存到缓存中以备下次使用,并将结果返回给客户端

递归查询

是指DNS服务器在收到用户发送的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结果提交给用户。

迭代查询

是指DNS服务器在收到用户发送的请求时,并不直接回复查询结果,而是告诉另一台服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

DNS缓存

DNS缓存是将数据存储在靠近发起请求的客户端的位置,也可以说DNS数据是可以缓存在任意位置,最终目的是在此减少递归查询过程,可以提高用户请求响应速度。

六. iptables 5表5链解释

iptables由5个表tbale和5个链chain以及一些规则组成

 5表:filter、nat、mangle、raw、security

filter:过滤规则表,默认表,使用最广泛

nat:地址转换规则表

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)

优先级有高到低的顺序为: 

security --> raw --> mangle --> nat --> filter 

表和链的对应关系 

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

iptables

iptables -A INPUT  ! -s 192.168.0.0/24  -p tcp -m multiport --dports 5000:6000,80 -j REJECT
iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT ! -s 192.168.0.0/24 -p tcp -m multiport --dports 5000:6000,80 -j REJECT --reject-with icmp-port-unreachable
 
 iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        2   112 REJECT     tcp  --  *      *      !192.168.0.0/24         0.0.0.0/0            multiport dports 5000:6000,80 reject-with icmp-port-unreachable
 
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
 
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
 
#永久保存规则
yum -y install iptables-service
cp /etc/sysconfig/iptables{,.bak}
iptables-save > /etc/sysconfig/iptables
systemctl enable iptables.service 
systemctl mask firewalld.service nftables.service
 
#启动httpd服务
echo "www.magedu.org" >/var/www/html/index.html;systemctl start httpd

firewalld

systemctl start firewalld
firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.0/24 port port=70-80 protocol=tcp accept'
firewall-cmd --reload
firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
        rule family="ipv4" source address="192.168.0.0/24" port port="70-80" protocol="tcp" accept

nftable

nft list ruleset 
nft add table inet test_table
nft add chain inet test_table test_filter_input_chain { type filter hook input priority 0 \; }
nft add rule inet test_table test_filter_input_chain handle 0 ip saddr 10.0.0.20 reject
#一条规则白名单,不是192.168.0.0网段的就抛弃
nft add rule inet test_table test_filter_input_chain handle 0 ip saddr != 192.168.0.0/24 tcp dport {70-80} reject
nft -a list ruleset
table inet test_table { # handle 1
        chain test_filter_input_chain { # handle 1
                type filter hook input priority filter; policy accept;
                ip saddr 10.0.0.20 reject # handle 5
        }
}

八. mysql的各发行版有哪些 ?

MySQL 常见的发行版本:

MySQL 官方版本(社区版、企业版)
Percona MySQL:在 MySQL 官方发行版上进行二次开发
MariaDB

各个发行版本之间的区别和优缺点 

九. mysql索引的作用

索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键key,索引通过存储引引擎实现

优点:

  • 索引可以降低服务需要扫描的数据量,减少IO次数
  • 索引可以帮助服务器避免排序和使用临时表
  • 索引可以帮助将随机I/O转为顺序I/O

缺点:

  • 占用额外空间,影响插入速度

十.mysql btree索引的原理

 

B+ 树是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。 

B-Tree

  • 为了描述B-Tree,首先定义一条数据记录为一个二元组[key, data],key为记录的键值,对于不同数据记录,key是互不相同的;data为数据记录除key外的数据。那么B-Tree是满足下列条件的数据结构:
  • d为大于1的一个正整数,称为B-Tree的度。
  • h为一个正整数,称为B-Tree的高度。
  • 每个非叶子节点由n-1个key和n个指针组成,其中d<=n<=2d。
  • 每个叶子节点最少包含一个key和两个指针,最多包含2d-1个key和2d个指针,叶节点的指针均为null 。
  • 所有叶节点具有相同的深度,等于树高h。
  • key和指针互相间隔,节点两端是指针。
  • 一个节点中的key从左到右非递减排列。
  • 所有节点组成树结构。
  • 每个指针要么为null,要么指向另外一个节点。
  • 如果某个指针在节点node最左边且不为null,则其指向节点的所有key小于v(key1)v(key1),其中v(key1)v(key1)为node的第一个key的值。
  • 如果某个指针在节点node最右边且不为null,则其指向节点的所有key大于v(keym)v(keym),其中v(keym)v(keym)为node的最后一个key的值。
  • 如果某个指针在节点node的左右相邻key分别是keyikeyi和keyi+1keyi+1且不为null,则其指向节点的所有key小于v(keyi+1)v(keyi+1)且大于v(keyi)v(keyi)。


十一. mysql安全加固?

相关措施

配置密码复杂度

配置密码过期策略

限制mysql多次登录失败重试时间

禁止root账号登录

禁止空口令登录

根据用户的业务需要,配置其所需的最小权限

删除匿名账号

除root账号外,任何用户不应有mysql库user表的存取权限

执行安全加固脚本

安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:
为root用户设置密码
删除匿名账号
取消root用户远程登录
删除test库和对test库的访问权限
刷新授权表使修改生效

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

途中刂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值