RHCE試題解析

環境準備

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

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

試題及答案

1、配置SELINUX

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

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

2、配置SSH訪問

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

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

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

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

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

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

4、配置防火牆端口轉發

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

  • 在 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'

5、配置鏈路聚合

試題概述:
  在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 networkvim

6、配置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通同上所述。安全

7、配置本地郵件服務器

試題概述:
  在系統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服務訪問權限。

8、經過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

9、配置多用戶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

10、配置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

11、掛載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

12、實現一個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

十3、配置安全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

十4、配置虛擬主機

試題概述:
  在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

十5、配置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>

十6、實現動態web訪問

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

  • 動態內容由名爲 webapp0.example.com 的虛擬主機提供
  • 虛擬主機偵聽在端口 8909
  • 從 http://classroom.example.com/pub/materials/webinfo.wsgi 下載一個腳本,而後放在適當的位置,不管如何不要修改此文件的內容
  • 客戶端訪問 http://webapp0.example.com:8909 可接收到動態生成的 Web 頁
  • 此 http://webapp0.example.com:8909 必須能被 example.com 域內的全部系統訪問
:安裝所需模塊
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

十7、建立一個腳本

試題概述:
  在 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

十8、建立一個添加用戶的腳本

試題概述:
  在 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

十9、配置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

二10、配置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

二11、配置一個數據庫

試題概述:
  在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='';

二12、數據庫查詢

試題概述:
  在系統 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 ;
相關文章
相關標籤/搜索