域名服务和DNS服务 MYSQL数据库

SUDO介绍

sudo 即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt, reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性 在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先 告知超级用户的密码。sudo于1980年前后推出,sudo使一般用户不需要知道超级用户的密码即可获得 权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信 息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为 “sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自 己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运 行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。 由于不需要超级用户的密码,部分Unix系统甚至利用sudo使一般用户取代超级用户作为管理帐号,例如 Ubuntu、Mac OS X等。

1,  sudo配置文件        

1.       /etc/sudoers

  2,安全编辑授权规则文件和语法检查工具

2 /usr/sbin/visudo

3,SUDO命令

3,sudo命令
ls -l /usr/bin/sudo
sudo -i -u wang 切换身份功能和 su 相似,但不一样,sudo必须提前授权,而且要输入自已的密码
sudo [-u user] COMMAND 
-V 显示版本信息等配置信息
-u user 默认为root
-l,ll 列出用户在主机上可用的和被禁止的命令
-v 再延长密码有效期限5分钟,更新时间戳
-k 清除时间戳(1970-01-01),下次需要重新输密码
-K 与-k类似,还要删除时间戳文件
-b 在后台执行指令
-p 改变询问密码的提示符号
 示例:-p "password on %h for user %p: "

PAM认证机制

1,pam介绍

PAM:Pluggable Authentication Modules,插件式的验证模块,Sun公司于1995 年开发的一种与认证 相关的通用框架机制。PAM 只关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的 API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配 置不同的认证方式而无需更改服务程序一种认证框架,自身不做认证

2,pam架构

 3.pam的工作原理

  PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证 文件(位于/lib64/security下)进行安全认证

 

PAM 配置文件格式说明

  • 通用配置文件/etc/pam.conf格式,此格式不使用

    application type control module-path arguments
    
  • 专用配置文件/etc/pam.d/ 格式

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

模块类型 

 

[09:37:39 root@rocky8_12 ~]#vim /etc/pam.d/sshd 
	#type		#Control	#path
  1 #%PAM-1.0
  2 auth       substack     password-auth
  3 auth       include      postlogin
  4 account    required     pam_sepermit.so
  5 account    required     pam_nologin.so
  6 account    include      password-auth
  7 password   include      password-auth
  8 # pam_selinux.so close should be the first session rule
  9 session    required     pam_selinux.so close
 10 session    required     pam_loginuid.so
 11 # pam_selinux.so open should only be followed by sessions to be executed in the user context
 12 session    required     pam_selinux.so open env_params
 13 session    required     pam_namespace.so
 14 session    optional     pam_keyinit.so force revoke
 15 session    optional     pam_motd.so
 16 session    include      password-auth
 17 session    include      postlogin

常用PAM模块

1 pam_nologin.so 模块

2 pam_limits.so 模块

3 pam_google_authenticator 模块

具体的模块使用参考官方文档

2,chrony搭建ntp服务

包:chrony

两个主要程序:chronyd和chronyc

chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算 机增减时间的比率,并对此进行补偿

chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计 算机上工作,也可在一台不同的远程计算机上工作

服务unit 文件: /usr/lib/systemd/system/chronyd.service

监听端口: 服务端: 123/udp,客户端: 323/udp

配置文件: /etc/chrony.conf

服务器端的配置,这里用阿里云的公共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 192.168.0.0/16
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 ~]#vim /etc/chrony.conf #打开配置文件

server 10.0.0.8 iburst  #添加这一行,这是将服务器配置的地址作为ntp服务器

[root@centos8 ~]#systemctl restart chronyd.service 
#确认同步成功,重启服务

[root@centos8 ~]#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.8                      3   6    77    29   -229us[-1154us] +/-   17m

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

 

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

5台主机

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

  1在主服务器中加入一个网卡,配置两个ip地址

#配置两个IP地址
#eth0:10.0.0.8/24
#eth1: 172.16.0.8/16
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
   inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group 
default qlen 1000
   link/ether 00:0c:29:f9:8d:90 brd ff:ff:ff:ff:ff:ff
   inet 10.0.0.8/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
   inet6 fe80::20c:29ff:fef9:8d90/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group 
default qlen 1000
   link/ether 00:0c:29:f9:8d:11 brd ff:ff:ff:ff:ff:ff
   inet 172.16.0.8/16 brd 172.16.0.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
   inet6 fe80::20c:29ff:fe11:8d90/64 scope link 
       valid_lft forever preferred_lft forever

   2主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";

3 实现区域配置文件,不同区域三个配置文件

vim /etc/named.rfc1912.zones.bj
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wangshiping.org" {
   type master;
   file "wangshiping.org.zone.bj";
};


vim /etc/named.rfc1912.zones.sh
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wangshiping.org" {
   type master;
   file "wangshiping.org.zone.sh";
};


vim /etc/named.rfc1912.zones.other
zone "." IN {
   type hint;
   file "named.ca";
};
zone "wangshiping.org" {
   type master;
   file "wangshiping.org.zone.other";
};



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

4 创建区域数据库文件,也是三个文件

vim /var/named/wangshiping.org.zone.bj
$TTL 1D
@   IN SOA master admin.wangshiping.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/wangshiping.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/wangshiping.org.zone.other
$TTL 1D
@   IN SOA master admin.wangshiping.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/wangshiping.org.zone.bj
chgrp named /var/named/wangshiping.org.zone.sh
chgrp named /var/named/wangshiping.org.zone.other

systemctl start named          #如果是第一次启动服务

rndc reload                #如果不是第一次重启服务

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

#分别在三台主机上安装http服务
#在web服务器1:10.0.0.8/24实现
yum install httpd                        
echo www.wangshiping.org in Other > /var/www/html/index.html

systemctl start httpd   
#在web服务器2:10.0.0.7/16
echo www.wangshiping.org in Beijing > /var/www/html/index.html

systemctl start httpd  
#在web服务器3:172.16.0.7/16

yum install httpd                        
echo www.wangshiping.org in Shanghai > /var/www/html/index.html
systemctl start httpd  

6客户端测试,这样就成功了

#分别在三台主机上访问
#DNS客户端1:10.0.0.6/24 实现,确保DNS指向10.0.0.8
curl www.wangshiping.org
www.wangshiping.org in Beijing 

#DNS客户端2:172.16.0.6/16 实现,确保DNS指向172.16.0.8
curl www.wangshiping.org
www.wangshiping.org in Shanghai

#DNS客户端3:10.0.0.8 实现,,确保DNS指向127.0.0.1
curl www.wangshiping.org
www.wangshiping.org in Other

5. 解释DNS解析流程

客户端 -->本机的hosts文件 --> (本地的DNS的缓存中) --> 如果本地缓存中没有,则去根DNS Server (recursion递 归) --> 根DNS服务器返回查询结果 (此种方式为递归查询)

DNS Server (DNS服务器缓存)--> 如果缓存中没有则去根服务器 DNS iteration(迭代) --> 根(服务器)--> 顶级域名DNS(例如.com .net)-->二级域名DNS…(例如 baudi,) -->返回DNS查询结果

(此方式为递归查询)

两种查询方式的区别在于本地缓存没有结果,需要去根服务器查询过程中,得到的结果是根服务器直接告诉结果 还是根服务器告诉你顶级域名让你自己去查询

6.iptables 5表5链解释

5表

filter:过滤规则表
nat:地址规则转换表
mangle:修改数据标记位规则表
raw: 关闭启动用的连接追踪机制,加快封包穿越速度
security:用于强制访问mac网络规则,有selinux实现

 

 五链

pre_routing:在对数据包做路由选择之前,将应用此链中的规则
input:当收到访问防火墙本机地址的数据包时,将应用此链中的规则
output:当防火墙本机向外发送数据包时,将应用此链中的规则
forward:当收到需要通过防火中转发给其他地址的数据包时,将应用此链中的规则,注意如果需要实现forward转发需要开启Linux内核中的ip_forward功能
post_routing:在对数据包做路由选择之后,将应用此链中的规则
 

iptables firewalld nftable

-L:list, 列出指定鏈上的所有规则,本选项须置后

-n:numberic,以数字格式显示地址和端口号

-v:verbose,详细信息 -vv 更详细

-x:exactly,显示计数器结果的精确值,而非单位转换后的易读值

--line-numbers:显示规则的序号 -S selected,以iptables-save 命令格式显示链上规则

常见组合

-vnL -vvnxL --line-numbers

规则管理:

-A:append,追加

-I:insert, 插入,要指明插入至的规则编号,默认为第一条

-D:delete,删除   (1) 指明规则序号  

                       (2) 指明规则本身

-R:replace,替换指定链上的指定规则编号

-F:flush,清空指定的规则链

-Z:zero,置零   iptables的每条规则都有两个计数器 (1) 匹配到的报文的个数

                                      (2) 匹配到的所有报文的大小之和

iptables -I INPUT -s 192.168.0.0/24 -p tcp --dport 5000:6000 -j ACCEPT



firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.0./24 port port=5000-6000 protocol=tcp accept

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

7,MySQL的发行版本

一、常见发行版本:
1、MySQL官方版本(分为社区版和企业版)

企业版性能略强,提供了更多的功能和工具

2、Percona MySQL

Percona是由MySQL最初开发者组成的一个社区,Percona MySQL是基于官方社区版本二次开发的,在MySQL官方社区版的基础上增加了一些MySQL官方企业版才有的功能,同时对官方社区版进行了一些优化,从目前公布的数据来看,Percona MySQL 性能是要优于MySQL官方社区版的。

Percona MySQL 下载地址:Percona Server for MySQL - Open Source MySQL Server Alternative

3、MariaDB

MariaDB是由MySQL初始创建者在MySQL被Oracle收购之后,又独立成立了一家公司,来开发的数据库。

其以MySQL5.5源代码为基础,发展起来。

MariaDB并不能完全和MySQL官方版完全兼容,但大多数功能是兼容的。

我们可以很容易的将数据从MySQL迁移到MariaDB上。

MariaDB 下载地址:Download MariaDB Server - MariaDB.org

8,mysql索引的作用

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

优点: 索引可以降低服务需要扫描的数据量,减少了IO次数

索引可以帮助服务器避免排序和使用临时表

索引可以帮助将随机I/O转为顺序 I/O

缺点: 占用额外空间,影响插入速度

索引类型: B+ TREE、HASH、R TREE、FULL TEXT

聚簇(集)索引、非聚簇索引:数据和索引是否存储在一起

主键索引、二级(辅助)索引 稠密索引、

稀疏索引:是否索引了每一个数据项 简单索引、

组合索引: 是否是多个字段的索引

左前缀索引:取前面的字符做索引

覆盖索引:从索引中即可取出要查询的数据,性能高

9,mysql btree索引的原理

 蓝色代表磁盘块,黄色代表指针

磁盘块包含数据项17,35,指针p1、p2、p3

p1表示小于17的磁盘块,p2表示17-35之间的磁盘块,p3代表大于35的磁盘块

真实的数据存放在叶子节点

查找数据10的过程如下:将磁盘1加载到内存,发生一次i/o,利用二分查找确定10在<17,锁定磁盘块1,p1指针;将磁盘2加载到内存,发生第二次i/o,锁定到p2指针;将磁盘6加载到内存,第三次i/o。通过二分查找找到10

10,MYSQL安全加固

  • 禁止MySQL以管理员账号权限运

  • 开启日志审计功能

  • 连接数设置

  • 设置可信IP访问控制

  • 安装最新补丁

  • ​​​​​​​如果不需要,应禁止远程访问

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值