RHCE試題解析


環境准備

yum-config-manager --add-repo=ADDREPO
vim /etc/yum.conf
gpgcheck=0(1=on,0=off)

  增加指定repo源,關閉簽名合法性檢查。

試題及答案

一、配置SELINUX

試題概述:
  確保兩個虛擬機的 SELinux 處於強制啟用模式。

vim /etc/selinux/config
SELINUX=enforcing
setenforce 1 (usage:  setenforce [ Enforcing | Permissive | 1 | 0 ])

二、配置SSH訪問

試題概述:
按以下要求配置 SSH 訪問:

  • 用戶能夠從域內example.com的客戶端SSH遠程訪問您的兩個虛擬機系統;
  • 在域my133t.org內的客戶端不能訪問您的兩個虛擬機系統。
vim /etc/ssh/sshd_config
DenyUsers *@*.my133t.org *@172.25.0.*

  也可以使用防火牆規則進行限制,后面會提到。

三、自定義用戶環境(別名設置)

試題概述:
  在系統system1 和 system2上創建自定義命令為 qstat,此自定義命令將執行以下命令: /bin/ps -Ao pid,tt,user,fname,rsz;
  此命令對系統中所有用戶有效。

vim /etc/profile
qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
source /etc/profile

四、配置防火牆端口轉發

試題概述:
  在系統 system1 配置端口轉發,要求如下:

  • 在 172.25.0.0/24 網絡中的客戶機,訪問 server0 的本地端口 5423 將被轉發到 80
  • 此設置必須永久有效。
firewall-cmd --set-default-zone=trusted (將默認區域設置為默認模式)
firewall-cmd --permanent --add-source=172.25.0.0/24 --zone=block (防火牆拒絕my133t.org訪問)
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=tcp to-port=80'
firewall-cmd --add-rich-rule='rule family=ipv4 source address=172.24.0.0/24 forward-port port=5423 protocol=udp to-port=80'

五、配置鏈路聚合

試題概述:
  在system1.example.com 和 system2.example.com 之間配置一個鏈路 team0:  此鏈路使用接口 eth1和eth2:

  • 此鏈路在一個接口失效時仍然能工作;
  • 此鏈路在system1使用下面的地址172.24.4.30/255.255.255.0;
  • 此鏈路在system2使用下面的地址172.24.4.40/255.255.255.0;
  • 此鏈路在系統重啟之后依然保持正常狀態。
nmcli connection add type team con-name team0 ifname team0 connection.autoconnect yes config '{"runner":{"name":"activebackup"}}'
nmcli connection add type team-slave con-name eth1 ifname eth1 connection.autoconnect yes master team0
nmcli connection add type team-slave con-name eth2 ifname eth2 connection.autoconnect yes master team0
nmcli connection modify team0 ipv4.method manual ipv4.address "172.24.4.30/24" connection.autoconnect yes  
nmcli connection up team0
teamdctl team0 state 

  接口啟動后測試本機到新增IP是否可以正常通信,如果不通可以重啟網絡服務后再次測試systemctl restart network

六、配置IPv6地址

試題概述:
  在您的考試系統上配置接口 eth0 使用下列 IPv6 地址:

  • system1上的地址應該是 2003:ac18::305/64:
  • system2上的地址應該是 2003:ac18::306/64;
  • 兩個系統必須能與網絡 2003:ac18/64 內的系統通信 ;
  • 地址必須在重啟后依舊生效;
  • 兩個系統必須保持當前的 IPv4 地址並能通信。
nmcli connection modify eth0 ipv6.method manual ipv6.address "2003:ac18::305/64"
nmcli connection up eth0

  如果不能ping通同上所述。

七、配置本地郵件服務器

試題概述:
  在系統system1上配置郵件服務,滿足以下要求:

  • 這些系統不接收外部發送來的郵件;
  • 在這些系統上本地發送的任何郵件都會自動路由到smtp0.example.com;
  • 從這些系統上發送的郵件顯示來自於system1.example.com;
      您可以通過在system1上發送郵件到本地用戶 student 來測試您的配置,系統system2.example.com 上的用戶 student 將會收到這封郵件。
:配置文件修改
vim /etc/postfix/main.cf
relayhost = smtp0.example.com  //自動路由配置
inet_interfaces = loopback-only  //監聽在回環網卡
myorigin = system1.example.com //郵件顯示
mynetworks = 127.0.0.0/8 [::1]/28
local_transport = error:local

:啟動服務
systemctl restart postfix 
systemctl enalbe postfix 

:測試
echo 'test' | mail -s 'Test1' student

  如果防火牆默認域非trusted需要開啟smtp服務訪問權限。

八、通過SMB發布共享目錄

試題概述:
  在system1上通過 SMB 共享/common 目錄:

  • 您的 SMB 服務器必須是 STAFF 工作組的一個成員;
  • 共享名必須為 common;
  • 只有 example.com 域內的客戶端可以訪問 common 共享;
  • common 必須是可以瀏覽的;
  • 用戶 harry 必須能夠讀取共享中的內容,如果需要的話,驗證的密碼是 migwhisk。
:安裝及基本設置
yum -y install samba
mkdir /common
setsebool -P samba_export_all_rw=on
smbpasswd -a harry

:修改配置文件
vim /etc/samba/smb.conf
[global]
    workgroup = STAFF
[common]
       path = /common
       hosts allow = 172.24.0.0/24
       browseable = yes

:重啟並設置開機自啟
systemctl restart smb nmb 
systemctl enable smb nmb 

九、配置多用戶Samba掛載

試題概述:
  在system1通過 SMB 共享目錄/devops,並滿足以下要求:

  • 共享名為 devops;
  • 共享目錄 devops 只能被 example.com 域中的客戶端使用;
  • 共享目錄 devops 必須可以被瀏覽;
  • 用戶 kenji 必須能以讀的方式訪問此共享,該問密碼是 atenorth;
  • 用戶 chihiro 必須能以讀寫的方式訪問此共享,訪問密碼是 atenorth;
  • 此共享永久掛載在 system2.example.com 上的/mnt/dev 目錄,並使用用戶 kenji 作為認證,任何用戶可以通過用戶 chihiro 來臨時獲取寫的權限。
:基本准備
mkdir /devops
smbpasswd -a kenji
smbpasswd -a chihiro 
setfacl -m u:chihiro:rwx /devops

:修改配置文件
vim /etc/samba/smb.conf
[devops]
    path = /devops
    hosts allow = 172.24.0.0/24
    write list = chihiro

:重啟服務
systemctl restart smb nmb 

:system2操作
:准備基本環境
yum -y install samba-client cifs-utils 
smbclient -L system1.example.com -U chihiro
mkdir /mnt/dev

:修改配置文件
vim /etc/fstab
//system1.example.com/devops /mnt/dev cifs defaults,multiuser,username=kenji,password=atenorth,sec=ntlmssp,_netdev 0 0 

:掛載配置
mount -a 

:驗證臨時權限
su - other
cifscreds add -u chihiro system1.example.com 
touch /mnt/dev/1.txt

十、配置NFS共享服務

試題概述:
  在system1配置 NFS 服務,要求如下:

  • 以只讀的方式共享目錄/public,同時只能被 example.com 域中的系統訪問;
  • 以讀寫的方式共享目錄/protected,能被 example.com 域中的系統訪問;
  • 訪問/protected 需要通過 Kerberos 安全加密,您可以使用下面 URL 提供的密鑰:http://classroom.example.com/pub/keytabs/system1.keytab;
  • 目錄/protected 應該包含名為 project 擁有人為 ldapuser0 的子目錄;
  • 用戶 ldapuser0 能以讀寫方式訪問/protected/project。
:環境准備
mkdir -p /public /protected/project 
chown ldapuser0 /protected/project
wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab

:修改配置
vim /etc/exports 
/public 172.24.4.0/24(ro)
/protected 172.24.4.0/24(rw,sec=krb5p)

:啟動服務並設置為開機自啟
systemctl start nfs-secure-server nfs-server
systemctl enable nfs-secure-server nfs-server

十一、掛載NFS共享

試題概述:
  在system2上掛載一個來自 system1.exmaple.com 的共享,並符合下列要求:

  • /public 掛載在下面的目錄上/mnt/nfsmount;
  • /protected掛載在下面的目錄上/mnt/nfssecure 並使用安全的方式,密鑰下載 URL:http://classroom.example.com/pub/keytabs/system2.keytab;
  • 用戶 ldapuser0 能夠在/mnt/nfssecure/project 上創建文件;
  • 這些文件系統在系統啟動時自動掛載。
:環境准備
mkdir -p /mnt/nfsmount /mnt/nfssecure
wget -O /etc/krb5.keytab http://classroom/pub/keytabs/system1.keytab
systemctl start nfs-secure 
systemctl enable nfs-secure
showmount -e system1.example.com

:修改配置文件
vim /etc/fstab
system1.example.com:/public /mnt/nfsmount nfs _netdev 0 0 
system1.example.com:/protected /mnt/nfssecure nfs sec=krb5p,_netdev 0 0

:掛載
mount -a

十二、實現一個web服務器

試題概述:
  為 http://system1.example.com 配置 Web 服務器:

  • http://classroom.example.com/pub/materials/station.html 下載一個主頁文件,並將該文件重命名為 index.html;
  • 將文件 index.html 拷貝到您的 web 服務器的 DocumentRoot 目錄下;
  • 不要對文件 index.html 的內容進行任何修改;
  • 來自於 example.com 域的客戶端可以訪問此 Web 服務;
  • 來自於 my133t.org 域的客戶端拒絕訪問此 Web 服務。
:安裝Apache服務
yum -y install httpd 
:修改配置文件
vim /etc/httpd/conf.d/rhce.conf
<VirtualHost *:80>
    ServerName system1.example.com
    DocumentRoot /var/www/html
</VirtualHost>
:下載網頁文件
wget -O /var/www/html/index.html http://classroom.example.com/pub/materials/station.html
:重啟Apache服務並設置為開機自啟
systemctl restart httpd 
systemctl enable httpd 

十三、配置安全web服務

試題概述:
  為站點 http://server0.example.com 配置 TLS 加密:

  • 已簽名證書從http://classroom.example.com/pub/tls/certs/system1.crt 獲取 ;
  • 證書的密鑰從http://classroom.example.com/pub/tls/private/system1.key獲取;
  • 證書的簽名授權信息從http://classroom.example.com/pub/example-ca.crt獲取。
:安裝所需認證模塊
yum -y install mod_ssl 

:下載所需文件
cd /etc/pki/tls/certs/ 
wget http://classroom.example.com/pub/example-ca.crt
http://classroom.example.com/pub/tls/certs/system1.crt
cd etc/pki/tls/private/
wget http://classroom.example.com/pub/tls/private/system1.key

:修改配置文件
vim /etc/httpd/conf.d/ssl.conf
<VirtualHost _default_:443>
    DocumentRoot /var/www/html
    ServerName system1.example.com:443
    SSLCertificateFile          /etc/pki/tls/certs/system1.crt
    SSLCertificateKeyFile       /etc/pki/tls/private/system1.key
    SSLCACertificateFile        /etc/pki/tls/certs/example-ca.crt
</VirtualHost>

:重啟Apache服務
systemclt restart httpd 

十四、配置虛擬主機

試題概述:
  在system1上擴展您的 web 服務器,為站點 http://www0.example.com創建一個虛擬主機,然后執行下述步驟:

  • 設置 DocumentRoot 為/var/www/virtual;
  • http://classroom.example.com/pub/materials/www.html 下載文件並重命名為index.html;
  • 不要對文件 index.html 的內容做任何修改;
  • 將文件 index.html 放到虛擬主機的 DocumentRoot 目錄下;
  • 確保 student 用戶能夠在/var/www/virtual 目錄下創建文件;
:環境准備
mkdir /var/www/virtual
setfacl -m u:student:rwx /var/www/virtual
wget -O /var/www/virtual/index.html  http://classroom.example.com/pub/materials/www.html 

:修改配置文件
vim /etc/httpd/conf.d/rhce.conf
<VirtualHost *:80>
    ServerName www0.example.com
    DocumentRoot /var/www/virtual
</VirtualHost>

:重啟Apache服務
systemctl restart httpd

十五、配置web內容訪問

試題概述:
  在您的system1上的 web 服務器的 DocumentRoot 目錄下創建一個名為private 的目錄,要求如下:

  • http://classroom.example.com/pub/materails/private.html 下載一個文件副本到這個目錄,並且得命名為 index.html;
  • 不要對這個文件的內容做任何修改;
  • 從 server0 上,任何人都可以瀏覽 private 的內容,但是從其他系統不能訪問這個目錄的內容。
:環境准備
mkdir /var/www/html/private
wget -O /var/www/html/private/index.html http://classroom.example.com/pub/materails/private.html 

:修改配置
vim /etc/httpd/conf.d/rhce.conf
<Directory /var/www/html/private>
    Require ip 127.0.0.1 
</Directory>

十六、實現動態web訪問

試題概述:
  在system1上配置提供動態 Web 內容,要求如下:

:安裝所需模塊
yum -y install mod_wsgi 

:准備環境
cd /var/www/html
wget http://classroom.example.com/pub/materials/webinfo.wsgi 
semanage port -a -t http_port_t -p tcp 8909

:修改配置
vim /etc/httpd/conf.d/rhce.conf
Listen 8909
<VirtualHost *:8909>
    ServerName webapp0.example.com:8909
    DocumentRoot /var/www/html
    WSGIScriptAlias / /var/www/html/webinfo.wsgi
</VirtualHost>

:重啟Apache服務
systemctl restart httpd

十七、創建一個腳本

試題概述:
  在 system1上創建一個名為/root/foo.sh 的腳本,讓其提供下列特性:

  • 當運行/root/foo.sh redhat,輸出為 fedora;
  • 當運行/root/foo.sh fedora,輸出為 redhat;
  • 當沒有任何參數或者參數不是 redhat 或者 fedora 時,其錯誤輸出產生以下的信息:/root/foo.sh redhat|fedora。
vim /root/foo.sh
#!/bin/bash
if [ "$1" = "redhat" ] ; then
    echo "fedora"
elif [ "$1" = "fedora" ] ; then
    echo "redhat"
else
    echo "/root/foo.sh redhat|fedora" 
fi

chmod +x /root/foo.sh

十八、創建一個添加用戶的腳本

試題概述:
  在 system1上創建一個腳本,名為/root/batchusers,此腳本能實現為系統system1創建本地用戶,並且這些用戶的用戶名來自一個包含用戶名的文件,同時滿足下列要求:

  • 此腳本要求提供一個參數,此參數就是包含用戶名列表的文件;
  • 如果沒有提供參數,此腳本應該給出下面的提示信息 Usage: /root/batchusers 然后退出並返回相應的值;
  • 如果提供一個不存在的文件名,此腳本應該給出下面的提示信息 Input file not found 然后退出並返回相應的值;
  • 創建的用戶登陸 Shell 為/bin/false,此腳本不需要為用戶設置密碼;
  • 您可以從下面的 URL 獲取用戶名列表作為測試用:http://classroom.example.com/pub/materials/userlist。
vim /root/batchusers
#!/bin/bash
if [ $# -eq 0 ] ; then
echo "Usage: /root/batchusers <userfile>"
exit 1 
fi
if [ ! -f $1 ] ; then
echo "Input file not found" 
exit 2
fi
for name in $(cat $1)
do
useradd -s /bin/false $name
done

chmod +x /root/batchusers

十九、配置iSCSI服務端

試題概述:
  配置 server0 提供 iSCSI服務,磁盤名為 iqn.2016-02.com.example:system1,並符合下列要求:

  • 服務端口為 3260;
  • 使用iscsi_store作其后端卷,其大小為 3GiB 訪問;
  • 此服務只能被system2.example.com訪問。
:准備磁盤空間
fdisk /dev/vda
Command (m for help): n
Partition number (1-128, default 1): First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +3G 
Command (m for help): w 

partprobe /dev/vda

:安裝並配置iSCSI
yum -y install targetcli
targetcli
/> backstores/block create block1  /dev/vda1
/> /iscsi create iqn.2016-02.com.example:system1
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/acls create iqn.2016-02.com.example:system2
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/luns create /backstores/block/block1
/> /iscsi/iqn.2016-02.com.example:system1/tpg1/portals create 172.24.4.30 3260
/> saveconfig
/> exit

:重啟並設置開機自啟
systemctl restart target 
systemctl enable target 

二十、配置iSCSI客戶端

試題概述:
  配置system2使其能連接 system1上提供的 iqn.2016-02.com.example:system1,並符合以下要求:

  • iSCSI 設備在系統啟動的期間自動加載;
  • 塊設備 iSCSI 上包含一個大小為 2100MiB 的分區,並格式化為 ext4 文件系統  此分區掛載在/mnt/data 上,同時在系統啟動的期間自動掛載。
:安裝iSCSI客戶端
yum -y install iscsi-initiator-utils 

:修改iSCSI本機iqn名稱
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2016-02.com.example:system2

:重啟服務
systemctl restart iscsid
systemctl enalbe iscsid 


:查找、連接磁盤
 iscsiadm -m discovery -t st -p system1
 iscsiadm -m node -L all

 :分區設置
 lsblk (查看新磁盤)
 fdisk /dev/sda 
 Command (m for help): n
Partition number (1-128, default 1): First sector (34-20971486, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971486, default 20971486): +2100M  
Command (m for help): w 

partprobe /dev/sda
mkfs.ext4 /dev/sda1 

:掛載設置
mkdir /mnt/data

vim /etc/fstab
/dev/sda1 /mnt/data ext4 defaults,_netdev 0 0 
mount - a

二十一、配置一個數據庫

試題概述:
  在system1上創建一個 MariaDB 數據庫,名為 Contacts,並符合以下條件:  數據庫應該包含來自數據庫復制的內容,復制文件的 URL 為:http://classroom.example.com/pub/materials/users.sql:

  • 數據庫只能被 localhost 訪問;
  • 除了 root 用戶,此數據庫只能被用戶 Raikon 查詢,此用戶密碼為 atenorth  root 用戶的密碼為 atenorth,同時不允許空密碼登陸。
:安裝、配置、啟動MariaDB
yum -y install mariadb mariadb-server
vim /etc/my.cnf
[mysqld]
skip-networking

systemctl restart mariadb 
systemctl enable mariadb 

:數據庫基本操作
wget http://classroom.example.com/pub/materials/users.sql
mysqladmin -u root password 'atenorth'
mysql -u root -patenorth

CREATE DATABASE Contacts;
USE Contacts;
SOURCE /root/users.sql
GRANT select ON Contacts.* to Raikon@localhost IDENTIFIED BY 'atenorth';
DELETE FROM mysql.user WHERE Password='';

二十二、數據庫查詢

試題概述:
  在系統 system1上使用數據庫 Contacts,並使用相應的 SQL 查詢以回答下列問題:

  • 密碼是 solicitous 的人的名字?
  • 有多少人的姓名是 Barbara 同時居住在 Sunnyvale?
SELECT name FROM base WHERE password='solicitous';
SELECT count(*) FROM base,location WHERE base.name='Barbara' AND location.city='Sunnyvale' AND base.id=location.id ;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM