中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【方法】如何限定IP訪問Oracle數據庫

發布時間:2020-07-30 19:58:08 來源:網絡 閱讀:1015 作者:小麥苗best 欄目:數據庫

方法】如何限定IP訪問Oracle數據庫

 

1.1  BLOG文檔結構圖

【方法】如何限定IP訪問Oracle數據庫 

1.2  前言部分

1.2.1  導讀和注意事項

各位技術愛好者,看完本文后,你可以掌握如下的技能,也可以學到一些其它你所不知道的知識,~O(∩_∩)O~

限定IP訪問Oracle數據庫的3種方法(重點)

如何將信息寫入到Oracle的告警日志中

RAISE_APPLICATION_ERROR不能拋出錯誤到客戶端環境

系統觸發器

隱含參數:_system_trig_enabled

 


1.3  本文簡介

本文詳細介紹了3種限制IP地址登錄Oracle數據庫的辦法

1.3.1  本文實驗環境介紹

項目

source db

db 類型

RAC

db version

11.2.0.3.0

db 存儲

ASM

OS版本及kernel版本

RHEL 6.5

數據庫服務器IP地址

192.168.59.130

客戶端IP地址

192.168.59.1192.168.59.129

1.4  限定IP訪問Oracle數據庫的3種辦法

1.4.1  利用登錄觸發器

1.4.1.3  注意事項

需要注意的問題:

觸發的對象類型可以為DATABASE,也可以為“用戶名.SCHEMA”,如:

AFTER LOGON ON DATABASE

AFTER LOGON ON SCOTT.SCHEMA

當觸發的對象類型為DATABASE的時候,登錄用戶不能擁有“ADMINISTER DATABASE TRIGGER”的系統權限;當觸發的對象類型為“用戶名.SCHEMA”的時候,登錄用戶不能擁有“ALTER ANY TRIGGER”的系統權限。否則,這些用戶還是會正常登錄到數據庫,只是將相應的報錯信息寫入到告警日志中。所以,擁有IMP_FULL_DATABASEDBA角色的用戶以及SYSEXFSYS用戶將不能通過這種方式限制登錄。

隱含參數“_SYSTEM_TRIG_ENABLED的默認值是TRUE,即允許DDL和系統觸發器。當設置隱含參數“_SYSTEM_TRIG_ENABLED”為FALSE的時候,將禁用DDL和系統觸發器。所以,當該值設置為FALSE的時候將不能通過這種方式限制登錄。


1.4.2  利用sqlnet.ora

第二種是修改$ORACLE_HOME/network/admin/sqlnet.ora文件,增加如下內容:

TCP.VALIDNODE_CHECKING=YES  #開啟IP限制功能

TCP.INVITED_NODES=(127.0.0.1,IP1,IP2,……)  #允許訪問數據庫的IP地址列表,多個IP地址使用逗號分開

TCP.EXCLUDED_NODES=(IP1,IP2,……)  #禁止訪問數據庫的IP地址列表,多個IP地址使用逗號分開

之后重新啟動監聽器即可這樣客戶端在登錄的時候會報“ORA-12537: TNS:connection closed”的錯誤。

需要注意的問題:

需要設置參數TCP.VALIDNODE_CHECKING為YES才能激活該特性

一定要許可或不要禁止數據庫服務器本機的IP地址,否則通過lsnrctl將不能啟動或停止監聽,因為該過程監聽程序會通過本機的IP訪問監聽器,而該IP被禁止了,但是通過服務啟動或關閉則不影響。

當參數TCP.INVITED_NODES和TCP.EXCLUDED_NODES設置的地址相同的時候TCP.INVITED_NODES的配置為主

修改之后,一定要重起監聽才能生效,而不需要重新啟動數據庫。

這個方式只是適合TCP/IP協議。

這個配置適用于Oracle 9i以上版本。在Oracle 9i之前的版本使用文件protocol.ora

在服務器上直接連接數據庫不受影響。

這種限制方式通過監聽器來限制的。

這個限制只是針對IP檢測,對于用戶名檢測不支持的。

 


1.4.3  利用防火墻

3種是修改數據庫服務器的IPTABLES配置文件:/etc/sysconfig/iptables來限制某些IP登錄數據庫服務器。如下:

iptables -I INPUT -s 192.168.59.129 -j DROP

service iptables save

則,192.168.59.129這臺主機將不能連接到數據庫服務器了,會報“ORA-12170: TNS:Connect timeout occurred”的錯誤。


該部分可以參考網絡配置,小麥苗從網上找了很多。

我們可以通過以下的iptables的設置來限制用戶訪問oracle所在linux操作系統的安全。

1、清楚操作系統默認的iptables策略

      我本機安裝的是centos6.0,安裝之后系統會提供iptables默認的policy策略,我們首先要清楚默認的策略

      iptables -F

2、開發221521端口對局域網的某個IP,在本例中客戶端ip192.168.1.125,oracle所在機器的IP192.168.1.144,在這里,設置僅有該客戶端可以訪問221521端口,局域網內的其他IP都不允許訪問,

    iptables -A INPUT -s 192.168.1.125/32 -i eth0 -p tcp  --dport 22 -j ACCEPT

    iptables -A INPUT -s 192.168.1.125/32 -i eth0 -p tcp  --dport 1521 -j ACCEPT

    iptables -A INPUT -s 192.168.1.0/24 -p tcp  --dport 22 -j DROP

    iptables -A INPUT -s 192.168.1.0/24 -p tcp  --dport 1521 -j DROP

    這樣同一網段內除192.168.1.125之外其他IP都不能訪問數據庫服務器,即使ping命令也不可以

3、開發221521OUTPUT鏈給192.168.1.125,否則已經啟動的oracle instancepmon進程無法動態注冊到1521端口中

     iptables -A OUTPUT -d 192.168.1.125/32 -p tcp  --sport 22 -j ACCEPT

     iptables -A OUTPUT -d 192.168.1.125/32 -p tcp --sport 1521 -j ACCEPT

4、保存當前設置的iptables規則

      service iptables save

      這時系統會將已經設置的規則保存到/etc/sysconfig/iptables文件中

      否則重啟之后之前設置的規則都會失效

 

先關閉所有的80端口

開啟ip192.168.1.0/24端的80

開啟ip211.123.16.123/24ip段的80

# iptables -I INPUT -p tcp --dport 80 -j DROP

# iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

# iptables -I INPUT -s 211.123.16.123/24 -p tcp --dport 80 -j ACCEPT

以上是臨時設置。

1.先備份iptables

# cp /etc/sysconfig/iptables /var/tmp

2.然后保存iptables

# service iptables save

3.重啟防火墻

#service iptables restart

以下是端口,先全部封再開某些的IP

iptables -I INPUT -p tcp --dport 9889 -j DROP

iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9889 -j ACCEPT

如果用了NAT轉發記得配合以下才能生效

iptables -I FORWARD -p tcp --dport 80 -j DROP

iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT

常用的IPTABLES規則如下:

只能收發郵件,別的都關閉

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -j DROP

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p udp --dport 53 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 25 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0F:EA:25:51:37 -p tcp --dport 110 -j ACCEPT

IPSEC NAT 策略

iptables -I PFWanPriv -d 192.168.100.2 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 80 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:80

iptables -t nat -A PREROUTING -p tcp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723

iptables -t nat -A PREROUTING -p udp --dport 1723 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:1723

iptables -t nat -A PREROUTING -p udp --dport 500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:500

iptables -t nat -A PREROUTING -p udp --dport 4500 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.2:4500

 

FTP服務器的NAT

iptables -I PFWanPriv -p tcp --dport 21 -d 192.168.100.200 -j ACCEPT

iptables -t nat -A PREROUTING -p tcp --dport 21 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:21

只允許訪問指定網址

iptables -A Filter -p udp --dport 53 -j ACCEPT

iptables -A Filter -p tcp --dport 53 -j ACCEPT

iptables -A Filter -d www.3322.org -j ACCEPT

iptables -A Filter -d img.cn99.com -j ACCEPT

iptables -A Filter -j DROP

開放一個IP的一些端口,其它都封閉

iptables -A Filter -p tcp --dport 80 -s 192.168.100.200 -d www.pconline.com.cn -j ACCEPT

iptables -A Filter -p tcp --dport 25 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 109 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 110 -s 192.168.100.200 -j ACCEPT

iptables -A Filter -p tcp --dport 53 -j ACCEPT

iptables -A Filter -p udp --dport 53 -j ACCEPT

iptables -A Filter -j DROP

多個端口

iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT

連續端口

iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT

指定時間上網

iptables -A Filter -s 10.10.10.253 -m time --timestart 6:00 --timestop 11:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j DROP

iptables -A Filter -m time --timestart 12:00 --timestop 13:00 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

iptables -A Filter -m time --timestart 17:30 --timestop 8:30 --days Mon,Tue,Wed,Thu,Fri,Sat,Sun -j ACCEPT

禁止多個端口服務

iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT

WAN NATPC

iptables -t nat -A PREROUTING -i $INTERNET_IF -d $INTERNET_ADDR -j DNAT --to-destination 192.168.0.1

 

WAN8000端口NAT19216810020080端口

iptables -t nat -A PREROUTING -p tcp --dport 8000 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:80

MAIL服務器要轉的端口

iptables -t nat -A PREROUTING -p tcp --dport 110 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:110

iptables -t nat -A PREROUTING -p tcp --dport 25 -d $INTERNET_ADDR -j DNAT --to-destination 192.168.100.200:25

只允許PING 20296134133,別的服務都禁止

iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT

iptables -A Filter -j DROP

禁用BT配置

iptables –A Filter –p tcp –dport 6000:20000 –j DROP

禁用QQ防火墻配置

iptables -A Filter -p udp --dport ! 53 -j DROP

iptables -A Filter -d 218.17.209.0/24 -j DROP

iptables -A Filter -d 218.18.95.0/24 -j DROP

iptables -A Filter -d 219.133.40.177 -j DROP

基于MAC,只能收發郵件,其它都拒絕

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -j DROP

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 25 -j ACCEPT

iptables -I Filter -m mac --mac-source 00:0A:EB:97:79:A1 -p tcp --dport 110 -j ACCEPT

禁用MSN配置

iptables -A Filter -p udp --dport 9 -j DROP

iptables -A Filter -p tcp --dport 1863 -j DROP

iptables -A Filter -p tcp --dport 80 -d 207.68.178.238 -j DROP

iptables -A Filter -p tcp --dport 80 -d 207.46.110.0/24 -j DROP

只允許PING 20296134133 其它公網IP都不許PING

iptables -A Filter -p icmp -s 192.168.100.200 -d 202.96.134.133 -j ACCEPT

iptables -A Filter -p icmp -j DROP

禁止某個MAC地址訪問internet:

iptables -I Filter -m mac --mac-source 00:20:18:8F:72:F8 -j DROP

禁止某個IP地址的PING:

iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

禁止某個IP地址服務:

iptables –A Filter -p tcp -s 192.168.0.1 --dport 80 -j DROP

iptables –A Filter -p udp -s 192.168.0.1 --dport 53 -j DROP

只允許某些服務,其他都拒絕(2條規則)

iptables -A Filter -p tcp -s 192.168.0.1 --dport 1000 -j ACCEPT

iptables -A Filter -j DROP

禁止某個IP地址的某個端口服務

iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j ACCEPT

iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j DROP

禁止某個MAC地址的某個端口服務

iptables -I Filter -p tcp -m mac --mac-source 00:20:18:8F:72:F8 --dport 80 -j DROP

禁止某個MAC地址訪問internet:

iptables -I Filter -m mac --mac-source 00:11:22:33:44:55 -j DROP

禁止某個IP地址的PING:

iptables –A Filter –p icmp –s 192.168.0.1 –j DROP

 

1.5  本文總結

Oracle中,有3種辦法可以限定特定IP訪問數據庫第一種是利用登錄觸發器如下:

CREATE OR REPLACE TRIGGER CHK_IP_LHR

  AFTER LOGON ON DATABASE

DECLARE

  V_IPADDR    VARCHAR2(30);

  V_LOGONUSER VARCHAR2(60);

BEGIN

  SELECT SYS_CONTEXT('USERENV', 'IP_ADDRESS'),

         SYS_CONTEXT('USERENV', 'SESSION_USER')

    INTO V_IPADDR, V_LOGONUSER

    FROM DUAL;

  IF V_IPADDR LIKE ('192.168.59.%') THEN

    RAISE_APPLICATION_ERROR('-20001', 'User '||V_LOGONUSER||' is not allowed to connect from '||V_IPADDR);

  END IF;

END;

/

 

需要注意的問題:

觸發的對象類型可以為DATABASE,也可以為“用戶名.SCHEMA”,如:

AFTER LOGON ON DATABASE

AFTER LOGON ON SCOTT.SCHEMA

當觸發的對象類型為DATABASE的時候,登錄用戶不能擁有“ADMINISTER DATABASE TRIGGER”的系統權限;當觸發的對象類型為“用戶名.SCHEMA”的時候,登錄用戶不能擁有“ALTER ANY TIGGER”的系統權限。否則,這些用戶還是會正常登錄到數據庫,只是將相應的報錯信息寫入到告警日志中。所以,擁有IMP_FULL_DATABASEDBA角色的用戶以及SYSEXFSYS用戶將不能通過這種方式限制登錄。

隱含參數“_SYSTEM_TRIG_ENABLED的默認值是TRUE,即允許DDL和系統觸發器。當設置隱含參數“_SYSTEM_TRIG_ENABLED”為FALSE的時候,將禁用DDL和系統觸發器。所以,當該值設置為FALSE的時候將不能通過這種方式限制登錄。

第二種是修改$ORACLE_HOME/network/admin/sqlnet.ora文件,增加如下內容:

TCP.VALIDNODE_CHECKING=YES  #開啟IP限制功能

TCP.INVITED_NODES=(127.0.0.1,IP1,IP2,……)  #允許訪問數據庫的IP地址列表,多個IP地址使用逗號分開

TCP.EXCLUDED_NODES=(IP1,IP2,……)  #禁止訪問數據庫的IP地址列表,多個IP地址使用逗號分開

之后重新啟動監聽器即可這樣客戶端在登錄的時候會報“ORA-12537: TNS:connection closed”的錯誤。

需要注意的問題:

需要設置參數TCP.VALIDNODE_CHECKING為YES才能激活該特性

一定要許可或不要禁止數據庫服務器本機的IP地址,否則通過lsnrctl將不能啟動或停止監聽,因為該過程監聽程序會通過本機的IP訪問監聽器,而該IP被禁止了,但是通過服務啟動或關閉則不影響。

當參數TCP.INVITED_NODES和TCP.EXCLUDED_NODES設置的地址相同的時候TCP.INVITED_NODES的配置為主

修改之后,一定要重起監聽才能生效,而不需要重新啟動數據庫。

這個方式只是適合TCP/IP協議。

這個配置適用于Oracle 9i以上版本。在Oracle 9i之前的版本使用文件protocol.ora

在服務器上直接連接數據庫不受影響。

這種限制方式通過監聽器來限制的。

這個限制只是針對IP檢測,對于用戶名檢測不支持的。

3種是修改數據庫服務器的IPTABLES配置文件:/etc/sysconfig/iptables來限制某些IP登錄數據庫服務器。如下:

iptables -A INPUT -s 192.168.59.1/32 -i eth0 -p tcp  --dport 1521 -j DROP

service iptables save

則,192.168.59.1這臺主機將不能通過1521端口連接到數據庫服務器了,會報“ORA-12170: TNS:Connect timeout occurred”的錯誤。

-------------------------------------------------------------------------



About Me

...............................................................................................................................

本文作者:小麥苗,只專注于數據庫的技術,更注重技術的運用

本文在itpub(http://blog.itpub.net/26736162)、博客園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

本文itpub地址:http://blog.itpub.net/26736162/viewspace-2135609/

本文博客園地址:http://www.cnblogs.com/lhrbest/p/6575975.html

本文pdf小麥苗云盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● QQ群:230161599     微信群:私聊

聯系我請加QQ好友(642808185),注明添加緣由

2017-03-18 08:00 ~ 2017-03-18 22:00泰興公寓完成

文章內容來源于小麥苗的學習筆記,部分整理自網絡,若有侵權或不當之處還請諒解

版權所有,歡迎分享本文,轉載請保留出處

...............................................................................................................................

拿起手機使用微信客戶端掃描下邊的左邊圖片來關注小麥苗的微信公眾號:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ群,學習最實用的數據庫技術。

【方法】如何限定IP訪問Oracle數據庫【方法】如何限定IP訪問Oracle數據庫

 【方法】如何限定IP訪問Oracle數據庫cdn.qqmail.com/zh_CN/htmledition/p_w_picpaths/function/qm_open/ico_mailme_02.png">  【方法】如何限定IP訪問Oracle數據庫


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武宁县| 鱼台县| 黄浦区| 精河县| 崇明县| 双鸭山市| 连南| 黄平县| 邓州市| 神池县| 乌兰县| 安仁县| 东城区| 台前县| 甘肃省| 浦江县| 叙永县| 紫云| 休宁县| 通江县| 中阳县| 濮阳县| 金阳县| 施秉县| 凤山市| 玉树县| 灵台县| 东海县| 二手房| 视频| 城口县| 贵港市| 资兴市| 中阳县| 辛集市| 独山县| 监利县| 大宁县| 东莞市| 霞浦县| 民丰县|