命令列下也玩IPsec

來源:互聯網
上載者:User

在網路應用越來越廣泛的今天,一個重要的問題就是有關電腦通訊的安全性問題。作為網路系統管理員,一項基本職責就是保證資料在網路傳輸中,不能被未經授權的人訪問、查看或修改,在這中間,同時要保證資料能加密傳輸。怎樣做到這一點呢?

Win2k網路中,我們可以通過IPSec來保護網路的安全。IPSec的全稱是InternetProtocolSecurity,翻譯成中文就是Internet協議安全。它的作用主要有兩個:一個是保護IP資料包的內容,另外一點就是通過資料包篩選並實施受信任通訊來防禦網路攻擊。這對於我們當有一些重要的資料在傳輸的過程中需要加以保護或者防止監聽來說無疑是一個好訊息。


由於是在IP層進行對資料的對稱式加密,封裝的是整個的IP資料包,所以不需要為TCP/IP協議組中的每個通訊協定設定單獨的安全性,因為應用程式使用TCP/IP來將資料傳遞到IP協議層,並在這裡進行保護。相應的IPSec配置相對複雜,但是對於應用程式來說是透明的,因此不要求應用程式必須支援。

Win2k作業系統都支援IPSec,Win2k以前的版本,如Win98與WinNT不支援IPSec。在Win2k的網路中,不管是區域網路、廣域網路,都可以使用IPSec來保證網路的安全。我們以前見到的文章都是討論在圖形介面下配置IPSec的,因為步驟比較多,所以很容易出錯,並且效率不是怎麼的高,那麼我們是否可以在命令列下配置IPSec呢?答案是肯定的,今天我們就來講講如何在命令列下配置IPSec。

一:基礎知識

在開始文章前有必要先瞭解一些基礎的知識,以便更好的閱讀下面的文章。

1、IPSec的工作的過程:

兩台電腦在通訊的時候,如果已經設定好IPSec的策略,主機在通訊的時候會檢查這個策略,策略在應用到主機的時候會有一個協商的過程,這個過程通過SecurityAssociation來實現。協商後根據Policy的配置,兩台電腦之間建立一個加密的串連,資料進行加密傳輸。驅動程式將解密的資料包傳輸給TCP/IP的驅動程式,然後傳輸給接收端的應用程式。

2、IPSec的工作方式:

⑴傳送模式:保護兩個主機之間的通訊,是預設的IPSec模式。傳送模式只支援Win2k作業系統,提供P2P(點對點)的安全性。

⑵隧道模式:封裝、發送和拆封過程稱之為“隧道”。一般實現方法是在兩個路由器上完成的。在路由器兩端配置使用IPSec,保護兩個路由器之間的通訊。主要用於廣域網路上,不提供各個網路內部的安全性。

3、IPSec的驗證方法:

⑴KerberosV5:這個是預設的驗證方法,如果是在一個域中的成員,又是KerberosV5協議的客戶機,選擇這一項。比如一個域中的Win2k的電腦。

⑵認證:需要共同配置信任的CA。

⑶預先共用金鑰:雙方在設定策略的時候使用一段共同協商好的密鑰。

以上三種方法都可以作為身分識別驗證的方法,一般在日常工作當中,如果是域中的Win2k的電腦之間就採用Kerberos的認證方式。其他情況下一般可以採用第三種方式,雙方協商一段密鑰。

4、IPSec的加密模式:

⑴身分識別驗證加密技術:包括SNA和MD5

⑵資料包加密技術:包括40-bitDES、56-bitDES

⑶3DES:最安全的加密方法,相應的也會消耗更多的系統資源。

其他的關於IPSec的一些知識大家可以藉助搜尋引擎來實現,這裡就不再展開了。

二:微軟的禮物

在命令列下配置IPSec,我們需要藉助第三方的軟體IPSecPol來實現(可以在光碟片裡找到),它是我們可愛的微軟的免費提供的支援工具。

為什麼我們要用IPSecPol這個工具呢?如果我們需要有大量的IP安全性原則需要配置的話,一般的圖形介面模式即費時又費力,而使用IPSecPol之後,我們可以利用指令碼來實現,並且結合批處理,只要使用者輸入幾個參數就可以在短短的時間內完成龐大的工作。更重要的是,它可以即時配置策略,喜歡命令列下工作的你是否也開始對它感興趣了?

我們先來看看它的參數,如下所示:

ipsecpol[\\computername][-?][-fFilterList][-nNegotiationPolicyList][-tTunnelAddress][-aAuthMethodList][-u][-soft][{-dialup-lan}][-1sSecurityMethodList][-1kPhase1RekeyAfter][-1p][-confirm][-wTYPE:DOMAIN][-pPolicyName:PollInterval][-rRuleName][-x][-y][-o]

下面我們對常用的幾個參數進行解釋:

-fFilterList:過濾列表,這個列表的格式應該是下面這樣的:A.B.C.D/mask:port=A.B.C.D/mask:port:protocol,左邊的A.B.C.D代表的是源IP,右邊的是目標IP,mask代表子網路遮罩,port是連接埠,protocol是協議類型。我們舉個例子,比如我的IP是166.111.30.30,我要把來自IP地址是166.111.40.40對我的Tcp連接埠7626請求的資料包過濾。那麼這個過濾列表就應該是這樣的:

166.111.40.40/255.255.252.0:7626=166.111.30.30/255.255.252.0:7626:tcp

當然這裡我們還可以使用萬用字元,用*代表任何IP地址,用0代表我自己的IP地址,我們還可以使用+符號,比如0+*:139:TCP代表過濾自己主機和任何來源ip的tcp連接埠139資料包;*+0:139:TCP代表過濾任何來源IP對自己主機tcp129連接埠發送的資料包。

-wTYPE:DOMAIN:這個是策略寫入的位置,可以是註冊表,這樣類型是REG;也可以儲存在目錄裡,這樣的類型是DS。我們一般選擇是REG;

-pPolicyName:PollInterval:這個是策略的名稱,比如“BlockRPCAttackVectors”;

-rRuleName:這個是規則的名稱,比如“BlockOutboundTCP445Rule”;

-x:啟用(指派)剛才配置的IP安全性原則。

-y:不指派配置的IP安全性原則。

-o:刪除剛才設定的安全性原則。

我們一般用的參數也就這樣幾個,其他的大家可以參看協助檔案。

三:具體執行個體

還是來講執行個體吧,我們結合“衝擊波”蠕蟲來進行解說。“衝擊波”利用的連接埠有Tcp135、4444連接埠,Udp69連接埠,此外它還會發送Icmp資料包。此外與RcpDcom有關的連接埠是Tcp135、445、139、593連接埠,Udp135、137、138、445連接埠。

如果我們要防範“衝擊波”蠕蟲,我們需要把來自外部對以上標明連接埠的串連過濾,為了不影響網路速度,還要禁止Icmp包。假如我們感染了,還要防止自己主機向外部發送資料,因此我們來建立策略,策略名比如是:AntiBlaster,那麼我們所要的命令如下:
  

以下為引用的內容:
  ipsecpol-wREG-p"AntiBlaster"-r"BlockInboundTCP135Rule"-f*+0:135:TCP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockOutboundTCP135Rule"-f0+*:135:TCP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockInboundTCP4444Rule"-f*+0:4444:TCP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockOutboundTCP4444Rule"-f0+*:4444:TCP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockInboundUDP69TFTPRule"-f*+0:69:UDP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockOutboundUDP69TFTPRule"-f0+*:69:UDP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockInboundICMPRule"-f*+0:0:ICMP-nBLOCK
  ipsecpol-wREG-p"AntiBlaster"-r"BlockOutboundICMPRule"-f0+*:0:ICMP-nBLOCK

  
最後,我們還要啟用這個安全性原則,命令是:ipsecpol-wREG-p"AntiBlaster"–x

更保險點的是,禁止對Rpc相關連接埠的串連,這樣我們啟動並執行命令如下:
  

以下為引用的內容:
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundUDP135Rule"-f*+0:135:UDP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundTCP135Rule"-f*+0:135:TCP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundUDP137Rule"-f*+0:137:UDP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundUDP138Rule"-f*+0:138:UDP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundTCP139Rule"-f*+0:139:TCP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundTCP445Rule"-f*+0:445:TCP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundUDP445Rule"-f*+0:445:UDP-nBLOCK
  ipsecpol-wREG-p"BlockRPCAttack"-r"BlockInboundTCP593Rule"-f*+0:593:TCP-nBLOCK

  
然後再用命令ipsecpol-wREG-p"BlockRPCAttack"–x來啟用安全性原則。上面只過濾了傳入的串連請求,如果是過濾傳出的,那麼只要把*和0互換,把Inbound改成Outbound就可以了。

那如果“衝擊波”過去了,我們不需要這樣的安全性原則的時候怎麼辦,當然你也可以在MMC(控制台)裡刪除掉,也可以用命令列來實現,比如我們要刪除剛才防止衝擊波的策略,具體命令是:

ipsecpol-wREG-p"AntiBlaster"–y//先用-y參數不指派這個策略

ipsecpol-wREG-p"AntiBlaster"–o//然後用-o參數刪除

我們可以寫一個批處理來實現這樣的功能,這個批處理可以在光碟片裡找到,以後要設定策略時,只要把連接埠修改下就可以了,即節省了時間,效率也大大提高了。

文章就介紹到這裡,如果大家有更好的方法或者是經驗,可以與我交流,文章的不足之處也請大家指正。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。