下午RHCE部分:
第一題:配置SELinux
在server0和desktop0上要求SELinux的狀態為enforcing。
要求系統重啟后依然生效。
vim /etc/selinux/config
SELINUX=enforcing
setenforce 1
getenforce
第二題:配置防火墻
在server0和desktop0上設置防火墻,對SSH實現訪問限制:
允許example.com域的客戶對server0和desktop0進行ssh訪問。
禁止my133t.org域的客戶對server0和desktop0進行ssh訪問。
備注:my133t.org是在172.17.10.0/24網絡。(根據考試實際提供的網段配置)
systemctl mask iptables
systemctl mask ip6tables
systemctl enable firewalld
systemctl start firewalld
firewall-config ????#圖形化設置
configuration: permanent
zone :public
services :ssh
rich rules
add
family : ipv4
element :service?? ssh
action : reject
source : 172.17.10.0/24
ok
options?? reload firewalld
firewall-cmd –list-all??? #檢查是否生效
第三題:配置IPv6地址
在你的考試系統上配置接口eth0使用以下IPv6地址:
system1上的地址應該是2003:ac18::305/64
system2上的地址應該是2003:ac18::30a/64
兩個系統必須能與網絡2003:ac18/64內的系統通信
地址必須在重啟后依舊生效。
兩個系統必須保持當前的IPv4地址并能通信
nm-connection-editor
eth0 edit
ipv6 settings? manual
2003:ac18::305?? 64
ok
systemctl restart network
ping6 2003:ac18::305
第四題:配置鏈路聚合
在system2和system1之間按以下要求設定一個鏈路:
此鏈路使用接口eth1和eth2
此鏈路在一個接口失效時仍然能工作
此鏈路在system1使用下面的地址172.16.3.40/255.255.255.0
此鏈路在system2使用下面的地址172.16.3.45/255.255.255.0
此鏈路在系統重啟之后依然保持正常狀態
nmcli con add type team con-name team0 ifname team0 config
‘{“runner”:{“name”:”activebackup”}}’
#在man teamd.conf 里面的第316行有此字段
nmcli con mod team0 ipv4.addresses ‘172.16.3.40/24’ ipv4.method manual
connection.autoconnect yes
nmcli con add type team-slave con-name team0-port1 ifname eth1 master team0
nmcli con add type team-slave con-name team0-port2 ifname eth2 master team0
nmcli con up team0-port1
nmcli con up team0-port2
nmcli con up team0
teamdctl team0 state
ping system1.group8.example.com
nmcli dev dis eth1
nmcli con up team0-port1
teamdctl team0 state
ping system1.group8.example.com
第五題:自定義用戶環境
在系統system1和system2上創建自定義命令為qstat ,要求:
此自定義命令將執行以下命令:/bin/ps -Ao pid,tt,user,fname,rsz
此命令對系統中的所有用戶有效
vim /etc/bashrc
alias qstat=’/bin/ps -Ao pid,tt,user,fname,rsz’
.? /etc/bashrc
alias 驗證
第六題:配置本地郵件服務
在系統 system2 和system1 上配置郵件服務,要求:
這些系統不接收外部發送來的郵件
在這些系統上本地發送的任何郵件都會自動路由到mail.group8.example.com
從這些系統上發送的郵件顯示來自于server.group8.example.com
您可以通過發送郵件到本地用戶 dave 來測試您的配置,系統 server.group8.example.com 已經配置把此用戶的郵件轉到URL?http://server.group8.example.com/pub/received_mail/8
systemctl status postfix
firewall-cmd –permanent –add-service=smtp???? #不確定要不要加
firewall-cmd –reload
postconf -e “inet_interfaces=loopback-only”
postconf -e “myorigin=server.group8.example.com”? ?重寫本地郵件顯示來源域
postconf -e “relayhost=[mail.group8.example.com]”? ?指定中繼郵件服務器
systemctl restart postfix
mail -s “hello” dave
curl http://server.group8.example.com/pub/received_mail/8
#或者直接修改配置文件 vim /etc/postfix/main.cf 在最尾行加入
第七題:配置端口轉發
在系統 system1 設定端口轉發,要求:
在172.24.8.0/24網絡中的系統,訪問system1的本地端口 5423 將被轉發到 80
此設置必須永久有效。
firewall-config
configuration permanent
zone public
rich rules
add
family ipv4
element? forward-port?? 點旁邊框框
source?? protocol tcp ??????#tcp和udp兩個協議都要添加
port/port range 5423
destination port/port range 80
source ip 172.24.8.0/24
add
family ipv4
element? forward-port?? 點旁邊框框
source?? protocol udp?? #這一次是udp協議
port/port range 5423
destination port/port range 80
source ip 172.24.8.0/24
option? reload firewalld
firewall-cmd –list-all
第八題:通過SMB共享目錄
在 system1 上配置SMB服務 ,要求:
您的SMB服務器必須是STAFF工作組的一個成員
共享/common目錄,共享名必須為common
group8.example.com 域內的客戶端可以訪問common共享
Common必須是可以瀏覽的
用戶 andy 必須能夠讀取共享中的內容,如果需要的話,驗證密碼是redhat
system1:
yum install samba samba-client
systemctl enable? smb nmb
systemctl start smb nmb
mkdir /common
vim /etc/samba/smb.conf
workgroup = STAFF
security = user??? #確保項
passdb backend = tdbsam??? #確保項
[common]
path = /common
hosts allow = 172.24.8.??? #記得末尾有點
writable = no
browseable = yes
systemctl restart? smb nmb
firewall-cmd –permanent –add-service=samba
firewall-cmd –reload
chcon -t samba_share_t /common/
smbpasswd -a andy
password : redhat
在system2上驗證
yum install samba-client
smbclient? //172.24.8.11/common -U andy??? #system1 ip
第九題:配置多用戶SMB掛載
在 system1 通過 SMB 共享目錄 /devops ,并滿足下列要求:
共享名為 devops
共享目錄 devops 只能 group8.example.com 域中的客戶端使用
共享目錄 devops 必須可以被瀏覽
用戶 silene 必須能以讀的方式訪問此共享,訪問密碼是redhat
用戶 akira 必須能以讀寫的方式訪問此共享,訪問密碼是redhat
此共享永久掛載在 system2.group8.example.com 上的 /mnt/dev 目錄,并使用用戶 silene 作為認證任何用戶,可以通過用戶 akira 來臨時獲取寫的權限
system1:
mkdir /devops
vim /etc/samba/smb.conf
[devops]
path = /devops
hosts allow = 172.24.8.
writable = no
browseable = yes
write list = akira
chcon? –t? samba_share_t? /devops
setfacl -m u:akira:rwx /devops
smbpasswd -a silene
password:redhat
smbpasswd -a akira
password:redhat
systemctl restart smb nmb
system2:
驗證:smbclient //system1/devops/ -U silene
yum install cifs-utils
mkdir? /mnt/dev
vim /etc/fstab
//172.24.8.11/devops? /mnt/dev?? cifs??? defaults,multiuser,username=silene,password=redhat,sec=ntlmssp 0 0
mount -a
驗證:
df
su – silene
cifscreds add 172.24.8.11
cd /mnt/dev
touch a
exit
su – akira
cifscreds add 172.24.8.11
cd /mnt/dev
touch a
ls
a??abc.txt
第十題:配置NFS服務
在 system1 配置NFS服務,要求如下:
以只讀的方式共享目錄 /public ,同時只能被 group8.example.com 域中的系統訪問
以讀寫的方式共享目錄 /protected ,同時只能被 group8.example.com 域中的系統訪問
訪問 /protected 需要通過Kerberos安全加密,您可以使用下面URL提供的密鑰
http://server.group8.example.com/pub/keytabs/system1.keytab
目錄 /protected 應該包含名為 project 擁有人為 andres 的子目錄
用戶 andres 能以讀寫方式訪問 /protected/project
systemctl? enable nfs-server nfs-secure-server
systemctl? start nfs-server? #這里直接啟動nfs-secure-server會失敗
firewall-cmd –permanent –add-service=nfs
firewall-cmd –reload
mkdir? /public
mkdir -p /protected/project
chown andres /protected/project
chcon -R -t public_content_t /public
chcon -R -t public_content_t /protected
wget -O /etc/krb5.keytab? http://server.group8.example.com/pub/keytabs/system1.keytab
vim /etc/exports
/public *.group8.example.com(ro,sec=sys,sync)
/protected *.group8.example.com(rw,sec=krb5p,sync)
/etc/sysconfig/nfs
RPCNFSDARGS=”-V 4.2″
systemctl restart nfs-server nfs-secure-server? #7.2以上nfs-secure-server會自動啟動
exportfs -ra
exportfs?? #檢驗
第十一題:掛載一個NFS共享
在 system2 上掛載一個來自 system1.group8.example.com 的NFS共享,并符合下列要求:
/public 掛載在下面的目錄上 /mnt/nfsmount
/protected掛載在下面的目錄上 /mnt/nfssecure 并使用安全的方式,密鑰下載URL如下:
http://server.group8.example.com/pub/keytabs/system2.keytab
用戶 andres 能夠在 /mnt/nfssecure/project 上創建文件
這些文件系統在系統啟動時自動掛載。
system2:
mkdir? /mnt/nfsmount? mkdir /mnt/nfssecure
wget -O /etc/krb5.keytab http://server.group8.example.com/pub/keytabs/system2.keytab
vim /etc/fstab
172.24.8.11:/public??????? /mnt/nfsmount???? nfs? defaults,sec=sys 0 0
172.24.8.11:/protected??? /mnt/nfssecure? nfs? defaults,sec=krb5p,v4.2 0 0
systemctl enables nfs-secure
systemctl start nfs-secure
mount -a
驗證:
su -andres
klist?? #查看
kinit?? #獲取證書
cd /mnt/nfssecure/project/
touch hello
ls
#注意時間同步問題,有可能導致失敗!
第十二題:實現一個web服務器
在 system1 上配置一個站點 http://system1.group8.example.com/,然后執行下述步驟:
從 http://server.group8.example.com/pub/system1.html 下載文件,并且將文件重名為 index.html 不要修改此文件的內容
將文件 index.html 拷貝到您的 web 服務器的 DocumentRoot 目錄下
來自于 group8.example.com 域的客戶端可以訪問此web服務
來自于my133t.org域的客戶端拒絕訪問此web服務
yum install httpd
systemctl enable httpd
systemctl start httpd
firewall-cmd –permanent –add-service=http
firewall-cmd –reload
firewall-cmd –list-all???? #檢測規則
cd /etc/httpd/conf.d/
cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf .
vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot “/var/www/html”
ServerName system1.group8.example.com
<Directory “/var/www/html”>
<RequireAll>
Require all granted
Require not host .my133t.org
</RequireAll>
</Directory>
</virtualHost>
cd /var/www/html/???????? #注意一定要進入目錄后才下載,否則值會改變
wget -O /var/www/html/index.html http://server.group8.example.com/pub/system1.html
systemctl restart httpd
ss -nutpl | grep -w 80?? #檢測
測試:system2
curl system1.group8.example.com
第十三題:配置安全web服務
為站點 http://system1.group8.example.com 配置TLS加密:
一個已簽名證書從 http://server.group8.example.com/pub/tls/certs/system1.crt 獲取
此證書的密鑰從 http://server.group8.example.com/pub/tls/private/system1.key 獲取
此證書的簽名授權信息從 http://server.group8.example.com/pub/tls/certs/ssl-ca.crt 獲取
system1:
yum install mod_ssl
vim /etc/httpd/conf.d/httpd-vhosts.conf??? #繼續編輯上題的文件
<VirtualHost *:443>
DocumentRoot “/var/www/html”
ServerName system1.group8.example.com
<Directory “/var/www/html”>
<RequireAll>
Require all granted
Require not host .my133t.org
</RequireAll>
</Directory>
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/pki/tls/certs/system1.crt
SSLCertificateKeyFile /etc/pki/tls/private/system1.key
SSLCACertificateFile /etc/pki/tls/certs/ssl-ca.crt
</virtualHost>
下載證書:
wget -O /etc/pki/tls/certs/system1.crt http://server.group8.example.com/pub/tls/certs/system1.crt
wget -O /etc/pki/tls/private/system1.key http://server.group8.example.com/pub/tls/private/system1.key
wget -O /etc/pki/tls/certs/ssl-ca.crt ?http://server.group8.example.com/pub/tls/certs/ssl-ca.crt
cd /etc/pki/tls/certs/???? #檢查
cd ..
cd private/??? #繼續檢查
firewall-cmd –permanent –add-service=https
firewall-cmd –reload
firewall-cmd –list-all
systemctl restart httpd
檢測:system2
curl -k https://system1.group8.example.com
第十四題:配置虛擬主機
在 system1 上擴展您的web服務器,為站點 http://www8.group8.example.com 創建一個虛擬主機,然后執行下述步驟:
設置 DocumentRoot 為 /var/www/virtual
從 http://server.group8.example.com/pub/www8.html 下載文件重名為 index.html ,不要對文件 index.html 的內容做任何修改
將文件 index.html 放到虛擬主機的 DocumentRoot 目錄下
確保 andy 用戶能夠在 /var/www/virtual 目錄下創建文件
注意:原站點 http://system1.group8.example.com 必須仍然能夠訪問,名稱服務器 server.group8.example.com 已經提供對主機名 www8.group8.example.com 的域名解析
mkdir /var/www/virtual
wget -O /var/www/virtual/index.html http://server.group8.example.com/pub/www8.html
setfacl -m u:andy:rwx /var/www/virtual/
vim /etc/httpd/conf.d/httpd-vhosts.conf?????? #繼續添加內容
<VirtualHost *:80>
DocumentRoot “/var/www/virtual”
ServerName www8.group8.example.com
<Directory “/var/www/virtual”>
<RequireAll>
Require all granted
</RequireAll>
</Directory>
</virtualHost>
httpd -t?? 檢測語法
systemctl restart httpd
system2 測試效果:
curl -k https://system1.group8.example.com
curl -k http://system1.group8.example.com
curl -k https://www8.group8.example.com
curl -k http://www8.group8.example.com
第十五題:配置 web 內容的訪問
在您的 system1 上的 web 服務器的 DocumentRoot 目錄下,創建一個名為 private 的目錄,要求如下:
從 http://server.group8.example.com/pub/private.html 下載一個文件副本到這個目錄,并且重命名為 index.html
不要對這個文件的內容做任何修改
從 system1 上,任何人都可以瀏覽 private 的內容,但是從其它系統不能訪問這個目錄的內容。
沒說之前搭建的哪個站點設置private文件夾,嚴謹起見,兩個站點都設立private并實現
mkdir /var/www/html/private
mkdir /var/www/virtual/private
wget -O /var/www/html/private/index.html ?http://server.group8.example.com/pub/private.html
wget -O /var/www/virtual/private/index.html ?http://server.group8.example.com/pub/private.html
vim /etc/httpd/conf.d/httpd-vhosts.conf
在兩個站點段落最后分別加入:
<Directory “/var/www/html/private”>
Require all denied
Require local
</Directory>
<Directory “/var/www/virtual/private”>
Require all denied
Require local
</Directory>
分別在system1和system2上檢驗:
curl http://system1.group8.example.com/private/?? #注意此處private后的/不能省略
curl http://www8.group8.example.com/private/
第十六題:實現動態WEB內容
在 system1 上配置提供動態web內容,要求:
動態內容由名為 wsgi.group8.example.com 的虛擬主機提供
虛擬主機偵聽在端口 8909
從 http://server.group8.example.com/pub/webinfo.wsgi 下載一個腳本,然后放在適當的位置,無論如何不要求修改此文件的內容
客戶端訪問 http://wsgi.group8.example.com:8909/ 時,應該接收到動態生成的web頁面
此 http://wsgi.group8.example.com:8909/ 必須能被 group8.example.com 域內的所有系統訪問
vim /etc/httpd/conf.d/httpd-vhosts.conf??? #繼續添加內容
Listen 8909
<VirtualHost *:8909>
ServerName wsgi.group8.example.com
WSGIScriptAlias / /var/www/html/webinfo.wsgi
</VirtualHost>
wget -O /var/www/html/webinfo.wsgi ?http://server.group8.example.com/pub/webinfo.wsgi
yum install mod_wsgi
firewall-cmd –permanent –add-rich-rule ‘rule family=”ipv4″ port port=8909 protocol=tcp accept’
firewall-cmd –reload
firewall-cmd –list-all
semanage port -a -t http_port_t -p tcp 8909
systemctl restart httpd
測試:
curl? http://wsgi.group8.example.com:8909/
Apache完成版配置文件全圖:
<VirtualHost *:80>
DocumentRoot “/var/www/html”
ServerName system1.group8.example.com
<Directory “/var/www/html”>
<RequireAll>
Require all granted
Require not host .my133t.org
</RequireAll>
</Directory>
<Directory “/var/www/html/private”>
Require all denied
Require local
</Directory>
</VirtualHost>
<VirtualHost *:443>
DocumentRoot “/var/www/html”
ServerName system1.group8.example.com
<Directory “/var/www/html”>
<RequireAll>
Require all granted
Require not host .my133t.org
</RequireAll>
</Directory>
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/pki/tls/certs/system1.crt
SSLCertificateKeyFile /etc/pki/tls/private/system1.key
SSLCACertificateFile /etc/pki/tls/certs/ssl-ca.crt
</VirtualHost>
<VirtualHost *:80>
DocumentRoot “/var/www/virtual”
ServerName www8.group8.example.com
<Directory “/var/www/virtual”>
<RequireAll>
Require all granted
</RequireAll>
</Directory>
<Directory “/var/www/virtual/private”>
Require all denied
Require local
</Directory>
</VirtualHost>
Listen 8909
<VirtualHost *:8909>
ServerName wsgi.group8.example.com
WSGIScriptAlias / /var/www/html/webinfo.wsgi
</VirtualHost>
第十七題:創建一個腳本
在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
case $1 in
redhat)echo “fedora”
;;
fedora)echo “redhat”
;;
*)echo “/root/foo.sh redhat | fedora” 1>&2
;;
esac
chmod +x /root/foo.sh
第十八題:創建一個添加用戶的腳本
在 system1 上創建一個腳本,名為 /root/batchusers ,此腳本能實現為系統 system1 創建本地用戶,并且這些用戶的用戶名來自一個包含用戶名列表的文件,同時滿足下列要求:
此腳本要求提供一個參數,此參數就是包含用戶名列表的的文件
如果沒有提供參數,此腳本應該給出下面的提示信息 Usage: /root/batchusers userfile 然后退出并返回相應的值
如果提供一個不存在的文件名,此腳本應該給出下面的提示信息 Input file not found 然后退出并返回相應的值
創建的用戶登錄shell為 /bin/false
此腳本不需要為用戶設置密碼
您可以從下面的URL獲取用戶名列表作為測試用 http://server.group8.example.com/pub/userlist
wget http://server.group8.example.com/pub/userlist
vim /root/batchusers
#!/bin/bash
if [ $# -eq 1 ];then
if [ -f $1 ];then
while read username;do
useradd -s /bin/false $username &> /dev/null
done < $1
else
echo “Input file not found” 1>&2
exit 1
fi
else
echo “Usage: /root/batchusers userfile”? 1>&2
exit 2
fi
chmod +x /root/batchusers
第十九題:配置 ISCSI 服務端????
配置 system1 提供一個 ISCSI 服務 磁盤名為 iqn.2014-08.com.example.group8:system1 ,并符合下列要求:
服務端口為 3260
使用 iscsi_store 作其后端邏輯卷名稱,其大小為 3G
此服務只能被 system2.group8.example.com 訪問
yum install targetcli
systemctl enable target
systemctl start target
firewall-cmd –permanent –add-rich-rule ‘rule family=”ipv4″ source address=”172.24.8.12/32″ port port=3260 protocol=tcp accept’
firewall-cmd –reload
firewall-cmd –list-all
fdisk /dev/sda
n
p
\n
\n
+3G
t
3
8e
w
partprobe
pvcreate /dev/sda3
vgcreate iscsi_vg /dev/sda3
lvcreate -n iscsi_store -l 100%FREE iscsi_vg
targetcli
backstores/block create name=iscsi_store dev=/dev/iscsi_vg/iscsi_store
cd iscsi
create iqn.2014-08.com.example.group8:system1
cd iqn.2014-08.com.example.group8:system1/
cd tpg1/
luns/ create /backstores/block/iscsi_store
acls/ create iqn.2014-08.com.example.group8:system2
set attribute authentication=0
set attribute generate_node_acls=0
cd /
saveconfig
exit
第二十題:配置 iSCISI 的客戶端
配置 system2 使其能連接在 system1 上提供的 iqn.2014-08.com.example.group8:system1,并符合以下要求:
iSCISI 設備在系統啟動的期間自動加載
塊設備 iSCISI 上包含一個大小為 2100 MiB 的分區,并格式化為 ext4
此分區掛載在 /mnt/data 上,同時在系統啟動的期間自動掛載
system2:
yum search iscsi
yum install iscsi-initiator-utils
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-08.com.example.group8:system2
systemctl enable iscsi iscsid
systemctl start iscsi iscsid
iscsiadm -m discovery -t st -p 172.24.8.11
iscsiadm -m node -l
lsblk
fdisk /dev/sdb
n
+2100M
w
partprobe
mkfs.ext4 /dev/sdb1
mkdir /mnt/data
blkid
vim /etc/fstab
UUID=……?????????? /mnt/data??? ext4?? defaults,_netdev 0 0
mount -a
df
第二十一題:配置一個數據庫
在 system1上創建一個 Maria DB 數據庫,名為 Contacts,要求:
數據庫應該包含來自數據庫復制的內容,復制文件的URL為 http://server.group8.example.com/pub/users.mdb ,數據庫只能被 localhost 訪問
除了 root 用戶,此數據庫只能被用戶 Mary 查詢,此用戶密碼為 redhat
root 用戶的數據庫密碼為 redhat ,同時不允許空密碼登錄
yum install mariadb*
systemctl enable mariadb
systemctl start maraidb
mysql_secure_installation
\n
y
redhat
y
\n
…
wget -O /root/users.mdb http://server.group8.example.com/pub/users.mdb
mysql -u root -predhat
create database Contacts;
use Contacts;
show tables;
source /root/users.mdb;
grant select on Contacts.* to Mary@localhost identified by ‘redhat’;
quit
第二十二題:數據庫查詢
在 system1 上使用數據庫 Contacts ,并使用相應的 SQL 查詢以回答下列問題:
密碼是fadora 的人的名字是什么?
有多少人的姓名是 John ,同時居住在 Santa Clara ?
1)
mysql -u root -predhat
use Contacts
show tables;
desc u_name;
desc u_passwd;
select u_name.firstname from u_name,u_passwd where u_name.userid = u_passwd.uid and u_passwd.password = ‘fadora’;
這個題是隨機的
語法 select ……? from ….. ,…… where …..=….. and …. =……
2)show tables;
desc u_loc;
select count(*) from u_name,u_loc where u_name.userid = u_loc.uid and u_name.firstname = ‘John’ and u_loc.location = ‘Santa Clara’;
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/102907