RHCE實驗記錄總結-2-RHCE

RHCSA實驗總結-點擊跳轉

RHCE實驗

RHCE這邊我簡單分了下類:html

## 網絡與安全
1. IPv6 設置(推薦使用GUI程序 nm-connection-editor來完成) 2. team 聚合設置 3. 防火牆端口過濾 4. 防火牆端口轉發 ## 網絡共享服務 6. iSCSI 服務 7. nfs/smb 掛載 7.1 kerbose驗證的nfs 7.2 samba多用戶掛載 ## web服務 8. https, wsgi服務器 9. http 虛擬主機 ## db服務 11. mariadb 數據庫 ## 其餘 7. shell 腳本 10. smtp 郵件服務 

 

提供Apache HTTPD Web服務

成果:node

TLS虛擬主機,在https://webapp0.example.com 域中提供Python WSGI Web應用程序mysql

 

準備:linux

一、開始前重置server和desktop虛機: rht-vmctl reset desktop     rht-vmctl reset serverweb

二、在server上執行實驗初始化腳本: lab webapp setupsql

 

需求和資料:shell

您的開發者正在處理一個使用Python編寫並基於Web的新應用程序。他們要求您在server0上配置httpd服務以使用TLS加密在https://webapp0.example.com域中運行此應用程序數據庫

要配置應用程序,您將須要如下信息json

文件 下載位置
TLS證書 http://classroom/pub/tls/certs/webapp0.crt
TLS私鑰 http://classroom/pub/tls/private/webapp0.key
TLS CA證書 http://classroom/pub/example-ca.crt
Python應用程序 /home/student/webapp.wsgi

驗證:vim

在desktop虛機上運行:lab webapp grade

 

需求分析拆解:

一、安裝支持httpd、TLS、WSGI的所需軟件包

二、下載建立一個目錄並把應用程序複製到這個目錄,後續httpd訪問它提供服務

三、下載配置證書和祕鑰

四、配置httpd基於TLS的新虛機主機,並配置域名/訪問web應用程序,並使用以前下載的證書和祕鑰

五、啓動並啓用web服務支持TLS的web服務能夠被外部訪問

六、從desktop上測試是否能夠經過httpd正常訪問到web應用程序

七、在desktop上執行 lab webapp grade驗證

具體實驗步驟:

1、安裝支持httpd、TLS、WSGI的所需軟件包
[root@server0 ~]# yum -y install httpd mod_ssl mod_wsgi

2、下載建立一個目錄並把應用程序複製到這個目錄,後續httpd訪問它提供服務
2.1、建立目錄
[root@server0 srv]# mkdir -p /srv/webapp0/www
[root@server0 srv]# rsync -avgp /home/student/webapp.wsgi /srv/webapp0/www/
sending incremental file list
webapp.wsgi

sent 476 bytes  received 31 bytes  1014.00 bytes/sec
total size is 397  speedup is 0.78
[root@server0 srv]#

2.2、還原selinux標籤
[root@server0 srv]# restorecon -vvR webapp0
restorecon reset /srv/webapp0/www context unconfined_u:object_r:var_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
restorecon reset /srv/webapp0/www/webapp.wsgi context unconfined_u:object_r:var_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
[root@server0 srv]# semanage fcontext -l |grep -i www
/srv/([^/]*/)?www(/.*)?                            all files          system_u:object_r:httpd_sys_content_t:s0
/srv/([^/]*/)?www/logs(/.*)?                       all files          system_u:object_r:httpd_log_t:s0


3、下載配置證書和祕鑰
3.1、下載ca證書
[root@server0 tls]# /etc/pki/tls/certs
[root@server0 tls]# wget http://classroom.example.com/pub/example-ca.crt
3.2、下載tls證書
[root@server0 certs]# wget http://classroom.example.com/pub/tls/certs/webapp0.crt
3.3、下載私鑰
[root@server0 certs]# cd /etc/pki/tls/private/
[root@server0 private]# wget http://classroom.example.com/pub/tls/private/webapp0.key



4、配置httpd基於TLS的新虛機主機,並配置域名/訪問web應用程序,並使用以前下載的證書和祕鑰
[root@server0 conf.d]# cat 001-webapp0.example.com.conf
<VirtualHost *:443>
ServerName webapp0.example.com

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
# public crt
SSLCertificateFile /etc/pki/tls/certs/webapp0.crt
# prive key
SSLCertificateKeyFile /etc/pki/tls/private/webapp0.key
# ca crt
SSLCertificateChainFile /etc/pki/tls/certs/example-ca.crt

# wsgi location
WSGIScriptAlias / /srv/webapp0/www/webapp.wsgi

<Directory "/srv/webapp0/www">
    Require all granted
</Directory>
</VirtualHost>
[root@server0 conf.d]#


5、啓動並啓用web服務支持TLS的web服務能夠被外部訪問配置防火牆
[root@server0 ~]# firewall-cmd --add-service=https
[root@server0 ~]# firewall-cmd --add-service=https --permanent


6、從desktop上測試是否能夠經過httpd正常訪問到web應用程序
[root@desktop0 ~]# curl https://webapp0.example.com -k
UNIX EPOCH time is now: 1563355750.07

7、在desktop上執行 lab webapp grade驗證
[root@desktop0 ~]# lab webapp grade
Checking for web application...  SUCCESS
[root@desktop0 ~]#
提供Apache HTTPD Web服務-具體實驗步驟

 

實驗總結:

一、域名證書申請

- 能夠經過網站:https://myssl.com/csr_create.html 或者經過命令生成csr(證書籤名請求文件)和私鑰

- 拿着csr去CA證書頒發機構申請帶簽名的證書(帶CA簽名的公鑰)

- 把公鑰和私鑰放到服務器上便可

二、加密請求邏輯

curl "https://baidu.com" -v
* Rebuilt URL to: https://baidu.com/
*   Trying 220.181.38.148...
* TCP_NODELAY set
* Connected to baidu.com (220.181.38.148) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/cert.pem
  CApath: none
* TLSv1.2 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Client hello (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS change cipher, Client hello (1):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: C=CN; L=Beijing; O=BeiJing Baidu Netcom Science Technology Co., Ltd; OU=service operation department; CN=www.baidu.cn
*  start date: Mar 18 00:00:00 2019 GMT
*  expire date: Mar 17 12:00:00 2020 GMT
*  subjectAltName: host "baidu.com" matched cert's "baidu.com"
*  issuer: C=US; O=DigiCert Inc; CN=DigiCert SHA2 Secure Server CA
*  SSL certificate verify ok.
> GET / HTTP/1.1
> Host: baidu.com
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 302 Moved Temporarily
< Server: bfe/1.0.8.18
< Date: Mon, 12 Aug 2019 12:13:28 GMT
< Content-Type: text/html
< Content-Length: 161
< Connection: keep-alive
< Location: http://www.baidu.com/
<
<html>
<head><title>302 Found</title></head>
<body bgcolor="white">
<center><h1>302 Found</h1></center>
<hr><center>bfe/1.0.8.18</center>
</body>
</html>
* Connection #0 to host baidu.com left intact

HTTPS認證流程解釋:

CA能夠理解爲工商局     證書能夠理解爲經營許可證書(帶簽名的公鑰)、key能夠理解爲身份證(私鑰)

想開公司的去工商局申請一個經營許可,可是這個許但是能夠僞造的,你想投資這個公司可是你不知道這個公司是否是正規的怎麼辦?去工商局一查不都知道了嗎?原理是同樣的

 

如上圖和請求邏輯字符串所示:

一、TLS handshake, Client Hello 【發送hello啓動會話】
客戶端經過發送Client Hello報文開始創建SSL通訊,報文包含客戶端支持的SSL版本,加密套件列表,隨機數。
上面例子中:ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH 就是客戶端支持的加密套件的表達式。

二、TLS handshake, Server Hello 【應答hello】

服務端回覆Server Hello做爲應答,報文包含服務端選擇好的SSL版本,加密套件,隨機數。

上面例子中服務器選擇了:SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256

三、TLS handshake, Certificate 【拿出證實,客戶端驗證("用戶去工商局認證它的公司是否合法「)】

服務端發送證書鏈(從根證書到自身的證書)。證書包含證書全部者、頒發機構以及公鑰、數字簽名等信息。

客戶端會預製一些CA公鑰證書,若是發現服務端發送過來的證書不是預製的CA機構頒發的會提示。

客戶端會用CA公鑰對數字簽名進行解密獲取證書信息,而後和服務端傳遞過來的信息進行對比是否有效

四、TLS handshake, Server key exchange【服務端將數據加密方法和參數傳遞給客戶後端】

五、TLS handshake, Server finished 【就這些了沒了,等待客戶端後續傳遞消息】

六、TLS handshake, Client key exchange 【客戶端將數據加密方法和參數傳遞給服務端】

七、TLS change cipher, Client hello 【我用發給你的加密方法和參數加密了一條信息你驗證下】服務端發送更改加密方式信號。TLS1.3將其移除

八、TLS handshake, Finished 【服務端OK我也用發給你的加密方法加密了一條數據你也驗證下】

開始數據傳輸-------

 

ISCSI 提供基於塊的存儲

成果:

從server0計算機上導出的ISCSI目標用ACL進行了限制,以便次目標只能由您的desktop0使用並持久掛載

準備:

一、重置server、destop系統:rht-vmctl reset desktop     rht-vmctl reset server

二、您已被要求在server0計算機上建立一個新的1G ISCSI目標,此目標應該稱爲: iqn.2014-06.com.example:server0   且只能被:iqn.2014-06.com.example:desktop0的客戶端使用

需求分析:

一、在Server上建立一個新的1 G分區留做備用

二、在Server上安裝所需的安裝包,而後啓動並啓用全部相關服務

三、建立以個名爲iqn.2014-06.com.example:server0的ISCSI目標,使用建立的1G分區做爲後備存儲,並設置ACL只容許iqn.2014-06.com.example:desktop0訪問

四、在防火牆開放ISCSI服務端口

五、在desktop0上,驗證是否安裝了:iscsi-initiator-util軟件包,而後將initiatorname設置爲iqn.2014-06.com.example:desktop0

六、發現server0的共享,並登錄測試

七、掛載fstable持久掛載(建立掛載點/iscsidisk並永久掛載至/iscsidisk)

具體實驗步驟:

 

-----------------------------------------server

# 建立硬盤
[root@server0 ~]# fdisk /dev/vdb

# 掃描分區改動
[root@server0 ~]# partprobe

# 安裝ISCSI共享所需軟件包
[root@server0 ~]# yum -y install targetcli

# 啓動服務並設置爲開機啓動
[root@server0 ~]# systemctl start target
[root@server0 ~]# systemctl enable target
ln -s '/usr/lib/systemd/system/target.service' '/etc/systemd/system/multi-user.target.wants/target.service'
[root@server0 ~]# systemctl status target
target.service - Restore LIO kernel target configuration
   Loaded: loaded (/usr/lib/systemd/system/target.service; enabled)
   Active: active (exited) since 三 2019-07-17 18:22:18 CST; 12s ago
 Main PID: 1745 (code=exited, status=0/SUCCESS)

7月 17 18:22:18 server0.example.com target[1745]: No saved config file at /etc/target/saveconfig.json, ok, exiting
7月 17 18:22:18 server0.example.com systemd[1]: Started Restore LIO kernel target configuration.

# 先建立一個後備的塊存儲-table能夠補全
targetcli
/> backstores/block create dev=/dev/vdb1 name=disk1
Created block storage object disk1 using /dev/vdb1.

# 在建立一個ISCSI分享目標,名稱爲:iqn.2014-06.com.example:server0
/> iscsi/ create wwn=iqn.2014-06.com.example:server0
Created target iqn.2014-06.com.example:server0.
Created TPG 1.

# 設置目標[acl/lun/port] = [容許誰來訪問/這個目標分享的設備/這個目標經過什麼IP什麼端口訪問]
## acl
/> iscsi/iqn.2014-06.com.example:server0/tpg1/acls create wwn=iqn.2014-06.com.example:desktop0
Created Node ACL for iqn.2014-06.com.example:desktop0
## lun
/> iscsi/iqn.2014-06.com.example:server0/tpg1/luns create /backstores/block/disk1
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2014-06.com.example:desktop0
## port iscsi 默認端口是3260若是不使用這個端口須要對selinux進行配置
/> iscsi/iqn.2014-06.com.example:server0/tpg1/portals create ip_address=172.25.0.11 ip_port=3260

# 保存退出
/> saveconfig
Last 10 configs saved in /etc/target/backup.
Configuration saved to /etc/target/saveconfig.json

/> 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 ~]# firewall-cmd --add-port=3260/tcp
[root@server0 ~]# firewall-cmd --add-port=3260/tcp --permanent

-----------------------------------------desktop


# 修改配置設置server端容許的iscsi的客戶端
[root@desktop0 ~]# cat /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2014-06.com.example:desktop0

# 發現server端的共享設備
[root@desktop0 ~]# iscsiadm -m discovery -t st -p 172.25.0.11:3260
172.25.0.11:3260,1 iqn.2014-06.com.example:server0

# 登陸設備
[root@desktop0 ~]# iscsiadm -m node -T iqn.2014-06.com.example:server0 -l

# 查看設備
[root@desktop0 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda      8:0    0   1G  0 disk     <----------- 多出一個1G的設備
vda    253:0    0  10G  0 disk
└─vda1 253:1    0  10G  0 part /
vdb    253:16   0  10G  0 disk

# 格式化分區
[root@desktop0 ~]# mkfs.xfs /dev/sda

# 建立掛載點
[root@desktop0 ~]# mkdir -p /iscsidisk

# 獲取uuid
[root@desktop0 ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/sda: UUID="ab154cb3-c4b0-4f63-82db-c499a2b5ec7d" TYPE="xfs"



# 修改fstab持久掛載 / 這裏須要注意須要指定_netdev 由於網絡掛載
UUID=ab154cb3-c4b0-4f63-82db-c499a2b5ec7d /iscsidisk              xfs     _netdev         0 0

# 測試,而後umount後重啓,儘可能不要強制重啓
[root@desktop0 ~]# mount -a
[root@desktop0 ~]# 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/sda       1014M   33M  982M    4% /iscsidisk
[root@desktop0 ~]# umount /iscsidisk
[root@desktop0 ~]# reboot

# 驗證重啓可否自動掛載
df -h 

ISCSI 提供基於塊的存儲-具體實驗步驟
ISCSI 提供基於塊的存儲-具體實驗步驟

 

實驗總結:

 

 

一、iscsi 存儲資源能夠包含多個TGP,每一個TGP有一個惟一限定名:iqn

二、每一個TGP能夠理解爲一個對外暴露的可訪問資源:這個資源定義了3個屬性:

  • ACL 誰能夠訪問我
  • luns 我能提供那些共享資源
  • portals 要訪問我經過那個IP那個端口

kerbose驗證的nfs掛載和samba多用戶掛載(autofs是rchsa)

成果:

根據給定的要求在server0上

與 NFS 和 Kerberos 安全性共享目錄,而後將它掛載到desktop0上

在Server0上共享某個目錄,而後將其掛載到desktop0上

 

NFS需求:

- 在具備krb5p的安全性的server0上共享建立的/krbnfs目錄

- 容許從desktp0系統中對共享進行讀寫訪問

- 支持SELinux標籤導出

- server0 和 desktop0系統的預配置 krb5 keytab在一下一下網址中提供

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

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

- 容許經過防火牆來訪問NFS服務

- 在desktop0上建立新的掛載點 /mnt/securespace 並永久掛載 NFS 共享 server0:/krbnfs

 

SAMBA需求:

- 使用 SMB 來共享建立的目錄 /smbaspace

- 輔助組 sales 成員對共享具備讀寫權限

- 確保新建立的文件均具備組全部權sales

- sales 組成員以外的全部用戶具備讀權限

- Samba服務器位於 salesdep 工做組中,Samba中的共享名爲 smbspace

- 建立Samba用戶 frank 此用戶屬於時長銷售團隊:sales  密碼爲 redhat

- 建立Samba用戶 martin 此用戶不屬於銷售團隊,密碼爲 redhat

- 容許經過防火牆來訪問SMB

- 以多用戶方式將Samba共享永久掛載到desktop0上的 /mnt/salesshare 掛載點,使用新建立的憑據文件 /root/smb-multiuser.txt 進行身份驗證。使用 frank 的憑據來掛載 Samba共享

 

準備:

開始前重置:server 和 desktop機器  並執行初始化

[root@foundation0 ~]# rht-vmctl reset server

[root@foundation0 ~]# rht-vmctl reset desktop

 

在server和desktop上執行:lab storageshares setup

 

實驗完成後在desktop執行: lab storageshares grade 進行驗證

 

具體實驗步驟:

 

# krb5 nfs

-------------------------server
# 建立共享目錄
mkdir -p /krbnfs

# 檢查nfs軟件包是否安裝
[root@server0 ~]# rpm -qa |grep -i nfs
libnfsidmap-0.25-9.el7.x86_64
nfs-utils-1.3.0-0.el7.x86_64

# 修改配置文件設置共享目錄以及共享目錄容許誰來訪問
[root@server0 ~]# cat /etc/exports
/krbnfs                 172.25.0.10(sec=krb5p,rw)
[root@server0 ~]# 

# 由於須要支持krb5因此須要下載keytab
[root@server0 ~]# wget http://classroom.example.com/pub/keytabs/server0.keytab -O /etc/krb5.keytab

# 容許selinux標籤導出須要使用v4.2修改nfs的配置文件
[root@server0 ~]# cat /etc/sysconfig/nfs |grep RPCNFSDARGS
RPCNFSDARGS="-V4.2"
[root@server0 ~]# 

# 啓動服務並設置爲開機啓動
[root@server0 ~]# systemctl start nfs-secure-server 
[root@server0 ~]# systemctl enable nfs-secure-server      
ln -s '/usr/lib/systemd/system/nfs-secure-server.service' '/etc/systemd/system/nfs.target.wants/nfs-secure-server.service'
[root@server0 ~]# systemctl status nfs-secure-server            
nfs-secure-server.service - Secure NFS Server
   Loaded: loaded (/usr/lib/systemd/system/nfs-secure-server.service; enabled)
   Active: active (running) since Fri 2019-07-19 07:42:08 CST; 13s ago
 Main PID: 1956 (rpc.svcgssd)
   CGroup: /system.slice/nfs-secure-server.service
           └─1956 /usr/sbin/rpc.svcgssd

Jul 19 07:42:08 server0.example.com systemd[1]: Starting Secure NFS Server...
Jul 19 07:42:08 server0.example.com systemd[1]: Started Secure NFS Server.

# 防火牆容許服務經過
[root@server0 ~]# firewall-cmd --add-service=nfs --permanent 
success
[root@server0 ~]# firewall-cmd --add-service=nfs 
success
[root@server0 ~]# firewall-cmd --reload
success


-------------------------desktop

# 由於須要支持krb5因此須要下載keytab
[root@desktop0 ~]# wget http://classroom.example.com/pub/keytabs/desktop0.keytab -O /etc/krb5.keytab

# 建立掛載目錄
[root@desktop0 ~]# mkdir /mnt/securespace

# 啓動服務
[root@desktop0 ~]# systemctl start nfs-secure
[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 status nfs-secure
nfs-secure.service - Secure NFS
   Loaded: loaded (/usr/lib/systemd/system/nfs-secure.service; enabled)
   Active: active (running) since Fri 2019-07-19 07:49:41 CST; 10s ago
 Main PID: 2022 (rpc.gssd)
   CGroup: /system.slice/nfs-secure.service
           └─2022 /usr/sbin/rpc.gssd

Jul 19 07:49:41 desktop0.example.com systemd[1]: Starting Secure NFS...
Jul 19 07:49:41 desktop0.example.com systemd[1]: Started Secure NFS.

# 添加/etc/fstab配置
server0:/krbnfs                           /mnt/securespace        nfs     defaults,v4.2,sec=krb5p 0 0

# 掛載
mount -a

# 驗證selinux標籤是否導出
server上建立一個文件看看selinux標籤
krb5驗證的-nfs掛載詳細實驗步驟
# samba mutiuser

-------------------------server
# 安裝samba所需安裝包
[root@server0 ~]# yum -y install samba*

# 建立共享目錄
[root@server0 ~]# mkdir -p /smbaspace

# 建立輔助組
[root@server0 ~]# groupadd sales

# 建立用戶和根據需求把用戶加入sales輔助組
[root@server0 ~]# useradd frank -G sales -s /usr/sbin/nologin 
[root@server0 ~]# useradd martin -s /usr/sbin/nologin

# 根據需求smbaspace目錄屬於sales且新文件自動屬於sales組
[root@server0 ~]# chown :sales /smbaspace
[root@server0 ~]# chmod g+s /smbaspace

# samba用戶frank要對共享有讀寫權限,frank屬於sales咱們對應的也須要對目錄的組設置相應的權限
[root@server0 ~]# chmod 775 /smbaspace
[root@server0 ~]# ll -d /smbaspace
drwxrwsr-x. 2 root sales 6 Jul 19 07:53 /smbaspace

# 添加selinux標籤,以經過selinux權限
[root@server0 ~]# semanage fcontext -a -t samba_share_t '/smbaspace(/.*)?'
[root@server0 ~]# restorecon -vvFR /smbaspace
restorecon reset /smbaspace context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
[root@server0 ~]#

# 按需修改配置
[root@server0 ~]# cat /etc/samba/smb.conf |grep workgroup |grep -v "#"
        workgroup = salesdep
[root@server0 ~]# cat /etc/samba/smb.conf |grep -A 3 smbspace         
[smbspace]
        path = /smbaspace
        write list = @sales

[root@server0 ~]#


# 建立samba用戶
[root@server0 ~]# smbpasswd -a frank
New SMB password:
Retype new SMB password:
Added user frank.
[root@server0 ~]# smbpasswd -a martin
New SMB password:
Retype new SMB password:
Added user martin.

# 啓動服務並設置爲開機啓動
[root@server0 ~]# systemctl start smb nmb
[root@server0 ~]# systemctl enable smb nmb     
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service'
[root@server0 ~]# systemctl status smb nmb
smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled)
   Active: active (running) since Fri 2019-07-19 08:02:28 CST; 14s ago
 Main PID: 2765 (smbd)
   Status: "smbd: ready to serve connections..."
   CGroup: /system.slice/smb.service
           ├─2765 /usr/sbin/smbd
           └─2766 /usr/sbin/smbd

Jul 19 08:02:28 server0.example.com smbd[2765]: [2019/07/19 08:02:28.330058,  0] ../lib/util/become_daemon.c:136(daemon_ready)
Jul 19 08:02:28 server0.example.com systemd[1]: Started Samba SMB Daemon.

nmb.service - Samba NMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled)
   Active: active (running) since Fri 2019-07-19 08:02:28 CST; 14s ago
 Main PID: 2764 (nmbd)
   Status: "nmbd: ready to serve connections..."
   CGroup: /system.slice/nmb.service
           └─2764 /usr/sbin/nmbd

Jul 19 08:02:27 server0.example.com systemd[1]: Starting Samba NMB Daemon...
Jul 19 08:02:28 server0.example.com systemd[1]: Started Samba NMB Daemon.
[root@server0 ~]# 


# 本機驗證
[root@server0 ~]# smbclient -L //localhost/smbspace -U frank
Enter frank's password: 
Domain=[SALESDEP] OS=[Unix] Server=[Samba 4.1.1]

        Sharename       Type      Comment
        ---------       ----      -------
        smbspace        Disk      
        IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
        frank           Disk      Home Directories
Domain=[SALESDEP] OS=[Unix] Server=[Samba 4.1.1]

        Server               Comment
        ---------            -------
        SERVER0              Samba Server Version 4.1.1

        Workgroup            Master
        ---------            -------
        SALESDEP             SERVER0

# 防火牆容許服務
[root@server0 ~]# firewall-cmd --add-service=samba --permanent 
success
[root@server0 ~]# firewall-cmd --add-service=samba 
success
[root@server0 ~]# firewall-cmd --reload
success
[root@server0 ~]# 


-------------------------desktop
# 安裝samba所需安裝包
[root@desktop0 ~]# yum -y install samba* cifs-utils

# 驗證server共享desktop是否能夠看到
[root@desktop0 ~]# smbclient -L //server0/smbspace -U frank
Enter frank's password: 
Domain=[SALESDEP] OS=[Unix] Server=[Samba 4.1.1]

        Sharename       Type      Comment
        ---------       ----      -------
        smbspace        Disk      
        IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
        frank           Disk      Home Directories
Domain=[SALESDEP] OS=[Unix] Server=[Samba 4.1.1]

        Server               Comment
        ---------            -------
        SERVER0              Samba Server Version 4.1.1

        Workgroup            Master
        ---------            -------
        SALESDEP             SERVER0
[root@desktop0 ~]# 

# 建立掛載目錄
[root@desktop0 ~]# mkdir /mnt/salesshare

# 根據需求建立credentials文件
[root@desktop0 ~]# cat /root/smb-multiuser.txt 
username=frank
password=redhat
[root@desktop0 ~]# 

# 添加/etc/fstab配置
//server0/smbspace                        /mnt/salesshare         cifs    defaults,multiuser,credentials=/root/smb-multiuser.txt,sec=ntlmssp 0 0

# 掛載
mount -a
samba多用戶文件密碼掛載詳細實驗步驟

 

驗證:

[root@desktop0 ~]# lab storageshares grade

 

實驗總結:

一、nfs和samba區別

nfs和samba都是共享協議可是nfs使用的是標準的unix文件權限和驗證因此在window上不支持,samba使用權限和認證能夠看出並無使用unix這一套,因此它能夠通用windows和unix

二、區分下實驗

- autofs 添加配置文件就好了   nfs.autofs指定掛載的目錄和映射文件      在映射文件指定掛載點、掛載點權限-typefs=rw、要掛載的文件系統

# 添加配置文件
[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

- iscsi

掛載iscsi共享的對象:

1、先的發現那臺機器在共享
iscsiadm -m discovery -t st -p 172.25.0.11:1234
# 解釋-t  type sendtarget

2、登陸下
iscsiadm -m node -T iqn.2014-06.com.example:server0 -l
# 解釋-T 指定上面發現的targetname
# 解釋-l  登陸logging

3、當發現了硬盤設備後就和標準的設備掛載同樣了惟一區別是,須要在掛載屬性上加一個屬性標識它是一個網絡設備(_netdev)
UUID=ab154cb3-c4b0-4f63-82db-c499a2b5ec7d /iscsidisk              xfs     _netdev         0 0

- nfs

注意若是支持標籤導出的話改下server配置
[root@server0 ~]# vim /etc/sysconfig/nfs  
    RPCNFSDARGS="-V 4.2"

若是須要支持krb5須要下載「護照」keytab  在server端和client端
wget  http://xxxx/keytab  -O /etc/krb5.keytab 

在掛載的時候
文件類型nfs   掛載選項v4.2,sec=krb5p

- samba

server端注意啓動:smb nmb 服務 

server端注意文件夾權限、selinux標籤權限

配置也須要注意下
[smbspace]
    path = /sambaspace
    write list = @salses

 

網絡安全[IPV6/防火牆轉發/聚合team]

IPV6配置

這個沒什麼說的標準命令配置按照規則來便可  有需求能夠經過GUI來配置: nm-con

實驗需求:

一、配置server的eno1的連接配置IPV4地址 192.168.0.100/24 和IPV6地址 fddb:fe2a:ab1e::c0a8:64/64      16進制:0-9  A-F   別記錯

二、ipv4網關:192.168.0.254   ipv6網關:fddb:fe2a:ab1e::c0a8:fe

實驗準備:在server上執行  lab ipv6 setup

實驗驗證:lab ipv6 grade

實驗步驟:

# 添加NetworkManager連接 對應的設備是: eno1
[root@server0 ~]# nmcli connection add con-name eno1 type ethernet ifname eno1
Connection 'eno1' (e80e5350-5a76-40bc-a1d4-fbf63da498db) successfully added.


# 添加IPV4配置
[root@server0 ~]# nmcli connection modify eno1 ipv4.addresses 192.168.0.100/24
# 修改IPV4連接方式爲手工
[root@server0 ~]# nmcli connection modify eno1 ipv4.method manual

# 添加IPV6配置
[root@server0 ~]# nmcli connection modify eno1 ipv6.addresses fddb:fe2a:ab1e::c0a8:64/64
# 修改IPV6連接方式爲手工
[root@server0 ~]# nmcli connection modify eno1 ipv6.method manual

# 重啓網卡
[root@server0 ~]# nmcli connection down eno1
[root@server0 ~]# nmcli connection up eno1
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)

# 測試
[root@server0 ~]# ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=64 time=1.88 ms
^C
--- 192.168.0.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.883/1.883/1.883/0.000 ms
[root@server0 ~]# ping6 fddb:fe2a:ab1e::c0a8:fe
PING fddb:fe2a:ab1e::c0a8:fe(fddb:fe2a:ab1e::c0a8:fe) 56 data bytes
64 bytes from fddb:fe2a:ab1e::c0a8:fe: icmp_seq=1 ttl=64 time=3.23 ms
64 bytes from fddb:fe2a:ab1e::c0a8:fe: icmp_seq=2 ttl=64 time=0.044 ms
^C
--- fddb:fe2a:ab1e::c0a8:fe ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.044/1.638/3.233/1.595 ms
[root@server0 ~]#

# 驗證
[root@server0 ~]# lab ipv6 grade
ipv6&ipv4-詳細實驗步驟

 

端口聚合

實驗需求:

在server上建立一個聚合接口team0,具備靜態IP地址:192.168.0.100/24  而且根據 eno1 和 eno2 建立一個容錯的主備接口

實驗準備:在server上執行  lab teambridge setup    使用root用戶操做

實驗步驟:

# 添加聚合接口
[root@server0 ~]# nmcli connection add type team con-name team0 config '{"runner": {"name": "activebackup"}}'
Connection 'team0' (a4c4d11a-2f89-4540-9c69-70c7a46e429a) successfully added.
[root@server0 ~]#

# 設置端口IP
[root@server0 ~]# nmcli connection modify team0 ipv4.addresses 192.168.0.100/24
[root@server0 ~]# nmcli connection modify team0 ipv4.method manual
[root@server0 ~]#

# 針對team0分配eno1和eno2物理接口
[root@server0 ~]# nmcli connection add type team-slave con-name team0-p1 ifname eno1 master team0
[root@server0 ~]# nmcli connection add type team-slave con-name team0-p2 ifname eno2 master team0


# 查看team狀態
[root@server0 ~]# teamdctl team0 state
setup:
  runner: activebackup
ports:
  eno1
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
  eno2
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
runner:
  active port: eno1


# 驗證
[root@server0 ~]# ping 192.168.0.254
PING 192.168.0.254 (192.168.0.254) 56(84) bytes of data.
64 bytes from 192.168.0.254: icmp_seq=1 ttl=64 time=0.086 ms
^C
--- 192.168.0.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.086/0.086/0.086/0.000 ms
端口聚合-詳細實驗步驟

 

防火牆轉發

實驗需求:將desktop來的登陸443的請求轉到22端口

實驗準備:重置server、destop系統:rht-vmctl reset desktop     rht-vmctl reset server

實驗步驟:

[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="172.25.0.10/32" forward-port port="443" protocol="tcp" to-port="22"' --permanent
success
[root@server0 ~]# firewall-cmd --add-rich-rule 'rule family="ipv4" source address="172.25.0.10/32" forward-port port="443" protocol="tcp" to-port="22"'
success
[root@server0 ~]# firewall-cmd --list-rich-rules
rule family="ipv4" source address="172.25.0.10/32" forward-port port="443" protocol="tcp" to-port="22"
[root@server0 ~]#

[root@desktop0 ~]# ssh -p 443 172.25.0.11
The authenticity of host '[172.25.0.11]:443 ([172.25.0.11]:443)' 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 '[172.25.0.11]:443' (ECDSA) to the list of known hosts.
root@172.25.0.11's password:
Last login: Thu Jul 18 17:25:49 2019 from 172.25.0.250
[root@server0 ~]#
端口轉發詳細步驟

 

配置MariaDB數據庫

實驗需求:

部署一個MariaDB、並恢復數據庫表、插入數據

設置db用戶權限

用戶 密碼 權限
mary mary_password 對傳統數據庫中全部表有選擇操做
legacy legacy_password 對傳統數據庫中全部表有選擇、插入、更新、刪除操做
report report_password 對傳統數據庫中全部表有選擇操做

插入數據條目在表:manufacturer

名稱 銷售員 電話號碼
HP Joe Doe +1 (432) 754-3509
Dell Luke Skywalker +1 (431) 219-4589
Lenovo Darth Vader +1 (327) 647-6784

實驗準備:

一、重置desktop和server的系統:rht-vmctl reset desktop   rht-vmctl reset server

二、執行實驗初始化

server:lab mariadb setup

desktop:lab mariadb setup

 

實驗需求分析:

一、安裝mariaDB所需軟件包

二、啓動服務並設置爲開機啓動

三、防火牆開放mysql服務容許外部訪問mysql

四、建立legacy數據庫

五、恢復數據庫備份:/home/student/mariadb.dump

六、根據需求建立用戶並設置權限

七、插入新的數據在數據庫表:manufacturer

八、驗證在desktop執行:lab mariadb grade

 

實驗詳細步驟:

# 安裝所需mariaDB所需軟件包  Server & Client
mariadb

# 啓動服務並設置爲開機啓動 Server
[root@server0 ~]# systemctl start mariadb
[root@server0 ~]# systemctl status mariadb
mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled)
   Active: active (running) since 四 2019-07-18 21:26:43 CST; 6s ago
  Process: 1731 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1651 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 1730 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─1730 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─1887 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/va...

7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: The latest information about MariaDB is available at http://mariadb.org/.
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: You can find additional information about the MySQL part at:
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: http://dev.mysql.com
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: Support MariaDB development by buying support/new features from
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: SkySQL Ab. You can contact us about this at sales@skysql.com.
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: Alternatively consider joining our community based development effort:
7月 18 21:26:41 server0.example.com mariadb-prepare-db-dir[1651]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/
7月 18 21:26:41 server0.example.com mysqld_safe[1730]: 190718 21:26:41 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
7月 18 21:26:41 server0.example.com mysqld_safe[1730]: 190718 21:26:41 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
7月 18 21:26:43 server0.example.com systemd[1]: Started MariaDB database server.
[root@server0 ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'

# 防火牆開放mysql服務容許外部訪問mysql
[root@server0 ~]# firewall-cmd --add-service=mysql
success
[root@server0 ~]# firewall-cmd --add-service=mysql --permanent
success
[root@server0 ~]# firewall-cmd --reload
success

# 建立 legacy 數據庫
MariaDB [(none)]> CREATE DATABASE legacy;

# 恢復數據庫備份:/home/student/mariadb.dump
MariaDB [(none)]> USE legacy;
MariaDB [legacy]> source /home/student/mariadb.dump;

# 根據需求建立用戶並設置權限
# 建立用戶
> CREATE USER mary@'%' IDENTIFIED BY 'mary_password';
Query OK, 0 rows affected (0.01 sec)

> CREATE USER legacy@'%' IDENTIFIED BY 'legacy_password';
Query OK, 0 rows affected (0.00 sec)

> CREATE USER report@'%' IDENTIFIED BY 'report_password';
Query OK, 0 rows affected (0.00 sec)
# 受權
> GRANT SELECT ON legacy.* TO mary@'%';
> GRANT SELECT ON legacy.* TO report@'%';
> GRANT SELECT,INSERT,UPDATE,DELETE ON legacy.* TO legacy@'%';

# 插入新的數據在數據庫表:manufacturer
MariaDB [legacy]> INSERT INTO manufacturer(name,seller,phone_number) VALUES ('HP','Joe Doe','+1 (432) 754-3509'),('Dell','Luke Skywalker','+1 (431) 219-4589'),('Lenovo','Darth Vader','+1 (327) 647-6784');
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

# 驗證在desktop執行:lab mariadb grade
配置MariaDB數據庫-詳細操做步驟

 

配置郵件傳輸

實驗成果:

將在本地郵件服務器配置爲充當空客戶端,已將全部郵件都轉發到中央服務器已進行發送(中繼)

 

將server0.exampl.com上的Postfix郵件服務器配置爲空客戶端,以經過:  smtp0.example.com 來中繼郵件,而且在發送電子郵件中使用:desktop0.exampl.ecom做爲您的組織域名。

經過支持IMAPS功能的點在郵件從imap0.example.com(以用戶和郵件收件人 student 的身份,而且使用 IMAP密碼: student)檢索測試郵件,驗證郵件服務器是否運行

實驗需求分析:

一、在server0上切換爲root用戶,而後將 relayhost 指令指向公司郵件服務器(郵件中繼給誰)。須要將郵件服務器的主機名括在方括號中,你防止空客戶端使用DNS執行 MX 記錄查找

二、將Postfix郵件服務器配置爲僅回覆來自本地系統的郵件

三、配置空客戶端,以便全部發出去的消息都將其發件人域重寫爲公司域:desktop0.example.com

四、禁止Postfix郵件服務器將任何郵件發送到本地帳戶

五、在server0上從新啓動本地Postfix空客戶端

六、在server0上打開一個新終端,而且經過mail命令發送一份郵件測試

[root@server0 ~]# mail -s "server0 null client" student@desktop0.example.com
null client test
EOT

七、執行驗證

lab smtp-nullclient grade

 

實驗準備:

一、重置server和desktop機器:rht-vmctl reset desktop     rht-vmctl reset server

二、執行初始化在server和desktop

[root@server0 ~]# lab smtp-nullclient setup

[root@desktop0 ~]# lab smtp-nullclient setup

 

實驗步驟:

# 指定郵件收到後轉發給誰
[root@server0 ~]# postconf -e 'relayhost=smtp0.example.com'

# 僅回覆本地郵件
## [設置受信的SMTP客戶端IP段, 設置發送郵件的接口爲:lookback-only接口]
[root@server0 ~]# postconf -e 'mynetworks=127.0.0.0/8 [::1]/128'
[root@server0 ~]# postconf -e 'inet_interfaces=loopback-only'

# 全部發出去的消息都將其發件人域重寫爲公司域
[root@server0 ~]# postconf -e 'myorigin=desktop0.example.com'

# 禁止Postfix郵件服務器將任何郵件發送到本地帳戶
## 設置本地郵件的目的爲空
[root@server0 ~]# postconf -e 'mydestination='
## 並對發往本地郵件的動做設爲爲報錯
postconf -e 'local_transport=error: local delivary disable'

# 重啓服務
[root@server0 ~]# systemctl restart postfix.service

# 發郵件驗證
[root@server0 ~]# systemctl restart postfix.service
[root@server0 ~]# mail -s "server0 null client" student@desktop0.example.com
null client test
EOT

# 測試郵件是否收到
[root@server0 ~]# curl -k --user student:student imaps://imap0.example.com
null client test
Postfix空客戶端-實驗詳細步驟

 

實驗總結:

一、每一個linux都有發郵件到外面的需求,Linux從以前的sendmail到如今的postfix

linux從6之後就自帶了postfix,因此每一個linux都有一個postfix郵件服務器,由軟件包:postfix 提供

 

# relayhost
relayhost=['smtp0.example.com']
"""
默認狀況下postfix會嘗試將郵件發送到Internet,可是有時候大家有辦法連接internet好比上班時間禁止連接internet,這個時候可能就須要指定一箇中繼的專門發送郵件的服務器,默認爲空,若是設置了中繼服務器,本機postfix服務受到郵件後,會把郵件發送到中繼服務器上

用中括號括起來:postfix就不會進行MX記錄查詢了(相似DNS查詢)

"""

# inet_interfaces
# inet_interfaces=loopback-only  # default all
"""
以哪一個IP發送郵件
當inet_interfaces只指定一個IPv4和/或IPv6地址而不是回送地址時,Postfix SMTP客戶機將使用這個地址做爲出站郵件的IP源地址。

當設置爲空客戶端的時候:inet_interfaces須要設置爲:inet_interfaces=loopback-only
"""

# mynetworks
# mynetworks=127.0.0.0/8 [::1]/128
"""
信任來自哪裏的SMTP客戶端,只有在我容許的SMTP客戶端才能經過postfix服務器進行中繼
"""

# myorigin
# myorigin=desktop0@example.com
"""
默認咱們使用root發送郵件默認是:root@主機名   設定了myorigin以後就是 root@desktop0@example.com
"""

# mydestination
# mydestination=
"""
配置postfix郵件服務器是那些域的終點,這個選項通常只針對本機,本機發送本機域的終點就是本機
mydestination = $myhostname, localhost.$mydomain, localhost  # default

若是設置爲空客戶端那麼本機域的終點應該去掉設置爲空mydestination=
"""

# local_transport
# local_transport=error: local delivery disabled
"""
它是指定$mydestination的電子郵件的傳遞方式,默認設置爲:local_transport = local:$myhostname
會把$mydestination郵件發送到:/var/spool/maill中存儲位置
"""

 

 

 

 

練習環境獲取方法

一、關注公衆號

二、輸入:rhce

相關文章
相關標籤/搜索