windows.應用程式命令行配置ipsec策略

來源:互聯網
上載者:User

源地址:http://www.zjahzz.com/blog/article.asp?id=99

IPSec
首先需要指出的是,IPSec和TCP/IP篩選是不同的東西,大家不要混淆了。TCP/IP篩選的功能十分有限,遠不如IPSec靈活和強大。下面就說說如何在命令列下控制IPSec。

 

XP為ipseccmd
2000為ipsecpol
WIN2003為IPSEC
... ...遺憾的是,它們都不是系統內建的。ipseccmd在xp系統安裝盤的SUPPORT/TOOLS/SUPPORT.CAB中,ipsecpol在2000 Resource Kit裡。而且,要使用ipsecpol還必須帶上另外兩個檔案:ipsecutil.dll和text2pol.dll。三個檔案一共119KB。

winxp命令列下ipsec屏蔽不安全的連接埠 點此下載IPSECCMD
IPSec叫做Internet協議安全。主要的作用是通過設定IPsec規則,提供網路資料
包的加密和認證。不過這樣進階的功能我無緣消受,只是用到了篩選功能罷了。通過設定規則進行資料包的篩選器,可以屏蔽不安全的連接埠串連。

你可以運行gpedit.msc,在Windows設定>>電腦設定>>IP安全設定中進行手工設
置。更加簡單的方法是使用ipseccmd命令。

ipseccmd在WindowsXP中沒有預設安裝,他在XP系統安裝盤的
SUPPORT/TOOLS/SUPPORT.CAB中。在Windows2000中它的名字叫做ipsecpol,預設
應該也沒有安裝,你自己找找看吧。

使用ipseccmd設定篩選,它的主要作用是設定你的篩選規則,為它指定一個名稱,同時指定一個策略名稱,所謂策略不過是一組篩選規則的集合而已。比如你要封 閉TCP135連接埠的資料雙向收發,使用命令:

ipseccmd -w REG -p "Block default ports" -r "Block TCP/135" -f *+0:135:TCP -n BLOCK -x

這裡我們使用的是靜態模式,常用的參數如下:
-w reg 表明將配置寫入註冊表,重啟後仍有效。
-p 指定策略名稱,如果名稱存在,則將該規則加入此策略,否則建立一個。
-r 指定規則名稱。
-n 指定操作,可以是BLOCK、PASS或者INPASS,必須大寫。
-x 啟用該策略。
-y 使之無效。
-o 刪除-p指定的策略。

其中最關鍵的是-f。它用來設定你的過濾規則,
格式為"A.B.C.D/mask:port=A.B.C.D/mask:port:protocol"
其中"="前面的是源地址,後面是目的地址。
如果使用"+",則表明此規則是雙向的。IP地址中用" * "代表任何IP地址,
"0"代表我自己的IP地址。還可以使用萬用字元,比如144.92.*.* 等效於144.92.0.0/255.255.0.0。
使用ipseccmd /?可以獲得它的協助。

如果希望將規則刪除,需要先使用-y使之無效,否則刪除後它還會持續一段時間。
附件中的blockport.bat是我的一個樣本程式,你可以將它作為參考修改使用。

好了,這樣你就可以使用ipsec根據自己的需要方便得自己定製你的篩選規則了。
如果有不安全的連接埠,或者你不太喜歡的IP地址,你就可以把它們封鎖在你的大
門之外。

現在,你的機器本身已經基本比較安全了,不必再一接上網線就提心弔膽了。今天
天氣還不錯,趕快放心大膽的去網上衝浪去吧,海岸上有漂亮的貝殼,不要忘了
撿幾顆送給我哦。

[代碼清單]

@ echo off
rem
rem blockport.bat
rem
Spirituel@SMTH
rem
rem This file use the IPsec filters to block default ports of Windows.
rem It can work on Windows 2003 and Windows XP system if there is ipseccmd command on it.
rem It can also work on Windows2000, if you chang "ipseccmd" to "ipsecpol" when ipsecpol command could work well.
rem You can customize your own policy easily.
rem please refer to README.txt for more details.
rem NOTICE: NO WARRANTY totally. Please use it carefully.
rem
rem
rem
echo [Usage] blockport [ -o or -y ]
echo set policy of filter rules and and enable them without parameter.
echo -y parameter to make the policy inactive.
echo -o parameter to disable and delete the policy.

if "%1"=="-y" goto :inactive
if "%1"=="-o" goto :delete

@ echo on
ipseccmd -w REG -p "Block default ports" -y
ipseccmd -w REG -p "Block default ports" -o
ipseccmd -w REG -p "Block default ports" -r "Block TCP/135" -f *+0:135:TCP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block TCP/139" -f *+0:139:TCP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block TCP/445" -f *+0:445:TCP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/123" -f *+0:123:UDP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/135" -f *+0:135:UDP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/137" -f *+0:137:UDP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/138" -f *+0:138:UDP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/139" -f *+0:139:UDP -n BLOCK
ipseccmd -w REG -p "Block default ports" -r "Block UDP/445" -f *+0:445:UDP -n BLOCK
@ rem ipseccmd -w REG -p "Block default ports" -r "Block ping" -f 0+*::ICMP -n BLOCK
ipseccmd -w REG -p "Block default ports" -x
@ goto :end

∶inactive
@ echo on
ipseccmd -w REG -p "Block default ports" -y
@ goto :end

∶delete
@ echo on
ipseccmd -w REG -p "Block default ports" -y
ipseccmd -w REG -p "Block default ports" -o

∶end
@ echo off
pause

IPSec可以通過組策略來控制,但我找遍MSDN,也沒有找到相應的安全模板的文法。已經配置好的IPSec策略也不能被匯出為模板。所以,組策略這條路走不通。IPSec的設定儲存在註冊表中(HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows/IPSec/Policy/Local),理論上可以通過修改註冊表來配置IPSec。但很多資訊以二進位形式存放,讀取和修改都很困難。相比之下,上傳命令列工具更方便。


2000下 ipsecpol執行個體

關於ipsecpol和ipseccmd的資料,網上可以找到很多,因此本文就不細說了,只是列舉一些實用的例子。
在設定IPSec策略方面,ipseccmd命令的文法和ipsecpol幾乎完全一樣,所以只以ipsecpol為例:

1.防禦rpc-dcom攻擊

ipsecpol -p myfirewall -r rpc-dcom -f *+0:135:tcp *+0:135:udp *+0:137:udp *+0:138:udp *+0:139:tcp *+0:445:tcp *+0:445:udp -n BLOCK -w reg -x

這條命令關閉了本地主機的TCP135,139,445和udp135,137,138,445連接埠。
具體含義如下:
-p myfirewall 指定策略名為myfirewall
-r rpc-dcom 指定規則名為rpc-dcom
-f …… 建立7個篩選器。*表示任何地址(源);0表示本機地址(目標);+表示鏡像(雙向)篩選。詳細文法見ipsecpol -?
-n BLOCK 指定篩選x作是“阻塞”。注意,BLOCK必須是大寫。
-w reg 將配置寫入註冊表,重啟後仍有效。
-x 立刻啟用該策略。

2.防止被ping

ipsecpol -p myfirewall -r antiping -f *+0::icmp -n BLOCK -w reg -x

如果名為myfirewall的策略已存在,則antiping規則將添加至其中。
注意,該規則同時也阻止了該主機ping別人。

3.對後門進行IP限制
假設你在某主機上安裝了DameWare Mini Remote Control。為了保護它不被別人暴破密碼或溢出,應該限制對其服務連接埠6129的訪問。

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.89+0:6129:tcp -n PASS -w reg -x

這樣就只有123.45.67.89可以訪問該主機的6129連接埠了。
如果你是動態IP,應該根據IP分配的範圍設定規則。比如:

ipsecpol -p myfw -r dwmrc_block_all -f *+0:6129:tcp -n BLOCK -w reg
ipsecpol -p myfw -r dwmrc_pass_me -f 123.45.67.*+0:6129:tcp -n PASS -w reg -x

這樣就允許123.45.67.1至123.45.67.254的IP訪問6129連接埠。

在寫規則的時候,應該特別小心,不要把自己也阻塞了。如果你不確定某個規則的效果是否和預想的一樣,可以先用計劃任務“留下後路”。例如:

c:/>net start schedule
Task Scheduler 服務正在啟動 ..
Task Scheduler 服務已經啟動成功。

c:/>time /t
12:34

c:/>at 12:39 ipsecpol -p myfw -y -w reg
新加了一項作業,其作業 ID = 1

然後,你有5分鐘時間設定一個myfw策略並測試它。5分鐘後計劃任務將停止該策略。
如果測試結果不理想,就刪除該策略。

c:/>ipsecpol -p myfw -o -w reg

注意,刪除策略前必須先確保它已停止。不停止它的話,即使刪除也會在一段時間內繼續生效。期間取決於策略的重新整理時間,預設是180分鐘。

如果測試通過,那麼就啟用它。

c:/>ipsecpol -p myfw -x -w reg

最後說一下查看IPSec策略的辦法。
對於XP很簡單,一條命令搞定——ipseccmd show filters
而ipsecpol沒有查詢的功能。需要再用一個命令列工具netdiag。它位於2000系統安裝盤的SUPPORT/TOOLS/SUPPORT.CAB中。(已經上傳了三個檔案,也就不在乎多一個了。^_^)

netdiag需要RemoteRegistry服務的支援。所以先啟動該服務:

net start remoteregistry

不啟動RemoteRegistry就會得到一個錯誤:

[FATAL] Failed to get system information of this machine.

netdiag這個工具功能十分強大,與網路有關的資訊都可以擷取!不過,輸出的資訊有時過於詳細,超過命令列控制台cmd.exe的輸出緩衝,而不是每個遠程cmd shell都可以用more命令來分頁的。

查看ipsec策略的命令是:
netdiag /debug /test:ipsec

然後是一長串輸出資訊。IPSec策略位於最後。

相關文章

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.