iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
IT管理

OCS Inventory:開源資產管理解決方案系列 第 30

如何備份與保護您的 OCS Inventory 伺服器

  • 分享至 

  • xImage
  •  

資料的安全永遠是企業核心服務中最重要的一步,卻也是最常被忽略的部分。你也不希望前面辛苦做的設定,哪天因為自己一個手殘就化為烏有了。

想作任何異動前,請先考慮備份。

備份 OCS Inventory 伺服器
創建一個文件夾來存儲所有備份文件

mkdir ~/backup_ocs

備份組態檔案

cp /etc/apache2/conf-available/z-ocsinventory-server.conf ~/backup_ocs
cp /etc/apache2/conf-available/zz-ocsinventory-restapi.conf ~/backup_ocs
cp /etc/apache2/conf-available/ocsinventory-reports.conf ~/backup_ocs
cp /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php ~/backup_ocs

備份資料庫,請照需求自行設定排程備份。

mysqldump -u ocs -p'your_password' --all-databases > ~/backup_ocs/ocsdbbackup.sql

備份憑證與私鑰

sudo cp /etc/ssl/private/server.key ~/backup_ocs
cp /etc/ssl/certs/server.pem ~/backup_ocs

# 記得也要備份憑證簽署要求 CSR
cp server.csr ~backup_ocs

保護 OCS Inventory 伺服器
刪除 ocsreports 目錄中的 install.php

sudo rm /usr/share/ocsinventory-reports/ocsreports/install.php 

保護您的管理控制台
預設情況下,安裝腳本會創建一個 admin 帳號,我們建議您至少更改密碼。您也可以使用超級管理員創建自己的帳戶,然後刪除預設帳號。

安全的 MySQL 存取
預設情況下,安裝腳本會創建一個 ocs 的帳號,我們建議您至少更改密碼,但更好的辦法是創建一個新的 MySQL 帳號。

GRANT ALL PRIVILEGES ON ocsweb.* TO 'your_account'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;

修改 dbconfig.inc.php 配置文件

sudo vi /usr/share/ocsinventory-reports/ocsreports/dbconfig.inc.php
<?php
define("DB_NAME", "ocsweb");
define("SERVER_READ","localhost");
define("SERVER_WRITE","localhost");
define("SERVER_PORT","3306");
define("COMPTE_BASE","your_account");
define("PSWD_BASE","your_password");
define("ENABLE_SSL","");
define("SSL_MODE","");
define("SSL_KEY","");
define("SSL_CERT","");
define("CA_CERT","");
?>

修改 z-ocsinventory-server.conf 配置文件

sudo vi /etc/apache2/conf-available/z-ocsinventory-server.conf 
# Master Database settings
  # Replace localhost by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace 3306 by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsweb
  PerlSetEnv OCS_DB_LOCAL ocsweb
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER your_account
  # Password for user
  PerlSetVar OCS_DB_PWD your_password

記得重啟 Apache 服務

sudo service apache2 restart

設置 Anti-SPAM 系統
例如 fail2ban 來監控伺服器日誌並檢測任何可疑活動,有助於減少自動攻擊的影響。
https://www.digitalocean.com/community/tutorials/how-to-protect-ssh-with-fail2ban-on-ubuntu-20-04

進行 GeoIP 封鎖
限制我們的服務只開放特定的地理區域,例如只有台灣能夠存取,避免服務遭受惡意攻擊。
可以參考如何在 Ubuntu 20.04 透過防火牆對 GeoIP 進行封鎖

在管理控制台中停用警告消息
您可以在 GUI 中停用警告消息,來避免洩漏重要資訊。

到 Configuration 點選 Users

點選 Profiles 頁籤,選擇您想要調整的 Profile。

將 See warning messages of the GUI 設置為 NO

Apache 和 PHP 訊息洩露
預設情況下,Apache 和 PHP 版本可以在 HTTP Header 發現。

隱藏 Apache 版本

sudo vi /etc/apache2/conf-enabled/security.conf
# ServerTokens
# This directive configures what you return as the Server HTTP response
# Header. The default is 'Full' which sends information about the OS-Type
# and compiled in modules.
# Set to one of:  Full | OS | Minimal | Minor | Major | Prod
# where Full conveys the most information, and Prod the least.
#ServerTokens Minimal
ServerTokens Prod

# Optionally add a line containing the server version and virtual host
# name to server-generated pages (internal error documents, FTP directory
# listings, mod_status and mod_info output etc., but not CGI generated
# documents or custom error documents).
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
# Set to one of:  On | Off | EMail
ServerSignature Off

隱藏 PHP 版本

sudo vi /etc/php/7.4/apache2/php.ini 
;;;;;;;;;;;;;;;;;
; Miscellaneous ;
;;;;;;;;;;;;;;;;;

; Decides whether PHP may expose the fact that it is installed on the server
; (e.g. by adding its signature to the Web server header).  It is no security
; threat in any way, but it makes it possible to determine whether you use PHP
; on your server or not.
; http://php.net/expose-php
expose_php = Off

記得重啟 Apache 服務

sudo service apache2 restart

鐵人賽總結
以上就是本次 2023 鐵人賽想與大家分享的所有內容,希望能夠幫助企業 IT 管理者深入了解 OCS Inventory 並充分運用它來提升 IT 管理效率和資產安全性。

若有跟著實作的朋友您擁有以下技能:

  • 如何盤點伺服器與使用者設備的硬體規格及安裝了哪些軟體
  • 如何取得最新的 CVE 漏洞資料庫與現行已安裝的軟體進行比對
  • 如何封裝與透過 GPO 軟體派送大量部署代理程式
  • 如何將已部署的代理程式進行版本升級或降級
  • 如何使用代理程式遠端部署或移除相關應用程式
  • 如何使用代理程式遠端執行 PowerShell 與 Windows 執行檔
  • 如何使用代理程式遠端部署檔案或資料夾
  • 如何安裝外掛程式來取得 Office 授權金鑰確認是否有人私自使用盜版的金鑰
  • 如何使用 IP Discovery 來檢索所有的連網設備與生成企業網絡地圖
  • 如何使用 SNMP Scan 來增強 IP Discovery 獲得更多的識別資訊

後續若有 OCS Inventory 的文章會更新在筆者的 Medium,有機會再跟大家分享如何透過開源的 ITSM 建置組態管理資料庫 CMDB 並同步 OCS Inventory 的設備資料進行整合,謝謝大家。

參考文件

  1. https://wiki.ocsinventory-ng.org/09.Extras/Secure-your-OCS-Inventory-NG-Server
  2. https://wiki.ocsinventory-ng.org/03.Basic-documentation/Updating-the-server

上一篇
如何在 OCS Inventory 使用郵件通知功能
系列文
OCS Inventory:開源資產管理解決方案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言