正在加载...
 
crackme game Project  

最新版(v9):

www.i170.com/Attach/E515C064-E1F1-4283-85E0-038C5B185CA8

++++++++++++++++++++++++++++++++++++++++++

2007年8月18日更新:

crackme v7

www.i170.com/Attach/F8620EED-EE55-49DC-BE22-760F831F7A05

磁力BT在我发布上面CRACKME的一个小时不到的时间就告诉我SN值了,支持一下他,他的KEYGEN分析:

http://wwiinngd.i170.cn/Article_85399

纳闷,我自己都是暴破的...:P

更新crackme v8,欢迎下载玩玩:)地址在:

www.i170.com/Attach/0C160A91-1A4A-42FA-94B5-A39E72279A6E

磁力写的V8分析

 

2007年9月2日更新:

V8的CRACKME,磁力觉得没难度,搞个V9吧,还是没什么难度吧?郁闷...

www.i170.com/Attach/E515C064-E1F1-4283-85E0-038C5B185CA8 

 

2007年9月18日更新:

好狠,磁力BT通过写外挂的方式出了个V9的KEYGEN,他的分析在这里:

http://wwiinngd.i170.cn/Article_88217

 

2007年9月25日更新:

放上自己对V8的暴力破解方法:

www.i170.com/Attach/DFA657AB-C6A5-4F0F-9819-6D4604C39C2D

++++++++++++++++++++++++++++++++++++++++++

标签:安全技术 | 浏览数(1183) | 评论数(10) | 2007-08-16
最近写的小探测插件(带源码)  

和磁力同学一起弄出来的东西,可以检测运行机的CPU、内存、吞吐量,并报警,原理有点像HIDS....

www.i170.com/Attach/55E06932-425F-4F7A-8D19-85D4A64F871D

标签:安全技术 | 浏览数(868) | 评论数(1) | 2007-07-29
NetScreen的QoS  

最近玩时总结的东西:

NetScreen的QoS

标签:安全技术 | 浏览数(873) | 评论数(0) | 2007-07-17
NetScreen Firewall的DI功能防御SQL注入  

最近在测试IPS,应用层的检测的确很有趣,最近也在玩NETSCREEN,所以做了个这样的傻瓜实验,希望对各位有用...

www.i170.com/Attach/A269FEB1-B422-497E-833D-08F81DE094D0

这里没有卖广告与其它的意思,还是我个人理解的那句话:IPS!=FIREWALL+IDS,希望各位指出错误:P

标签:安全技术 | 浏览数(1206) | 评论数(0) | 2007-06-30
NetScreen FireWall搭建点对站的IPSEC+Xauth VPN  

感谢磁力、Sam Zhu、神码的许工、以前的同事,还有我最心爱的5GT,助我完成这篇文档:)

www.i170.com/Attach/5DCE1740-A0AB-42EC-BA37-C5746419BE7A

标签:安全技术 | 浏览数(1185) | 评论数(1) | 2007-06-29
yum的说明书  

http://docs.huihoo.com/yum/managing-software-with-yum-zh_cn/index.html

标签:安全技术 | 浏览数(1006) | 评论数(0) | 2007-05-08
[转载]ajax到底是怎么一回事?!......  

http://zhidao.baidu.com/question/11261181.html?si=1

1.什么是Ajax?
Ajax的全称是:AsynchronousJavaScript+XML

2.Ajax的定义:
Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。

3.Ajax包括:
XHTML和CSS
使用文档对象模型(DocumentObjectModel)作动态显示和交互
使用XML和XSLT做数据交互和操作
使用XMLHttpRequest进行异步数据接收
使用JavaScript将它们绑定在一起

Web开发领域的最新时髦术语其实质是“旧貌换新颜”。

Ajax(AsynchronousJavaScriptandXML)是结合了Java技术、XML以及JavaScript等编程技术,可以让开发人员构建基于Java技术的Web应用,并打破了使用页面重载的惯例。

Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。

异步JavaScript和XML(AJAX)不是什么新技术,而是指这样一种方法:使用几种现有技术——包括级联样式表(CSS)、JavaScript、XHTML、XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件。实现Ajax的所有组件都已存在了许多年。AdaptivePath的用户体验战略部门主管兼创办合伙人JesseJamesGarrett今年2月发表在AdaptivePath网站上的一篇文章中杜撰了这个术语。

异步这个词是指AJAX应用软件与主机服务器进行联系的方式。如果使用旧模式,每当用户执行某种操作、向服务器请求获得新数据,Web浏览器就会更新当前窗口。

如果使用AJAX的异步模式,浏览器就不必等用户请求操作,也不必更新整个窗口就可以显示新获取的数据。只要来回传送采用XML格式的数据,在浏览器里面运行的JavaScript代码就可以与服务器进行联系。JavaScript代码还可以把样式表加到检索到的数据上,然后在现有网页的某个部分加以显示。

在面向消费者的诸多应用当中,Google的Gmail和GoogleMaps就是最常见的例子。在Gmail当中,AJAX负责如何开启线程会话,以显示不同邮件的文本内容。而在Maps当中,AJAX允许用户以一种似乎无缝的方式拖拉及滚动地图。

还有雅虎的Flickr像片共享应用和亚马逊网站的A9搜索引擎。另外,雅虎新的Web邮件服务可能很快就会吸引AJAX支持者的莫大关注,这项服务基于雅虎收购Oddpost后得到的技术。

这些UI都充分地使用了后台通道,也被一些开发者称为“Web2.0”,并导致了大家对Ajax应用兴趣的猛涨。

然而,AJAX应用软件厂商越来越把目光瞄准了企业。譬如说,Scalix的WebAccess电子邮件应用软件其实比微软Outlook自己的Web邮件界面更像Outlook。

不过AJAX应用软件的适用领域具有一定的局限性。因为它们利用了一些最新的Web技术,所以只能在某些Web浏览器里面运行——不过AJAX适用的浏览器正越来越多。

Ajax

Ajax,异步JavaScript与XML,是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,你可以创建接近本地桌面应用的,直接的、高可用的、更丰富的、更动态的Web用户接口界面。

Ajax处理过程

一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。

现在,记住Ajax如何首先处于异步处理状态?当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

在JavaWeb服务器上,到达的请求与任何其它HttpServletRequest一样。在解析请求参数后,servlet执行必需的应用逻辑,将响应序列化到XML中,并将它写回HttpServletResponse。


一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。

现在,记住Ajax如何首先处于异步处理状态?当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

在JavaWeb服务器上,到达的请求与任何其它HttpServletRequest一样。在解析请求参数后,servlet执行必需的应用逻辑,将响应序列化到XML中,并将它写回HttpServletResponse。


一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。

现在,记住Ajax如何首先处于异步处理状态?当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

在JavaWeb服务器上,到达的请求与任何其它HttpServletRequest一样。在解析请求参数后,servlet执行必需的应用逻辑,将响应序列化到XML中,并将它写回HttpServletResponse。

标签:安全技术 | 浏览数(976) | 评论数(1) | 2007-05-01
[整理文]分析W3C扩展日志  

[整理文]分析W3C扩展日志
整理人:demonalex


注:以下部分翻译自Microsoft网站--《W3C Extended Log File Format (IIS 6.0)》的解释。
******************************************************************************************
W3C扩展日志文件格式是IIS(Microsoft IIS)的默认日志格式,其内容编码为默认的ASCII文本。你可以通过IIS管理器选择各种
不同的字段包含在这种日志文件内,这样可以使你的日志内容更加人性化。其实系统是通过HTTP.sys句柄来处理W3C扩展日志的,
W3C内容格式完全是通过读取HTTP.sys的内核缓存进行筛选获取的。

下表中列出各种可选字段(“字段标识”列为实际参数名)及其描述,并通过Default列记录该字段是否默认被‘包含’了。
“字段”        “字段标识”       “描述”                                  “Default(Y/N )”
日期             date              动作发生时的日期。                         Y
时间             time              动作发生时的时间(默认为UTC标准)。        Y
客户端IP地址     c-ip              访问服务器的客户端IP地址。                 Y
用户名           cs-username       通过身份验证的访问服务器的用户名。不包括匿名用户(用‘-’表示)。 Y
服务名           s-sitename        客户所访问的Internet服务名以及实例号。     N
服务器名         s-computername    产生日志条目的服务器的名字。               N
服务器IP 地址    s-ip              产生日志条目的服务器的IP地址。             Y
服务器端口       s-port            服务端提供服务的传输层端口。               Y
方法             cs-method         客户端执行的行为(主要是GET与POST行为)。  Y
URI Stem         cs-uri-stem       被访问的资源,如Default.asp等。            Y
URI Query        cs-uri-query      客户端提交的参数(包括GET与POST行为)。    Y
协议状态         sc-status         用HTTP或者FTP术语所描述的、行为执行后的返回状态。 Y
Win32状态        sc-win32-status   用Microsoft Windows的术语所描述的动作状态。N
发送字节数       sc-bytes          服务端发送给客户端的字节数。               N
接受字节数       cs-bytes          服务端从客户端接收到的字节数。             N
花费时间         time-taken        执行此次行为所消耗的时间,以毫秒为单位。   N
协议版本         cs-version        客户端所用的协议(HTTP、FTP)版本。对HTTP协议来说是HTTP 1.0或者HTTP 1.1。 N
主机             cs-host           客户端的HTTP报头(host header)信息。      N
用户代理         cs(User-Agent)    客户端所用的浏览器版本信息。               Y
Cookie           cs(Cookie)        发送或者接受到的cookie内容。               N
Referrer         cs(Referer)       用户浏览的前一个网址,当前网址是从该网址链接过来的。 N
协议底层状态     sc-substatus      协议底层状态的一些错误信息。               Y
 
关于status codes字段的更多详细资料请浏览:“http://go.microsoft.com/fwlink/?LinkId=14381”。
******************************************************************************************
注:其实我们对比一下实际操作会发现“Default”一列是与客观事实有些出入的:P。

下面我们就几个案例进行“还原”:
案例一:某网站http://www.test.com的日志ex050104.log的一段内容:
##########################################################################################
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2005-01-03 16:00:00
#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken
2005-01-01 16:02:22 GET /Enterprise/detail.asp id=1612186 70.25.29.53 http://www.test.com/searchout.asp 200 17735 369 4656
##########################################################################################
这里我们可以得到的资料是:这是一台装有IIS version 6的WEB服务器(通过#Software标识),版本是1.0(#Version标识),
生成日期是2005年1月3日的下午4点正(#Date标识),下面生成的W3C日志内容(通过#Fields标识)包括日期、时间、Client
 to Server的方法、读取的对象、参数、客户端的IP地址、客户端上一个访问的对象、服务返回的状态、Server to Client的
字节、Server接收到的字节、处理该条目的操作总共使用的时间。最后还原的结果是:
--------------------------------------------------------------------------------------
在2005年1月1日的下午4时2分22秒,70.25.29.53这个IP地址的客户端向我们的服务器提交了一个GET:
http://www.test.com/Enterprise/detail.asp?id=1612186
网址的请求,这个请求提交的网址可能是从http://www.test.com/searchout.asp链接过来的,本次操作返回“操作成功”应
答(成功完成操作),此次操作中服务端发送给客户端17735个字节的数据,服务端也接收到369个字节的数据,此次操作总共
花了4656毫秒。
--------------------------------------------------------------------------------------

从上面的知识点不难看到,其实我们要通过W3C扩展日志对HTTP应用层行为进行监控的话,以下几个字段的记录是必不可少的:
date、time、cs-method、cs-uri-stem、cs-uri-query、c-ip、cs-version、cs(User-Agent)、cs(Referer)、sc-status、
sc-bytes、cs-bytes、time-taken、cs-host、cs(Cookie)。解说一下:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
date和time就不用说了;
cs-method与cs-uri-stem、cs-uri-query联合起来,很快就可以还原出c-ip究竟进行过怎么样的请求;
sc-status可以帮助我们辨别这个请求是否成功‘执行’,从而辨别现象与这个请求操作的依从性;
cs-version、cs(User-Agent)、cs(Referer)、cs-bytes、cs-host与cs(Cookie)可以作为一个类比的特征指纹,鉴别出一些非
正常的请求,如HTTP探测、HTTP DoS与CC等;
cs-bytes、sc-bytes与time-taken可以帮助我们辨别本次请求所耗费的各种资源的情况(如对带宽的影响、CPU/内存资源占用
的影响)。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

最后,一套行之有效的总结、归类、对比方法可以更快地帮你定位到问题的根源,例如:“通过多个cs-uri-query的值相同或
相似,且发生的时间点几乎一致等各种因素,判断其可能遭受过CC攻击”等,这样的案例常有存在,关键看各人的领悟了:P。

标签:安全技术 | 浏览数(1146) | 评论数(0) | 2007-04-25
[转载]如何:强化TCP/IP堆栈安全  

如何:强化 TCP/IP 堆栈安全

更新日期: 2004年04月12日

http://www.microsoft.com/china/technet/security/guidance/secmod109.mspx

本页内容
 目标
 适用范围
 如何使用本模块
 摘要
 必备知识
 抵御 SYN 攻击
 抵御 ICMP 攻击
 抵御 SNMP 攻击
 AFD.SYS 保护
 其他保护
 缺陷
 其他资源

目标
使用本模块可以实现:

? 强化服务器的 TCP/IP 堆栈安全
 
? 保护服务器免遭“拒绝服务”和其他基于网络的攻击
 
? 在检测到攻击时启用 SYN 洪水攻击保护
 
? 设置用于确认是什么构成攻击的阈值
 

返回页首
适用范围
本模块适用于下列产品和技术:

? Microsoft Windows 2000 Server 和 Windows 2000 Advanced Server
 

返回页首
如何使用本模块
默认情况下,本模块中的一些注册表项和值可能不存在。在这些情况下,请创建这些注册表项、值和数值数据。

有关 Windows 2000 控制的 TCP/IP 网络设置的注册表的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp(英文)

注意:这些设置会修改服务器上 TCP/IP 的工作方式。Web 服务器的特征将确定触发拒绝服务对策的最佳阈值。对于客户端的连接,一些值可能过于严格。在将本模块的建议部署到产品服务器之前,要对这些建议进行测试。

返回页首
摘要
TCP/IP 堆栈负责处理传入和传出的 IP 数据包,并将数据包中的数据路由到要处理它们的应用程序。默认情况下,TCP/IP 天生就是一个不安全的协议。但是,Microsoft? Windows? 2000 版本允许您配置其操作,以抵御网络级别的大多数拒绝服务攻击。

本模块解释如何强化 TCP/IP 堆栈的安全,以及如何在 Windows 注册表内配置各种 TCP/IP 参数,以便保护服务器免遭网络级别的拒绝服务攻击,包括 SYS 洪水攻击、ICMP 攻击和 SNMP 攻击。

返回页首
必备知识
可以在 Windows 注册表内配置各种 TCP/IP 参数,以便保护服务器免遭网络级别的拒绝服务攻击,包括 SYS 洪水攻击、ICMP 攻击和 SNMP 攻击。可以配置注册表项,以便:

? 在检测到攻击时启用 SYN 洪水攻击保护机制。
 
? 设置用于确认构成攻击的阈值。
 

本“如何”向管理员介绍必须配置哪些注册表项和注册表值,以抵御基于网络的拒绝服务攻击。

注意 这些设置会修改服务器上 TCP/IP 的工作方式。Web 服务器的特征将确定触发拒绝服务对策的最佳阈值。对于客户端的连接,一些值可能过于严格。在将本文档的建议部署到产品服务器之前,应当测试这些建议。

TCP/IP 天生就是一个不安全的协议。但是,Windows 2000 版本允许您配置其操作,以抵御网络级别的拒绝服务攻击。默认情况下,本“如何”中引用的一些注册表项和值可能不存在。在这些情况下,请创建这些注册表项、值和值数据。

有关 Windows 2000 的注册表所控制的 TCP/IP 网络设置的详细信息,请参阅白皮书“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp(英文)。

返回页首
抵御 SYN 攻击
SYN 攻击利用了 TCP/IP 连接建立机制中的安全漏洞。要实施 SYN 洪水攻击,攻击者会使用程序发送大量 TCP SYN 请求来填满服务器上的挂起连接队列。这会禁止其他用户建立网络连接。

要保护网络抵御 SYN 攻击,请按照下面这些通用步骤操作(这些步骤将在本文档的稍后部分进行说明):

? 启用 SYN 攻击保护
 
? 设置 SYN 保护阈值
 
? 设置其他保护
 

启用 SYN 攻击保护
启用 SYN 攻击保护的命名值位于此注册表项的下面:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services。

值名称: SynAttackProtect

建议值: 2

有效值: 0 – 2

说明:使 TCP 调整 SYN-ACK 的重传。配置此值后,在遇到 SYN 攻击时,对连接超时的响应将更快速。在超过 TcpMaxHalfOpen 或 TcpMaxHalfOpenRetried 的值后,将触发 SYN 攻击保护。

设置 SYN 保护阈值
下列值确定触发 SYN 保护的阈值。这一部分中的所有注册表项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

? 值名称: TcpMaxPortsExhausted
建议值: 5
有效值: 0 – 65535
说明:指定触发 SYN 洪水攻击保护所必须超过的 TCP 连接请求数的阈值。
 
? 值名称: TcpMaxHalfOpen
建议的数值数据: 500
有效值: 100 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于 SYN_RCVD 状态的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。
 
? 值名称: TcpMaxHalfOpenRetried
建议的数值数据: 400
有效值: 80 – 65535
说明:在启用 SynAttackProtect 后,该值指定处于至少已发送一次重传的 SYN_RCVD 状态中的 TCP 连接数的阈值。在超过 SynAttackProtect 后,将触发 SYN 洪水攻击保护。
 

设置其他保护
这一部分中的所有注册表项和值都位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 的下面。这些注册表项和值是:

? 值名称: TcpMaxConnectResponseRetransmissions
建议的数值数据: 2
有效值: 0 – 255
说明:控制在响应一次 SYN 请求之后、在取消重传尝试之前 SYN-ACK 的重传次数。
 
? 值名称: TcpMaxDataRetransmissions
建议的数值数据: 2
有效值: 0 – 65535
说明:指定在终止连接之前 TCP 重传一个数据段(不是连接请求段)的次数。
 
? 值名称: EnablePMTUDiscovery
建议的数值数据: 0
有效值: 0, 1
说明:将该值设置为 1(默认值)可强制 TCP 查找在通向远程主机的路径上的最大传输单元或最大数据包大小。攻击者可能将数据包强制分段,这会使堆栈不堪重负。对于不是来自本地子网的主机的连接,将该值指定为 0 可将最大传输单元强制设为 576 字节。
 
? 值名称: KeepAliveTime
建议的数值数据: 300000
有效值: 80 – 4294967295
说明:指定 TCP 尝试通过发送持续存活的数据包来验证空闲连接是否仍然未被触动的频率。
 
? 值名称: NoNameReleaseOnDemand
建议的数值数据: 1
有效值: 0, 1
说明:指定计算机在收到名称发布请求时是否发布其 NetBIOS 名称。
 

使用表 1 中汇总的值可获得最大程度的保护。

表 1:建议值

值名称 值 (REG_DWORD)
SynAttackProtect
 2
 
TcpMaxPortsExhausted
 1
 
TcpMaxHalfOpen
 500
 
TcpMaxHalfOpenRetried
 400
 
TcpMaxConnectResponseRetransmissions
 2
 
TcpMaxDataRetransmissions
 2
 
EnablePMTUDiscovery
 0
 
KeepAliveTime
 300000(5 分钟)
 
NoNameReleaseOnDemand
 1
 

返回页首
抵御 ICMP 攻击
这一部分的命名值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面

值: EnableICMPRedirect
建议的数值数据: 0
有效值:0(禁用),1(启用)
说明:通过将此注册表值修改为 0,能够在收到 ICMP 重定向数据包时禁止创建高成本的主机路由。

使用表 2 中汇总的值可以获得最大程度的保护:

表 2:建议值

值名称 值 (REG_DWORD)
EnableICMPRedirect
 0
 

返回页首
抵御 SNMP 攻击
这一部分的命名值位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。

值: EnableDeadGWDetect
建议的数值数据: 0
有效值:0(禁用),1(启用)
说明:禁止攻击者强制切换到备用网关

使用表 3 中汇总的值可以获得最大程度的保护:

表 3:建议值

值名称 值 (REG_DWORD)
EnableDeadGWDetect
 0
 

返回页首
AFD.SYS 保护
下面的注册表项指定内核模式驱动程序 Afd.sys 的参数。Afd.sys 用于支持 Windows Sockets 应用程序。这一部分的所有注册表项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\AFD\Parameters 的下面。这些注册表项和值是:

? 值 EnableDynamicBacklog
建议的数值数据: 1
有效值:0(禁用),1(启用)
说明:指定 AFD.SYS 功能,以有效处理大量的 SYN_RCVD 连接。有关详细信息,请参阅“Internet Server Unavailable Because of Malicious SYN Attacks”,网址为 http://support.microsoft.com/default.aspx?scid=kb;en-us;142641(英文)。
 
? 值名称: MinimumDynamicBacklog
建议的数值数据: 20
有效值: 0 – 4294967295
说明:指定在侦听的终结点上所允许的最小空闲连接数。如果空闲连接的数目低于该值,线程将被排队,以创建更多的空闲连接
 
? 值名称:MaximumDynamicBacklog
建议的数值数据: 20000
有效值: 0 – 4294967295
说明:指定空闲连接以及处于 SYN_RCVD 状态的连接的最大总数。
 
? 值名称: DynamicBacklogGrowthDelta
建议的数值数据: 10
有效值: 0 – 4294967295
默认情况下是否出现:否
说明:指定在需要增加连接时将要创建的空闲连接数。
 

使用表 4 中汇总的值可以获得最大程度的保护。

表 4:建议值

值名称 值 (REG_DWORD)
EnableDynamicBacklog
 1
 
MinimumDynamicBacklog
 20
 
MaximumDynamicBacklog
 20000
 
DynamicBacklogGrowthDelta
 10
 

返回页首
其他保护
这一部分的所有注册表项和值都位于注册表项 HKLM\System\CurrentControlSet\Services\Tcpip\Parameters 的下面。

保护屏蔽的网络细节
网络地址转换 (NAT) 用于将网络与传入连接屏蔽开来。攻击者可能规避此屏蔽,以便使用 IP 源路由来确定网络拓扑。

值: DisableIPSourceRouting
建议的数值数据: 1
有效值:0(转发所有数据包),1(不转发源路由数据包),2(丢弃所有传入的源路由数据包)。
说明:禁用 IP 源路由,后者允许发送者确认数据报在网络中应采用的路由。

避免接受数据包片段
处理数据包片段可以是高成本的。虽然拒绝服务很少来自外围网络内,但此设置能防止处理数据包片段。

值: EnableFragmentChecking
建议的数值数据: 1
有效值:0(禁用),1(启用)
说明:禁止 IP 堆栈接受数据包片段。

切勿转发去往多台主机的数据包
多播数据包可能被多台主机响应,从而导致响应淹没网络。

值: EnableMulticastForwarding
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:路由服务使用此参数来控制是否转发 IP 多播。此参数由路由和远程访问服务创建。

只有防火墙可以在网络间转发数据包
多主机服务器切勿在它所连接的网络之间转发数据包。明显的例外是防火墙。

值: IPEnableRouter
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:将此参数设置为 1 (true) 会使系统在它所连接的网络之间路由 IP 数据包。

屏蔽网络拓扑结构细节
可以使用 ICMP 数据包请求主机的子网掩码。只泄漏此信息是无害的;但是,可以利用多台主机的响应来了解内部网络的情况。

值: EnableAddrMaskReply
建议的数值数据: 0
有效范围:0 (false),1 (true)
说明:此参数控制计算机是否响应 ICMP 地址屏蔽请求。

使用表 5 中汇总的值可以获得最大程度的保护。

表 5:建议值

值名称 值 (REG_DWORD)
DisableIPSourceRouting
 1
 
EnableFragmentChecking
 1
 
EnableMulticastForwarding
 0
 
IPEnableRouter
 0
 
EnableAddrMaskReply
 0
 

返回页首
缺陷
在测试这些值的变化时,请参照在产品中所期望的网络流量进行测试。这些设置会修改被认为正常并偏离了测试默认值的项目的阈值。一些阈值可能由于范围太小而无法在客户端的连接速度剧烈变化时可靠地支持客户端。

返回页首
其他资源
有关 TCP/IP 的其他资料,请参考下面的资源:

? 有关强化 TCP/IP 堆栈的详细信息,请参阅 Microsoft 知识库文章 315669 How To:Harden the TCP/IP Stack Against Denial of Service Attacks in Windows 2000(英文)。
 
? 有关 Windows 2000 TCP/IP 实现的详细信息,请参阅“Windows 2000 TCP/IP Protocols and Services”(英文)(Davies, Joseph 和 Lee, Thomas 著,Microsoft Press,2000 年)。
 
? 有关 Windows 2000 TCP/IP 实现的详细信息,请参阅 TechNet 网站上的“Microsoft Windows 2000 TCP/IP Implementation Details”,网址为 http://www.microsoft.com/technet/treeview/default.asp?url=/technet/itsolutions/network/deploy/depovg/tcpip2k.asp(英文)。
 

标签:安全技术 | 浏览数(846) | 评论数(0) | 2007-04-25
[转载]TCP/IP详解学习笔记(10)-TCP连接的建立与中止  

http://dev.csdn.net/user/goodboy1881

 

TCP是一个面向连接的协议,所以在连接双方发送数据之前,都需要首先建立一条连接。这和前面讲到的协议完全不同。前面讲的所有协议都只是发送数据而已,大多数都不关心发送的数据是不是送到,UDP尤其明显,从编程的角度来说,UDP编程也要简单的多----UDP都不用考虑数据分片。

书中用telnet登陆退出来解释TCP协议连接的建立和中止的过程,可以看到,TCP连接的建立可以简单的称为三次握手,而连接的中止则可以叫做四次握手

1.连接的建立

在建立连接的时候,客户端首先向服务器申请打开某一个端口(用SYN段等于1的TCP报文),然后服务器端发回一个ACK报文通知客户端请求报文收到,客户端收到确认报文以后再次发出确认报文确认刚才服务器端发出的确认报文(绕口么),至此,连接的建立完成。这就叫做三次握手。如果打算让双方都做好准备的话,一定要发送三次报文,而且只需要三次报文就可以了。

可以想见,如果再加上TCP的超时重传机制,那么TCP就完全可以保证一个数据包被送到目的地。

2.结束连接

TCP有一个特别的概念叫做half-close,这个概念是说,TCP的连接是全双工(可以同时发送和接收)连接,因此在关闭连接的时候,必须关闭传和送两个方向上的连接。客户机给服务器一个FIN为1的TCP报文,然后服务器返回给客户端一个确认ACK报文,并且发送一个FIN报文,当客户机回复ACK报文后(四次握手),连接就结束了。

3.最大报文长度

在建立连接的时候,通信的双方要互相确认对方的最大报文长度(MSS),以便通信。一般这个SYN长度是MTU减去固定IP首部和TCP首部长度。对于一个以太网,一般可以达到1460字节。当然如果对于非本地的IP,这个MSS可能就只有536字节,而且,如果中间的传输网络的MSS更佳的小的话,这个值还会变得更小。

4.TCP的状态迁移图

书P182页给出了TCP的状态图,这是一个看起来比较复杂的状态迁移图,因为它包含了两个部分---服务器的状态迁移和客户端的状态迁移,如果从某一个角度出发来看这个图,就会清晰许多,这里面的服务器和客户端都不是绝对的,发送数据的就是客户端,接受数据的就是服务器。

4.1.客户端应用程序的状态迁移图

客户端的状态可以用如下的流程来表示:

CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

以上流程是在程序正常的情况下应该有的流程,从书中的图中可以看到,在建立连接时,当客户端收到SYN报文的ACK以后,客户端就打开了数据交互地连接。而结束连接则通常是客户端主动结束的,客户端结束应用程序以后,需要经历FIN_WAIT_1,FIN_WAIT_2等状态,这些状态的迁移就是前面提到的结束连接的四次握手。

4.2.服务器的状态迁移图

服务器的状态可以用如下的流程来表示:

CLOSED->LISTEN->SYN收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED

在建立连接的时候,服务器端是在第三次握手之后才进入数据交互状态,而关闭连接则是在关闭连接的第二次握手以后(注意不是第四次)。而关闭以后还要等待客户端给出最后的ACK包才能进入初始的状态。

4.3.其他状态迁移

书中的图还有一些其他的状态迁移,这些状态迁移针对服务器和客户端两方面的总结如下

  1. LISTEN->SYN_SENT,对于这个解释就很简单了,服务器有时候也要打开连接的嘛。
  2. SYN_SENT->SYN收到,服务器和客户端在SYN_SENT状态下如果收到SYN数据报,则都需要发送SYN的ACK数据报并把自己的状态调整到SYN收到状态,准备进入ESTABLISHED
  3. SYN_SENT->CLOSED,在发送超时的情况下,会返回到CLOSED状态。
  4. SYN_收到->LISTEN,如果受到RST包,会返回到LISTEN状态。
  5. SYN_收到->FIN_WAIT_1,这个迁移是说,可以不用到ESTABLISHED状态,而可以直接跳转到FIN_WAIT_1状态并等待关闭。

4.4.2MSL等待状态

书中给的图里面,有一个TIME_WAIT等待状态,这个状态又叫做2MSL状态,说的是在TIME_WAIT2发送了最后一个ACK数据报以后,要进入TIME_WAIT状态,这个状态是防止最后一次握手的数据报没有传送到对方那里而准备的(注意这不是四次握手,这是第四次握手的保险状态)。这个状态在很大程度上保证了双方都可以正常结束,但是,问题也来了。

由于插口的2MSL状态(插口是IP和端口对的意思,socket),使得应用程序在2MSL时间内是无法再次使用同一个插口的,对于客户程序还好一些,但是对于服务程序,例如httpd,它总是要使用同一个端口来进行服务,而在2MSL时间内,启动httpd就会出现错误(插口被使用)。为了避免这个错误,服务器给出了一个平静时间的概念,这是说在2MSL时间内,虽然可以重新启动服务器,但是这个服务器还是要平静的等待2MSL时间的过去才能进行下一次连接。

4.5.FIN_WAIT_2状态

这就是著名的半关闭的状态了,这是在关闭连接时,客户端和服务器两次握手之后的状态。在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据,但是也有一种可能是,客户端一直处于FIN_WAIT_2状态,而服务器则一直处于WAIT_CLOSE状态,而直到应用层来决定关闭这个状态。

5.RST,同时打开和同时关闭

RST是另一种关闭连接的方式,应用程序应该可以判断RST包的真实性,即是否为异常中止。而同时打开和同时关闭则是两种特殊的TCP状态,发生的概率很小。

6.TCP服务器设计

前面曾经讲述过UDP的服务器设计,可以发现UDP的服务器完全不需要所谓的并发机制,它只要建立一个数据输入队列就可以。但是TCP不同,TCP服务器对于每一个连接都需要建立一个独立的进程(或者是轻量级的,线程),来保证对话的独立性。所以TCP服务器是并发的。而且TCP还需要配备一个呼入连接请求队列(UDP服务器也同样不需要),来为每一个连接请求建立对话进程,这也就是为什么各种TCP服务器都有一个最大连接数的原因。而根据源主机的IP和端口号码,服务器可以很轻松的区别出不同的会话,来进行数据的分发。

掌握本章的状态迁移图才是学习本章的关键。

标签:安全技术 | 浏览数(1121) | 评论数(0) | 2007-04-17
[操作文]安装‘变态猫’--Tomcat  

[操作文]安装‘变态猫’--Tomcat
writer: demonalex[at]dark2s[dot]org


环境:
Linux localhost.localdomain 2.6.9-34.EL #1 Fri Feb 24 16:44:51 EST 2006 i686 i686 i386 GNU/Linux

下载:
#cd /usr/local/sbin
把jdk-1_5_0_06-linux-i586-rpm.bin下载到该目录下,然后...
#wget http://government-grants.org/mirrors/apache.org/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28.tar.gz

安装jdk:
#chmod a+x jdk-1_5_0_06-linux-i586-rpm.bin
#./jdk-1_5_0_06-linux-i586-rpm.bin
首先提示授权标签,输入yes回车,它会自动解压缩并自动以rpm的方式安装到系统。
#groupadd tomcat
#useradd -m -g tomcat -d /home/tomcat tomcat
#vi /home/tomcat/.bashrc
填加:
export JAVA_HOME=/usr/java/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/lib
:wq
#cd /usr/java
#ln -s jdk1.5.0_06 jdk
现在用su tomcat,再使用javac命令看看有没有输出,成功了吧?

安装tomcat:
#cd /usr/local/sbin
#tar -zxvf jakarta-tomcat-5.0.28.tar.gz
#mv jakarta-tomcat-5.0.28.tar.gz tomcat
#vi /home/tomcat/.bashrc
填加:
export CATALINA_HOME=/usr/local/sbin/tomcat
export CATALINA_BASE=/usr/local/sbin/tomcat
:wq
#touch /usr/local/sbin/tomcat/logs/catalina.out
#chmod 644 /usr/local/sbin/tomcat/logs/catalina.out
#chown -R tomcat:tomcat /usr/local/sbin/tomcat

启动tomcat:
#su tomcat
$cd /usr/local/sbin/tomcat/bin
$./startup.sh

关闭tomcat:
$cd /usr/local/sbin/tomcat/bin
$./shutdown.sh

tomcat运作日志:
#cd /usr/local/sbin/tomcat/logs
#tail -n 5 -f catalina.out

配置文件在/usr/local/sbin/tomcat/conf/server.xml,配置文件的内容格式为xml,默认虚拟目录在/usr/local/sbin/tomc
at/webapps。




标签:安全技术 | 浏览数(949) | 评论数(1) | 2007-04-05
我的Snort预启动脚本  

[root@localhost ~]#vi /etc/rc.d/init.d/snort

输入:

#!/bin/bash
#description:snort
#chkconfig: 235 99 99
  case "$1" in
  start)
      echo "Starting Snort daemon..."
      /usr/local/bin/snort -D -c /etc/snort/etc/snort.conf
      ;;

  stop)
      echo "Stopping Snort daemon..."
      /bin/kill snort
      ;;

  *)
      echo "Usage: $0 {start|stop}"
      exit 1
      ;;
  esac
:wq

[root@localhost ~]#chmod 755 /etc/rc.d/init.d/snort

[root@localhost ~]#chkconfig --add snort

[root@localhost ~]#chkconfig --level 235 snort on

[root@localhost ~]#service snort start

标签:安全技术 | 浏览数(1004) | 评论数(0) | 2007-04-05
[转载]Snort+Guardian的安装  

作者:garfield linuxforum (2005-03-28 15:47:37)

Snort 是一个开源的轻量级入侵监测系统,可以监测网络上的异常情况,给出报告;
Guardian是基于Snort+IPTables的一个主动防火墙,它分析Snort的日志文件,根据一定的判据自动将某些恶意的IP自动加入IPTables的输入链,将其数据包丢弃。
我自使用Snort+Guardian以来,每天可以看到很多的恶意行为被终止,心里很是高兴!

推荐大家使用!

安装步骤:
1)安装Snort:
*现在Snort & Guardian,目前下载地址为:
http://www.snort.org/dl/snort-2.3.0RC2.tar.gz
http://www.snort.org/dl/contrib/other_tools/guardian/guardian-1.6.tar.gz

*将上述文件拷贝至/tmp
*tar zxvf *.tgz
*cd snort-2.3.0RC2
*./configure
*make
*make install
*mkdir /etc/snort
*cd /etc/snort
*wget http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz
* tar zxvf snortrules-snapshot-CURRENT.tar.gz
*mkdir /var/log/snort
*cd /etc
*vi snort.conf
修改后一些关键设置如下:
var HOME_NET yournetwork
var RULE_PATH /etc/snort/rules
preprocessor http_inspect: global \
iis_unicode_map /etc/snort/rules/unicode.map 1252
include /etc/snort/rules/reference.config
include /etc/snort/rules/classification.config

如:yournetwork 220.8.0.0/16

同时,可以选择将类似
include $RULE_PATH/local.rules
等,前面的#号去掉,设置自己的规则集

* /usr/local/bin/snort -D -l /var/log/snort -c /etc/snort.conf

* 将上一条命令写入/etc/rc.d/rc.local

2)安装guardian---需要perl支持
* cd /tmp
* tar zxvf guardian-1.6.tar.gz
* cd guardian-1.6
* echo > /etc/guardian.ignore
* cp guardian.pl /usr/local/bin/.
* cp scripts/iptables_block.sh /usr/local/bin/guardian_block.sh
* cp scripts/iptables_unblock.sh /usr/local/bin/guardian_unblock.sh
* cp guardian.conf /etc/.
* vi /etc/guardian.conf
如下:
HostGatewayByte 1
# guardian的日志文件
LogFile /var/log/guardian.log

#guardian从何处读取snort的日志
AlertFile /var/log/snort/alert

#将你需要忽略的IP放在此文件中
IgnoreFile /etc/guardian.ignore

# 封锁IP的最长时间,99999999为没有时限
TimeLimit 86400

* /usr/bin/perl /usr/local/bin/guardian.pl -c /etc/guardian.conf
* 将上一条命令加入 /etc/rc.d/rc.local

至此,完成设置

注意:
1)snort的规则文件经常更新,可以使用如下脚本自动更新:
#!/bin/sh
cd /etc/snort
wget http://www.snort.org/dl/rules/snortrules-snapshot-CURRENT.tar.gz
tar zxvf snortrules-snapshot-CURRENT.tar.gz
exit 0

*将上述脚本存为snortupdate,并放置到/etc/cron.daily/下,可以每天更新一次;

2)guardian有时会自动退出,可以使用如下脚本解决:
#!/bin/sh
/usr/local/bin/killguardian
/usr/local/bin/guardian.pl -c /etc/guardian.conf
exit 0

将上述脚本存为restartguardian,放置到/usr/local/bin

同时,crontab -e,加入如下一句:
* */6 * * * /usr/local/bin/restartguardian

意思为:每6小时重新启动guardian


脚本:killguardian
#!/usr/bin/perl
#杀死当前guardian.pl进程,需要安装perl module Proc::ProcessTable
#访问http://www.cpan.org可以获得上述module
use Proc::ProcessTable;

$t = new Proc::ProcessTable;

foreach $p (@{$t->table})
{

kill 9, $p->pid if $p->cmndline =~ 'guardian.pl';

}

(http://www.fanqiang.com)

原文链接:http://www.linuxforum.net/docnew/showflat.php?Board=new&Number=941

标签:安全技术 | 浏览数(995) | 评论数(0) | 2007-03-31
[转载]使用Oinkmaster自动升级Snort规则  

作者:JP Vossen TechTarge (2005-04-01 11:25:23)

 
(http://www.fanqiang.com)

原文链接:http://www.yesky.com/searchsecurity/505532403951861760/20041103/1871528.shtml

当你使用Snort的时候,你可能会发现一些默认的规则对你毫无用处,而一些你需要的规则却不能在默认情况下使用,甚至有时候你必须修改一些规则。由于Snort的规则像你的抗病毒工具一样需要定期更新,而每次下载新的规则后手动恢复以前的设置又很不切实际。值得庆幸的是,有一个免费工具Oinkmaster可以帮你做到这一切,它可以运行在UNIX 和Windows系统上。(由于Oinkmaster是用Perl语言编写的,因此在Windows系统上运行时需要ActivePerl文件的支持)。

  在经过几年的测试运行后,2004年5月发布了第一个正式版本的Oinkmaster。事实上在Snort团体内部,Oinkmaster一直被当作一个规则更新器来使用。Oinkmaster按照配置文件中你所定义的操作运行。首先,你要通过超文本传输协议、安全超文本传输协议、文件传输协议、文件和SCP方法获得最新的规则。然后,你定义哪些文件需要更新而哪些文件需要跳过;哪些签名ID(SIDs)需要修改;哪些签名ID应该使能而哪些签名ID应该禁用。考虑到可以用模板方式进行配置,你也可以根据需要任意引用文件。Oinkmaster自带的配置文件具有完备的归档信息,而且包含有用的默认配置,但是你仍需要仔细浏览以确认你下载的规则快照与你运行的Snort版本相符合。

  你可以使用Oinkmaster直接升级你的嗅探器,而另一个更好的办法是:首先用一个配置文件去更新一个分段目录,并且报告更新的详细信息。只要你确认并通过了这些修改,就可以使用另一个配置文件去实际升级嗅探器。(详情请见http://oinkmaster.sourceforge.net/faq.shtml上Oinkmaster的常见问答集Q3)。

  你只需要将签名ID添加到“使能”或者“禁用”列表中,就能轻易地使能或者禁用它。修改一个签名ID也很简单,只要用一个正则表达式描述你的改变就可以。利用模板还可以简化大量的重复修改操作。由于Snort规则也是使用正则表达式描述的,因此,如果你对正则表达式不是很熟悉,还是有必要去了解一些。因为在其它编程领域正则表达式的应用也非常广泛。

  2004年10月发布的1.1版Oinkmaster(http://oinkmaster.sourceforge.net/changelog.shtml)添加了两个新的报表格式,以便更明确地显示规则的改动之处(通过-s和-m在修改日志文件中查看)。Oinkmaster的归档文件非常完备,是一个学习使用该工具的全面参考资料。如果你使用Snort的话,那么花点时间研究Oinkmaster吧--我保证你不会后悔。

标签:安全技术 | 浏览数(813) | 评论数(0) | 2007-03-31
体验SPAGINA---SafeWord Agent For Windows  

最近从SAFEWORD厂商要到的AGENT,体验了一下,写成基本的笔记,没什么可读性,让自己记着些资料而已:P

地址在:

http://www.i170.com/attach/56FE681D-559E-4C48-877C-2B1CB266A3EB

各位大侠若发现问题请务必与我联系,谢谢:)

标签:安全技术 | 浏览数(931) | 评论数(0) | 2007-03-19
[操作文]Apache配置https全过程  

[操作文]Apache配置https全过程
writer: demonalex[at]163[dot]com

 

实验环境:
FreeBSD server5.demonalex 4.7-RELEASE FreeBSD 4.7-RELEASE #0: Wed Oct  9 15:08:34 GMT 2002     root@builder.freebsdmall.com:/usr/obj/usr/src/sys/GENERIC  i386


系统默认自带了cc/gcc、tar、fetch、openssl。


安装过程:
#cd /usr/local/sbin
#fetch http://mirror.olnevhost.net/pub/apache/httpd/apache_1.3.37.tar.gz
#fetch http://www.modssl.org/source/mod_ssl-2.8.28-1.3.37.tar.gz
#tar -zxvf apache_1.3.37.tar.gz
#tar -zxvf mod_ssl-2.8.28-1.3.37.tar.gz
关于为什么一定要用apache1.3这个问题我是很无奈的...
#cd mod_ssl-2.8.28-1.3.37
#./configure --with-apache=../apache_1.3.37
#cd ../apache_1.3.37
#./configure --enable-module=ssl
#make
接下来是make certificate,提示是:
+---------------------------------------------------------------------+
| Before you install the package you now should prepare the SSL       |
| certificate system by running the 'make certificate' command.       |
| For different situations the following variants are provided:       |
|                                                                     |
| % make certificate TYPE=dummy    (dummy self-signed Snake Oil cert) |
| % make certificate TYPE=test     (test cert signed by Snake Oil CA) |
| % make certificate TYPE=custom   (custom cert signed by own CA)     |
| % make certificate TYPE=existing (existing cert)                    |
|        CRT=/path/to/your.crt [KEY=/path/to/your.key]                |
|                                                                     |
| Use TYPE=dummy    when you're a  vendor package maintainer,         |
| the TYPE=test     when you're an admin but want to do tests only,   |
| the TYPE=custom   when you're an admin willing to run a real server |
| and TYPE=existing when you're an admin who upgrades a server.       |
| (The default is TYPE=test)                                          |
|                                                                     |
| Additionally add ALGO=RSA (default) or ALGO=DSA to select           |
| the signature algorithm used for the generated certificate.         |
|                                                                     |
| Use 'make certificate VIEW=1' to display the generated data.        |
|                                                                     |
| Thanks for using Apache & mod_ssl.       Ralf S. Engelschall        |
|                                          rse@engelschall.com        |
|                                          www.engelschall.com        |
+---------------------------------------------------------------------+
#make certificate TYPE=custom
STEP 0: Decide the signature algorithm used for certificates
The generated X.509 certificates can contain either
RSA or DSA based ingredients. Select the one you want to use.
Signature Algorithm ((R)SA or (D)SA) [R]:按回车
STEP 0是选择加密算法,选择默认的R/RSA就可以了。

STEP 1: Generating RSA private key for CA (1024 bit) [ca.key]
4337667 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
等待系统随机生成ca.key(CA-“证书颁发机构”的私钥)

STEP 2: Generating X.509 certificate signing request for CA [ca.csr]
Using configuration from .mkcert.cfg
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
1. Country Name             (2 letter code) [XY]:输入CN(国家名称缩写)
2. State or Province Name   (full name)     [Snake Desert]:输入GuangDong(所在省份)
3. Locality Name            (eg, city)      [Snake Town]:输入GuangZhou(所在地市)
4. Organization Name        (eg, company)   [Snake Oil, Ltd]:输入demonalex.net(组织名)
5. Organizational Unit Name (eg, section)   [Certificate Authority]:输入demonalex.net(组织单元名)
6. Common Name              (eg, CA name)   [Snake Oil CA]:输入demonalex.net(日常使用名称)
7. Email Address            (eg, name@FQDN) [ca@snakeoil.dom]:输入demonalex@163.com(管理员邮件)
8. Certificate Validity     (days)          [365]:输入3650(CA的有效期,我这里输入了10年)

STEP 3: Generating X.509 certificate for CA signed by itself [ca.crt]
Certificate Version (1 or 3) [3]:按回车

STEP 4: Generating RSA private key for SERVER (1024 bit) [server.key]
4337667 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
等待系统随机生成server.key(服务器的私钥)

STEP 5: Generating X.509 certificate signing request for SERVER [server.csr]
Using configuration from .mkcert.cfg
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
1. Country Name             (2 letter code) [XY]:输入CN
2. State or Province Name   (full name)     [Snake Desert]:输入GuangDong
3. Locality Name            (eg, city)      [Snake Town]:输入GuangZhou
4. Organization Name        (eg, company)   [Snake Oil, Ltd]:输入demonalex.net
5. Organizational Unit Name (eg, section)   [Webserver Team]:输入demonalex.net
6. Common Name              (eg, FQDN)      [www.snakeoil.dom]:输入demonalex.3322.org(注意:这个值一定要是你的网站实际使用的域名)
7. Email Address            (eg, name@fqdn) [www@snakeoil.dom]:输入demonalex@163.com
8. Certificate Validity     (days)          [365]:输入365(注意:这个值不宜输入太大)

STEP 6: Generating X.509 certificate signed by own CA [server.crt]
Certificate Version (1 or 3) [3]:按回车

STEP 7: Enrypting RSA private key of CA with a pass phrase for security [ca.key]
The contents of the ca.key file (the generated private key) has to be
kept secret. So we strongly recommend you to encrypt the server.key file
with a Triple-DES cipher and a Pass Phrase.
Encrypt the private key now? [Y/n]: 输入Y(使用一个字符串为ca.key加密)
read RSA key
writing RSA key
Enter PEM pass phrase:输入一个加密字符串,如“demonalex”
Verifying password - Enter PEM pass phrase:重新输入上一步的加密字符串
Fine, you're using an encrypted private key.

STEP 8: Enrypting RSA private key of SERVER with a pass phrase for security [server.key]
The contents of the server.key file (the generated private key) has to be
kept secret. So we strongly recommend you to encrypt the server.key file
with a Triple-DES cipher and a Pass Phrase.
Encrypt the private key now? [Y/n]: 输入Y(使用一个字符串为ca.key加密)
read RSA key
writing RSA key
Enter PEM pass phrase:输入一个加密字符串
Verifying password - Enter PEM pass phrase:重新输入上一步的加密字符串
Fine, you're using an encrypted RSA private key.

最后得到的提示如下:
RESULT: CA and Server Certification Files

o  conf/ssl.key/ca.key
   The PEM-encoded RSA private key file of the CA which you can
   use to sign other servers or clients. KEEP THIS FILE PRIVATE!

o  conf/ssl.crt/ca.crt
   The PEM-encoded X.509 certificate file of the CA which you use to
   sign other servers or clients. When you sign clients with it (for
   SSL client authentication) you can configure this file with the
   'SSLCACertificateFile' directive.

o  conf/ssl.key/server.key
   The PEM-encoded RSA private key file of the server which you configure
   with the 'SSLCertificateKeyFile' directive (automatically done
   when you install via APACI). KEEP THIS FILE PRIVATE!

o  conf/ssl.crt/server.crt
   The PEM-encoded X.509 certificate file of the server which you configure
   with the 'SSLCertificateFile' directive (automatically done
   when you install via APACI).

o  conf/ssl.csr/server.csr
   The PEM-encoded X.509 certificate signing request of the server file which
   you can send to an official Certificate Authority (CA) in order
   to request a real server certificate (signed by this CA instead
   of our own CA) which later can replace the conf/ssl.crt/server.crt
   file.

Congratulations that you establish your server with real certificates.

#make install
安装完成,接下来是启动:
#/usr/local/apache/bin/apachectl startssl
Apache/1.3.37 mod_ssl/2.8.28 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.
Server server5.demonalex:443 (RSA)
Enter pass phrase:输入make certificate中STEP 8中设定的加密字符串
若输入成功的话将提示:
Ok: Pass Phrase Dialog successful.
/usr/local/apache/bin/apachectl startssl: httpd started
整个安装过程完成。

标签:安全技术 | 浏览数(1572) | 评论数(1) | 2007-03-14

Powered by Haiwit