運維第五周作業(yè)

  1. SUDO,PAM配置規(guī)范說明
    sudo:
    是允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個工具
    具體工作過程如下:
    當(dāng)用戶執(zhí)行sudo時,系統(tǒng)會主動尋找/etc/sudoers文件,判斷該用戶是否有執(zhí)行sudo的權(quán)限
    –>確認(rèn)用戶具有可執(zhí)行sudo的權(quán)限后,讓用戶輸入用戶自己的密碼確認(rèn)
    –>若密碼輸入成功,則開始執(zhí)行sudo后續(xù)的命令
編輯配置文件的方式
# sudoedit /etc/sudoers
# vim /etc/sudoers
# visudo

[root@oracle11g ~]# cat /etc/sudoers | grep -v "#"| grep -v "^$"
Defaults   !visiblepw
Defaults    always_set_home
Defaults    match_group_by_gid
Defaults    always_query_group_plugin
Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root    ALL=(ALL)   ALL        
%wheel  ALL=(ALL)   ALL
%wheel  ALL=(ALL)   NOPASSWD: ALL
%test  ALL=(ALL)       ALL

格式: who which_hosts=(runas) command

image.png

PAM
1、pam介紹
在linux中,PAM是指可動態(tài)加載驗證模塊,是一套共享庫,使本地系統(tǒng)管理員可以隨意選擇程序的認(rèn)證方式;因為可以按需要動態(tài)的對驗證的內(nèi)容進(jìn)行變更,所以可以大大提高驗證的靈活性。PAM使用配置“/etc/pam.d/”下的文件,來管理對程序的認(rèn)證方式。應(yīng)用程序 調(diào)用相應(yīng)的配置文件,從而調(diào)用本地的認(rèn)證模塊。
2、pam查看命令
通過ldd命令查看服務(wù)名,確定服務(wù)是否使用pam功能(pam服務(wù)對應(yīng)libpam*.so庫文件)

ldd /usr/sbin/sshd
        linux-vdso.so.1 =>  (0x00007fff1b8ef000)
        libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f579f2d8000)
        libpam.so.0 => /lib64/libpam.so.0 (0x00007f579f0cb000)

3、Linux系統(tǒng)PAM配置
/lib/security目錄存放pam模塊文件

pam_access.so 控制訪問者地址與賬號名稱
pam_listfile.so 控制訪問者的賬號名稱或登錄位置
pam_limits.so 控制為用戶分配的資源
pam_rootok.so 對管理員(uid=0)無條件允許通過
pam_userdb.so 設(shè)定獨立用戶賬號數(shù)據(jù)庫認(rèn)證

/etc/pam.d目錄存放使用pam的服務(wù)名

ogin -------/etc/pam.d/login
ipop3d -------/etc/pam.d/pop
vsftpd -------/etc/pam.d/ftp(編譯安裝)或/etc/pam.d/vsftpd(rpm安裝)
sshd -------/etc/pam.d/sshd
su -------/etc/pam.d/su

/etc/security/目錄存放pam認(rèn)證、鑒權(quán)時使用的配置文件,如limits.conf
通過配置文件增改刪進(jìn)程的鑒權(quán)規(guī)則

  1. chrony搭建私有ntp服務(wù)
    服務(wù)端配置
    1、服務(wù)端安裝chrony
    rpm -q chrony && > /dev/null || yum -y install chrony

2、服務(wù)端修改配置文件,注釋默認(rèn)時鐘地址添加網(wǎng)絡(luò)時鐘服務(wù)器地址

vim /etc/chrony.conf
#pool 2.pool.ntp.org iburst  #注釋掉自帶的
server ntp.aliyun.com iburst #和阿里云的服務(wù)器同步
server time1.cloud.tencent.com iburst #和騰訊云同步

# Allow NTP client access from local network.
#allow 192.168.0.0/16
allow 192.168.217.0/24 #加上這一行,指定允許同步的網(wǎng)段

# Serve time even if not synchronized to a time source.
#local stratum 10 #將這一行的注釋去掉。表示互聯(lián)網(wǎng)無法連接時,仍然可以為客戶端提供時間同步

3、重啟chrony服務(wù),并查看chrony端口是否啟用
systemctl restart chronyd.service

客戶端配置
編輯配置文件,并重啟chrony服務(wù)

1、修改配置為服務(wù)端地址
vim /etc/chrony.conf 
#注釋點默認(rèn)服務(wù)器,添加上之前設(shè)置好的時間服務(wù)器
#pool 2.pool.ntp.org iburst
server 192.168.217.132 iburst

2、重啟服務(wù)
systemctl restart chronyd.service 
  1. 說明CDN原理
    其實 CDN 就是內(nèi)容分發(fā)網(wǎng)絡(luò)的意思,其英文全稱為 Content Delivery Network。簡單地說,CDN 可以提前把數(shù)據(jù)存在離用戶最近的數(shù)據(jù)節(jié)點,從而避免長途跋涉經(jīng)過長途骨干網(wǎng),最終達(dá)到減少骨干網(wǎng)負(fù)擔(dān)、提高訪問速度的目的。

CDN 基本工作過程

1、瀏覽器發(fā)起圖片 URL 請求,經(jīng)過本地 DNS 解析,會將域名解析權(quán)交給域名 CNAME 指向的 CDN 專用 DNS 服務(wù)器。
2、CDN 的 DNS 服務(wù)器將 CDN 的全局負(fù)載均衡設(shè)備 IP 地址返回給瀏覽器。
3、瀏覽器向 CDN 全局負(fù)載均衡設(shè)備發(fā)起 URL 請求。
4、CDN 全局負(fù)載均衡設(shè)備根據(jù)用戶 IP 地址,以及用戶請求的 URL,選擇一臺用戶所屬區(qū)域的區(qū)域負(fù)載均衡設(shè)備,向其發(fā)起請求。
5、區(qū)域負(fù)載均衡設(shè)備會為用戶選擇最合適的 CDN 緩存服務(wù)器(考慮的依據(jù)包括:服務(wù)器負(fù)載情況,距離用戶的距離等),并返回給全局負(fù)載均衡設(shè)備。
6、全局負(fù)載均衡設(shè)備將選中的 CDN 緩存服務(wù)器 IP 地址返回給用戶。
7、用戶向 CDN 緩存服務(wù)器發(fā)起請求,緩存服務(wù)器響應(yīng)用戶請求,最終將用戶所需要偶的內(nèi)容返回給瀏覽器。

image.png
  1. 搭建智能DNS,實現(xiàn)不同地域客戶端解析到不同主機(jī)
    主DNS服務(wù)器操作
1、配置網(wǎng)卡
 [root@master01 ~]# hostname -I
 10.0.0.10 20.0.0.10


2、主配置文件vim /etc/named.conf
 # 在最上方添加
 acl beijingnet {
     10.0.0.0/24;
 };
 
 acl shanghainet {
     20.0.0.0/24;
 };
 
 acl othernet {
     any;
 };
 
 # 注釋兩行
 //listen-on port 53 { 127.0.0.1; };
 //allow-query     { localhost; };
 
 # 創(chuàng)建 view
 view beijingview {
     match-clients { beijingnet; };
     include "/etc/named.rfc1912.zones.beijing";
 };
 
 view shanghaiview {
     match-clients { shanghainet; };
     include "/etc/named.rfc1912.zones.shanghai";
 };
 
 view otherview {
     match-clients { othernet; };
     include "/etc/named.rfc1912.zones";
 };
 
 # 刪除此行
 include "/etc/named.rfc1912.zones;



3、區(qū)域配置文件
 [root@master01 ~]# vim /etc/named.rfc1912.zones
 zone "." IN {
     type hint;
     file "named.ca";
 };
 
 zone "test.com" IN {
     type master;
     file "test.com.zone";
 };
 
 [root@master01 ~]# vim /etc/named.rfc1912.zones.beijing
 zone "." IN {
     type hint;
     file "named.ca";
 };
 
 zone "test.com" IN {
     type master;
     file "test.com.zone.beijing";
 };
 
 [root@master01 ~]# vim /etc/named.rfc1912.zones.shanghai
 zone "." IN {
     type hint;
     file "named.ca";
 };
 
 zone "test.com" IN {
     type master;
     file "test.com.zone.shanghai";
 };



4、區(qū)域數(shù)據(jù)庫文件
 [root@master01 ~]# vim /var/named/test.com.zone
 $TTL 1D
 @   IN      SOA     master  test.com. ( 1 1D 6H 1W 1D )
             NS      master
 
 master      A       10.0.0.10
 
 [root@master01 ~]# vim /var/named/test.com.zone.beijing
 $TTL 1D
 @   IN      SOA     master  test.com. ( 1 1D 6H 1W 1D )
             NS      master
 
 master      A       10.0.0.10
 www         A       1.1.1.1
 
 [root@master01 ~]# vim /var/named/test.com.zone.shanghai
 $TTL 1D
 @   IN      SOA     master  test.com. ( 1 1D 6H 1W 1D )
             NS      master
 
 master      A       10.0.0.10
 www         A       2.2.2.2



5、生效配置文件
 # 第一次啟動服務(wù)
 systemctl start named
 
 # 不是第一次啟動服務(wù)
 rndc reload

客戶端測試

 [root@test01 ~]# host www.test.com @10.0.0.10
 www.test.com.       86400   IN  A   1.1.1.1
 
 [root@test01 ~]# dig www.test.com @20.0.0.10
 www.test.com.       86400   IN  A   2.2.2.2

  1. 解釋DNS解析流程
    DNS服務(wù)工作原理(遞歸查詢:負(fù)責(zé)到底,迭代查詢不會負(fù)責(zé)到底)
    通過主機(jī)名,最終得到該主機(jī)名對應(yīng)的IP地址的過程叫做域名解析(或主機(jī)名解析)。


    image.png
  • 根 DNS 服務(wù)器 :返回頂級域 DNS 服務(wù)器的 IP 地址
  • 頂級域 DNS 服務(wù)器:返回權(quán)威 DNS 服務(wù)器的 IP 地址
  • 權(quán)威 DNS 服務(wù)器 :返回相應(yīng)主機(jī)的 IP 地址
    image.png

    域名解析過程
    image.png

1、客戶機(jī)提出域名解析請求,并將該請求發(fā)送給本地的域名服務(wù)器
2、當(dāng)本地的域名服務(wù)器收到請求后,就先查詢本地的緩存,如果有該紀(jì)錄項,則本地的域名服務(wù)器就直接把查詢的結(jié)果返回.
3、如果本地的緩存中沒有該紀(jì)錄,則本地域名服務(wù)器就直接把請求發(fā)給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個所查詢域(根的子域)的主域名服務(wù)器的地址.
4、本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請求,然后接受請求的服務(wù)器查詢自己的緩存,如果沒有該紀(jì)錄,則返回相關(guān)的下級的域名服務(wù)器的地址.
5、重復(fù)第四步,直到找到正確的紀(jì)錄.
6、本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時還將結(jié)果返回給客戶機(jī).

  1. iptables 5表5鏈解釋
    五表
    filter:過濾規(guī)則表,根據(jù)預(yù)定義的規(guī)則過濾符合條件的數(shù)據(jù)包(默認(rèn)表)
    nat:地址轉(zhuǎn)換規(guī)則表
    mangle:修改數(shù)據(jù)標(biāo)記位規(guī)則表
    raw:關(guān)閉啟用的連接跟蹤機(jī)制,加快封包穿越防火墻速度
    security:用于強(qiáng)制訪問控制(MAC)網(wǎng)絡(luò)規(guī)則,由 Linux 安全模塊(如 SELinux)實現(xiàn)

優(yōu)先級
security --> raw --> mangle --> nat --> filter

五鏈
INPUT鏈:處理輸入數(shù)據(jù)包
OUTPUT鏈:處理輸出數(shù)據(jù)包
FORWARD鏈:處理轉(zhuǎn)發(fā)數(shù)據(jù)包
PREROUTING鏈:用于目標(biāo)地址轉(zhuǎn)換(DNAT)
POSTOUTING鏈:用于源地址轉(zhuǎn)換(SNAT)

數(shù)據(jù)報文流向
到本機(jī)某進(jìn)程的報文:PREROUTING –> INPUT
由本機(jī)轉(zhuǎn)發(fā)的報文:PREROUTING –> FORWARD –> POSTROUTING
由本機(jī)的某進(jìn)程發(fā)出報文(通常為響應(yīng)報文):OUTPUT –> POSTROUTING

表鏈關(guān)系

PREROUTING 的規(guī)則可以存在于:raw表,mangle表,nat表
INPUT 的規(guī)則可以存在于:mangle表,filter表
FORWARD 的規(guī)則可以存在于:mangle表,filter表
OUTPUT 的規(guī)則可以存在于:raw表mangle表,nat表,filter表
POSTROUTING 的規(guī)則可以存在于:mangle表,nat表

  1. iptables/firewalld/nftable 實現(xiàn)主機(jī)防火墻。5000-6000端口僅192.168.0.0/24網(wǎng)段內(nèi)的主機(jī)訪問

iptables -A INPUT -p tcp --dport 5000:6000 ! -s 192.168.0.0/24 -j REJECT

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

  1. mysql的各發(fā)行版有哪些 ?

常見 MySQL 發(fā)行版本:

MySQL 官方版本:分為社區(qū)版和企業(yè)版,企業(yè)版性能略強(qiáng),提供了更多的功能和工具
Percona MySQL:基于官方社區(qū)版本二次開發(fā),增加了一些 MySQL 官方企業(yè)版才有的功能,同時對官方社區(qū)版進(jìn)行了一些優(yōu)化
MariaDB:MySQL 初創(chuàng)者開發(fā),很大程度上兼容 MySQL,可以很容易的將數(shù)據(jù)從 MySQL 遷移到 MariaDB 上

  1. mysql索引的作用
    MySQL索引一般是用于加速表的查詢的,索引一般分為
1.主鍵索引:基于主鍵做的索引,比如訂單表的編號是自動增長的(auto_increment),同時訂單號又是主鍵,可以做基于訂單號的索引

2.聚簇索引:數(shù)據(jù)data和索引index放在一起,形成一個磁盤上的文件

3.B+TREE索引:索引上只存放索引信息,基本分為一層根節(jié)點+一層分支節(jié)點,下面都是數(shù)據(jù)了,查詢效率最高,一般的MySQL表都是BTREE索引,同時下面的數(shù)據(jù)都是加了鏈表的,數(shù)據(jù)都是有鏈接起來的,查詢速度快,節(jié)省性能--->一般來說都是b_tree索引

10.mysql btree索引的原理
B-Tree 結(jié)構(gòu)的數(shù)據(jù)可以讓系統(tǒng)高效的找到數(shù)據(jù)所在的磁盤塊


image.png

B樹的搜索,從根結(jié)點開始,對結(jié)點內(nèi)的關(guān)鍵字(有序)序列進(jìn)行二分查找,如果命中則結(jié)束,否則進(jìn)入查詢關(guān)鍵字所屬范圍的兒子結(jié)點;重復(fù),直到所對應(yīng)的兒子指針為空,或已經(jīng)是葉子結(jié)點

  1. mysql安全加固?

執(zhí)行mysql_secure_installation 修改mysql密碼、刪除匿名賬戶、測試庫等。
限制連入數(shù)據(jù)庫的網(wǎng)段。
開啟二進(jìn)制日志、慢查詢?nèi)罩尽?/p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容