命令行下也玩IPsec

在网络应用越来越广泛的今天,一个重要的问题就是有关计算机通信的安全性问题。作为网络系统管理员,一项基本职责就是保证数据在网络传输中,不能被未经授权的人访问、查看或修改,在这中间,同时要保证数据能加密传输。怎样做到这一点呢?

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参数删除

我们可以写一个批处理来实现这样的功能,这个批处理可以在光盘里找到,以后要设置策略时,只要把端口修改下就可以了,即节省了时间,效率也大大提高了。

文章就介绍到这里,如果大家有更好的方法或者是经验,可以与我交流,文章的不足之处也请大家指正。

时间: 2024-09-18 18:05:16

命令行下也玩IPsec的相关文章

代码-在命令行下输入*程序为什么不能正确识别

问题描述 在命令行下输入*程序为什么不能正确识别 代码的功能:函数接受3个参数两个数字一个四则运算符,输出计算结果,列如输入3 + 5 输出3+5=15:函数加减除都能运算,为何输入* ( 乘)时程序不能正确识别,求各位大神解答: 代码如下 ![主函数!(http://img.ask.csdn.net/upload/201504/01/1427890049_29127.png)` ` ` 解决方案 是不是多输入了一个空格? 解决方案二: 关键在于你输入是怎么接收方式,从截图也就能看出来乘法和其他

提高linux命令行下工作效率

本文介绍一些命令行下提高工作效率的技巧,有助于提高学习的兴趣. 1.命令行下拷贝与粘贴 Linux安装后每次启动时都会自动运行一个gpm程序, 然后就可以用鼠标拷贝与粘贴了.具体做法是,按住鼠标左键拖动,使要拷贝的地方反白,这样拷贝的内容就会被粘贴在光标所在位置了. 2.快速进入某些目录 键入cd-可直接进入用户的home目录:键入cd-可进入上一个目录. 3.命令补齐 命令补齐是指当键入的字符足以确定目录下一个惟一的文件时,只须按Tab键就可以自动补齐该文件名的剩下部分. Linux下的有些文

如何在Linux 命令行下浏览天气预报

  Q: 我经常在 Linux 桌面查看天气预报.然而,是否有一种在终端环境下,不通过桌面小插件或者浏览器查询天气预报的方法? 其中有一个就是wego,一个终端下的小巧程序.使用基于ncurses 的接口,这个命令行程序允许你查看当前的天气情况和之后的预报.它也会通过一个天气预报的API 收集接下来5 天的天气预报. 在Linux 下安装 wego 安装 wego 相当简单.wego 是用 Go 编写的,引起第一个步骤就是安装Go 语言.然后再安装 wego. $ go get github.c

命令行下的抗毒精英

  一.TASKLIST--火眼金睛 如今的病毒越来越狡猾,常常不见首也不见尾.但许多病毒往往在进程这一环节中露出狐狸尾巴,因而查看进程是查杀病毒的一个重要的方法.命令行提供了进程查看的命令工具--Tasklist(Windows XP或更新版本).此命令与任务管理器一样可以显示活动进程的列表.但通过使用参数,可以看到任务管理器查看不到的信息,可以实现更强大的功能.使用参数"/M",运行"Tasklist /M"将显示每个任务加载的所有的DLL模块;使用参数&quo

如何把命令行下的执行结果保存(二)

前段时间我发过一篇类似的帖子[已解决]烂泥:如何把命令行下的执行结果保存(一),在这篇帖子中,我是把命令行下运行的结果保存在本机的.那么如果我想这个结果保存在局域网中另外一台机器该如何操作呢? 首先我们在一台机器,在此为了使试验更能接近实际我使用AD(IP:192.168.7.200)上新建一个共享文件夹123,并且把该文件夹的安全和共享设置为Everyone完全控制.如下图示: 相应的权限配置好后,我们就登陆另外一台机器(IP:192.168.7.150)哦. 在命令行中执行如下的命令:ipc

Linux有问必答:如何在命令行下压缩JPEG图像

Linux有问必答:如何在命令行下压缩JPEG图像 问题: 我有许多数码照相机拍出来的照片.我想在上传到Dropbox之前,优化和压缩下JPEG图片.有没有什么简单的方法压缩JPEG图片并不损耗他们的质量? 如今拍照设备(如智能手机.数码相机)拍出来的图片分辨率越来越大.甚至3630万像素的Nikon D800已经冲入市场,并且这个趋势根本停不下来.如今的拍照设备不断地提高着照片分辨率,使得我们不得不压缩后,再上传到有储存限制.带宽限制的云. 事实上,这里有一个非常简单的方法压缩JPEG图像.一

linux shell命令行下curl问题。。。,,

问题描述 linux shell命令行下curl问题...,, curl -d 之后收到网页的返回数据,是代表发送成功了么 如果是成功了,为什么我么有收到短信呢 如果没成功,应该怎么发送一个post数据呢 解决方案 关于curl命令行下载页面为空的问题 解决方案二: curl -d只是post的数据过去,你要看发挥的信息是否有提示成功.

Aria2一个命令行下运行、多协议、多来源下载工具

Aria2是一个命令行下运行.多协议.多来源http://www.aliyun.com/zixun/aggregation/10481.html">下载工具(HTTP/HTTPS.FTP.BitTorrent.Metalink),内建 XML-RPC 用户界面. Aria2是Linux 下一个不错的高速下载工具.由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件.这样自然就大大加快了文件的下载速度.aria2 也具有断点续传功能,这使你随时能够恢复已经中断的

Ubuntu在命令行下配置PPPoE

虽然利用路由器连接到Internet非常普遍,但是经常也使用ADSL(ADSL是'DSL'的一种,"A"指"Asymmetric",即"非对称性")http://www.aliyun.com/zixun/aggregation/3280.html">调制解调器通过PPPOE来连接到Internet.当然,你需要向Internet服务提供商(ISP)申请Internet连接业务,申请后你就可以连接并使用Internet.然后在你的A