真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【方法】如何限定IP訪問Oracle數(shù)據(jù)庫

方法】如何限定IP訪問Oracle數(shù)據(jù)庫

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括昭蘇網(wǎng)站建設(shè)、昭蘇網(wǎng)站制作、昭蘇網(wǎng)頁制作以及昭蘇網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,昭蘇網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到昭蘇省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

 

1.1  BLOG文檔結(jié)構(gòu)圖

【方法】如何限定IP訪問Oracle數(shù)據(jù)庫 

1.2  前言部分

1.2.1  導(dǎo)讀和注意事項(xiàng)

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

①限定IP訪問Oracle數(shù)據(jù)庫的3種方法(重點(diǎn))

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

③RAISE_APPLICATION_ERROR不能拋出錯誤到客戶端環(huán)境

④系統(tǒng)觸發(fā)器

⑤隱含參數(shù):_system_trig_enabled

 

1.3  本文簡介

本文詳細(xì)介紹了3種限制IP地址登錄Oracle數(shù)據(jù)庫的辦法。

1.3.1  本文實(shí)驗(yàn)環(huán)境介紹

項(xiàng)目

source db

db類型

RAC

db version

11.2.0.3.0

db存儲

ASM

OS版本及kernel版本

RHEL 6.5

數(shù)據(jù)庫服務(wù)器IP地址

192.168.59.130

客戶端IP地址

192.168.59.1或192.168.59.129

1.4  限定IP訪問Oracle數(shù)據(jù)庫的3種辦法

1.4.1  利用登錄觸發(fā)器

1.4.1.3  注意事項(xiàng)

需要注意的問題:

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

AFTER LOGON ON DATABASE

AFTER LOGON ON SCOTT.SCHEMA

②當(dāng)觸發(fā)的對象類型為DATABASE的時候,登錄用戶不能擁有“ADMINISTER DATABASE TRIGGER”的系統(tǒng)權(quán)限;當(dāng)觸發(fā)的對象類型為“用戶名.SCHEMA”的時候,登錄用戶不能擁有“ALTER ANY TRIGGER”的系統(tǒng)權(quán)限。否則,這些用戶還是會正常登錄到數(shù)據(jù)庫,只是將相應(yīng)的報(bào)錯信息寫入到告警日志中。所以,擁有IMP_FULL_DATABASE和DBA角色的用戶以及SYS和EXFSYS用戶將不能通過這種方式限制登錄。

③隱含參數(shù)“_SYSTEM_TRIG_ENABLED”的默認(rèn)值是TRUE,即允許DDL和系統(tǒng)觸發(fā)器。當(dāng)設(shè)置隱含參數(shù)“_SYSTEM_TRIG_ENABLED”為FALSE的時候,將禁用DDL和系統(tǒng)觸發(fā)器。所以,當(dāng)該值設(shè)置為FALSE的時候?qū)⒉荒芡ㄟ^這種方式限制登錄。

1.4.2  利用sqlnet.ora

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

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

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

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

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

需要注意的問題:

①需要設(shè)置參數(shù)TCP.VALIDNODE_CHECKING為YES才能激活該特性。

②一定要許可或不要禁止數(shù)據(jù)庫服務(wù)器本機(jī)的IP地址,否則通過lsnrctl將不能啟動或停止監(jiān)聽,因?yàn)樵撨^程監(jiān)聽程序會通過本機(jī)的IP訪問監(jiān)聽器,而該IP被禁止了,但是通過服務(wù)啟動或關(guān)閉則不影響。

③當(dāng)參數(shù)TCP.INVITED_NODES和TCP.EXCLUDED_NODES設(shè)置的地址相同的時候以TCP.INVITED_NODES的配置為主。

④修改之后,一定要重起監(jiān)聽才能生效,而不需要重新啟動數(shù)據(jù)庫。

⑤這個方式只是適合TCP/IP協(xié)議。

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

⑦在服務(wù)器上直接連接數(shù)據(jù)庫不受影響。

⑧這種限制方式是通過監(jiān)聽器來限制的。

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

 

1.4.3  利用防火墻

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

iptables -I INPUT -s 192.168.59.129 -j DROP

service iptables save

則,192.168.59.129這臺主機(jī)將不能連接到數(shù)據(jù)庫服務(wù)器了,會報(bào)“ORA-12170: TNS:Connect timeout occurred”的錯誤。

該部分可以參考網(wǎng)絡(luò)配置,小麥苗從網(wǎng)上找了很多。

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

1、清楚操作系統(tǒng)默認(rèn)的iptables策略

      我本機(jī)安裝的是centos6.0,安裝之后系統(tǒng)會提供iptables默認(rèn)的policy策略,我們首先要清楚默認(rèn)的策略

      iptables -F

2、開發(fā)22和1521端口對局域網(wǎng)的某個IP,在本例中客戶端ip是192.168.1.125,oracle所在機(jī)器的IP是192.168.1.144,在這里,設(shè)置僅有該客戶端可以訪問22和1521端口,局域網(wǎng)內(nèi)的其他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

    這樣同一網(wǎng)段內(nèi)除192.168.1.125之外其他IP都不能訪問數(shù)據(jù)庫服務(wù)器,即使ping命令也不可以

3、開發(fā)22和1521的OUTPUT鏈給192.168.1.125,否則已經(jīng)啟動的oracle instance的pmon進(jìn)程無法動態(tài)注冊到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、保存當(dāng)前設(shè)置的iptables規(guī)則

      service iptables save

      這時系統(tǒng)會將已經(jīng)設(shè)置的規(guī)則保存到/etc/sysconfig/iptables文件中

     否則重啟之后之前設(shè)置的規(guī)則都會失效

 

先關(guān)閉所有的80端口

開啟ip段192.168.1.0/24端的80口

開啟ip段211.123.16.123/24端ip段的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

以上是臨時設(shè)置。

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轉(zhuǎn)發(fā)記得配合以下才能生效

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規(guī)則如下:

只能收發(fā)郵件,別的都關(guān)閉

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服務(wù)器的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

只允許訪問指定網(wǎng)址

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

連續(xù)端口

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

指定時間上網(wǎng)

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

禁止多個端口服務(wù)

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

將WAN口NAT到PC

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

 

將WAN口8000端口NAT到192。168。100。200的80端口

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

MAIL服務(wù)器要轉(zhuǎn)的端口

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 202。96。134。133,別的服務(wù)都禁止

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,只能收發(fā)郵件,其它都拒絕

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 202。96。134。133其它公網(wǎng)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地址服務(wù):

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

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

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

iptables -A Filter -j DROP

禁止某個IP地址的某個端口服務(wù)

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地址的某個端口服務(wù)

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  本文總結(jié)

在Oracle中,有3種辦法可以限定特定IP訪問數(shù)據(jù)庫。第一種是利用登錄觸發(fā)器,如下:

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;

/

 

需要注意的問題:

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

AFTER LOGON ON DATABASE

AFTER LOGON ON SCOTT.SCHEMA

②當(dāng)觸發(fā)的對象類型為DATABASE的時候,登錄用戶不能擁有“ADMINISTER DATABASE TRIGGER”的系統(tǒng)權(quán)限;當(dāng)觸發(fā)的對象類型為“用戶名.SCHEMA”的時候,登錄用戶不能擁有“ALTER ANY TIGGER”的系統(tǒng)權(quán)限。否則,這些用戶還是會正常登錄到數(shù)據(jù)庫,只是將相應(yīng)的報(bào)錯信息寫入到告警日志中。所以,擁有IMP_FULL_DATABASE和DBA角色的用戶以及SYS和EXFSYS用戶將不能通過這種方式限制登錄。

③隱含參數(shù)“_SYSTEM_TRIG_ENABLED”的默認(rèn)值是TRUE,即允許DDL和系統(tǒng)觸發(fā)器。當(dāng)設(shè)置隱含參數(shù)“_SYSTEM_TRIG_ENABLED”為FALSE的時候,將禁用DDL和系統(tǒng)觸發(fā)器。所以,當(dāng)該值設(shè)置為FALSE的時候?qū)⒉荒芡ㄟ^這種方式限制登錄。

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

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

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

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

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

需要注意的問題:

①需要設(shè)置參數(shù)TCP.VALIDNODE_CHECKING為YES才能激活該特性。

②一定要許可或不要禁止數(shù)據(jù)庫服務(wù)器本機(jī)的IP地址,否則通過lsnrctl將不能啟動或停止監(jiān)聽,因?yàn)樵撨^程監(jiān)聽程序會通過本機(jī)的IP訪問監(jiān)聽器,而該IP被禁止了,但是通過服務(wù)啟動或關(guān)閉則不影響。

③當(dāng)參數(shù)TCP.INVITED_NODES和TCP.EXCLUDED_NODES設(shè)置的地址相同的時候以TCP.INVITED_NODES的配置為主。

④修改之后,一定要重起監(jiān)聽才能生效,而不需要重新啟動數(shù)據(jù)庫。

⑤這個方式只是適合TCP/IP協(xié)議。

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

⑦在服務(wù)器上直接連接數(shù)據(jù)庫不受影響。

⑧這種限制方式是通過監(jiān)聽器來限制的。

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

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

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

service iptables save

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

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



About Me

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

●本文作者:小麥苗,只專注于數(shù)據(jù)庫的技術(shù),更注重技術(shù)的運(yùn)用

●本文在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     微信群:私聊

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

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

●文章內(nèi)容來源于小麥苗的學(xué)習(xí)筆記,部分整理自網(wǎng)絡(luò),若有侵權(quán)或不當(dāng)之處還請諒解

●版權(quán)所有,歡迎分享本文,轉(zhuǎn)載請保留出處

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

拿起手機(jī)使用微信客戶端掃描下邊的左邊圖片來關(guān)注小麥苗的微信公眾號:xiaomaimiaolhr,掃描右邊的二維碼加入小麥苗的QQ群,學(xué)習(xí)最實(shí)用的數(shù)據(jù)庫技術(shù)。

【方法】如何限定IP訪問Oracle數(shù)據(jù)庫【方法】如何限定IP訪問Oracle數(shù)據(jù)庫

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


分享名稱:【方法】如何限定IP訪問Oracle數(shù)據(jù)庫
網(wǎng)頁網(wǎng)址:http://weahome.cn/article/poeshj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部