正在加载...
 
yum的说明书  

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

标签:安全技术 | 浏览数(899) | 评论数(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。

标签:安全技术 | 浏览数(905) | 评论数(1) | 2007-05-01
最近的相片  

最近见磁力也只是和他吃吃饭才有空了。。。

磁力:

在装“品茶”,一看就知道连喝的是什么茶都不知道:D

偶:

被偷拍的,最近很憔悴,唉。。。

标签:写真图鉴 | 浏览数(913) | 评论数(6) | 2007-04-25
[整理文]分析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。

标签:安全技术 | 浏览数(1035) | 评论数(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(英文)。
 

标签:安全技术 | 浏览数(775) | 评论数(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和端口号码,服务器可以很轻松的区别出不同的会话,来进行数据的分发。

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

标签:安全技术 | 浏览数(1029) | 评论数(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。




标签:安全技术 | 浏览数(853) | 评论数(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

标签:安全技术 | 浏览数(892) | 评论数(0) | 2007-04-05
臭味相投  

有时发现“臭味相投”的人特别相似,晚上一两点会打电话来和我讨论渗透这些问题的估计就只有磁力这BT,幸好我们是同一类人,我也在做差不多的事,真是个有趣的愚人节:P

另外,最近的运气很‘背’,找个工具的教程居然找不到,翻查了过往的杂志,最近居然发现这个工具的教程发表在上个月的某份杂志中,但偏偏那个月的我又买不到,郁闷,等合订本吧。。。:|

标签:胡言乱语 | 浏览数(907) | 评论数(0) | 2007-04-02
[转载]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

标签:安全技术 | 浏览数(914) | 评论数(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吧--我保证你不会后悔。

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

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

地址在:

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

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

标签:安全技术 | 浏览数(831) | 评论数(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
整个安装过程完成。

标签:安全技术 | 浏览数(1383) | 评论数(1) | 2007-03-14
发表一下“告示”  

http://demonalex.3322.org是我个人一直维护的服务器,前段时间因为硬件问题停顿了一段时间,非常感谢磁力的帮助,使该机器最近重新开始营运,基于“安全”考虑,决定使用HTTPS,网站更换为https://demonalex.3322.org,谢谢各位:)

标签:胡言乱语 | 浏览数(872) | 评论数(1) | 2007-03-14
[转载]用syslog记录UNIX和windows日志  

作者:顾翠文 mail: win2linux@163.com

版权申明:只限于非盈利性网站BSS、BLOG转载和收藏,未经允许,严禁用于商业用途。

在比较大规模的网络应用或者对安全有一定要求的应用中,通常需要对系统的日志进行记录分类并审核,默认情况下,每个系统会在本地硬盘上记录自己的日志,这样虽然也能有日志记录,但是有很多缺点:首先是管理不便,当服务器数量比较多的时候,登陆每台服务器去管理分析日志会十分不便,其次是安全问题,一旦有入侵者登陆系统,他可以轻松的删除所有日志,系统安全分析人员不能得到任何入侵信息。因此,在网络中安排一台专用的日志服务器来记录系统日志是一个比较理想的方案。本文以FreeBSD下的syslog为例,介绍如何利用freebsd的syslogd来记录来自UNIX和windows的log信息。

一, 记录UNIX类主机的log信息:

首先需要对Freebsd的syslog进行配置,使它允许接收来自其他服务器的log信息。
在/etc/rc.conf中加入:
syslogd_flags="-4 -a 0/0:*"

说明:freebsd的syslogd参数设置放在/etc/rc.conf文件的syslogd_flags变量中
Freebsd对syslogd的默认设置参数是syslogd_flags="-s",(可以在/etc/defaults/rc.conf中看到)
默认的参数-s表示打开UDP端口监听,但是只监听本机的UDP端口,拒绝接收来自其他主机的log信息。如果是两个ss,即-ss,表示不打开任何UDP端口,只在本机用/dev/log设备来记录log.

修改后的参数说明:
-4 只监听IPv4端口,如果你的网络是IPv6协议,可以换成-6
-a 0/0:* 接受来自所有网段所有端口发送过来的log信息。
如果只希望syslogd接收来自某特定网段的log信息可以这样写:-a 192.168.1.0/24:*
-a 192.168.1.0/24:514或者-a 192.168.1.0/24表示仅接收来自该网段514端口的log信息,这也是freebsd的syslogd进程默认设置,也就是说freebsd 在接收来自其他主机的log信息的时候会判断对方发送信息的端口,如果对方不是用514端口发送的信息,那么freebsd的syslogd会拒绝接收信息。即,在默认情况下必须:远程IP的514端口 发送到本地IP的514,
在参数中加入*,表示允许接收来自任何端口的log信息。这点,在记录UNIX类主机信息的时候感觉不到加不加有什么区别,因为UNIX类主机都是用 514端口发送和接收syslog信息的。但是在接收windows信息的时候就非常重要了。因为windows的syslog软件不用514端口发送信息,这会让默认配置的syslogd拒绝接收信息。笔者同样在linux系统下用linux的syslogd来配置log服务器,发现linux下的 syslogd就没有那么多限制,只要给syslogd加上-r参数,就可以接收来自任何主机任何端口的syslog信息,在这方面来说freebsd的默认配置安全性要比linux稍微高一点。

修改好syslogd参数后,我们需要修改一下/etc/syslog.conf文件,指定log信息的存放路径,
比如你要记录其他系统的远程登陆登出信息并指定日志存放路径,则需要修改以下行:

authpriv.* /var/log/testlog
这表示把系统的登入登出日志(包括本机系统登陆登出日志)存放到/var/log/testlog文件中。
当然,这是最简陋的做法,因为这样会把所有服务器的登陆登出信息存放在一个文件中,察看的时候很不方便,通常的做法是用一个脚本,对接收到的信息进行简单的分拣,再发送到不同的文件。

如下设置:
authpriv.* |/var/log/filter_log.sh

在记录目标前面加上“|”表示把接收到的信息交给后面的程序处理,这个程序可以是一个专门的日志处理软件,也可以是一个自己编写的小的脚本,举例:

#!/bin/sh
read stuff
SERVER=`echo $stuff |awk ‘{print $4}’`
echo $stuff >> /var/log/login_log/$SERVER.log


这个简单的脚本以IP作为分类依据,先用read读取log信息,用awk取出第四字段(即IP地址或者主机名所在的字段),以该字段为文件名存放该主机的日志。
这样一来,来自192.168.1.1的log会记录到192.168.1.1.log文件中,来自192.168.1.2的log会被记录在 192.168.1.2.log文件中,分析和归类就比较方便了。当然这是一个最简单的例子,读者可以根据自己的需求写出更好的脚本,甚至把log信息分类后插入数据库中,这样日志的管理和分析就更方便了。


最后重启一下syslogd服务,让配置生效:
/etc/rc.d/syslogd restart

OK,服务端的配置完成。现在配置一下客户端:
这里所说的客户端,就是发送自己的日志到远程日志服务器上的主机。
修改/etc/syslog.conf文件:

我们举例你只要记录系统登入登出日志到远程日志服务器上,那么只需要修改以下一行:
authpriv.* @192.168.10.100
这里的192.168.10.100就是log服务器的IP,“@”符号表示发送到远程主机。

OK,重启一下syslog服务:
Linux: /etc/init.d/syslogd restart
BSD: /etc/rc.d/syslogd restart

用logger测试一下是否配置成功:
logger –p authpriv.notice “Hello,this is a test”

到log服务器上去看看,“Hello,this is a test”应该已经被记录下了。最后在客户机上登陆登出几次,看看真实的authpriv信息是否也被成功的记录下。

二, Windows日志的记录

对于UNIX类主机之间记录日志,由于协议、软件和日志信息格式等都大同小异,因此实现起来比较简单,但是windows的系统日志格式不同,日志记录软件,方式等都不同。因此,我们需要第三方的软件来将windows的日志转换成syslog类型的日志后,转发给syslog服务器。
介绍第三方软件evtsys (全称是evntlog to syslog)
这是一个非常小巧而且免费的第三方日志记录软件,下载地址如下:
https://engineering.purdue.edu/E ... cuments/UNIX/evtsys
文件才几十K大小,非常小巧,解压后是两个文件evtsys.dll和evtsys.exe
把这两个文件拷贝到 c:\windows\system32目录下。

打开Windows命令提示符(开始->运行 输入CMD)
C:\>evtsys –i –h 192.168.10.100
-i 表示安装成系统服务
-h 指定log服务器的IP地址
如果要卸载evtsys,则:
net stop evtsys
evtsys -u

启动该服务:
C:\>net start evtsys

打开windows组策略编辑器 (开始->运行 输入 gpedit.msc)

在windows设置-> 安全设置 -> 本地策略 ->审核策略中,打开你需要记录的windows日志。evtsys会实时的判断是否有新的windows日志产生,然后把新产生的日志转换成syslogd可识别的格式,通过UDP 3072端口发送给syslogd服务器。

OK,所有的配置windows端配置完成,现在配置一下syslogd的配置文件.
参数的配置和上面相同,
所不同的是evtsys是以daemon设备的方式发送给 syslogd log信息的。
因此,需要在/etc/syslog.conf中加入:
daemon.notice |/var/log/filter_log.sh
关于syslog 记录设备和记录等级方面的知识可以参考syslog文档。

OK,所有配置设置完成。
Linux 、BSD和windows上的系统日志都可以统一记录到一台日志服务器上轻松管理了。

标签:安全技术 | 浏览数(917) | 评论数(0) | 2007-03-12
最近听说某某脚本有漏洞。。。  

花了两天时间找了这两年的杂志来狂K了一顿,虽然有‘果’,但却不是十拿九稳,郁闷。。。可怜已经两天没睡了,写这个LOG时正准备去睡。。。回头整理一下。。。PS:弄到几台肉鸡,一上之下居然发现都是“公共鸡”(偶还没来得及上传后门之前就已经有N个后门在上面了,看来偶真是太OUT了。。。郁闷),有‘道合’之士可以Q上联系我,大家再“研究研究”。。。ZZzzzZZzzz

标签:胡言乱语 | 浏览数(1033) | 评论数(1) | 2007-02-20

Powered by Haiwit