Leo Yeh's Blog

SAS 資訊安全 (21)

教學目標

初步了解如何在 Red Hat Linux 6.x 作業系統升級至 2.4 版本的 HTTP 伺服器,以利解決企業客戶 IT 單位管理 SAS Viya 平台之弱點掃描問題的基本概念。

重點概念

首先 SAS Viya 主要使用 HTTP 伺服器來提供靜態 HTML 內容和代理客戶端連線,然而 SAS Viya 目前官方僅支持以下版本的 Apache HTTP Server,分別為:

  1. Red Hat Linux 6.x Apache HTTP Server 2.2。
  2. Red Hat Linux 7.x Apache HTTP Server 2.4。

請注意除非已安裝 HTTP 伺服器,否則部署過程中會自動上安裝 Apache 的 httpd 服務來建立 HTTP 伺服器,其為多個 SAS Viya 元件提供安全性和負載平衡,也稱為反向代理伺服器。

接著企業客戶的弱點掃軟體通常會針對 HTTP 伺服器的版本過舊 ( 小於 2.4 版本 ) 要求企業客戶進行改善,其中 HTTP 伺服器的版本至少需要 2.4 版本以上,此時若是客戶為 Red Hat Linux 6.x 版本的作業系統就會發生問題,因為不論是 Red Hat 或 SAS 官方文件皆僅支援 Apache HTTP Server 2.2,為了解決此問題企業客戶就必須透過 Red Hat Software Collections (RHSCL) 安裝 httpd24,或者透過手動下載 RPM 套件包的方式安裝 httpd24,請注意下載 RPM 套件時請確認是否為 CentOS 6 版本,而非 CentOS 7 版本。

手動下載 RPM 套件包的方式安裝 httpd24 服務

1
2
3
4
5
6
7
8
9
10
11
12
# wget https://buildlogs.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-httpd-2.4.34-7.el6.1.x86_64.rpm
# wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-httpd-tools-2.4.34-7.el6.1.x86_64.rpm
# wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-runtime-1.1-18.el6.x86_64.rpm
# wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-apr-1.5.1-1.el6.1.x86_64.rpm
# wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-apr-util-1.5.4-1.el6.x86_64.rpm
# wget http://mirror.centos.org/centos/6/sclo/x86_64/rh/httpd24/httpd24-mod_ssl-2.4.18-11.el6.x86_64.rpm
# sudo yum install httpd24-runtime-1.1-18.el6.x86_64.rpm
# sudo yum install httpd24-apr-1.5.1-1.el6.1.x86_64.rpm
# sudo yum install httpd24-apr-util-1.5.4-1.el6.x86_64.rpm
# sudo yum install httpd24-httpd-tools-2.4.34-7.el6.1.x86_64.rpm
# sudo yum install httpd24-httpd-2.4.34-7.el6.1.x86_64.rpm
# sudo yum install httpd24-mod_ssl-2.4.18-11.el6.x86_64.rpm

再來當我們安裝完成 httpd24 服務的 HTTP 伺服器之後,我們必須執行以下步驟才能夠正常透過 HTTP 伺服器存取 SAS Viya 平台

  1. 停止 httpd 服務的 HTTP 伺服器。
  2. 複製 httpd 服務的設定檔至 httpd24 服務中。
  3. 修改 httpd24 服務中與 SAS Viya 相關的設定檔。
  4. 啟動 httpd24 服務的 HTTP 伺服器。

停止 httpd 服務的 HTTP 伺服器

1
# sudo service httpd stop

複製 httpd 服務的設定檔至 httpd24 服務中

1
2
# mv /opt/rh/httpd24/root/etc/httpd/conf.d /opt/rh/httpd24/root/etc/httpd/conf.d_backup
# cp -R /etc/httpd/conf.d /opt/rh/httpd24/root/etc/httpd/conf.d

修改 httpd24 服務中與 SAS Viya 相關的設定檔

1
2
# rm -rf /opt/rh/httpd24/root/etc/httpd/conf.d/petrichor.conf
# ln -s /opt/sas/viya/config//etc/httpd/conf.d/petrichor.conf /opt/rh/httpd24/root/etc/httpd/conf.d/petrichor.conf
1
2
# rm -rf /opt/rh/httpd24/root/etc/httpd/conf.d/_htmlcommonsbase.conf 
# ln -s /opt/sas/viya/config/etc/httpd/conf.d/_htmlcommonsbase.conf /opt/rh/httpd24/root/etc/httpd/conf.d/_htmlcommonsbase.conf

(註:若僅是將「conf.d」設定檔複製過來,則「petrichor.conf」「_htmlcommonsbase.conf」因為連結是相對路徑,所以會失效,因此我們需要重新建立連結檔案,否則登入時會發生「 Invalid CORS request」錯誤訊息。)

1
2
# rm -rf /etc/httpd/conf.d/proxy.conf
# ln -s /etc/httpd/conf.d/proxy.conf /opt/rh/httpd24/root/etc/httpd/conf.d/proxy.conf

(註:SAS Viya 會自動更新「proxy.conf」檔案,主要是因為每次重啟 SAS Viya 平台中任何微服務之後,微服務的連接埠可能夠不相同,至於如何進行更新請參考「/opt/sas/viya/home/bin」目錄中的「restart_httpd.sh」和「sas-httpproxy」相關檔案。)

啟動 httpd24 服務的 HTTP 伺服器

1
# sudo service httpd24-httpd start

(註:若啟動 httpd24 服務的 HTTP 伺服器出現「Invalid command ‘SSLMutex’」錯誤,請將「/opt/rh/httpd24/root/etc/httpd/conf.d/ssl.conf」設定檔中的 SSLMutex 替換為 Mutex。)

最後雖然透過以上方式能夠暫時解決弱點掃描的問題,但是 Red Hat Linux 6.x 版本還是建議升級為 Red Hat Linux 7.x 版本或 Red Hat Linux 8.x 版本,以利後續官方的技術支援,才是對於企業客戶最適合的解決方式。

相關資源

⬅️ Go back