24h購物| | PChome| 登入
2011-01-06 00:40:58 | 人氣364| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

使用批處理啟用或禁用端口

 

 

 

 

 

 

 

 

 

 

 

 

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策略位於最後。

台長: Kenny
人氣(364) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 硬碟相關 |
此分類下一篇:自动输入RUNAS密码的方法

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文