IPSec
首先需要指出的是,IPSec和TCP/IP篩選是不同的東西,大家不要混淆了。TCP/IP篩選的功能十分有限,遠(yuǎn)不如IPSec靈活和強(qiáng)大。下面就說說如何在命令行下控制IPSec。
XP系統(tǒng)用ipseccmd。
2000下用ipsecpol。
WIN2003下直接就是IPSEC命令。遺憾的是,它們都不是系統(tǒng)自帶的。ipseccmd在xp系統(tǒng)安裝盤的SUPPORTTOOLSSUPPORT.CAB中,ipsecpol在2000 Resource Kit里。而且,要使用ipsecpol還必須帶上另外兩個(gè)文件:ipsecutil.dll和text2pol.dll。三個(gè)文件一共119KB。
winxp命令行下ipsec屏蔽不安全的端口 點(diǎn)此下載IPSECCMD
IPSec叫做Internet協(xié)議安全。主要的作用是通過設(shè)置IPsec規(guī)則,提供網(wǎng)絡(luò)數(shù)據(jù)
包的加密和認(rèn)證。不過這樣高級(jí)的功能我無緣消受,只是用到了篩選功能罷了。通過設(shè)置規(guī)則進(jìn)行數(shù)據(jù)包的篩選器,可以屏蔽不安全的端口連接。
你可以運(yùn)行g(shù)pedit.msc,在Windows設(shè)置>>計(jì)算機(jī)設(shè)置>>IP安全設(shè)置中進(jìn)行手工設(shè)
置。更加簡單的方法是使用ipseccmd命令。
ipseccmd在WindowsXP中沒有默認(rèn)安裝,他在XP系統(tǒng)安裝盤的
SUPPORTTOOLSSUPPORT.CAB中。在Windows2000中它的名字叫做ipsecpol,默認(rèn)
應(yīng)該也沒有安裝,你自己找找看吧。
使用ipseccmd設(shè)置篩選,它的主要作用是設(shè)置你的篩選規(guī)則,為它指定一個(gè)名稱,
同時(shí)指定一個(gè)策略名稱,所謂策略不過是一組篩選規(guī)則的集合而已。比如你要封
閉TCP135端口的數(shù)據(jù)雙向收發(fā),使用命令:
ipseccmd -w REG -p "Block default ports" -r "Block TCP/135" -f *+0:135:TCP -n BLOCK -x
這里我們使用的是靜態(tài)模式,常用的參數(shù)如下:
-w reg 表明將配置寫入注冊表,重啟后仍有效。
-p 指定策略名稱,如果名稱存在,則將該規(guī)則加入此策略,否則創(chuàng)建一個(gè)。
-r 指定規(guī)則名稱。
-n 指定操作,可以是BLOCK、PASS或者INPASS,必須大寫。
-x 激活該策略。
-y 使之無效。
-o 刪除-p指定的策略。
其中最關(guān)鍵的是-f。它用來設(shè)置你的過濾規(guī)則,格式為
A.B.C.D/mask:port=A.B.C.D/mask:port:protocol。其中=前面的是源地址,后面
是目的地址。如果使用+,則表明此規(guī)則是雙向的。IP地址中用*代表任何IP地址,
0代表我自己的IP地址。還可以使用通配符,比如144.92.*.* 等效于
144.92.0.0/255.255.0.0。使用ipseccmd /?可以獲得它的幫助。
如果希望將規(guī)則刪除,需要先使用-y使之無效,否則刪除后它還會(huì)持續(xù)一段時(shí)間。
附件中的blockport.bat是我的一個(gè)示例程序,你可以將它作為參考修改使用。
好了,這樣你就可以使用ipsec根據(jù)自己的需要方便得自己定制你的篩選規(guī)則了。
如果有不安全的端口,或者你不太喜歡的IP地址,你就可以把它們封鎖在你的大
門之外。
現(xiàn)在,你的機(jī)器本身已經(jīng)基本比較安全了,不必再一接上網(wǎng)線就提心吊膽了。今天
天氣還不錯(cuò),趕快放心大膽的去網(wǎng)上沖浪去吧,海岸上有漂亮的貝殼,不要忘了
撿幾顆送給我哦。
[代碼清單]
@ echo off
rem
rem blockport.bat
rem [url=mailto:Spirituel@SMTH]Spirituel@SMTH[/url]
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,也沒有找到相應(yīng)的安全模板的語法。已經(jīng)配置好的IPSec策略也不能被導(dǎo)出為模板。所以,組策略這條路走不通。IPSec的設(shè)置保存在注冊表中(HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsIPSecPolicyLocal),理論上可以通過修改注冊表來配置IPSec。但很多信息以二進(jìn)制形式存放,讀取和修改都很困難。相比之下,上傳命令行工具更方便。
2000下 ipsecpol實(shí)例
關(guān)于ipsecpol和ipseccmd的資料,網(wǎng)上可以找到很多,因此本文就不細(xì)說了,只是列舉一些實(shí)用的例子。
在設(shè)置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
這條命令關(guān)閉了本地主機(jī)的TCP135,139,445和udp135,137,138,445端口。
具體含義如下:
-p myfirewall 指定策略名為myfirewall
-r rpc-dcom 指定規(guī)則名為rpc-dcom
-f …… 建立7個(gè)篩選器。*表示任何地址(源);0表示本機(jī)地址(目標(biāo));+表示鏡像(雙向)篩選。詳細(xì)語法見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規(guī)則將添加至其中。
注意,該規(guī)則同時(shí)也阻止了該主機(jī)ping別人。
3,對后門進(jìn)行IP限制
假設(shè)你在某主機(jī)上安裝了DameWare Mini Remote Control。為了保護(hù)它不被別人暴破密碼或溢出,應(yīng)該限制對其服務(wù)端口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可以訪問該主機(jī)的6129端口了。
如果你是動(dòng)態(tài)IP,應(yīng)該根據(jù)IP分配的范圍設(shè)置規(guī)則。比如:
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端口。
在寫規(guī)則的時(shí)候,應(yīng)該特別小心,不要把自己也阻塞了。如果你不確定某個(gè)規(guī)則的效果是否和預(yù)想的一樣,可以先用計(jì)劃任務(wù)“留下后路”。例如:
c:>net start schedule
Task Scheduler 服務(wù)正在啟動(dòng) ..
Task Scheduler 服務(wù)已經(jīng)啟動(dòng)成功。
c:>time /t
12:34
c:>at 12:39 ipsecpol -p myfw -y -w reg
新加了一項(xiàng)作業(yè),其作業(yè) ID = 1
然后,你有5分鐘時(shí)間設(shè)置一個(gè)myfw策略并測試它。5分鐘后計(jì)劃任務(wù)將停止該策略。
如果測試結(jié)果不理想,就刪除該策略。
c:>ipsecpol -p myfw -o -w reg
注意,刪除策略前必須先確保它已停止。不停止它的話,即使刪除也會(huì)在一段時(shí)間內(nèi)繼續(xù)生效。持續(xù)時(shí)間取決于策略的刷新時(shí)間,默認(rèn)是180分鐘。
如果測試通過,那么就啟用它。
c:>ipsecpol -p myfw -x -w reg
最后說一下查看IPSec策略的辦法。
對于XP很簡單,一條命令搞定——ipseccmd show filters
而ipsecpol沒有查詢的功能。需要再用一個(gè)命令行工具netdiag。它位于2000系統(tǒng)安裝盤的SUPPORTTOOLSSUPPORT.CAB中。(已經(jīng)上傳了三個(gè)文件,也就不在乎多一個(gè)了。^_^)
netdiag需要RemoteRegistry服務(wù)的支持。所以先啟動(dòng)該服務(wù):
net start remoteregistry
不啟動(dòng)RemoteRegistry就會(huì)得到一個(gè)錯(cuò)誤:
[FATAL] Failed to get system information of this machine.
netdiag這個(gè)工具功能十分強(qiáng)大,與網(wǎng)絡(luò)有關(guān)的信息都可以獲取!不過,輸出的信息有時(shí)過于詳細(xì),超過命令行控制臺(tái)cmd.exe的輸出緩存,而不是每個(gè)遠(yuǎn)程cmd shell都可以用more命令來分頁的。
查看ipsec策略的命令是:
netdiag /debug /test:ipsec
然后是一長串輸出信息。IPSec策略位于最后。


