第五周作业

131 阅读8分钟

1.SUDO,PAM配置规范说明

sudo配置规范说明

授权规则配置文件
vim /etc/sudoers
sudoers配置规范
被授权用户名   登入主机=(代表用户)    命令
user          host=(runas)        command   此处需写该命令的绝对路径

pam配置规范说明

vim /etc/pam.d/
type    control  module-path  arguments
application:指服务名,如:telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务
type:指模块类型,即功能 
control :PAM库该如何处理与该服务相关的PAM模块的成功或失败情况,一个关健词实现 
module-path: 用来指明本模块对应的程序文件的路径名 
Arguments: 用来传递给该模块的参数

2.chrony搭建私有ntp服务

服务器配置

#服务器端配置 
[root@centos8 ~]#hostname -I 
10.0.0.8 
[root@centos8 ~]#yum -y install chrony 

[root@centos8 ~]#vim /etc/chrony.conf 
server ntp.aliyun.com iburst 
server ntp1.aliyun.com iburst 
server ntp2.aliyun.com iburst 

#allow 10.0.0.147 
allow 0.0.0.0/0  #加此行,指定允许同步的网段 
# Serve time even if not synchronized to a time source. 
local stratum 10 #删除此行注释,当互联网无法连接,仍然可以为客户端提供时间同步服务 

[root@centos8 ~]#systemctl restart chronyd 

#服务启动后会打开端口123/udp 

[root@centos8 ~]#ss -ntlu

客户端配置

vim /etc/chrony.conf
server 10.0.0.132 iburst

[root@rocky8 ~]#systemctl restart chronyd.service

[root@rocky8 ~]#chrony sources -v

3.说明CDN原理(Content Delivery Network)内容分发网络

image.png

  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. 请求结果发给用户

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

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

yum install bind -y
vim /etc/named.conf
#在文件最前面加下面行
acl beijingnet {
    10.0.0.0/24;
};
acl shanghainet {
    172.16.0.0/16;
};
acl othernet {
   any;
};
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// 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. (
                    2019042214 ; 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. (
                    2019042214 ; 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. (
                    2019042214 ; 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
chgrp named /var/named/magedu.org.zone.bj
chgrp named /var/named/magedu.org.zone.sh
chgrp named /var/named/magedu.org.zone.other
systemctl start named          #第一次启动服务
rndc reload                    #不是第一次启动服务

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

#分别在三台主机上安装http服务
#在web服务器1:10.0.0.8/24实现
yum install httpd                        
echo www.magedu.org in Other > /var/www/html/index.html
systemctl start httpd   
#在web服务器2:10.0.0.7/16
echo www.magedu.org in Beijing > /var/www/html/index.html
systemctl start httpd  
#在web服务器3:172.16.0.7/16
yum install httpd                        
echo www.magedu.org in Shanghai > /var/www/html/index.html
systemctl start httpd

客户端测试

#分别在三台主机上访问
#DNS客户端1:10.0.0.6/24 实现,确保DNS指向10.0.0.8
curl www.magedu.org
www.magedu.org in Beijing 
#DNS客户端2:172.16.0.6/16 实现,确保DNS指向172.16.0.8
curl www.magedu.org
www.magedu.org in Shanghai
#DNS客户端3:10.0.0.8 实现,,确保DNS指向127.0.0.1
curl www.magedu.org
www.magedu.org in Other

5.解释DNS解析流程

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

image.png

6.iptables 5表5链解释

Netfilter在内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、 PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具 (iptables)向其写入规则。

由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上。

image.png 三种报文流向

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

iptables由五个表table和五个链chain以及一些规则组成

链 chain:

  • 内置链:每个内置链对应于一个钩子函数
  • 自定义链:用于对内置链进行扩展或补充,可实现更灵活的规则组织管理机制;只有Hook钩子调 用自定义链时,才生效 五个内置链chain:
INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

五个表table:filter、nat、mangle、raw、security

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

表和链对应关系

image.png

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

image.png

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

MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0
MariaDB:5.1 -->5.5 -->10.0–> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5

9. mysql索引的作用

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

  • 优点: 索引可以降低服务需要扫描的数据量,减少了IO次数 索引可以帮助服务器避免排序和使用临时表 索引可以帮助将随机I/O转为顺序 I/O
  • 缺点: 占用额外空间,影响插入速度

10.mysql btree索引的原理

B-tree(查询效率时快时慢) 都要从树根去找,树叶中间没有关联,查的数据理论上有次序,但是中间没有任何关系,不知道下一个临近数据位子,记录根只能存16k数据,存放数据记录越少树越高,高IO次数多,效率越低

btree+索引(适用于范围性查找,左前缀逻辑搜索:以什么开头,包含或者以什么结尾不支持,因为排序安装第一个字母来排) 聚簇(集)索引、非聚簇索引:数据和索引是否存储在一起 查询的效率相对稳定的,因为无论查什么数据最终都要到叶子节点,树的高度不会很高、I/O次数少,根节点在内存中

11.mysql安全加固

  1. 更新和升级 MySQL:始终使用最新版本的 MySQL,以确保获得最新的安全修补程序和功能改进。
  2. 授权管理:严格控制数据库访问权限,使用最小权限原则,仅为用户提供其所需的最低权限,限制对敏感数据和操作的访问。
  3. 强密码策略:要求用户使用强密码,并定期更换密码。密码应包含大小写字母、数字和特殊字符,并且长度足够长。
  4. 检查默认账户和密码:删除或禁用默认的 MySQL 系统账户,如 root,以及空密码账户。
  5. 定期备份和恢复:执行定期的数据库备份,并验证可恢复性。在发生数据丢失或安全事件时,可以快速将数据库恢复到正常状态。
  6. 审计和日志记录:启用 MySQL 的审计和日志记录功能,包括访问日志、错误日志和查询日志等,以用于监控并追踪潜在的安全问题。
  7. 防火墙和网络安全:使用防火墙限制对 MySQL 服务器的访问,并确保仅允许来自信任的 IP 地址或子网的连接。
  8. 加密传输:通过使用 SSL/TLS 加密协议来保护数据库的传输数据,防止数据在传输过程中被窃取或篡改。
  9. 定期安全审查:进行定期的安全审查和漏洞扫描,及时修复发现的安全漏洞和问题。
  10. 监控和警报:设置监控系统来实时监视数据库的性能和安全状态,并配置警报以便在异常情况下及时采取行动。