RHCE實驗記錄總結-1-RHCSA

 

無論是運維仍是開發系統的瞭解下Linux或者系統的溫習整理一下Linux知識點無疑是較好的,這篇文章是對RHCSA&RHCE實驗進行一個彙總,是我爲了作實驗方便(並分享給朋友)的一篇文章。html

前言

開卷有益

  • 準備考RHCSA(紅帽認證系統管理員)RHCE(紅帽認證工程師)
  • 想作下Linux實驗鞏固下實操技能
  • 測試下本身如今Linux的技能掌握度

環境提示

系統版本:Centos7python

虛擬環境:文章下方linux

  • 虛擬環境安裝
  • 虛擬環境經常使用管理命令 

總體總結

一、看下第一個實驗的例子,其實要是重置密碼步驟:第一步幹了什麼、第二步幹了什麼也是能夠重置密碼的(僅僅是作好這個實驗而已)web

二、拿第一個實驗例子舉例,作完實驗看下總結shell

  • 這個實驗每一步的上下游關係(若是有的話)
  • 每一步是幹了什麼,有什麼意義
  • 總結思考

 

RHCSA實驗

恢復root密碼

實驗成果說明:vim

一、在忘記root密碼的狀況下如何恢復root密碼centos

二、恢復root密碼爲redhat瀏覽器

實驗前環境初始化:緩存

一、重置server系統:rht-vmctl reset server安全

二、打開GUI(圖形頁面):rht-vmctl view server

三、在servser上執行命令初始化環境:lab rootpw setup

具體實驗步驟:

1、重啓操做系統,而後在啓動加載器菜單中終端倒計時
1.1. 使用相關按鈕或菜單項向系統發送Ctrl+Alt+Del
1.2. 在顯示啓動加載器菜單後,按任意鍵中斷倒計時

2、編輯默認的啓動加載器條目,使其在剛剛掛載全部文件系統後、但在控制權移交給systemd前終止啓動過程,而後在進行啓動
2.1. 使用光標鍵突出顯示默認的啓動加載條目
2.2. 按e編輯當前條目
2.3. 使用光標鍵導航到以linux16開頭的哪一行
2.4. 按End將光標移至行尾
2.5. 將rd.break附加到行未
2.6. 按Ctrl+x 使用修改後的配置進行啓動

# 這裏能夠理解爲自己linux有個微系統,尚未加載咱們正式系統
# 以讀寫的形式從新掛載咱們的正式系統所在的分區
# 在執行命令chroot從微系統切換至正式系統
3、在swich_root提示中,以只讀的形式從新掛載/sysroot文件systemd,而後使用chroot進入/sysroot中的chroot存放文職
swich_root:/# mount -o remount,rw /sysroot
swich_root:/# chroot /sysroot

4、修改密碼
sh-4.2# passwd root   或者 sh-4.2# echo redhat |passwd --stdin root 

5、將系統配置爲在啓動後自動執行完整的SElinux從新標記,因爲passwd工具從新建立了不帶SElinux上下文的/etc/shadow文件(當前SElinux並無加載)因此這頗有必要
sh-4.2# touch /.autorelabel

6、執行兩次exit退出
6.1. 提示重啓的時候SElinux從新標記須要花點時間稍等一下就好下次就沒問題了

7、執行命令驗證
[root@server0 ~]# lab rootpw grade
恢復root密碼步驟

實驗總結:

一、首先要明白整個啓動過程

二、瞭解了啓動過程再看下上圖備註

2.一、備註1

咱們在進入到grub2加載器菜單按:"e" 進入加載項編譯模式

按:「e」進入後找到內核加載項以:linux16 /boot/vmlinuz 開頭在行尾加上:rd.break  告訴gurb2在這裏停下

    linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ro vconsole.keymap=us console=tty0 console=ttyS0,115200n8 crashkernel=auto  vconsole.font=latarcyrheb-sun16 LANG=en_US.UTF-8 console=tty1

修改後

    linux16 /boot/vmlinuz-3.10.0-123.el7.x86_64 root=UUID=9bf6b9f7-92ad-441b-848e-0257cbb883d1 ro vconsole.keymap=us console=tty0 console=ttyS0,115200n8 crashkernel=auto  vconsole.font=latarcyrheb-sun16 LANG=en_US.UTF-8 console=tty1 rd.break

  

2.二、備註2

根據咱們修改後grub2 會還未向實際的系統移交控制權限前停下
咱們實際恢復root密碼的操做是在這裏操做的

  • 從新掛載/sysroot 已讀寫的方式
  • chroot 修改操做系統爲/sysroot
  • 執行passwd修改root密碼
  • 從新打標籤由於passwd從新建立了一個不帶Selinux標籤的/etc/shadow(存密碼的咱們修改了密碼)文件顯然這個操做是頗有必要的:touch /.autorelabel
  • exit
  • exit

管理本地 Linux 用戶和組

實驗成果說明

在本實驗中,您將定義默認的密碼策略,建立包含三個新用戶的補充組,以及修改一個用戶的密碼策略

一、在 server 上有一個名爲 consultants 的新組,三個新用戶: sspade bboop dtracy
二、 全部新莊戶都應該要求在首次登陸時更改密碼,而且以後每 30 天進行更改
三、新的顧問帳戶應當在 90 天合同到期,bboop 帳戶必須每 15 天更改一次密碼

實驗詳細需求

開始重置您的 server 系統 : rht-vmctl reset server

一、確保新建立的用戶具備必須每 30 天修改一次密碼
二、新建一個名爲: consultants 、GID 爲 40000 的組
三、建立三個用戶: sspade bboop dtracy 密碼爲: default ,而且將他們添加到補充組 consultants 中,主組應當保留爲用戶的專用組
四、肯定將來 90 天后的日誌,並將新用戶均設置爲在該日期到期
五、更改 bboop 帳戶的密碼策略,使其 15 天要求建立新密碼
六、此外強制全部用戶在首次登陸時更改密碼
七、完成後運行: lab localusers grade 評估這次實驗結果

具體實驗步驟

1. 確保新建立的用戶具備必須每 30 天修改一次密碼
    1.1 這個需求是對登陸用戶,針對的是全部用戶考慮下login配置文件:/etc/login.defs
        # PASS_MAX_DAYS   Maximum number of days a password may be used.
        PASS_MAX_DAYS   99999    修改成:PASS_MAX_DAYS   99999

2. 新建一個名爲: consultants 、GID 爲 40000 的組
    2.1. groupadd consultants -g 40000
    2.2. 驗證 cat /etc/group

3. 建立三個用戶: sspade bboop dtracy 密碼爲: default ,而且將他們添加到補充組 consultants 中,主組應當保留爲用戶的專用組
    這個需求咱們能夠useradd name 而後在passwd修改密碼咱們取巧用for循環搞下
    
    3.1. 執行命令
        # stdin 能夠從標準輸入獲取密碼就不須要以交互的形式去修改密碼了
        for i in sspade bboop dtracy; do useradd $i -G consultants; echo default |passwd $i --stdin ; done

    3.2. 驗證
        新用戶已添加: cat /etc/passwd
        附加組已生效: cat /etc/group   # 效果相似:consultants:x:40000:sspade,bboop,dtracy
        用戶默認30天修改一次密碼: chage -l xxxx

4. 肯定將來 90 天后的日誌,並將新用戶均設置爲在該日期到期
    這個地方注意的是如何獲取90天后的日誌,並確認90天后的日誌而後修改用戶
    4.1. 先經過: date -d "+90day" 獲取90天后的日期
    4.2. 在確認: cal -y 獲取日曆年份表根據這個對照
    4.3. 在修改: for i in sspade bboop dtracy; do chage -E "2019-09-30" $i ; done
    4.4. 驗證: chage -l sspade  看:Account expires 帳號到期時間

5. 更改 bboop 帳戶的密碼策略,使其 15 天要求建立新密碼
    這需求就是設定用戶多久修改一次密碼,單獨說一個用戶的話
    5.1. chage bboop -M 15
    5.2. 驗證
    [root@server0 ~]# chage -l bboop
    Last password change                                    : Jul 01, 2019
    Password expires                                        : Jul 31, 2019
    Password inactive                                       : never
    Account expires                                         : Sep 30, 2019
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 30
    Number of days of warning before password expires       : 7
    [root@server0 ~]# chage bboop -M 15
    [root@server0 ~]# chage -l bboop
    Last password change                                    : Jul 01, 2019
    Password expires                                        : Jul 16, 2019
    Password inactive                                       : never
    Account expires                                         : Sep 30, 2019
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 15    # 這裏從配置文件新用戶建立30天修改一次密碼改爲了15天修改一次
    Number of days of warning before password expires       : 7

6. 此外強制全部用戶在首次登陸時更改密碼
    6.1 執行命令+驗證

    # 以前
    [root@server0 ~]# chage -l bboop
    Last password change                                    : Jul 01, 2019
    Password expires                                        : Jul 16, 2019
    Password inactive                                       : never
    Account expires                                         : Sep 30, 2019
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 15
    Number of days of warning before password expires       : 7

    # 執行命令: for i in sspade bboop dtracy; do chage $i -d 0 ; done

    # 以後
    [root@server0 ~]# chage -l bboop
    Last password change                                    : password must be changed  # 這裏都改爲必須修改密碼了
    Password expires                                        : password must be changed  # 這裏都改爲必須修改密碼了
    Password inactive                                       : password must be changed  # 這裏都改爲必須修改密碼了
    Account expires                                         : Sep 30, 2019
    Minimum number of days between password change          : 0
    Maximum number of days between password change          : 15
    Number of days of warning before password expires       : 7

7. 完成後運行: lab localusers grade 評估這次實驗結果
    整體驗證: lab localusers grade
管理本地Linux用戶和組具體步驟

實驗總結:

一、密碼過時概念

二、每一個概念對應的參數

 

 

 

利用Linux文件系統權限控制文件訪問

實驗成果說明

在本實驗中您將配置包含供用戶協做使用的目錄的系統

- server 擁有一個名爲 /home/stooges 的目錄,如下三個用戶能夠在該目錄中協做處理文件
- 只有用戶和組能夠在 /home/stooges 中訪問、建立和刪除文件。在此目錄中建立的文件自動被分配到 stooges 的組全部權
- 用戶建立新文件不能夠由族外的人員訪問

實驗詳細需求

開始前重置您的 server 系統,並執行: lab permissions setup

您的 server 計算機有三個帳戶: curly larry moe 這些帳戶是名爲 stooges 的組的成員

一、打開終端窗口在 server 上成爲 root 用戶
二、建立 /home/stooges 目錄
三、在 /home/stooges 目錄中更改組權限,使其屬於 stooges 組
四、對 /home/stoogs 目錄設置權限,以是 GID 位置目錄(2)、全部者(7)、和組(7)具備徹底讀取,其餘用戶沒有權限(0)
五、檢查是否正確設置權限
六、修改全局登陸腳本,使普通用戶擁有一個 umask 設置,該設置將阻止其餘人查看或者修改新的文件和目錄 
七、完成時 ----打開一個新的終端---- 運行: lab permissions grade 來驗證明驗結果

實驗詳細步驟

1. 打開終端窗口在 server 上成爲 root 用戶
2. 建立 /home/stooges 目錄
    2.1. mkdir /home/stooges
    2.2. 驗證 ls /home
3. 在 /home/stooges 目錄中更改組權限,使其屬於 stooges 組
    3.1. chown :stooges /home/stooges
    3.2. 驗證 ll -d /home/stooges

4. 對 /home/stoogs 目錄設置權限,以是 GID 位置目錄(2)、全部者(7)、和組(7)具備徹底讀取,其餘用戶沒有權限(0)
    4.1. chmod 2770 /home/stoogs
    4.2. 驗證 ls -d /home/stooges
        drwxrws---. 2 root stooges 6 Jul  2 11:17 /home/stooges

5. 檢查是否正確設置權限
    5.1. 驗證 ls -d /home/stooges
        drwxrws---. 2 root stooges 6 Jul  2 11:17 /home/stooges
6. 修改全局登陸腳本,使普通用戶擁有一個 umask 設置,該設置將阻止其餘人查看或者修改新的文件和目錄
    6.1 兩個文件
        /etc/profile
        /etc/bashrc

        找到umask項目而後修改成
        if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
               umask 007
        else
               umask 027
        fi

7. 完成時 ----打開一個新的終端---- 運行: lab permissions grade 來驗證明驗結果
    驗證: lab permissions grade
利用 Linux 文件系統權限控制文件訪問

 實驗總結:

一、正常的權限不須要特別的記: r:w:x  對應數字:4:2:x   

二、默認的權限:file 644  dir 755

三、特殊權限須要理解下:

特殊權限 對文件的影響 對目錄的影響
u+s(suid)                          以擁有文件的用戶身份,而不是運行文件的用戶身份執行:例子(ls -l //bin/passwd)  無~
g+s(sgid) 以擁有文件組的身份執行文件   在目錄中最新建立的文件將其組全部者設置爲惡目錄的組全部者相匹配
o+t(sticky) 無~  對目錄具備寫write權限的用戶能夠刪除其全部用的文件,而沒法刪除或強制保存到其餘用戶所擁有的文件 例子:ls -ld /tmp

特殊權限也能夠用數值表示(從右往左數第4位):

setuid=4   setgid=2   sticky=1 

 

給文件增長特殊的S權限:

[root@server0 ~]# chmod 4666 file
[root@server0 ~]# ls -l file 
-rwSrw-rw-. 1 root root 0 Jul 3 16:36 file
[root@server0 ~]#

給目錄增長特殊權限s

[root@server0 ~]# ls -ld dir
drwxr-xr-x. 2 root root 6 Jul 3 16:57 dir
[root@server0 ~]# chmod 2755 dir
[root@server0 ~]# ls -ld dir
drwxr-sr-x. 2 root root 6 Jul 3 16:57 dir
[root@server0 ~]#

給目錄增長t權限t

[root@server0 ~]# ls -ld dir2
drwxr-xr-x. 2 root root 6 Jul 3 16:59 dir2
[root@server0 ~]# chmod 1755 dir2
[root@server0 ~]# ls -ld dir2/
drwxr-xr-t. 2 root root 6 Jul 3 16:59 dir2/
[root@server0 ~]#

四、umask 修改默認文件和目錄的權限

咱們touch 一個文件會發現它的權限是:644 -rw-r--r--

咱們mkdir 一個目錄會發現他的全顯示:755 drwxr-xr-x

 

你所看的文件和目錄的默認權限實際上不是它最大的默認權限

 

文件的最大默認權限是: 666  -rw-rw-rw-

目錄的最大默認權限是: 777   drwxrwxrwx

 

由於在系統中每個進程都具備umask,它的做用就是清除該進程建立的新文件和目錄的指定權限

執行命令:umask 會看到當前的權限

[root@server0 ~]# umask
0022
[root@server0 ~]# 

上面那一串的意思:在最大默認權限上作減法

# umask計算後的文件的默認權限(減去2=減去寫權限)

0666
0022 -
------
0644

# umask計算後的目錄的默認權限(減去2=減去寫權限)
0777
0022 -
------
0755

舉個例子:我想建立的目錄和文件other用戶什麼權限也沒有怎麼辦?實際上就是減去other權限位的:讀、寫、執行權限

[root@server0 ~]# umask 027   # 若是寫三位默認特殊權限位爲0
[root@server0 ~]# umask
0027
[root@server0 ~]# touch 1
[root@server0 ~]# mkdir dir
[root@server0 ~]# ll
total 0
-rw-r-----. 1 root root 0 Jul  3 17:15 1
drwxr-x---. 2 root root 6 Jul  3 17:15 dir
[root@server0 ~]# 

實際使用的永久修改的話:echo "umask 0027" > /etc/profile.d/default_umask.sh  就行每次登錄就會加載default_umask.sh

可是這個實驗想pass須要修改:/etc/bashrc   /etc/profile    的umask配置

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022   
fi

 

使用文件ACL控制對文件的訪問權限 

寫在開頭吧:就是對基本的文件權限體系的一個加強,基本文件體系天單一了:只有文件所屬人、文件所屬組、其餘權限  在外加3個特殊權限

實驗成果說明:

在本實驗中您將更新協做目錄,將添加ac使其具備適當的權限,同時限定特定的用戶和組

實驗詳細需求:

開始重置您的 server 系統 : rht-vmctl reset server  並在server系統上執行: lab acl setup   

 

執行lab acl setup 會在/shares/ 目錄下初始化目錄,並初始化linux用戶信息

需求:

1 case目錄及其內容應該屬於組 bakerstreet 。新增至 cases 目錄中的文件應自動屬於組 bakerstreet 。現有文件應針對用戶和組設置爲rw(提示:切勿使用setfacl)

2 將 ACL添加至 cases 目錄 (及其內容),以容許 scotlandyard 組成員具備文件的 讀取/寫入權限 以及目錄的執行權限。限制用戶 jones 使其只具備文件的讀取權限和目錄的執行權限

3 添加ACL以確保 cases 目錄中的任何文件或者目錄均針對全部受權用戶和組應用了正確權限

4 驗證您已經正確更改了ACL和文件系統(驗證步驟,若是對本身操做有信心能夠直接指定第5步驗證)

4.1 使用 ls 和 getfacl 檢查 /shares/cases 上的設置

4.2 切換用戶爲:holmes 和 lestrade 驗證可以寫入文件、讀取文件、建立目錄以及對新目錄的文件執行寫操做

4.3 切換用戶爲 jones 嘗試寫一個文件(應該會失敗)而且嘗試建立新目錄(應該會失敗)。使用 jones 用戶應該能夠讀取cases目錄中的 adventures.txt 以及讀取在 holmes 或 lestrade 新建目錄中所編寫的「測試」 文件

5 在server上執行命令: lab acl grade 進行驗證

實驗詳細步驟: 

# 1
# case目錄及其內容應該屬於組 bakerstreet
chown -R :bakerstreet cases
# 新增至 cases 目錄中的文件應自動屬於組 bakerstreet
chmod g+s cases
# 現有文件應針對用戶和組設置爲rw(提示:切勿使用setfacl)
chmod 660 cases/*

# 2
# 將 ACL添加至 cases 目錄 (及其內容),以容許 scotlandyard 組成員具備文件的 讀取/寫入權限 以及目錄的執行權限
setfacl -Rm g:scotlandyard:rwX cases
# 限制用戶 jones 使其只具備文件的讀取權限和目錄的執行權限
setfacl -Rm u:jones:rX cases


# 3
# 添加ACL以確保 cases 目錄中的任何新文件或者目錄均針對全部受權用戶和組應用了正確權限
# 這句話可能有點繞,確保cases目錄中的任何「」新文件「」 也就是默認權限須要注意下
setfacl -d -Rm g:scotlandyard:rwX cases
setfacl -d -Rm u:jones:rX cases

# 4
# 查看結果對比
[root@server0 shares]# ll -d cases
drwxrws---+ 4 root bakerstreet 113 7月  12 06:29 cases
[root@server0 shares]# ll cases/
總用量 32
-rw-rw----+ 1 root    bakerstreet 22 7月  12 06:29 adventures.txt
-rw-rw----+ 1 root    bakerstreet  8 7月  12 06:29 do_NOT_delete.grading.txt
drwxrws---+ 2 gregson bakerstreet 21 7月  12 06:29 gregson.dir
-rw-rw----+ 1 root    bakerstreet 38 7月  12 06:29 moriarty.txt
drwxrws---+ 2 watson  bakerstreet 21 7月  12 06:29 watson.dir
[root@server0 shares]#
[root@server0 shares]#
[root@server0 shares]# getfacl cases
# file: cases
# owner: root
# group: bakerstreet
# flags: -s-
user::rwx
user:jones:r-x
group::rwx
group:scotlandyard:rwx
mask::rwx
other::---
default:user::rwx
default:user:jones:r-x
default:group::rwx
default:group:scotlandyard:rwx
default:mask::rwx
default:other::---

使用文件ACL控制對文件的訪問權限 詳細步驟
使用文件ACL控制對文件的訪問權限 詳細步驟

實驗總結:

 1 默認也有acl屬性

文件或目錄acl權限,其實就是對現有權限不足的一個擴展
默認他也是有acl屬性的

[root@server0 shares]# ll
總用量 4
drwxrwx---. 2 root root       78 7月  12 05:48 cases
drwxrws---+ 3 root controller 92 7月  12 05:48 steamies
[root@server0 shares]# getfacl cases
# file: cases
# owner: root
# group: root
user::rwx
group::rwx
other::---

[root@server0 shares]# pwd
/shares
[root@server0 shares]#

二、應用acl後文件權限項後面有個加號,標識啓用了acl

# 當咱們給他們添加了acl屬性後看下
# drwsrws---+  在權限這裏有個:"+" 對比以前是 drwxrwx---.  當有個加號的時候標記這個文件或目錄已經應用了acl
[root@server0 shares]# ll
drwsrws---+ 3 shuai controller 100 Jul 10 16:42 steamies

三、acl優先級

3.1 首先注意一點acl包含了現有權限,它能夠理解爲現有權限的擴展,當咱們啓用了acl以後看acl的權限便可
3.2 acl掩碼概念
    
    .....
    mask::rwx   # 這一行就是掩碼掩碼規定了:指定用戶、指定用戶組、組  的最大權限
    .....

    3.2.1 能夠理解爲什麼umask差很少的概念它:定義了程序運行的最大權限 
    3.2.2 文件屬主(文件的用戶)、other 不受掩碼限制
    3.2.3 acl指定的用戶、acl指定用戶組、用戶組、受掩碼限制 ,不過還蠻友善的給出你通過mask降級後的實際權限(#effective:xxx)

例子:
[root@server0 shares]# getfacl test
# file: test
# owner: watson
# group: bakerstreet
user::rwx
user:james:rwx                #effective:rw-
group::rwx                    #effective:rw-
group:scotlandyard:rwx        #effective:rw-
mask::rw-
other::r-x


3.3 例子運行匹配
若是以文件全部者watson身份執行則調用:(文件用戶ACL權限) 且不受掩碼限制
    user::rwx

若是以指定用戶ACL條目中列出的用戶身份運行,則應用指定用戶權限
    例如:用james 執行文件就應用:user:james:rwx 權限

    前提掩碼也的有權限: mask::rwx  容許
    若是掩碼是沒有權限: mask::rw-  那麼user:james:rwx 的最大權限就自動降爲rw-   

若是以文件組全部者相匹配的組身份運行或者以ACL條目中列出的指定用戶組運行,則應用相應匹配的ACL
    例如用: 文件所屬組 bakerstreet 這個組運行 那麼就應用:group::rwx 權限
    前提掩碼也的有可執行權限:mask::rwx  容許
    若是掩碼是沒有可執行權限:mask::rw-  那麼 bakerstreet 這個組不容許執行

    或用ACL列表中指定的組: group:scotlandyard:rwx 運行就應用: group:scotlandyard:rwx 權限
    前提掩碼也的有可執行權限:mask::rwx  容許
    若是掩碼是沒有可執行權限:mask::rw-  那麼 scotlandyard 這個組不容許執行

# 不然應用文件的other權限,且不受掩碼限制

安裝和更新軟件包

實驗成果說明:

說明:在本實驗中您將使用yum安裝和更新選定的軟件包

成功:系統上安裝新的和更新軟件包

實驗詳細需求:

開始重置您的 server 系統 : rht-vmctl reset server   

需求:
1 建立文件:/etc/yum.repos.d/errata.repo,以啓用在 content 計算機上找到的"更新"存儲庫。它應該訪問在一下的 URL 中找到:http://content.example.com/rhel7.0/x86_64/errata ,且不要檢查 GPG 簽名

2 將 server 配置爲遵循很是具體的軟件要求,它必須安裝有一下軟件包的最新版本。請勿安裝全部更新。僅安裝列出的軟件包更新(若是這些更新可用)

  • 內核(更新現有包)
  • xsane-gimp (新軟件包)
  • rht-system (新軟件包)
  • 鑑於安全緣由,不該當裝有 wvdial 軟件包

3 當您準備好檢查您的工做時,請在 server 上運行 lab software grade

實驗詳細步驟

1 添加配置
vim /etc/yum.repos.d/errata.repo
[errata]
name=errata
baseurl=http://content.example.com/rhel7.0/x86_64/errata
gpgcheck=0

2 安裝要求的包
yum -y install xsane-gimp rht-system

3 卸載需求須要卸載的包
yum remove -y wvdial

4 驗證
lab software grade
安裝和更新軟件包詳細步驟

 

實驗總結:

一、yum源baseurl指定的目標是什麼

無論是Centos仍是RedHat咱們要找一個目錄,這個目錄包含兩個文件目錄:
- Packages  (這個是實際倉庫存的東西)
- repodata  (這個目錄是這個yum倉庫的清單信息它裏面包含了這個庫裏都有啥)


# 通常Centos的(Packages和repodata)在這個路徑下,那麼baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
# redhat同理
http://mirrors.aliyun.com/centos/7/os/x86_64/


# baseurl能夠寫成變量
http://mirrors.163.com/centos/$releasever/os/$arch/

$releasever 這個變量是來自於centos-release包的Version字段         大系統版本
$arch       這個變量是來自於centos-release包的Architecture字段    CPU架構

[xxxxxxx ~]# rpm -qi centos-release
Name        : centos-release
Version     : 7
Release     : 4.1708.el7.centos
Architecture: x86_64
Install Date: Fri 03 Nov 2017 07:06:08 PM CST
Group       : System Environment/Base
Size        : 37949
License     : GPLv2
Signature   : RSA/SHA256, Thu 31 Aug 2017 12:04:53 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : centos-release-7-4.1708.el7.centos.src.rpm
Build Date  : Wed 30 Aug 2017 11:53:09 PM CST
Build Host  : c1bm.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
Summary     : CentOS Linux release file
Description :
CentOS Linux release files

 二、gpgcheck=0 或者1

先了解什麼是gpgcheck它是一種數字簽名檢查,若是啓用gpg驗證,yum install的時候就會拿着這個這個簽名驗證你是否安裝的是正確的包而不是第三方修改過或者和黑客修改後的包

通常在Packages、repodata目錄所在的同級別目錄中有一個:RPM-GPG-KEY-CentOS-7 下載並在配置文件制定下載後的文件路徑:gpgkey=file:///etc/pki/rpm-gpg/xxxxxx,而後就能夠啓用驗證了gpgcheck=1

邏輯卷管理(LVM) 

實驗成果說明:

在此實驗中,您將根據現有邏輯卷大小,同時根據須要添加LVM資源,而後添加一個新的邏輯卷,該邏輯卷帶有永久掛載的XFS文件系統

實驗詳細需求:

開始重置您的 server 系統 : rht-vmctl reset server  並在server系統上執行: lab lvm setup

 

一、在/dev/vdb上建立 512 Mib分區,將其初始化爲物理卷,而後使用他來擴展finance卷組

二、將loans邏輯卷擴展到 768 Mib,包括文件系統

三、在現有卷組中,建立名爲 risk 且大小爲 128 MiB的一個新邏輯卷,添加XFS文件系統,並將其掛於 /finance/risk

四、完成工做後從新啓動 server計算機,而後從server計算機運行命令: lab lvm grade 驗證

實驗詳細步驟:

1、在/dev/vdb上建立 512 Mib分區,將其初始化爲物理卷,而後使用他來擴展finance卷組

# 先建立一個LVM的分區,類型選擇:8e
fdisk /dev/vdb

/dev/vdb1            2048     1050623      524288   8e  Linux LVM
/dev/vdb2         1050624     2074623      512000   8e  Linux LVM   # new

# 執行命令 partprobe  分區檢索,不然檢索不到新分區
partprobe

# 轉換爲pv物理卷
[root@server0 ~]# pvcreate /dev/vdb2
  Physical volume "/dev/vdb2" successfully created

# 擴展卷組
[root@server0 ~]# vgextend finance /dev/vdb2
  Volume group "finance" successfully extended

# 邏輯卷是在卷組基礎上建立的,擴展邏輯卷
[root@server0 ~]# lvextend -L 786M /dev/finance/loans
  Rounding size to boundary between physical extents: 788.00 MiB
  Extending logical volume loans to 788.00 MiB
  Logical volume loans successfully resized
[root@server0 ~]# lvs
  LV    VG      Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  loans finance -wi-ao---- 788.00m
[root@server0 ~]#

2、將loans邏輯卷擴展到 768 Mib,包括文件系統

# 擴容文件系統
[root@server0 ~]# df -h
文件系統                   容量  已用  可用 已用% 掛載點
/dev/vda1                   10G  3.0G  7.1G   30% /
devtmpfs                   906M     0  906M    0% /dev
tmpfs                      921M   80K  921M    1% /dev/shm
tmpfs                      921M   17M  904M    2% /run
tmpfs                      921M     0  921M    0% /sys/fs/cgroup
/dev/mapper/finance-loans  253M   13M  240M    6% /finance/loans

[root@server0 ~]# xfs_growfs /finance/loans
meta-data=/dev/mapper/finance-loans isize=256    agcount=4, agsize=16384 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=65536, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 65536 to 201728

[root@server0 ~]# df -h
文件系統                   容量  已用  可用 已用% 掛載點
/dev/vda1                   10G  3.0G  7.1G   30% /
devtmpfs                   906M     0  906M    0% /dev
tmpfs                      921M   80K  921M    1% /dev/shm
tmpfs                      921M   17M  904M    2% /run
tmpfs                      921M     0  921M    0% /sys/fs/cgroup
/dev/mapper/finance-loans  785M   14M  772M    2% /finance/loans

3、在現有卷組中,建立名爲 risk 且大小爲 128 MiB的一個新邏輯卷,添加XFS文件系統,並將其掛於 /finance/risk

# 建立新邏輯卷
[root@server0 ~]# lvs
  LV    VG      Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  loans finance -wi-ao---- 788.00m

[root@server0 ~]# lvcreate finance -L 128M --name risk
  Logical volume "risk" created
[root@server0 ~]# lvs
  LV    VG      Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  loans finance -wi-ao---- 788.00m
  risk  finance -wi-a----- 128.00m

# 格式化爲xfs文件系統
[root@server0 ~]# mkfs.xfs /dev/finance/risk
meta-data=/dev/finance/risk      isize=256    agcount=4, agsize=8192 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=32768, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

# 建立掛載點並修改fstab
[root@server0 ~]# mkdir -p /finance/risk
[root@server0 ~]# vim /etc/fstab
# 新增
/dev/finance/risk  /finance/risk    xfs  defaults  0 0

4、完成工做後從新啓動 server計算機,而後從server計算機運行命令: lab lvm grade 驗證

lab lvm grade
邏輯卷管理 詳細實驗步驟

實驗總結:

一、LVM邏輯圖

二、比較不錯的實踐

系統盤:RAID 1   /dev/sda

數據盤:RAID5   /dev/sdb   用sdb建立LVM分區-->建立物理卷-->把物理卷加入到卷組-->建立N個邏輯卷

添加啓用SWAP分區(交換分區)

實驗成果說明:

建立並啓用swap分區

實驗詳細需求:

一、建立1個500M的swap交換分區

實驗詳細步驟:

1、建立SWAP類型的分區

# 建立分區並設置分區類型爲swap

[root@server0 ~]# fdisk /dev/vdb
歡迎使用 fdisk (util-linux 2.23.2)。

更改將停留在內存中,直到您決定將更改寫入磁盤。
使用寫入命令前請三思。

Device does not contain a recognized partition table
使用磁盤標識符 0x78cd0f7c 建立新的 DOS 磁盤標籤。

命令(輸入 m 獲取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分區號 (1-4,默認 1):
起始 扇區 (2048-20971519,默認爲 2048):
將使用默認值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-20971519,默認爲 20971519):+500M
分區 1 已設置爲 Linux 類型,大小設爲 500 MiB

命令(輸入 m 獲取幫助):t
已選擇分區 1
Hex 代碼(輸入 L 列出全部代碼):82
已將分區「Linux」的類型更改成「Linux swap / Solaris」

命令(輸入 m 獲取幫助):p

磁盤 /dev/vdb:10.7 GB, 10737418240 字節,20971520 個扇區
Units = 扇區 of 1 * 512 = 512 bytes
扇區大小(邏輯/物理):512 字節 / 512 字節
I/O 大小(最小/最佳):512 字節 / 512 字節
磁盤標籤類型:dos
磁盤標識符:0x78cd0f7c

   設備 Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048     1026047      512000   82  Linux swap / Solaris

命令(輸入 m 獲取幫助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。

# 分區檢索
[root@server0 ~]# partprobe

# 初始化爲swap分區
[root@server0 ~]# mkswap /dev/vdb1
正在設置交換空間版本 1,大小 = 511996 KiB
無標籤,UUID=b5751a60-e080-4cbd-9fda-14cba16041d7

2、新增fstab掛載

# 獲取分區UUID
[root@server0 ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="b5751a60-e080-4cbd-9fda-14cba16041d7" TYPE="swap"

# 新增掛載配置
[root@server0 ~]# vim /etc/fstab
UUID=b5751a60-e080-4cbd-9fda-14cba16041d7 swap swap defaults 0 0

# 測試激活交換分區
[root@server0 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1841        550       1290         16          0        246
-/+ buffers/cache:        302       1538
Swap:          499          0        499

# 重啓測試交換分區還存在
添加啓用swap交換分區 詳細實驗步驟

實驗總結:

一、什麼是SWAP分區

一個進程啓動須要相應的物理內存空間,當物理內存不夠用的時候,會把空閒的進程使用的內存寫入到SWAP分區(硬盤上)把騰出來的額內存給其餘進程使用,若是進程須要訪問寫入到SWAP分區的內容同理把其餘進程空閒的內存騰出來寫入到SWAP在把SWAP數據讀出來寫到物理內存

二、SWAP分區的優缺點

優勢:SWAP至關於一個緩衝區,不至於當內存用完新程序或須要使用內存的程序沒法正常運行

缺點:SWAP分區畢竟是硬盤和物理內存比起來很是慢

 

autofs自動掛載文件系統

實驗成果說明:

在此實驗中,您將安裝一個軟件包以支持自動掛載文件系統,本實驗是基於ldap & krb5驗證 + nfs (lab nfs setup)這些都已經初始化完了,咱們只須要配置autofs便可

實驗詳細需求:

開始重置您的 desktop 系統 : rht-vmctl reset desktop  並在 desktop 系統上執行:lab nfs setup

 

classroom.example.com 正在共享/home/guests

desktop0 掛載點/home/guests/ldapuser0

用戶名:ldapuser0    密碼:kerberos

 

一、安裝自動掛載home目錄所需的任何包

二、添加配置文件(必須以.autofs結尾)和映射文件(必須以auto.開頭)

三、啓用並啓動自動掛載服務

四、使用ssh切換到localhost上的ldapuser0,而後確認:掛載是否OK、讀取/寫入權限是否OK

五、從新啓動desktop0計算,而後從desktop0計算執行命令:lab nfs grade 驗證

實驗詳細步驟:

1、安裝自動掛載home目錄所需的任何包

# 安裝autofs
[root@desktop0 ~]# yum -y install autofs

2、添加配置文件(必須以.autofs結尾)和映射文件(必須以auto.開頭)

# 添加配置文件
[root@desktop0 ~]# vim /etc/auto.master.d/nfs.autofs
#掛載的目錄     映射配置文件
/-              /etc/auto.home

# 添加映射文件
[root@desktop0 ~]# vim /etc/auto.home
#掛載點         掛載選項              要掛載的文件系統
/home/guests    -typefs=rw            classroom.example.com:/home/guests

3、啓用並啓動自動掛載服務
# 啓動服務、檢查狀態、並設置開機啓動
[root@desktop0 ~]# systemctl start autofs.service
[root@desktop0 ~]# systemctl status autofs.service
[root@desktop0 ~]# systemctl enable autofs.service

4、使用ssh切換到localhost上的ldapuser0,而後確認:掛載是否OK、讀取/寫入權限是否OK
ssh ldapuser0@localhost

# 沒有報錯建立文件正常、掛載正常便可

5、從新啓動desktop0計算,而後從desktop0計算執行命令:lab nfs grade 驗證
lab nfs grade
autofs自動掛載文件系統 詳細步驟

實驗總結:

一、autofs是什麼以及應用場景

掛載共享資源存在兩個問題

  • 將掛載信息寫入到/etc/fstab文件中,可實現開機自動掛載。可是若是遠程共享資源過多,則會給網絡帶寬和服務器的硬件資源帶來很大負載。
  • 若是掛載的資源長期不使用,也會形成服務器資源的浪費。

autofs就是爲了解決上面兩個問題而存在的:autofs自動掛載服務是一種Linux系統守護進程,當檢測到用戶視圖訪問一個還沒有掛載的文件系統時,會自動掛載該文件系統。簡單來講,將掛載信息寫入/etc/fstab文件中,系統在每次開機時都會自動掛載,而autofs服務則是在用戶須要使用該文件系統時纔去動態掛載,從而節約了網絡資源和服務器硬件資源的開銷。

二、兩種配置文件,我感受實際上是能夠放在一塊兒可是爲啥要拆兩個(最終把classroom.example.com:/home/guests共享掛載到:/目錄的,/home/guests這個點上)

########### 自動掛載配置文件
[root@desktop0 ~]# cat /etc/auto.master.d/nfs.autofs
#掛載的目錄     映射配置文件
/-              /etc/auto.home


########### 自動掛載配置文件的映射文件
[root@desktop0 ~]# cat /etc/auto.home
#掛載點         掛載選項              要掛載的文件系統
/home/guests    -typefs=rw            classroom.example.com:/home/guests

 

管理SElinux安全 

實驗成果說明:

在本實驗中,您將解決SElinux訪問被拒絕的問題,在SElinux處於強制模式時,系統管理員使用新web服務器向客戶端交付內容時遇到的問題解決它

實驗詳細需求:

開始重置您的 server 系統 : rht-vmctl reset server    並初始化:lab selinux setup

一、在server上啓動web瀏覽器並瀏覽至:http://localhost/lab-content 將會看到一個錯誤

二、研究並切丁正在阻止Apache提供Web內容服務的SElinux問題

三、解決正在阻止Apache提供Web內容服務的SElinux問題

四、驗證SElinux問題已經解決,斌企鵝Apache可以提供Web內容服務

五、運行lab selinux grade命令確認您的結論

具體實驗步驟:

1 看日誌

/var/log/message
```
Jul 12 17:05:07 localhost setroubleshoot: SELinux is preventing /usr/sbin/httpd from open access on the file . For complete SELinux messages. run sealert -l a4e40289-984d-4a57-b791-e0520a066046
Jul 12 17:05:07 localhost python: SELinux is preventing /usr/sbin/httpd from open access on the file .

*****  Plugin catchall_boolean (89.3 confidence) suggests   ******************

If you want to allow httpd to read user content
Then you must tell SELinux about this by enabling the 'httpd_read_user_content' boolean.

Do
setsebool -P httpd_read_user_content 1
```
報錯都提醒你如何處理selinux了,執行命令:setsebool -P httpd_read_user_content 1


/var/log/httpd/error_log
```
[Fri Jul 12 17:05:06.582895 2019] [core:error] [pid 2293] (13)Permission denied: [client ::1:42650] AH00132: file permissions deny server access: /var/web-content/lab-content/index.html
```
httpd 也會有提示關注下

2 查看目錄和文件的上下文
```
ls -dZ /var/web-content /var/www
drwxr-xr-x. root root unconfined_u:object_r:var_t:s0   /var/web-content
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www
```
3 修改目錄和文件的默認上下文
```
semanage fcontext -a -t httpd_sys_content_t '/var/web-content(/.*)'
```
4 還原目錄和文件的默認上下文
```
restorecon -R web-content/
```
管理SElinux安全詳細步驟

實驗總結:

一、文件權限後面有個「.」 說明該文件打上了selinux標籤

系統在啓動的時候回自動打標籤:
-rw-r--r--. 1 root root 0 7月 12 13:10 no_label

禁用selinux後,新建立的文件就不會有selinux標籤了
-rw-r--r--. 1 root root 0 7月 12 13:10 label
-rw-r--r-- 1 root root 0 7月 12 13:26 no_label

二、新建立的文件會繼承目錄的「上下文標籤」

適用於:vim、cp、touch

若是在其餘位置建立的而且權限得以保留好比:mv、cp -a 那麼還會保留以前的「上下文標籤」

三、selinux 有兩個模式:

[root@server0 shares]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]

# 強制模式
Enforcing 遵照策略規則並記錄衝突(異常)
# 啓用強制模式
setenforce Enforcing 或者 setenforce 1

# 許可模式
策略規則衝突僅記錄日誌消息
# 啓用策略模式
setenforce Permissive 或者 setenforce 0

四、小總結

selinux 「上下文標籤」 由4個部分組成由 ":" 分隔
user:role:type:level

user: 用戶
    - system_u: 系統用戶大部分就是系統本身產生的文件
    - unconfined_u:不受限的用戶,也就是說該文件來自於不受限的進程所產生的
基本上,若是是系統或軟件自己所提供的文件,大多數就是system_u這個身份名稱,而若是是咱們用戶透過bash本身創建的文件,則大多數是不受限制的,若是是網絡服務所產生的的文件,或者系統服務運行過程當中的文件,則大部分的識別就會是system_u


查看登陸用戶和selinux用戶映射關係
[root@server0 shares]# semanage login -l

登陸名                  SELinux 用戶           MLS/MCS 範圍           服務

__default__          unconfined_u         s0-s0:c0.c1023       *
root                 unconfined_u         s0-s0:c0.c1023       *
system_u             system_u             s0-s0:c0.c1023       *


role:角色
透過角色字段,咱們能夠知道這個資料是屬於進程,文件資源仍是使用者。
object_r:表明的是文件或目錄等文件資源
system_r:表明的就是進程

type:類型

[root@server0 shares]# ll /var/www -Z
drwxr-xr-x. root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html


由於selinux是類型強制因此通常咱們只須要關注類型就能夠

context查詢工具seinfo、sesearch
yum install setools-console  # 工具

```
seinfo -u    # 查詢全部的user字段的種類
seinfo -r    # 查詢全部的role字段的種類
seinfo -t    # 查詢全部的type字段的種類 

sesearch -A 能夠查詢什麼類型進程能夠讀取什麼type類型的文件
sesearch -A -s 進程type    # 查詢type類型的進程可以讀取的文件type    
```

總結:
1 進程也有一個標籤 
2 標籤對應:
    標籤能夠訪問那些 標籤
    標籤對資源的權限屬性

firewall限制網絡(新一代防火牆替代iptables) 

實驗成果說明:

在此實驗中,您將在server0服務器上配置防火牆,以阻止對ssh和端口8080/TCP上運行Web之外服務的訪問

實驗詳細需求:

開始重置您的 server 系統 : rht-vmctl reset server  並在server系統上執行: lab firewall setup

 

一、配置系統,使iptables和ip6iptables服務不會被管理員之外啓動

二、檢查firewalld服務是否正在運行。若是未運行其啓動該服務

三、驗證默認防火牆區域是不是public

四、確保public區域的永久配置中沒有打開不須要的端口

五、向public區域的永久配置添加端口8080/TCP驗證配置

六、從新啓動server0計算機(爲進行快速測試,也可使用sudo firewall-cmd --reload)

七、從desktop計算機運行:lab firewall grade 進行驗證

實驗詳細步驟:

1、配置系統,使iptables和 ip6iptables 服務不會被管理員之外啓動
[root@server0 ~]# systemctl status iptables
iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
   Active: inactive (dead)

[root@server0 ~]# systemctl mask iptables.service
ln -s '/dev/null' '/etc/systemd/system/iptables.service'
[root@server0 ~]# systemctl status iptables
iptables.service
   Loaded: masked (/dev/null)
   Active: inactive (dead)


[root@server0 ~]# systemctl status ip6tables
ip6tables.service - IPv6 firewall with ip6tables
   Loaded: loaded (/usr/lib/systemd/system/ip6tables.service; disabled)
   Active: inactive (dead)

[root@server0 ~]# systemctl mask ip6tables.service
ln -s '/dev/null' '/etc/systemd/system/ip6tables.service'
[root@server0 ~]# systemctl status ip6tables
ip6tables.service
   Loaded: masked (/dev/null)
   Active: inactive (dead)

2、檢查firewalld服務是否正在運行。若是未運行其啓動該服務
[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: inactive (dead) since 六 2019-07-13 07:15:59 CST; 4min 22s ago
 Main PID: 471 (code=exited, status=0/SUCCESS)

7月 13 07:07:26 localhost systemd[1]: Started firewalld - dynamic firewall daemon.
7月 13 07:15:59 server0.example.com systemd[1]: Stopping firewalld - dynamic firewall daemon...
7月 13 07:15:59 server0.example.com systemd[1]: Stopped firewalld - dynamic firewall daemon.

[root@server0 ~]# systemctl start firewalld.service
[root@server0 ~]# systemctl status firewalld.service
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
   Active: active (running) since 六 2019-07-13 07:21:45 CST; 2s ago
 Main PID: 2559 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─2559 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

7月 13 07:21:44 server0.example.com systemd[1]: Starting firewalld - dynamic firewall daemon...
7月 13 07:21:45 server0.example.com systemd[1]: Started firewalld - dynamic firewall daemon.


3、驗證默認防火牆區域是不是public
[root@server0 ~]# firewall-cmd --get-default-zone
public

# 若是不是
[root@server0 ~]# firewall-cmd --set-default-zone=public

4、確保public區域的永久配置中沒有打開不須要的端口(永久配置重啓還會生效,當前配置僅當前用用重啓恢復爲永久配置)

[root@server0 ~]# firewall-cmd --list-ports --permanent   # 永久配置
[root@server0 ~]# firewall-cmd --list-ports   # 當前加載

[root@server0 ~]# firewall-cmd --list-services  # 當前加載配置
dhcpv6-client ssh
[root@server0 ~]# firewall-cmd --list-services --permanent # 永久配置
dhcpv6-client ssh
[root@server0 ~]#

# 有多餘的服務,幹掉dhcpv6-client
[root@server0 ~]# firewall-cmd --remove-service=dhcpv6-client --permanent  # 永久配置
success
[root@server0 ~]# firewall-cmd --remove-service=dhcpv6-client  # 當前加載
success
[root@server0 ~]#

5、向public區域的永久配置添加端口8080/TCP驗證配置
[root@server0 ~]# firewall-cmd --add-port=8080/tcp --permanent
success
[root@server0 ~]# firewall-cmd --add-port=8080/tcp
success

6、從新啓動server0計算機(爲進行快速測試,也可使用sudo firewall-cmd --reload)
# reload驗證
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# firewall-cmd --list-ports --permanent
8080/tcp
[root@server0 ~]# firewall-cmd --list-ports
8080/tcp
[root@server0 ~]# firewall-cmd --list-services --permanent
ssh
[root@server0 ~]# firewall-cmd --list-services
ssh
[root@server0 ~]#

7、從desktop計算機運行:lab firewall grade 進行驗證

# 登陸desktop
lab firewall grade
firewall限制網絡 詳細操做步驟

實驗總結:

一、多個區域的概念

  • 多個區域是同時運行着的,默認區域是其中的一個運行區域而已

二、正常區域只是個邏輯上的概念(區域裏有一些默認的配置),來看它的匹配方式

  • 第一:若是一個客戶端數據包的源 IP 地址匹配,匹配到某一個zone中的規則了(防止歧義就用詳細的IP:1.1.1.1),那麼就應用這個zone的這個規則
  • 第二:若是一個客戶端數據包進入服務器的某一個接口(如 eth0),若是不知足第一條就應用這個zone的默認規則
  • 若是上面兩個都知足就應用默認zone規則

一些練習命令

crontab

* * * * * = 分 時 日 月 周 先定義5個時間位置

先拆開理解

----------------------分 時 日 月-------------------------
* * * * 前4個時間位置: 分 時 日 月

分鐘明確的時候:
10 * * * * xxx 

分 # 1個小時有60分鐘,第10分鐘只會在每一個小時出現一次(明確)
時 # 天天有24個小時,小時不明確因此24個小時都執行 (不明確)
日 # 沒月有31天,天不明確因此天天都執行 (不明確)
月 # 每一年有12個月,月不明確而因此每個月都執行 (不明確)

# 每月的、天天的、每小時的第10分鐘執行一次   簡化下:每小時第10分鐘執行


小時也明確的時候-例子1:
* 10 * * * xxx 

分 # 分鐘不明確因此:每分鐘要執行 (不明確)
時 # 小時明確10點,1天有24個小時,天天10點只會在天天出現一次 (明確)
日 # 沒月有31天,天不明確因此天天都執行 (不明確)
月 # 每一年有12個月,月不明確而因此每個月都執行 (不明確)

# 每月的、天天的第10小時的、每分鐘都執行    簡化下:天天10點,每分鐘都執行


小時也明確的時候-例子2:
10 10 * * * xxx 

分 # 1個小時有60分鐘,第10分鐘只會在每一個小時出現一次(明確)
時 # 小時明確10點,1天有24個小時,天天10點只會在天天出現一次 (明確)
日 # 沒月有31天,天不明確因此天天都執行 (不明確)
月 # 每一年有12個月,月不明確而因此每個月都執行 (不明確)

# 每月的、天天的第10小時的、第10小時的、第10分鐘    簡化下:天天10點10分執行一次


----------------------周-------------------------


# 周這個時間位置能夠理解爲:且關係判斷

1 1 * * *  這個是天天1點1分執行1次
1 1 * * 1  當咱們定義周1了以後,就會進行判斷: 天天1點1分,而且今天是周1才執行

tar

關注3個命令就好:

命令格式:
# 打壓縮包
tar -cf[-j,-J,-z]  build.[bzip2,xz,gizp]  source
# 解壓縮包
tar -xf[-j,-J,-z]  build.[bzip2,xz,gizp]  source

# 參數
-j, --bzip2
-J, --xz
-z, --gzip

服務器加入LDAP

重要記住安裝那個包:sssd authconfig-gtk brb5-workstation

# sssd是什麼
一個守護進程,該進程能夠用來訪問多種驗證服務器,如LDAP,Kerberos等,並提供受權。

SSSD是 介於本地用戶和數據存儲之間的進程,本地客戶端首先鏈接SSSD,再由SSSD聯繫外部資源提供者(一臺遠程服務器)

# sssd優點
(1)避免了本地每一個客戶端程序對認證服務器大量鏈接,全部本地程序僅聯繫SSSD,由SSSD鏈接認證服務器或SSSD緩存,有效的下降了負載。
(2)容許離線受權,SSSD能夠緩存遠程服務器的用戶認證身份,這容許在遠程認證服務器宕機是,繼續成功受權用戶訪問必要的資源。

SSSD默認配置文件位於/etc/sssd/sssd.conf,你能夠經過命令使得SSSD以指定的配置文件運行:
#sssd –c /etc/sssd/customfile.conf


-------------------------------------------------------------------------------------------------
# authconfig-gtk 是什麼
authconfig-gtk 圖形化工具提供了配置下面4個服務的圖形終端:
- NIS
- LDAP
- Kerbero5
- Winbind

-------------------------------------------------------------------------------------------------
# krb5-workstation Kerberos工具包,Kerberos:Kerberos是一種計算機網絡認證協議,它容許某實體在非安全網絡環境下通訊,向另外一個實體以一種安全的方式證實本身的身份

Kerberos工做原理圖

實驗所需信息

名稱
LDAP服務器 ldap://classroom.example.com
LDAP基礎DN   dc=example,dc=com
使用TLS
根CA http://classroom.example.com/pub/example-ca.crt
Kerberos域 EXAMPLE.COM
Kerberos KDC classroom.example.com
Kerberos 管理服務器 classroom.example.com
 
打開圖形化配置界面:Applicati-Sundry-authentication 根據提供的信息填寫配置項,最後在高級設置裏勾選首次登錄建立用戶家目錄

 

驗證

[root@desktop0 ~]# getent passwd ldapuser0
ldapuser0:*:1700:1700:LDAP Test User 0:/home/guests/ldapuser0:/bin/bash
[root@desktop0 ~]#
[root@desktop0 ~]#
[root@desktop0 ~]# ssh ldapuser0@localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 65:4d:ac:8a:c9:58:82:b5:0c:91:c4:ef:a5:e6:f6:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
ldapuser0@localhost's password:
Creating home directory for ldapuser0.
[ldapuser0@desktop0 ~]$

NTP調整系統時區和時間

記住一個命令就好:tzselect

 

RHCE實驗總結-點我跳轉

 

 

練習環境獲取方法

一、關注公衆號

二、輸入:rhce

 

 

 

--end--

相關文章
相關標籤/搜索