RHCE備考

開始考題

現在正式開始你的考試:

配置信息
您在考試中將使用到兩個系統的信息如下:

desktop0.example.com : 作爲服務器

server0.example.com : 作爲客戶端

兩個系統的root密碼爲redhat

系統的IP地址有DHCP提供,您可以視爲正常,或者您可以按照一下信息重新設置未靜態IP:

server0.example.com : 172.25.0.11/24

desktop0.example.com : 172.25.0.10/24

兩個系統均爲DNS域example.com的成員。除非特別知名,所有要求配置的網絡服務都必須能被該域的系統訪問。

classroom.example.com提供了集中認證的服務器爲example.com。兩個系統desktop0和server0都已經預先配置成此域的客戶端。

classroom.example.com 提供了YUM軟件倉庫,URL是 http://classroom.example.com/content/rhel7.0/x86_64/dvd/ .

防火牆是默認打開的,在您認爲適當的時候可以關閉。其他防火牆的設置可能在單獨的要求中。

my133.org(172.13.0.0/24)作爲不可信網絡。

參考答案

1.配置 YUM
配置yum源考試時候是不作爲考題的,需要考者自己去閱讀配置文檔,裏面有說明

分別在 server 和 desktop 上配置 YUM,指向:
server0

[root@server0 ~]# vim /etc/yum.repos.d/rhce.repo
[root@server0 ~]# cat /etc/yum.repos.d/rhce.repo
[rhce]
name=xx
baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/
enabled=1
gpgcheck=0
[root@server0 ~]# 

desktop0

[root@desktop0 ~]# vim /etc/yum.repos.d/rhce.repo
[root@desktop0 ~]# cat /etc/yum.repos.d/rhce.repo
[rhce]
name=xx
baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/
enabled=1
gpgcheck=0

這裏我是scp 命令上傳過去的,所以,你也可以選擇上傳

這一題是在真實考試中不做考題,您需要自己配置,yum源就在文中的信息當中,包括後面的各個域名的所歸屬的網段。您需要去閱讀配置信息,我當時好像是附加配置,裏面寫了用戶名、密碼 ,url 域名 ip等

SElinux 有三種模式,請將 server 與 desktop 運行於強制模式
server0

[root@server0 ~]# vim /etc/selinux/config
[root@server0 ~]# cat /etc/selinux/config | grep SELINUX=en
SELINUX=enforcing
[root@server0 ~]# reboot

desktop0

[root@desktop0 ~]# vim /etc/selinux/config
[root@desktop0 ~]# cat /etc/selinux/config | grep SELINUX=en
SELINUX=enforcing
[root@desktop0 ~]# reboot

配置 SSH
用戶能夠從域 example.com 內的客戶端通過 SSH 訪問您的兩個虛擬機系統
在域 my133t.org 內的客戶端不能訪問您的兩個虛擬機系統
server0

[root@server0 ~]# systemctl stop iptables ebtables
[root@server0 ~]# systemctl disable iptables ebtables
[root@server0 ~]# systemctl mask iptables ebtables
ln -s '/dev/null' '/etc/systemd/system/iptables.service'
ln -s '/dev/null' '/etc/systemd/system/ebtables.service'
[root@server0 ~]# systemctl restart firewalld
[root@server0 ~]# systemctl enable firewalld
[root@server0 ~]# firewall-cmd --remove-service=ssh --permanent 
success
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=ssh accept' --permanent 
success
[root@server0 ~]# firewall-cmd --reload 
success


desktop0

[root@desktop0 ~]# systemctl stop iptables ebtables
[root@desktop0 ~]# systemctl disable iptables ebtables
[root@desktop0 ~]# systemctl mask iptables ebtables
ln -s '/dev/null' '/etc/systemd/system/iptables.service'
ln -s '/dev/null' '/etc/systemd/system/ebtables.service'
[root@desktop0 ~]# systemctl restart firewalld
[root@desktop0 ~]# systemctl enable firewalld
[root@desktop0 ~]# firewall-cmd --remove-service=ssh --permanent 
success
[root@desktop0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=ssh accept' --permanent 
success
[root@desktop0 ~]# firewall-cmd --reload 
success

做完這些操作之後,我們可以列出來查看一下,看看是否與我們想的一致

[root@server0 ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client   # 寫在這裏的,默認所有人都可以訪問
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="172.25.0.0/24" service name="ssh" accept

從此處我們可以看出ssh這個服務沒有了,從而添加上了允許172.25.0.0/24這個網段的主機去訪問,與我們所想的一致,接下來看看另外一個

[root@desktop0 ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="172.25.0.0/24" service name="ssh" accept

4.命令別名及IP 轉發
1)在系統 server 和 desktop 上創建自定義命令爲 tk,此自定義命令將執行/bin/ps aux,此命令對系統中所有用戶有效

server0

[root@desktop0 ~]# vim /etc/bashrc
[root@desktop0 ~]# tail -n 1 /etc/bashrc 
alias tk='/bin/ps aux'
[root@desktop0 ~]# bash
[root@desktop0 ~]# which tk
alias tk='/bin/ps aux'
	/bin/ps

desktop0

[root@server0 ~]# vim /etc/bashrc 
[root@server0 ~]# tail -n 1 /etc/bashrc
alias tk='/bin/ps aux'
[root@server0 ~]# bash
[root@server0 ~]# which tk
alias tk='/bin/ps aux'
	/bin/ps

考過csa的人都會,這裏就不過多解釋

2)開啓 IP 轉發功能
server0

[root@server0 ~]# cat /etc/sysctl.conf   #如果你不記得路徑,可以使用此命令查看路徑

[root@server0 ~]# vim /usr/lib/sysctl.d/00-system.conf
[root@server0 ~]# cat  /usr/lib/sysctl.d/00-system.conf 

net.bridge.bridge-nf-call-arptables = 0
net.ipv4.ip_forward = 1 #在此處添加


[root@server0 ~]# sysctl -p /usr/lib/sysctl.d/00-system.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.ipv4.ip_forward = 1      #有這個表示成功
kernel.shmmax = 4294967295
kernel.shmall = 268435456

同樣在desktop 這臺虛擬機上也要做,此處不做過多演示

[root@desktop0 ~]# cat /etc/sysctl.conf 


[root@desktop0 ~]# vim /usr/lib/sysctl.d/00-system.conf
[root@desktop0 ~]# sysctl -p /usr/lib/sysctl.d/00-system.conf
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.ipv4.ip_forward = 1
kernel.shmmax = 4294967295
kernel.shmall = 268435456
[root@desktop0 ~]# 
5.端口轉發
在 server 上配置端口轉發,在 172.25.0.0/24 中的系統,訪問 server 的本地端口 9527 將被轉發到 80,此設置永久生效
server0

[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 forward-port port=9527 protocol=tcp to-port=80' --permanent 
success
[root@server0 ~]# firewall-cmd --reload 
success

可以用firewall-cmd --list-all命令來查看是否添加上去

[root@server0 ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 
	rule family="ipv4" source address="172.25.0.0/24" forward-port port="9527" protocol="tcp" to-port="80"
	rule family="ipv4" source address="172.25.0.0/24" service name="ssh" accept

切記:此題需要之在server0上面操作,而且考試中題目需要你在那操作就在那操作,切勿心急盲目 ,只有端口後面不加動作 --accept,其他都加
6.聚合網絡
在 server 和 desktop 之間配置鏈路聚合

此鏈路使用接口 slave1 和 slave2

此鏈路在一個接口失效後,仍然能工作

此鏈路在 server 上使用地址 192.168.0.1/24

此鏈路在 desktop 上使用地址 192.168.0.2/24

此鏈路在系統重啓後依然保持正常狀態

server0

[root@server0 ~]# nmcli device 
DEVICE  TYPE      STATE         CONNECTION  
eth0    ethernet  connected     System eth0 
eth1    ethernet  disconnected  --          
eth2    ethernet  disconnected  --          
lo      loopback  unmanaged     --          
[root@server0 ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
Connection 'team0' (f816c00c-0488-455e-8d17-d66004112ef7) successfully added.
[root@server0 ~]# nmcli connection modify team0 ipv4.addresses "192.168.0.1/24" ipv4.method manual connection.autoconnect yes
[root@server0 ~]# nmcli connection add type team-slave con-name slave1 ifname eth1 master team0 
Connection 'slave1' (5276955f-cbd6-4ec3-82dc-daf6b0073998) successfully added.
[root@server0 ~]# nmcli connection add type team-slave con-name slave2 ifname eth2 master team0 
Connection 'slave2' (26009b44-7428-4cb4-a2b6-41d5aa5f3cac) successfully added.
[root@server0 ~]# nmcli connection up team0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@server0 ~]# systemctl restart network

desktop

[root@desktop0 ~]# nmcli device 
DEVICE  TYPE      STATE         CONNECTION  
eth0    ethernet  connected     System eth0 
eth1    ethernet  disconnected  --          
eth2    ethernet  disconnected  --          
lo      loopback  unmanaged     --          
[root@desktop0 ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"activebackup"}}'
[root@desktop0 ~]# nmcli connection modify team0 ipv4.addresses "192.168.0.2/24" ipv4.method manual connection.autoconnect yes
[root@desktop0 ~]# nmcli connection add type team-slave con-name slave1 ifname eth1 master team0 
Connection 'slave1' (5c6c05b2-63b9-4aca-b991-ab570f4e23bd) successfully added.
[root@desktop0 ~]# nmcli connection add type team-slave con-name slave2 ifname eth2 master team0  
Connection 'slave2' (546bc410-6a94-4fff-9bef-398e54b2feff) successfully added.
[root@desktop0 ~]# nmcli connection up team0 
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)
[root@desktop0 ~]# systemctl restart network

最後我們驗證以下

[root@desktop0 ~]# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.17 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=0.301 ms  

# 2邊可以ping通就ok ,所以,不要刻意的浪費太多時間

7.IPv6 設置
在您的考試系統上配置接口,在你的默認網卡上使用如下 IPv6 地址

server 上的 IP 地址應該是 fd00:ba5e:ba11:10::1/64

desktop 上的 IP 地址應該是 fd00:ba5e:ba11:10::2/64

兩個系統必須能與網絡 fd00:ba5e:ba11:10::cc 內的系統通信

地址必須在重啓後依然生效

兩個系統保持當前的 IPv4 地址並能通信

server0

[root@server0 ~]# nmcli connection show 
NAME         UUID                                  TYPE            DEVICE 
slave1       5276955f-cbd6-4ec3-82dc-daf6b0073998  802-3-ethernet  eth1   
team0        f816c00c-0488-455e-8d17-d66004112ef7  team            team0  
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0   
slave2       26009b44-7428-4cb4-a2b6-41d5aa5f3cac  802-3-ethernet  eth2   
[root@server0 ~]# nmcli connection modify "System eth0" ipv6.addresses fd00:ba5e:ba11:10::1/64 ipv6.method manual connection.autoconnect yes
[root@server0 ~]# systemctl restart network

desktop

[root@desktop0 ~]# nmcli connection show 
NAME         UUID                                  TYPE            DEVICE 
slave1       5c6c05b2-63b9-4aca-b991-ab570f4e23bd  802-3-ethernet  eth1   
team0        8ccca14c-7275-4996-9d06-9bfd33cf7b3e  team            team0  
System eth0  5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03  802-3-ethernet  eth0   
slave2       546bc410-6a94-4fff-9bef-398e54b2feff  802-3-ethernet  eth2   
[root@desktop0 ~]# nmcli connection modify "System eth0" ipv6.addresses "fd00:ba5e:ba11:10::2/64" ipv6.method manual connection.autoconnect yes
[root@desktop0 ~]# systemctl restart network

驗證

[root@desktop0 ~]# ping6 fd00:ba5e:ba11:10::1
PING fd00:ba5e:ba11:10::1(fd00:ba5e:ba11:10::1) 56 data bytes
64 bytes from fd00:ba5e:ba11:10::1: icmp_seq=1 ttl=64 time=4.55 ms
64 bytes from fd00:ba5e:ba11:10::1: icmp_seq=2 ttl=64 time=0.413 ms
^C
--- fd00:ba5e:ba11:10::1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.413/2.485/4.558/2.073 ms
8.郵件服務
在 server 上配置郵件服務

這些系統不接受外部發來的郵件

在這些系統上本地發送任何郵件都會被路由到 server1.example.com

從這些系統上發送的郵件顯示來自於 example.com

您可以通過發送郵件到 harry 來測試您的配置

您可以通過訪問 http://server1.example.com/email/harry 來驗證您的配置(模擬環境上面沒有這個地址,所以此題驗證不了)

發給 harry 的郵件同時能被 natasha 收到

server0

[root@server0 ~]# vim /etc/postfix/main.cf 
myorigin = example.com    #大概在99行
inet_interfaces = localhost #大概在117行,默認是localhost
mydestination = 			#大概在165行,將=號後面的刪掉
mynetworks =  127.0.0.0/8	#大概在265行,僅需要127.0.0.0/8
relayhost = [server1.example.com]	#大概在319行
#保存並退出
[root@server0 ~]# vim  /etc/aliases
[root@server0 ~]# tail -n 1 /etc/aliases
harry:		harry,natasha
[root@server0 ~]# useradd harry
[root@server0 ~]# useradd natasha
[root@server0 ~]# systemctl restart postfix.service 
[root@server0 ~]# systemctl enable postfix.service 
[root@server0 ~]# firewall-cmd --add-service=smtp --permanent 
success
[root@server0 ~]# firewall-cmd --reload 
success

因爲環境原因此題無法驗證,真實考試環境中是可以驗證的具體驗證如下

[root@server0 ~]# echo "hello" | mail -s testmail harry
[root@server0 ~]# curl http://server1.example.com/email/harry

然後在最下面可以看到一個hello

配置文件具體解釋:

myorigin = example.com #來自哪裏
mynetworks = 127.0.0.0/8 # 郵件信息僅本地環回
relayhost = [server1.example.com] # 類似中間站,例如B在A和C的中間,A發給C的消息B就會收到。
9.Samba 服務
在 server 上配置 SAMBA 服務

您的 samba 服務器必須是 STAFF 工作組的一個成員

共享/common 目錄,共享名爲 common

只有 example.com 域內的客戶端可以訪問 common 共享

common 必須是可以瀏覽的

用戶 natasha 必須能夠讀取共享中的內容,如果需要的話,驗證密碼是:tangkai

server0

[root@server0 ~]# yum install -y samba*
[root@server0 ~]# systemctl restart smb nmb
[root@server0 ~]# systemctl enable smb nmb
[root@server0 ~]# mkdir /common
[root@server0 ~]# vim /etc/samba/smb.conf 
#找到:
[global]
workgroup = STAFF #將=後面改爲STAFF
..................
..................
#在最下面,新加入:
[common]
        path = /common
        browseable = yes
        valid users = natasha



[root@server0 ~]# getsebool -a | grep samba # 這

samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@server0 ~]# setsebool -P samba_enable_home_dirs 1
[root@server0 ~]# chcon -Rt samba_share_t /common/
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=samba accept' --permanent 
success
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=samba-client accept' --permanent 
success
[root@server0 ~]# firewall-cmd --reload 
success
[root@server0 ~]# id natasha
uid=1002(natasha) gid=1002(natasha) groups=1002(natasha)
[root@server0 ~]# smbpasswd -a natasha
New SMB password:
Retype new SMB password:
Added user natasha.
[root@server0 ~]# systemctl restart smb nmb
[root@server0 ~]# systemctl enable smb nmb

我們要養成一種習慣,不管之前有沒有加入啓動項,在每次重啓之後,我們都要順手把他加入到開機啓動項裏面

驗證:需要到desktop0裏面驗證

[root@desktop0 ~]# yum install -y cifs-util*
[root@desktop0 ~]# mount -t cifs -o username=natasha,password=tangkai //172.25.0.11/common /media/
[root@desktop0 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              10G  3.1G  7.0G  31% /
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
//172.25.0.11/common   10G  3.1G  7.0G  31% /media
10.多用戶 samba 掛載
在 server 上通過 samba 共享目錄/storage

共享名爲 share

共享目錄只能被 example.com 域內的客戶端使用

共享目錄 share 必須可以被瀏覽

用戶 sarah 能以讀的方式訪問此共享,訪問密碼是 tangkai

用戶 kitty 能以讀寫的方式訪問此共享,訪問密碼是 tangkai

此共享永久掛載在 desktop 上的/mnt/dev 目錄,並使用用戶 sarah 進行認證,任何用戶可臨時通過 kitty 來獲得讀寫權限

server0

[root@server0 ~]# vim /etc/samba/smb.conf 
[root@server0 ~]# tail n 6 /etc/samba/smb.conf 
[share]
	path = /storage
	browseable = yes
    valid users = sarah,kitty
	writable = no
	write list = kitty
[root@server0 ~]# systemctl restart smb nmb
[root@server0 ~]# systemctl enable smb nmb
[root@server0 ~]# mkdir /storage
[root@server0 ~]# useradd sarah
[root@server0 ~]# useradd kitty
[root@server0 ~]# chcon -Rt samba_share_t /storage/
[root@server0 ~]# setfacl -m u:sarah:r-x /storage/
[root@server0 ~]# setfacl -m u:kitty:rwx /storage/
[root@server0 ~]# smbpasswd -a sarah
New SMB password:
Retype new SMB password:
Added user sarah.
[root@server0 ~]# smbpasswd -a kitty
New SMB password:
Retype new SMB password:
Added user kitty.

desktop

[root@desktop0 ~]# vim /etc/fstab
[root@desktop0 ~]# tail -n 1 /etc/fstab 
//172.25.0.11/share	/mnt/dev	cifs multiuser,username=sarah,password=tangkai,sec=ntlmssp 0 0
[root@desktop0 ~]# mkdir /mnt/dev
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              10G  3.1G  7.0G  31% /
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
//172.25.0.11/common   10G  3.1G  7.0G  31% /media
//172.25.0.11/share    10G  3.1G  7.0G  31% /mnt/dev
11.配置 NFS 服務
1.) 在 server 上配置 NFS
以只讀的方式共享/public,同時只能被 example.com 內用戶訪問

以讀寫的方式共享/protected 能被 example.com 內用戶訪問

訪問/protected 需要通過 kerberos 安全加密,您可以使用下邊鏈接的祕鑰: http://classroom.example.com/pub/keytabs/server0.keytab

目錄/protected 應該包含名爲 project 擁有人爲 ldapuser12 的子目錄

用戶 ldapuser12 能以讀寫的方式訪問/protected/project

server0

[root@server0 ~]# vim /etc/exports
[root@server0 ~]# cat /etc/exports
/public	172.25.0.0/24(ro)
/protected 172.25.0.0/24(rw,sec=krb5p)
[root@server0 ~]# mkdir /public
[root@server0 ~]# mkdir /protected
[root@server0 ~]# mkdir /protected/project



# 

[root@server0 ~]# yum install -y krb5* sssd* authconfig*
[root@server0 ~]# cd /etc/openldap/
[root@server0 openldap]# ls
certs  ldap.conf  schema
[root@server0 openldap]# mkdir cacerts
[root@server0 openldap]# cd cacerts/
[root@server0 cacerts]# wget http://classroom.example.com/pub/example-ca.crt
[root@server0 cacerts]# authconfig-tui 



[root@server0 cacerts]# su - ldapuser12
su: warning: cannot change directory to /home/guests/ldapuser12: No such file or directory
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ 

[root@server0 ~]# chown ldapuser12 /protected/project
[root@server0 ~]# wget -O /etc/krb5.keytab  http://classroom.example.com/pub/keytabs/server0.keytab
[root@server0 ~]# vim /etc/sysconfig/nfs
RPCNFSDARGS="-V 4.2"  # 在第13行,引號裏面加入-V 4.2
[root@server0 ~]# systemctl enable nfs-secure nfs-secure-server nfs-server
ln -s '/usr/lib/systemd/system/nfs-secure.service' '/etc/systemd/system/nfs.target.wants/nfs-secure.service'
ln -s '/usr/lib/systemd/system/nfs-secure-server.service' '/etc/systemd/system/nfs.target.wants/nfs-secure-server.service'
ln -s '/usr/lib/systemd/system/nfs-server.service' '/etc/systemd/system/nfs.target.wants/nfs-server.service'
[root@server0 ~]# systemctl start nfs-secure nfs-secure-server nfs-server
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=nfs accept' --permanent 
success
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=rpc-bind accept' --permanent 
success
[root@server0 ~]# firewall-cmd --reload 
success

在 desktop 上掛載來自於 server0 的 NFS 共享

/public 掛載在目錄/mnt/nfsmount 上

/protected 掛載在目錄/mnt/nfssecure,並使用安全的方式,祕鑰:

http://classroom.example.com/pub/keytabs/desktop0.keytab

用戶 ldapuser12 能在/mnt/nfssecure/project 上創建文件

這些文件系統在系統啓動時自動掛載

desktop

[root@desktop0 ~]# mkdir /mnt/nfsmount
[root@desktop0 ~]# mkdir /mnt/nfssecure



[root@desktop0 ~]# yum install sssd* krb5* authconfig* -y
[root@desktop0 ~]# cd /etc/openldap/
[root@desktop0 openldap]# ls
certs  ldap.conf
[root@desktop0 openldap]# mkdir cacerts
[root@desktop0 openldap]# cd cacerts/
[root@desktop0 cacerts]# wget http://classroom.example.com/pub/example-ca.crt
[root@desktop0 cacerts]# authconfig-tui

過程在考rhcse的時候有描述,這裏就不再介紹

[root@desktop0 cacerts]# su - ldapuser12
su: warning: cannot change directory to /home/guests/ldapuser12: No such file or directory
mkdir: cannot create directory '/home/guests': Permission denied
-bash-4.2$ 

[root@desktop0 ~]# wget -O /etc/krb5.keytab http://classroom.example.com/pub/keytabs/desktop0.keytab
[root@desktop0 ~]# vim /etc/sysconfig/nfs
RPCNFSDARGS="-V 4.2"  # 在第13行,引號裏面加入-V 4.2
[root@desktop0 ~]# systemctl enable nfs-secure
ln -s '/usr/lib/systemd/system/nfs-secure.service' '/etc/systemd/system/nfs.target.wants/nfs-secure.service'
[root@desktop0 ~]# systemctl start nfs-secure
[root@desktop0 ~]# vim /etc/fstab
[root@desktop0 ~]# tail -n 2 /etc/fstab 
172.25.0.11:/public /mnt/nfsmount nfs ro,v4.2 0 0
172.25.0.11:/protected /mnt/nfssecure nfs defaults,v4.2,sec=krb5p 0 0
[root@desktop0 ~]# mount -a

12.在 server 上配置一個 web 站點 http://server.example.com
從http://classroom.example.com/pub/example.html 下載文件,

並重命名爲 index.html,不要修改文件內容。

將文件 index.html 拷貝到您的 DocumentRoot 目錄下

來自於 example.com 的客戶端可以訪問該 web 服務器

來自於 my133t.org 的客戶端的訪問會被拒絕

server

[root@server0 ~]# yum install httpd -y
[root@server0 ~]# cd /var/www/html/
[root@server0 html]# ls
[root@server0 html]# wget -O  index.html http://classroom.example.com/pub/example.html
[root@server0 html]# ls
index.html
[root@server0 html]# systemctl restart httpd
[root@server0 html]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
[root@server0 html]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=http accept' --permanent 
success
[root@server0 html]# firewall-cmd --reload 
success

驗證

[root@server0 html]# curl http://server.example.com
i love a girl 
 在 server 上配置一個 web 站點

13.爲站點 http://server.example.com 配置 TLS 加密
已簽名證書從 http://classroom.example.com/pub/tls/certs/server0.crt 獲取

證書的祕鑰從 http://classroom.example.com/pub/tls/private/server0.key 獲取

證書的簽名授權信息從 http://classroom.example.com/pub/tls/certs/www0.crt 獲取

[root@server0 html]# yum -y install mod_ssl.x86_64
[root@server0 html]# cd /etc/httpd/conf.d/
[root@server0 conf.d]# vim ssl.conf 
#到120行左右
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
#SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt

#將這三個的後面的文件名改掉,然後將最後一個的#號去掉,效果如下:
SSLCertificateFile /etc/pki/tls/certs/server0.crt
SSLCertificateKeyFile /etc/pki/tls/private/server0.key
SSLCACertificateFile /etc/pki/tls/certs/www0.crt





[root@server0 conf.d]# cd /etc/pki/tls/certs/
[root@server0 certs]# wget http://classroom.example.com/pub/tls/certs/server0.crt
[root@server0 certs]# cd /etc/pki/tls/private/
[root@server0 private]# wget http://classroom.example.com/pub/tls/private/server0.key
[root@server0 private]# cd /etc/pki/tls/certs/
[root@server0 certs]# wget http://classroom.example.com/pub/tls/certs/www0.crt

[root@server0 certs]# systemctl restart httpd.service 
[root@server0 certs]# systemctl enable httpd.service 
[root@server0 certs]# firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.25.0.0/24 service name=https accept' --permanent 
success
[root@server0 certs]# firewall-cmd --reload 
success

驗證

[root@server0 certs]# curl -k https://server.example.com

14.在 server 上擴展您的 WEB 服務器
爲站點 http://www.example.com 創建一個虛擬主機
設置 DocumentRoot 爲/var/www/virtual
從 http://classroom.example.com/pub/www.html 下載文件,並重命名爲 index.html,不要修改文件內容。
將文件 index.html 拷貝到 DocumentRoot 目錄下
確保 floyd 用戶能夠在/var/www/virtual 下創建文件
server

[root@server0 ~]# find / -name *vhosts.conf
/usr/share/doc/httpd-2.4.6/httpd-vhosts.conf
[root@server0 ~]# cp /usr/share/doc/httpd-2.4.6/httpd-vhosts.conf /etc/httpd/conf.d/
[root@server0 ~]# cd /etc/httpd/conf.d/
[root@server0 conf.d]# vim httpd-vhosts.conf 
[root@server0 conf.d]# tail -n 8 httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName server.example.com
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www.example.com
</VirtualHost>
[root@server0 ~]# mkdir /var/www/virtual
oot@server0 ~]# cd /var/www/virtual/
[root@server0 virtual]# wget -O index.html http://classroom.example.com/pub/www.html
[root@server0 conf.d]# useradd floyd
[root@server0 conf.d]# setfacl -m u:floyd:rwx /var/www/virtual
[root@server0 conf.d]# systemctl restart httpd.service 
[root@server0 conf.d]# systemctl enable httpd.service 

驗證

[root@server0 conf.d]# curl www.example.com 
zheshi yige 在 server 上擴展您的 WEB 服務器
[root@server0 conf.d]# curl -k https://server.example.com
zheshi yige 在 server 上配置一個 web 站點
[root@server0 conf.d]# curl http://server.example.com

15.web 訪問控制
在您 server 上的 web 服務器的 DocumentRoot 目錄下創建一個名爲 private 的目錄

從http://classroom.example.com/pub/private.html 下載文件到這個目錄,並重命名爲index.html,不要修改文件內容

從 server 上,任何人都可以瀏覽 private 的內容,但是從其他系統不能訪問這個目錄的內容

[root@server0 conf.d]# cd /var/www/html/
[root@server0 html]# mkdir private
[root@server0 html]# cd private/
[root@server0 private]# wget -O index.html http://classroom.example.com/pub/private.
[root@server0 private]# vim /etc/httpd/conf/httpd.conf
#搜索Requ,複製
<Directory />
    AllowOverride none
    Require all denied
</Directory>
[root@server0 private]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/html"
    ServerName server.example.com
   #<Directory "/var/www/html/private">

​		Require ip 172.25.0.11

   #</Directory>
</VirtualHost> 
<VirtualHost *:80>
    DocumentRoot "/var/www/virtual"
    ServerName www.example.com
</VirtualHost>



[root@server0 private]# systemctl restart httpd.service 
[root@server0 private]# systemctl enable httpd.service 

驗證

[root@server0 private]# curl server.example.com/private/ 

root@desktop0 ~]# curl server.example.com/private/

403 Forbidden

Forbidden

You don't have permission to access /private/ on this server.

16.在 server 上實現動態 web 內容
動態內容由名爲 alt.example.com 的虛擬主機提供虛擬主機偵聽端口爲 8909

從 http://classroom.example.com/pub/webapp.wsgi 下載一個腳本,然後放在適當的位置,不要修改文件內容

客戶端訪問 http://alt.example.com:8909 時,應該接收到動態生成的 web 頁面此 http://alt.example.com:8909 必須能被 example.com 內所有的系統訪問

server

[root@server0 private]# yum install mod_wsgi.x86_64 -y
[root@server0 private]# cd /var/www/
[root@server0 www]# mkdir wsgi
[root@server0 www]# cd wsgi/
[root@server0 wsgi]# wget http://classroom.example.com/pub/webapp.wsgi
[root@server0 wsgi]# vim /etc/httpd/conf.d/httpd-vhosts.conf 
[root@server0 wsgi]# tail -n 5 /etc/httpd/conf.d/httpd-vhosts.conf 
Listen 8909
<VirtualHost *:8909>
    WSGIScriptAlias / "/var/www/wsgi/webapp.wsgi"
    ServerName alt.example.com:8909
</VirtualHost>
[root@server0 wsgi]# firewall-cmd --add-rich-rule 'rule family=ipv4 port port=8909 protocol=tcp accept' --permanent 
success
[root@server0 wsgi]# firewall-cmd --reload 
success
[root@server0 wsgi]# curl alt.example.com:8909
curl: (7) Failed connect to alt.example.com:8909; Connection refused
[root@server0 wsgi]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[root@server0 wsgi]# semanage port -a -t http_port_t -p tcp 8909
[root@server0 wsgi]# systemctl restart httpd.service 
[root@server0 wsgi]# systemctl enable httpd.service 

驗證

[root@server0 wsgi]# curl http://alt.example.com:8909
Hello World!
17.配置 server 提供一個 iSCSI 共享服務
磁盤名爲 iqn.2014-09.com.example:server

服務端口爲 3260

使用 iscsi_store 作爲其後端卷其大小爲 3G

此服務只能被 desktop.example.com 訪問

server

[root@server0 wsgi]# yum install targetcli* -y
[root@server0 wsgi]# lsblk 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  10G  0 disk 
└─vda1 253:1    0  10G  0 part /
vdb    253:16   0  10G  0 disk 
[root@server0 wsgi]# fdisk /dev/vdb
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +3G
Command (m for help): w
[root@server0 wsgi]# partprobe 
[root@server0 wsgi]# lsblk 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  10G  0 disk 
└─vda1 253:1    0  10G  0 part /
vdb    253:16   0  10G  0 disk 
└─vdb1 253:17   0   3G  0 part 
[root@server0 wsgi]# targetcli 
/> ls
o- / ................................................ [...]
  o- backstores ..................................... [...]
  | o- block ........................................ [Storage Objects: 0]
  | o- fileio ....................................... [Storage Objects: 0]
  | o- pscsi ........................................ [Storage Objects: 0]
  | o- ramdisk ...................................... [Storage Objects: 0]
  o- iscsi .......................................... [Targets: 0]
  o- loopback ....................................... [Targets: 0]
/> cd /backstores/block 
/backstores/block> create iscsi_store /dev/vdb1
Created block storage object iscsi_store using /dev/vdb1.
/backstores/block> cd /iscsi 
/iscsi> create iqn.2014-09.com.example:server
Created target iqn.2014-09.com.example:server.
Created TPG 1.
/iscsi> ls
o- iscsi ........................................... [Targets: 1]
  o- iqn.2014-09.com.example:server ................ [TPGs: 1]
    o- tpg1 ........................................ [no-gen-acls, no-auth]
      o- acls ...................................... [ACLs: 0]
      o- luns ...................................... [LUNs: 0]
      o- portals ................................... [Portals: 0]
/iscsi> cd iqn.2014-09.com.example:server/tpg1/acls 
/iscsi/iqn.20...ver/tpg1/acls> create iqn.2014-09.com.example:desktop
Created Node ACL for iqn.2014-09.com.example:desktop
/iscsi/iqn.20...ver/tpg1/acls> cd /iscsi/iqn.2014-09.com.example:server/tpg1/luns 
/iscsi/iqn.20...ver/tpg1/luns> create /backstores/block/iscsi_store 
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2014-09.com.example:desktop
/iscsi/iqn.20...ver/tpg1/luns> cd /iscsi/iqn.2014-09.com.example:server/tpg1/portals 
/iscsi/iqn.20.../tpg1/portals> create 172.25.0.11 3260
Using default IP port 3260
Created network portal 172.25.0.11:3260.
/iscsi/iqn.20.../tpg1/portals> exit
Global pref auto_save_on_exit=true
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

[root@server0 wsgi]# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="172.25.0.0/24" port port=3260 protocol=tcp accept' --permanent 
success
[root@server0 wsgi]# firewall-cmd --reload 
success
[root@server0 wsgi]# systemctl restart target
[root@server0 wsgi]# systemctl enable target
ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'

這一題的驗證是下一題



18.配置 desktop 使其能連接在 server 上提供的 iscsi
iSCSI 設備在系統啓動的期間自動加載

塊設備 iSCSI 上包含一個大小 1500MiB 的分區,並格式化爲 ext4

此分區掛載在/mnt/netdev 上同時在系統啓動的期間自動加載



desktop[root@desktop0 ~]# yum install -y iscsi-init*
[root@desktop0 ~]# mkdir /mnt/netdev
[root@desktop0 ~]# vim /etc/iscsi/initiatorname.iscsi 
[root@desktop0 ~]# cat /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2014-09.com.example:desktop
[root@desktop0 ~]# systemctl restart iscsi iscsid
[root@desktop0 ~]# systemctl enable iscsi iscsid
ln -s '/usr/lib/systemd/system/iscsid.service' '/etc/systemd/system/multi-user.target.wants/iscsid.service'
[root@desktop0 ~]# iscsiadm -m discovery -t st -p 172.25.0.11
172.25.0.11:3260,1 iqn.2014-09.com.example:server
[root@desktop0 ~]# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2014-09.com.example:server, portal: 172.25.0.11,3260] (multiple)
Login to [iface: default, target: iqn.2014-09.com.example:server, portal: 172.25.0.11,3260] successful.
[root@desktop0 ~]# lsblk 
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0   3G  0 disk 
vda    253:0    0  10G  0 disk 
└─vda1 253:1    0  10G  0 part /
vdb    253:16   0  10G  0 disk 
[root@desktop0 ~]# fdisk /dev/sda
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
First sector (8192-6291455, default 8192): 
Last sector, +sectors or +size{K,M,G} (8192-6291455, default 6291455): +1500M
Command (m for help): w
[root@desktop0 ~]# partprobe
[root@desktop0 ~]# mkfs.ext4 /dev/sda1
[root@desktop0 ~]# blkid | grep sda
/dev/sda1: UUID="142c6ec3-0d06-4f89-91e3-8201e8186d37" TYPE="ext4"
[root@desktop0 ~]# vim /etc/fstab 
[root@desktop0 ~]# tail -n 1 /etc/fstab 
UUID="142c6ec3-0d06-4f89-91e3-8201e8186d37"	/mnt/netdev	ext4 defaults,_netdev 0 0
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# df -h
/dev/vda1              10G  3.1G  7.0G  31% /
devtmpfs              906M     0  906M   0% /dev
tmpfs                 921M   80K  921M   1% /dev/shm
.............................
/dev/sda1             1.5G  4.5M  1.4G   1% /mnt/netdev



19.編寫一個位於/root/program 的 shell 腳本
當執行/root/program tang 時,終端顯示 kai

當執行/root/program kai 時,終端顯示 tang

當僅執行/root/program 不加參數,或者加上其他參數時,終端顯示標準錯誤輸出/root/program tang|kai

server

[root@server0 ~]# vim /root/program
[root@server0 ~]# cat /root/program 
#!/bin/bash
case $1 in
    tang)
	echo "kai"
	;;
    kai)
	echo "tang"
	;;
    *)
	echo "/root/program tang|kai"
	;;
esac
[root@server0 ~]# chmod +x /root/program
[root@server0 ~]# /root/program tang 
kai
[root@server0 ~]# /root/program kai
tang
[root@server0 ~]# /root/program
/root/program tang|kai
20.寫一個創建用戶的腳本
腳本名爲/root/mkuser,腳本執行時需要添加一個參數,

請在 http://classroom.example.com/pub/user 下載下來,這個 user 就是參數

如果沒有參數,將提示:Usage:/root/mkuser

如果參數爲不存在的文件,則提示:Input file not found

如果存在,則創建用戶,用戶不需要設置密碼,用戶的 shell 爲/bin/flase

server

[root@server0 ~]# vim /root/mkuser
[root@server0 ~]# cat /root/mkuser 
#!/bin/bash
if [ $# -eq 0 ];then
    echo "Usage:/root/mkuser"
else
    if [ -f $1 ];then
    for user in $(cat $1);do
	useradd -s /bin/flase $user
    done
    else
	echo "Input file not found"
    fi
fi
[root@server0 ~]# chmod +x /root/mkuser 
[root@server0 ~]# cd /root
[root@server0 ~]# wget http://classroom.example.com/pub/user 
[root@server0 ~]# /root/mkuser
Usage:/root/mkuser
[root@server0 ~]# /root/mkuser dfs
Input file not found
[root@server0 ~]# /root/mkuser user
[root@server0 ~]# id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1)
[root@server0 ~]# id user2
uid=1002(user2) gid=1002(user2) groups=1002(user2)
[root@server0 ~]# id user3
uid=1003(user3) gid=1003(user3) groups=1003(user3)
[root@server0 ~]# cat user 
user1
user2
user3
user4
user5
[root@server0 ~]# 
21.在你的機器上創建一個 mariadb 數據庫;
數據庫名爲 contacts

數據庫應該包含來自數據庫複製的內容。複製文件的 URL 爲
http://classroom.example.com/pub/user.mdb

數據庫只能被 localhost 訪問

除了 root 用戶,此數據庫只能被用戶 raikon 查詢,此用戶密碼爲 redhat

root 用戶密碼爲 redhat,同時不允許空密碼登陸

server

[root@server0 ~]# yum install mariadb* -y
[root@server0 ~]# systemctl restart mariadb
[root@server0 ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
[root@server0 ~]# mysql_secure_installation
Set root password? [Y/n] y
New password: #redhat
Re-enter new password: #redhat
Password updated successfully!
Remove anonymous users? [Y/n] y
 ... Success!
Disallow root login remotely? [Y/n] n
 ... skipping.
Remove test database and access to it? [Y/n] y

- Dropping test database...
  ... Success!
  Reload privilege tables now? [Y/n] y
   ... Success!
  [root@server0 ~]# wget http://classroom.example.com/pub/users.mdb

[root@server0 ~]# mysql -uroot -predhat
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.35-MariaDB MariaDB Server

Copyright (c) 2000, 2013, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database Contacts;
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> use Contacts;
Database changed
MariaDB [Contacts]> source /root/user.mdb;
MariaDB [Contacts]> grant select on Contacts .* to 'raikon@localhost' identified by 'redhat';
MariaDB [Contacts]> flush privileges;
MariaDB [Contacts]> exit


22.數據庫查詢
密碼是 123456 的人的名字?

[root@server0 ~]# mysql -uroot -predhat
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| contacts           |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> use contacts;
MariaDB [contacts]> show tables;
+--------------------+
| Tables_in_contacts |
+--------------------+
| user               |
+--------------------+
1 row in set (0.00 sec)
MariaDB [contacts]> desc user;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| usernamer | varchar(50) | YES  |     | NULL    |       |
| password  | varchar(50) | YES  |     | NULL    |       |
| live      | varchar(50) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
MariaDB [contacts]> select usernamer from user where password = '123456';
+-----------+
| usernamer |
+-----------+
| harry     |
+-----------+
row in set (0.00 sec)
有多少人的姓名是 barbara,同時居住在 sunnyvale ?

MariaDB [contacts]> desc user;
+-----------+-------------+------+-----+---------+-------+
| Field     | Type        | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+-------+
| usernamer | varchar(50) | YES  |     | NULL    |       |
| password  | varchar(50) | YES  |     | NULL    |       |
| live      | varchar(50) | YES  |     | NULL    |       |
+-----------+-------------+------+-----+---------+-------+
 rows in set (0.00 sec)

MariaDB [contacts]> select count(1) from user where usernamer = 'barbara' and live ='sunnyvale';
+----------+
| count(1) |
+----------+
|        2 |
+----------+
1 row in set (0.00 sec)

————————————————

總結:

`希望看到此篇文章的夥伴,仔細看下最後的留言,上面是老師講的揭發,但是我覺得思路比較凌亂,爲了大家一次通過,我整理了自己的思路,據說明年四月RHCE會調整考試內容,具體不是很清楚,在紅帽8版本,基本是靠ansible 完成所有配置。題目會變化的,考點模型類似這些,如果你想一次考過,請一定要熟悉這套題目的知識點

RHCE備考準備:

在做題前先讓仔細閱讀考前準備,在紙上寫好system 1  system2 ip地址,、域名等。配置信息就是桌面上有個紅帽圖標,打開就是此次考試抽到的考題(ip地址會在那個附加配置信息上面)  
並且配好2個yum源  
在紙上寫注意事項,平時做的不好的,檢查要檢查哪些內容

第1、端口轉發的時候不加動作---accept  全套題目唯一不加的

第2、selinux做了重啓 

第3、

做題順序,這裏我建議先nfs、smaba、iscsi

下面是相關題目做題思路、及注意事項:


第一題、設定selinux 

這裏注意2個都配置就ok,最後重啓的時候,一定要驗證


第二題、配置防火牆---ssh

1、停止iptables、ebtables 服務
2、關閉 iptables、ebtables 服務
3、mask iptables、ebtables 服務
4、設置firewalld 開機自啓動
5、重啓firewalld 服務

6、移除ssh 服務
7、設定firewall 富規則  (注意,永久生效)
8、重新加載firewall

注意:這裏是2臺服務器都做




第三題、用戶自定義環境變量

vim  /etc/bashrc

alias tk='/bin/ps aux'  #考試的時候,這裏最好複製,以免寫錯

注意:2臺服務器都有,別忘了



第四題:端口轉發------防火牆

firewall-cmd --add-rich-rule 'rule family=ipv4 source address=172.24.8.0/24 forward-port port=9527 protocol=tcp to-port=80' --permanent
	#這裏注意,端口轉發不用加 accept 動作
	# 這裏注意,別忘記加   protocol=tcp


第五題:鏈路聚合配置 --這個題目細心點就好
nmcli   connection add  type  team  con-name  team0  ifname team0 config  '{“runner“:{“name”:“activebackup”}}'


第6題:ipv6 地址配置。此題也是需要細心

	#修改ip地址後,重啓網卡


第七題:本地郵件------別忘了防火牆(有可能是2太服務器、so注意看題)

1、首先開機自啓動postfix
2、配置不接受外部
	inet_interface   = localhost
	mydestindation = 

3、本地發送 郵件
	mynetwork = 127.0.0.0/8
4、任何郵件都會路由到
	relayhost = [classroom.example.com]

5、顯示來自哪裏
	myorigin=example.com
6、重啓郵件服務

7、設置防火牆 smtp服務


第八題、SMB共享目錄

1、安裝samba*服務

2、設置開機自啓動

3、創建共享目錄

4、設置selinux
	setsebool  -P samba_enable_home_dirs  1
	chcon -Rt  samba_share_t   /共享目錄

5、設置防火牆 ---samba、samba-client

6、創建共享用戶、修改密碼(考試有可能只用修改密碼)

7、修改配置文件
	workgroup =STAFF
	
[common]
	path = /common
	browseable = yes
	valid  users = natasha  # 注意這裏是users  

       
8、重啓smb  nmb 服務

9、客戶端驗證
安裝  cifs-utils 包
mount  -t  cifs -o  username=natasha,password=123456  //172.24.8.11/common  /opt


第九題、SMB多用戶


1、 創建共享目錄

2、設置selinux 
	chcon  -Rt  samba_share_t   /storage

3、創建用戶+修改密碼
	smbpasswd  -a  sarah           #記得加 -a

4、修改配置文件
	
[share]
	path = /storage
	browseable = yes
	valid users = sarah,kitty   #users  ,一定要是users  +S
	writable  = no
	write  list  = kitty

5、重啓smb  、nmb服務

6、sefacl  權限管理
	setfacl   -m  u:sarah:r-x    /storage         #目錄需要有執行權限,只讀r-x


7、客戶端永久掛在

	a、創建掛在目錄

	b、vim  /etc/fstab
	//172.25.0.11/share  /mnt/dev   cifs  multiuser,username=sarah,password=redhat,sec=ntlmssp 0 0

	3、mout  -a  #掛載

8、如果時間充足,可以驗證下,切換到student 用戶,使用cifscreds add -u  kitty 172.25.0.11


第 十 題、配置NFS

1、修改nfs版本  ‘-V 4.2’

2、創建共享目錄

3、修改配置文件
 	vim   /etc/exports
                  /public  172.25.0.0/24(ro)
	/protected  172.25.0.0/24(rw,sec=krb5p)

4、重啓nfs 服務、開機自動nfs服務
	systemctl  restart  nfs-server  nfs-secure  nfs-secure-server  
	systemctl  enable  nfs-server  nfs-secure  nfs-secure-server

5、搭建ldap服務 ,(考試的時候,可以省略,一搬環境有ldap)

6、配置防火牆--------nfs、rpc-bind

7、下載密鑰

8、修改屬主  chown  ldapuser12   /protected


第十一題: 掛在一個NFS共享

1、修改版本  v4.2
2、創建目錄
3、下載密鑰
4、搭建來搭  LDAP
5、修改配置文件

172.25.0.11:/public   /mnt/nfsmount   nfs  ro,v4.2 0 0
172.25.0.11:/protected   /mnt/nfssecure   nfs  defaults,v4.2,sec=krb5p  0 0 
6、重啓服務、開機自啓動

7、掛在


第十二題、實現一個web 服務器

1、安裝httpd* 服務
2、設置開啓自啓動
3、下載主頁
4、重啓
5、防火牆----http


6、驗證



第十三題、配置web服務

1、安裝  mod—ssl* 服務

2、編輯配置文件
vim /etc/httpd/conf.d/ssl.conf
	#這裏別忘記修改serverName

3、下載證書

4、重啓服務

5、防火牆---https

5、驗證


第十四題、虛擬主機

1、創建虛擬目錄
2、下載網頁
3、查找 虛擬主機文件
4、修改配置文件
5、setfacl 權限
6、重啓服務
7、測試


第十五題、配置web內容訪問

1、創建目錄
2、下載網頁
3、去conf/httpd.conf 裏面複製、修改配置文件
4、重啓
5、驗證



第十六題、實現動態web內容

1、安裝 mod_wsgi* 服務

2、創建目錄

3、下載腳本

4、配置selinux
	semange  port   -a  -t  http_port_t  -p  tcp  8909
4、設置防火牆 ---port
	firewall-cmd  --add-rich-rule  'rule family=ipv4 source address=172.25.0.0/24 port port=8909  protocol=tcp  accept'  --permanent
firewall-cmd --reload

      

5、修改配置文件


listen  8909              #明天一定不要忘記了,這裏要加listen 偵聽端口
<VirtualHost *:8909>
	ServerName alt.example.com:8909
	WSGIScriptAlias  /   "/var/www/wsgi/webapp.wsgi"
<VirtualHost>
6、重啓

第十七題、創建一個腳本

#!/bin/bash
	case $1 in
		redhat) 
			echo "fedora"
		;;
		fedora) 
			echo "redhat"
		;;
		*)
			echo "/root/foo.shredhat|fedora"
		;;
	esac


chmod755/root/foo.sh


第十八題、添加一個用戶腳本



第十九題、配置iscsi 服務

1、安裝targetcli*服務

2、設置開機自啓動

3、查看磁盤,並且分區

4、防火牆  --3260 

5、配置文件

6、重啓


第二十題:客戶端iscsi 掛在

1、安裝iscsi-init*
2、設置開機自啓動
3、修改配置文件
	vim /etc/iscsi/initxxx
4、發現磁盤
5、鏈接磁盤
6、分區
7、格式化
8、創建掛在目錄
9、修改文件

uuid=“xxxxxxx”  /mnt/dev   ext4  defaults,_netdev  0 0 #這裏一定要+ —netdev   
10、掛在


第二十一題:配置一個數據庫

1、安裝數據庫 mariadb*
2、重啓mariad 
3、開機自啓動服務
4、初始化數據庫
5、下載數據表
6、 登錄數據庫
7、創建數據數據庫
8、讀取數據表、
9、授權
	grant  select  on  contracts. *  to  'raikon'@'localhost'   identified   by   'redhat';
	
10、刷新
flush  privileges;



第二十二題、數據庫查詢   細心

數據庫查詢  ,前面是人名   後面是姓  和中國人相反  


1、select  u_name.firstname from  u_name,u_passwd   where   u_name.userid = u_passwd.uid  and  u_passwd.password = '123456';


2、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';




考試細節總結:
	samba  selinux  防火牆    cifs multiuser,username=sarah,password=redhat,sec=ntlmssp 0 0
	nfs         防火牆          172.25.0.11/protected   /mnt/nfssecure  nfs   defaults,v4.2,sec=krb5p 00	
	
	iscsi     客戶端自啓動    uuid='xx'   /mnt/dev   ext4  defaults,_netdev  0 0   #別忘了 _netdev
	
	端口轉發  不加 accept 

	動態web  記得哪個端口放添加到http_port_t 裏面


掛在腳本
有時間就寫

特別是目錄 要有權限

1、創建腳本目錄
2、編寫腳本

#!/bin/bash
#
count=$(df  -h|grep  -E  '/mnt/dev|/mnt/nfsmount|/mnt/nfssecure'|wc -l)
while  : ;do
	if  [  $count -ne 3 ] ;then
		mount -a
	else
		break 
	fi
done


3、添加權限
chmod  a+x   /etc/rc.local

chmod  a+x   /etc/rc.d/rc.local

chmod  a+x   /etc/rc.d/rc.local-rht

sed   -i  '1a nohup   /bin/bash   /scripts/automount.sh'  /etc/rc.local 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章