首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 網路與安全 FAQ 精華:IP 限制、防火牆穿透、審計追蹤與加固清單

     編輯:Oracle 資料庫基礎

一、網路存取控制

1. 限定特定 IP 存取(9i+ 原生支援)

# sqlnet.ora
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.1.10, 192.168.1.20)   # 白名單
tcp.excluded_nodes = (10.0.0.*)                    # 黑名單

舊版可用 protocol.ora 或登入觸發器實現。

2. 防火牆穿透(Windows 平台專屬)

# sqlnet.ora (Server)
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16

# 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
USE_SHARED_SOCKET = TRUE

3. Hostname 連線(小型 TCP/IP LAN)

# listener.ora
(SID_DESC =
  (GLOBAL_DBNAME = your_hostname)
  (ORACLE_HOME = E:\oracle\ora92)
  (SID_NAME = orcl)
)

# sqlnet.ora (Client)
NAMES.DIRECTORY_PATH = (HOSTNAME)

二、權限與套件安全

DBMS_REPCAT_ADMIN 風險

若 PUBLIC 或具 EXECUTE ANY PROCEDURE 權限的用戶取得執行權,可透過 GRANT_ADMIN_ANY_SCHEMA 昇級為 DBA 等效權限。對策:回收 PUBLIC 執行權、嚴控 ANY 權限、9i+ 採用顯式授權。

三、無密碼切換用戶操作

-- 1. 取得加密密碼
SELECT password FROM dba_users WHERE username = 'SCOTT';  -- F894844C34402B67
-- 2. 臨時修改密碼
ALTER USER scott IDENTIFIED BY lion;
-- 3. 執行業務操作
CONNECT scott/lion;  -- do work
-- 4. 還原原密碼
CONNECT system/manager;
ALTER USER scott IDENTIFIED BY VALUES 'F894844C34402B67';

適用於排程作業、跨 Schema 維護,需 ALTER USER 權限。

四、資料庫加固 13 項清單

  1. 修改 SYS/SYSTEM 預設密碼
  2. 鎖定/刪除預設帳號(DBSNMP, CTXSYS, MDSYS…)
  3. REMOTE_OS_AUTHENT = FALSE 禁止遠端 OS 驗證
  4. O7_DICTIONARY_ACCESSIBILITY = FALSE 保護資料字典
  5. 回收 PUBLIC 不必要權限
  6. 資料檔案權限收斂(非 666)
  7. 關閉非必要服務
  8. 限制主機 OS 帳號數量
  9. 訂閱 Metalink/OTN Security Alert
  10. 資料庫與應用隔離子網,或啟用 Advanced Security 加密
  11. IP 白名單限制存取
  12. LSNRCTL 設定密碼防止關閉
  13. 避開預設 1521 埠

五、預設密碼掃描腳本

SELECT username "Default Password User"
FROM dba_users
WHERE password IN ('F894844C34402B67', ...);  -- 含 SCOTT/TIGER 等常見雜湊值

六、XDB 埠號修改三法

  1. DBCA 圖形介面修改
  2. OEM Console 修改
  3. PL/SQL API:DBMS_XDB.CFG_UPDATE 修改 HTTP/FTP 埠並 CFG_REFRESH

七、審計追蹤三大利器

觸發器類型捕獲範圍關鍵系統變數
LOGON 觸發器用戶登入(SID, IP, OS User, Machine, Program)SYS_CONTEXT('USERENV','IP_ADDRESS'), USERENV('SESSIONID')
DDL 觸發器全庫物件結構變更ORA_DICT_OBJ_OWNER, ORA_DICT_OBJ_NAME, ORA_SQL_TXT
DML 觸發器指定表 INSERT/UPDATE/DELETE:OLD/:NEW, ORA_SQL_TXT

均需建立儲存表、授予 V$SESSION/V$MYSTAT 查詢權、替換 SP_WRITE_LOG 為實際日誌程序。

八、實用工具腳本

  • 日期檔名:Linux $(date +%Y%m%d) / Windows %date:~4,10%
  • 磁碟效能測試:dd if=/dev/zero of=/test.dbf bs=1M count=1000 + iostat -x 2
  • SSH 金鑰免密:ssh-keygen + authorized_keys + ~/.ssh/config 別名
  • FTP 自動化:Here Document 餵入 ftp -n -i

結語

網路存取控制、最小權限原則、審計全覆蓋、定期掃描預設密碼,構建 Oracle 安全防禦纵深體系。將上述配置納入自動化佈署腳本,才能確保每個實例「生而安全」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved