Archive of the categories: 安全技术

查看Windows已安装程序的bat查询脚本[原创]

近日需要对用户的软件收集,排除工具收集(myuninstall.exe)、手动收集外。
网上有也没有好的删除,看到一个通过对HKLMSOFTWARE注册表的查询,但是这个一般不准确(排除绿色版软件):
如下:

@echo off
title 注册表扫描中...
mode con cols=50 lines=10
for /f "tokens=3 delims=" %%i in ('reg query HKLMSOFTWARE') do (
echo 当前扫描信息: HKLMSOFTWARE%%i
>>reglist.txt echo ++++++++++++++++++
>>reglist.txt echo 软件名称:%%i
>>reglist.txt echo ++++++++++++++++++
if not "%%i"=="Classes" for /f "tokens=4 delims=" %%j in ('reg query HKLMSOFTWARE%%i 2^>nul') do (echo 软件信息: %%j>>reglist.txt)
)
echo 扫描完毕!
ping 127.0>nul
reglist.txt

但添加删除程序,主要还是通过查看如下注册表:
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionUninstall

由于个人水平有限只获取displayname项,但已经够用,代码如下,复制时自己注意空格:

@echo off
rem fengjian.org
title 系统添加删除程序注册表扫描中...
mode con cols=50 lines=10
echo 系统添加删除程序清单(扫描时间:%date% %time%):>reglist.txt
for /f "tokens=7 delims=" %%i in ('reg query HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionUninstall 2^>nul') do (FOR /F "eol=H tokens=2 delims=_" %%j in ('reg query HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionUninstall%%i /v displayname') do @echo %%j >>reglist.txt)
echo 扫描完毕,如显示错误提示,主要系统补丁没有程序名称,暂不显示!
ping 127.0.0.1>nul
reglist.txt

效果如下:
生成文件reglist.txt
内容为:
系统添加删除程序清单(扫描时间:2011/07/20 周三 17:15:51.60):
SZ 360安全卫士
SZ 招行专业版
SZ 招商银行一网通网盾
SZ 极点五笔 7.12版
SZ 谷歌拼音输入法 2.4
SZ Intel(R) Management Engine Interface
SZ Xmanager Enterprise
……

对于SZ置行首的原因,我想懂的人都明白!就不多说了!

麦咖啡8.5i详细设置(8.7i可做参考)

转贴:http://bbs.vc52.cn/thread-64424-1-1.html

一、安装
与其它软件的安装相似,双击安装包中的setup.exe可执行文件,一路下一步即可完成安装。其中有几点需要注意一下:

图1

如(图1)所示,在这里“许可期限类型”可以选择使用期限,点击右侧倒三角型按钮,可以从下拉列表中进行选择“一年、二年或者永久”。在“请选择购买和使用的国家或地区”的下拉列表中可以选择所在国家。

图2

可以选择典型安装或者自定义安装,典型安装默认进行所有功能组件的最大化安装。自宝义安装,可以选择安装相关的组件,如(图2)所示。两种安装方式都可以自定义安装目录。

图3

如(图3)所示,安装过程到这一步的时候,可以选择按访问保护的级别,标准保护或者最大保护。在这里推荐选择标准保护,在软件安装成功后,访问保护规则仍然可以自行定义和修改的。

图4

该软件安装完成后,不需要重新启动电脑,即能使用。这是我第一个次碰到安装完成无需重启是杀毒软件,觉得这真是一个进步。之前的8.0i版本安装完成后需要重启。如(图4)所示,显示的是“VirusScan Enterprise 8.5i”。

图5

推荐安装与之配套的Anti-Spyware Enterprise 8.5i反间谍插件。安装过程比较简单,双击安装包中的setup.exe一路点击“下一步”即可完成安装。成功安装其反间谍插件后,查看软件相关信息界面,如(图5)所示,已经显示为“VirusScan Enterprise +Anti-Spyware Enterprise 8.5i”。

二、设置
Mcafee的最大特点就是可以设置规则来防病毒(包括未知病毒)。

图6

图7

右击Mcafee屏幕右下角图标,选择“VirusScan控制台(图6),打开mcafee的控制台(图7)。

1、访问保护

图8

右击“访问保护”,选择属性,打开访问保护属性对话框。如(图8)所示。从上至下共计八条。

⑴防间谍标准保护
规则里仅有一项内容,设置如(图8)所示,不建议勾选“阻止”和“报告”。其中“阻止”的意思就是对右边所定义的规则进行保护,“报告”的意思就是当有操作触犯了该规则的时候,进行记录到报告,以方便我们查询。如果启用了该规则,虽然保护了IE收藏夹和设置不被更改,但同时也造成了另一个问题:那就是在浏览器的收藏夹管理中将不可管理IE收藏夹(添加或者删除其中的网址)。当然,如果到IE收藏夹文件夹中进行操作,是可以删除收藏夹中的网址的,不过却无法添加新的网址。是为遗憾!曾使用编辑对其规则的排除进程进行添加操作,添加IEXPLORE.EXE,无法解决如上问题。因此不推荐启用该规则,同时使用傲游浏览器,其能够保护IE首页不被修改,在一定程度上保证IE的安全。

⑵防间谍最大保护、防病毒标准保护

图9

这两项中的所有规则建议全部启用阻止,并同时启用报告。注意:其中防间谍最大保护中的“禁止用有程序从Temp文件夹运行文件”(图9)可能会阻止一些正常程序的运行。

图10

例如,启用该阻止规则后,photoshopcs2不能启动运行,提示错误。这个时候,就会发现mcafee在系统栏的图标与之前相比,多了一层红色的背景。这种状态表示它是在提示,有操作触犯了规则。那么由此判断是由于mcafee的规则阻止了软件的正常运行。这个时候,我们可以右击mcafee图标,如(图10)所示。发现多出了一项“打开访问保护日志文件”(可与图6做个比较),选择它,打开访问保护日志可以看到如下内容:

“2006-12-27     16:14:01     1092     CHINA-BCB1B2709chenjian    D:Program FilesAdobeAdobe Photoshop CS2Photoshop.exe    G:tempAdobelm_Cleanup.0001     防间谍程序最大保护:禁止所有程序从 Temp 文件夹运行文件”

依次是触犯规则的时间、系统用户、触犯规则的程序、触犯规则的程序试图何种操作、哪一个规则阻挡了程序。由此可以看出,是“防间谍程序最大保护:禁止所有程序从 Temp 文件夹运行文件”这一规则阻挡了photoshop的正常运行。

图11

为了能够正常使用photoshop,我们可以编辑规则,对进程进行排除。首先选择“防间谍程序最大保护:禁止所有程序从 Temp文件夹运行文件”规则(图9),点击下面的编辑。在规则详细信息对话框中的“要排除的进程”中添加“photoshop.exe”如(图11)所示,确定返回访问保护属性并点击应用。至此排除进程设置完成。再运行photoshop一切正常。
提示:若其它的正常程序不能启动或者运行不正常,可参考上面的方法查看日志,在相应阻挡规则的进程排除项中给以排除即可。启用了哪一个阻挡规则,就应该启用对应的报告。这样的好处是在碰到问题的时候,方便查看和排除。若是不启用报告,就算有操作触犯了规则,也不会生成报告,那么就无法进行查看和准确的排除了。

⑶防病毒最大保护

图12

设置如(图12)所示,“保护缓存文件免受密码和电子邮件地址窃贼的攻击”这一规则,如果启用,可能会造成傲游浏览器等程序运行变慢,可以排除项中排除相关进程。

⑷防病毒爆发控制、通用标准保护

图13

这两项中的规则建议全部启用阻止。Mcafee具有自我保护功能,如(图13)所示,“禁止修改mcafee……”这三项即是。如果希望更改mcafee的设置,需要首先禁用这三项阻止规则,否则某些设置可能设置完成后无却无法保存,甚至无法卸载mcafee。

⑸通用最大保护

图14

该项中的规则设置如(图14)所示。“禁止程序注册为服务”规则,如果启用,需要在排除项中排除相关进程。相当部分的程序需要将自己注册为服务才能正常使用,我没有设置启用。“禁止HTTP通讯”规则,如果启用,同样需要在排除项中排除相关进程,否则,将不能进行浏览网页等很多网络操作。
最后一个用户自定义规则,是mcafee的高级设置,将在后面与mcafee的常用语法和通配符一同介绍。

2、缓冲区溢出保护

图15

建议开启保护模式。右击缓冲溢出保护,选择属性,打开属性设置对话框设置如(图15)所示。不建议安装两个杀毒软件,如果安装两个杀毒软件,造成冲突,在排除项中排除另外一个杀毒软件的程序名,可能可以解决问题。

3、电子邮件传递扫描程序
右击选择属性,可以进行相关设置。该项使用默认设置即可。

4、有害程序策略

图16
建议全部开启。我们还可以自定义检测项。如(图16)所示,选择“用户自定义检测项”选项卡,点击添加按钮。在弹出的用户自定义有害程序对话框中的文件名处,输入病毒或者是流氓软件的可执行程序名(例如:3721.exe),描述处添加描述即可。

5、按访问扫描程序

图17

这个就是mcafee的实时监控了。打开属性,选择常规设置“常规”选项卡,去掉“关机过程中扫描软盘”前的勾,其它设置保持默认即可,如(图17)。

图18

选择所有进程“检测项”选项卡,如果你的电脑不在局域网中,请去掉“在网络驱动器”前的勾,如(图18)所示。

图19

选择所有进程“高级”选项卡,可以去掉压缩文件栏里两个项目前的勾,如(图19)所示。因这里的设置的时实时监控,我认为没有必要启用这两项,同时可以节省些系统资源。我将在后面的按需扫描设置时再将之开启。

图20

选择所有进程“操作”选项卡,如(图20)所示。这里可以设置发现威胁时的主要操作和辅助操作(即发现威胁时的第一操作,及第一操作失效后执行的第二辅助操作)。“有害程序”选项卡设置同理。

6、隔离管理器策略

图21

右击隔离管理器策略,打开属性,选择“策略”选项卡,如(图21)。在这里点击浏览,可以自定义设置病毒隔离文件夹的路径以及被隔离多久的文件将被删除。

图22

选择“管理器”选项卡,可以对隔离器中选定的项目进行重新扫描、检查误报、删除、查看属性等操作。也可以一次选择多个项目。方法是首先选择一个,然后按住“CTRL”键再单击另外的项目。若是需要选择连续的多个项目,可以首先选择一个,然后按下“SHIFT”键不放,在最后一个项目上点击即可。

7、完全扫描、目标扫描

图23

这两项都属于按需扫描。打开完全扫描属性对话框,选择“位置”选项卡,如(图23)。这里可以设置需要扫描的位置。

图24

选择“检测”选项卡如(图24)。因这里是按需扫描,请勾选压缩文件下两个项目前的勾。

图25

“高级”选项卡设置如(图25)。在系统利用率那里可以拖动拉杆调节扫描时对系统资源的占用率,使其在扫描时不至于占用过多系统资源,导致其它程序运行变慢。
“操作”和“有害程序”这两个选项卡可以设置检测到威胁和有害程序时执行的主要操作和辅助操作。

图26

“报告”选项卡,如(图26)。勾选记录到文件,即是记录到报告日志。点击浏览,可以设置报告日志的保存位置。勾选记录到文件的同时,应勾选限制日志文件大小,并设置一个数值。如不勾选,那么日志文件的大小将是没有限制。随着记录的日志内容越来越多,这个日志文件将会越来越大。(目标扫描与按访问扫描中的报告设置,与它是完全一样的。)

图27

图28

按需扫描,我们是可以定制的。可以让它在我们设定的时间里执行扫描任务。如(图26),点击右侧的“计划”按钮,打开如(图27)对话框,勾选“启用”后点击“计划”选项卡,即可定制任务,如(图28)。

8、AutoUpdata

图29

图30

图31

这个就是mcafee的升级设置。右击AutoUpdata选择属性,打开升级对话框如(图29)。点击“立即更新”按钮,mcafee将马上更新。这与右击mcafee屏幕右下角图标,选择立即更新是一样的。点击“计划”按钮,勾选“启用”(如图30),再点击“计划”选项卡,从运行任务的下拉列表中,可以定制自动更新的时间(如图31)。
三、mcafee常用通配符及语法

1、? :表示单个的任意字符。例如,S??表示以S开头的三个字符。可以表示STX、SSY、SYS……而不能表示STMP、SU、SSSSS……
2、 *:当它做为通配符使用的时候,表示任意的多个字符。例如,ST*表示以ST开头的任意个字符。可以表示STMP、STK、STUUPO……S*.*表示以S开头的所有文件。可以表示SETUP.EXE、SKY.REG、SYS.BMP……等等。同时它还具有另外一层含义,表示所有的操作(所有的进程)。
3、***** :表示硬盘里的所有文件。
4、System:Remote :表示所有的远程操作控制。
5、** :表示在反斜杠()字符前后任意多个层级目录。例如,***.EXE表示本地所有的.EXE可执行文件,C:WINDOWS**表示C盘WINDOWS目录下的所有文件。
6、那么C:WINDOWS**与C:WINDOWS有什么区别呢?这里需要特别注意一下。C:WINDOWS**表示的是C盘WINDOWS目录下的所有文件,包括子文件夹中的文件。而C:WINDOWS仅表示C盘WINDOWS目录中的文件,并不包括子目录中的文件。仔细想想即可明白。

四、用户自定义规则设置

这里的设置就是mcafee的精髓之所在,设置得好,几乎能够做到百毒不侵。对系统的了解程度越高,就能够设置得越详细,安全程度也就越高。
(注:以上通配符、语法的含义需要大家深刻理解,在下面要说的用户自定义规则中非常有用。)

图35

图36

打开mcafee控制台,右击“访问保护”选择属性,打开访问保护属性对话框。选择“用户自定义规则”并点击“新建”按钮,弹出选择新规则类型对话框(如图35),新建一个自定义规则。对话框****有三种规则类型,选择第一个端口阻止规则,并确定,打开网络端口访问保护规则对话框。这里就是mcafee简单的防火墙功能。可以对端口进行相应的设置。经扫描,发现自己系统的135端口是开放在,因此在这里设置一了个端口阻止规则来屏闭掉135端口,设置如(图36)。在要包含的进程中输入*,表示所有的操作、进程均不能由网络或者本地访问135端口。

图37

图38

图39

接下来新建一个阻止远程对本地文件进行操作的规则。“用户自定义规则——新建”,选择第二项“文件/文件夹阻止规则”并确定(图37)。打开文件/文件夹访问保护规则对话框,设置如(图38)。在要包含的进程中输入System:Remote代表了所有的远程操作。因有时候需要用到QQ的远程协助功能,因此在要排除进程中输入QQ.exe, CoralQQ.exe将QQ和珊瑚虫给以排除。要禁止的文件操作下的五项全部勾选。
我们再来新建一个规则,禁止在WINDOWS目录中创建、修改、删除文件。“用户自定义规则——新建”,选择“文件/文件夹阻止规则”并确定(图37)。打开文件/文件夹访问保护规则对话框,设置如(图39)。在要包含的进程中输入*,代表任何的操作、所有的进程都不可以在WINDOWS目录中创建、修改、删除任何文件。而有些正常的程序需要对该目录中的文件进行操作才能正常运行,因此我们需要把这些正常的程序在要排除的进程中输入,给以排除(比如updata.exe是mcafee的病毒库升级程序,它需要将新的病毒为写入C:Program FilesCommonFilesMcafeeEngine目录,不排除它,mcafee将无法成功升级病毒库)。勾选正在创建的新文件和正在删除的文件并确定。
注意:在该规则中,要禁止的文件操作****有五项内容(图39),它们的含义大家需要理解。为了便于说明,在这里仅以各项最末处的字母来表示各项的内容(增加一项内容,重命名文件=A)。相关进程:Vstskmgr.exe
G=G+I+K,H=H+A,J=J+A
比如我们创建了一个规则:禁止在G盘的“档案.doc”写入数据。那么,在要禁止的文件操作项中,不仅需要勾选“I”,同时还需要勾选“H”或者“J”中任意一个,才能达到保护的目的。否则,其他的操作者仍然可以把数据写入该文件。方法是,先对该文件进行重命名,重命名之后,就可以在文件中任意增加内容,然后再重命名把文件名改回来。
最后一个类型是注册表阻止规则。由于本人对注册表不甚了解,在些略过。

图40

mcafee的访问保护规则异常强大,希望大家能通过上面的介绍,定制出适合于自己的强大规则来保护心爱的电脑。当然,在我们自定义规则的时候,可能并不知道所定义的规则会阻止了哪些正常程序的运行(不可能一次性排除所有的正常程序)。在过后正常程序运行受阻时(触犯规则),通过查看访问保护日志,就需要在相就的阻止规则中对该程序给以排除。还好,规则是可以随时编辑的。在访问保护属性对话框中选中相应的规则,点击“编辑”按钮(图40),即可打开该规则的详细信息,然后在要排除的进程中添加程序。

图41

图42

如果定义了一条规则:禁止在D盘中安装程序。在防止别人将程序安装到D盘的同时,也阻止了自己将程序安装到D盘。那么我想安装程序到D盘的时候,怎么办呢?方法一,找到该规则,去掉规则前阻止那个勾。方法二,去掉访问保护属性对话框中“启用访问保护”前的勾(图40)。方法三,在控制台中,右击访问保护选择禁用(图41)。然后再安装程序即可。其中使用方法二和方法三,产生的作用是完全一样的,都是禁用访问保护规则。禁用访问保护后,mcafee屏幕右下角图标右键菜单中的“禁用按访问扫描”将被激活(图42)。

五、mcafee的进程和服务

mcafee8.5i安装完成后,共产生7个进程:
1、UpdaterUI.exe —— 自动升级进程
2、shstat.exe —— 系统栏里的图标进程
3、frameworkservice.exe —— McAfee Framework Service服务(mcafee产品共享组件框架)
4、naPrdMgr.exe —— McAfee Framework Service服务(mcafee产品共享组件框架)
5、Vstskmgr.exe —— McAfee Task Manager服务(mcafee计划任务,包括计划扫描和计划升级)
6、Mcshield.exe —— McAfee McShield服务(核心进程,为系统提供按访问扫描实时监控)
7、Mctray.exe—— 描述为mcafee安全代理任务栏延长
Mcafee8.5i安装完成后,生成三个服务:
1、McAfee McShield服务
mcafee的核心服务,为系统提供按访问扫描服务,即实时监控。
推荐设置:自动启动。
2、McAfee Framework Service服务
这个是McAfee 产品的共享组件框架。
设置:按情形自动或者手动
注意:一定要启动这个服务才能升级病毒库。启动服务后,会连带启动些相关进程。为了节省资源,升级结束后可以在资源管理器中结束相关进程。如果设置为手动关闭的话,就不能够升级了。若想要升级,首先就得去操作系统的服务里手动启动它。
相关进程:naPrdMgr.exe、frameworkservice.exe
3、McAfee Task Manager服务
推荐设置:手动关闭
这个是mcafee的计划扫描计划更新任务,如果需要计划扫描和自动升级,就打开它。在关闭它的情形下,实时监控和扫描病毒都不会受到任何影响,在需要升级的时候,右击任务栏图标,选择立即更新即可。在关闭它的情形下,控制台也会随之关闭。启动控制台,相关进程会随之启动。
六、保存mcafee的规则文件
设置出一套适合于自己使用的强大规则,需要消耗掉相当的时间和精力。如果重新安装了系统,再安装mcafee的时候,再重新设置规则就显得相当的麻烦。难道就没有办法保存我们花了时间和精力去设置好的规则吗?
办法还是有的。运行——regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINESOFTWAREMcAfeeVSCoreOn Access ScannerBehaviourBIocking]项,在右边找到AccessProtectionUserRules。
里面的就是我们设置的自定义规则信息。选择该项,菜单命令“文件——导出”即可导出我们的自定义设置。如果要保存全部的规则设置,则导出BehaviourBlocking整个子项。在重装mcafee后,只要双击导出的.reg文件,马上就可以将我们设置好的规则重新导入到mcafee中。如果不能导入,请先禁用访问保护,再行导入。
附(右键迅雷下载):
v8.5i 规则图例:http://www.3ddown.com/soft/121.htm
v8.5i 中级教程:http://www.3ddown.com/soft/121.htm
v8.5i 官方多国语言帮助文件:http://www.3ddown.com/soft/121.htm

Mcafee HIPS7.0 安装须知和使用初步参看:http://hi.baidu.com/ylo0/blog/item/59d196185d1a470434fa414e.html

mcafee VirusScan杀毒软件企业版设置无法保存的解决

一、部分集成版的存在此问题

解决方法:
删除:
C:Program FilesNetwork AssociatesVirusScanMIDvsecfg.cab

有些版本的位置为:
C:Program FilesMcAfeeVirusScan EnterpriseMIDvsecfg.cab

不同的集成版该包大小也不一样
这个压缩包包含了集成版集成时候的设置(含站点和规则设置的备份)

二、禁用这三项阻止规则-通用保护

这两项中的规则建议全部启用阻止。Mcafee具有自我保护功能,“禁止修改mcafee……”这三项即是。如果希望更改mcafee的设置,需要首先禁用这三项阻止规则,否则某些设置可能设置完成后无却无法保存,甚至无法卸载mcafee。

三、以上无法解决,只能安装正式版

麦咖啡8.8i,我载下来安装http://www.mcafee.com/cn/downloads/downloads.aspx(麦咖啡网址)如图1:

然后输入GN(2106833-NAI)出现下图,并选择McAfee active VirusScan

再选择
Endpoint Security中的VirusScan Enterprise v8.8出现一大串英文,选择我同意,在选择
VSE880LML.zip
但我们可以从http://www.rayfile.com/zh-cn/files/74094802-35a6-11e0-b86a-0015c55db73d/同样下载到麦咖啡8.8i
现在我们开始安装:
单击VSE880LML.zip从”epo45……………………”到“window…………………………”全部解压,然后打开刚刚解压的文件夹选择VSE880,在弹出的窗口中第一项选择永久,第二项选择中国即可,然后一直下一步直到完成。

用Ubuntu破解wep无线加密 [转]

根据我的测试,一般第4步骤会出现类似如下问题:

Waiting for beacon frame (BSSID: 00:27:19:25:5D:2A) on channel -1

mon0 is on channel -1, but the AP uses channel 7

 

可能是与内核有一定的关系,我的版本是ubuntu 10.10,暂时无法解决~待各位大侠提提解决~

以下是详细步骤:

一、安装ubuntu和aircrack-ng
先安装 Ubuntu最新版,更新系统到最新
终端中输入 sudo apt-get install aircrack-ng 安装aircrack-ng
没联网的话 到别的电脑上网下载aircrack-ng Ubuntu DEB安装包 安装

二、破解过程
1、启动无线网卡的监控模式,在终端中输入:sudo airmon-ng start wlan0
(wlan0是无线网卡的端口,可在终端中输入 ifconfig 查看)

2、查看无线AP在终端中输入:
sudo airodump-ng mon0
(特别说明:启动监控模式后无线网的端口现在是 mon0 !!!)
看看有哪些采用wep加密的 AP在线,然后按 ctrl+c 退出,保留终端

3、抓包
另开一个终端,输入:
sudo airodump-ng -c 6 –bssid AP’s MAC -w wep mon0
(-c 后面跟着的6是要破解的AP工作频道,–bissid后面跟着的AP’s MAC是要欲破解AP的MAC地址,-w后面跟着wep的是抓下来的数据包DATA保存的文件名,具体情况根据步骤2里面的在线AP更改频道和MAC地 址,DATA保存的文件名可随便命名)

4、与AP建立虚拟连接
再另开一个终端,输入:
sudo aireplay-ng -1 0 -a AP’s MAC -h My MAC mon0
(-h后面跟着的My MAC是自己的无线网卡的MAC地址)

5、进行注入
成功建立虚拟连接后输入:
sudo aireplay-ng -2 -F -p 0841 -c ff:ff:ff:ff:ff:ff -b AP’s MAC -h My MAC mon0
现在回头看下步骤 3的终端是不是DATA在开始飞涨!

6、解密
收集有5000个以上的DATA之后,另开一个终端,输入:
sudo aircrack-ng wep*.cap
进行解密
(如果没算出来的话,继续等,aircrack-ng 会在DATA每增加多5000个之后就自动再运行,直到算出密码为至)

7、收工
破 解出密码后在终端中输入 sudo airmon-ng stop mon0 关闭监控模式,不然无线网卡会一直向刚刚的AP进行注入的,用ctrl+c退出或者直接关闭终端都是不行的。 现在可以冲浪去了,或者重复步聚1-7破解其它的AP 呵呵兄弟们冲浪时可别太猛了,不然把主人给冲翻了可就不好。

ubuntu下使用skipfish扫描网站漏洞

skipfish是谷歌开发网站完全扫描工具,强大易用。

注:安装ubuntu所需软件库:

sudo apt-get install libssl-dev build-essential zlibc zlib-bin libidn11-dev libidn11

不然可能出现编译错误,代码如下:

cc -L/usr/local/lib/ -L/opt/local/lib skipfish.c -o skipfish -O3 -Wno-format -Wall -funsigned-char -g -ggdb -I/usr/local/include/ -I/opt/local/include/ -DVERSION=”1.78b”

http_client.c database.c crawler.c analysis.c report.c -lcrypto -lssl -lidn -lz

http_client.c:39: fatal error: idna.h: 没有那个文件或目录

compilation terminated.

make: *** [skipfish] 错误 1

---------------------

安装skipfish:

wget http://skipfish.googlecode.com/files/skipfish-1.78b.tgz

tar zxvf skipfish-1.78b.tgz
mv skipfish-1.78b skipfish
cd skipfish
make
//编译完成,在目录中生成skipfish可执行程序
cp dictionaries/complete.wl skipfish.wl
//拷贝其中一个字典,用来扫描

进行扫描:
./skipfish -o output_folder http://www.example.com
//其中output_folder是输出目录,扫描结束后可打开index.html查看扫描结果

—-

最近用过IBM 的APPSCAN的感觉这个是不错~就是没有最新的版本8.0的破解可以测试一下的。对这个skipfish还不是很了解~

【转】微软证实QQ侵犯用户隐私证据公布

博主:什么才是安全的,我的QQ并没有安装qq医生之类的,但还是有访问临时文件,cookie的情况!实属不应该。

QQ现在强大到可以了解一个人的上网行为,校友,朋友,商务。难得不就是无所不能?

————–

微软证实QQ侵犯用户隐私证据公布

近期,360隐私保护器曝出QQ“窥私门”事件。无数网民发现,QQ聊天工具在暗中密集扫描电脑硬盘、窥视用户的隐私文件,另两款聊天工具MSN和阿里旺旺则没有类似行为。随即有网友曝料称,早有人通过微软Process Monitor(进程监视工具)发现QQ窥私的秘密,很多重视信息安全的企业甚至为此禁止员工使用QQ聊天。

据悉,Process Monitor是微软旗下的Windows系统进程监视工具,能够对系统中的任何文件和注册表操作进行监视和记录,帮助用户判断某款软件是否存在“越轨”行为。与360隐私保护器相比,Process Monitor采用了类似的原理,但是监测对象更广泛,适合具备一定电脑知识的用户使用。

笔者下载安装了最新的Process Monitor 2.93版,并开启QQ、MSN、阿里旺旺、飞信等聊天工具进行对比测试。在运行这些软件后,既不点击软件面板上的任何按钮,也不进行任何操作,以此判断它们有没有在后台悄悄“翻看”用户的隐私文件。

Process Monitor监测记录表明,QQ不仅会自动访问许多与聊天无关的程序和文档,例如“我的文档”等敏感位置,测试当天的上网记录也没能幸免。随后,QQ还会产生大量网络通讯,很可能是将数据上传到腾讯服务器。短短10分钟内,它访问的无关文件和网络通讯数量多达近万项!MSN等其它聊天工具的行为则要规矩得多,只是访问了自身文件和必要的系统文件。

Process Monitor验证:QQ自动访问用户上网记录等隐私数据,并进行网络通讯

经验证,QQ偷偷访问的隐私信息几乎覆盖了用户上网的一举一动,包括看过哪些网页、装了哪些软件、电脑桌面上有哪些文件、所有Office文档、甚至电脑登陆所有网站、博客、邮箱的登陆信息cookies缓存文件,完全在QQ的监控范围之内。

鉴于Process Monitor是微软提供的工具,其验证结果无疑非常客观、准确。读者可参考以下步骤自行操作,亲眼看看QQ对你隐私的掌握是不是已经到了无孔不入的地步:

1、访问http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx 下载并安装Process Monitor v2.93;

2、运行Process Monitor,在Filter菜单中设置监测过滤条件,包括:

1) Process name is qq.exe, Include (监测并记录QQ进程的活动)

2) Path contains tencent, Exclude (排除QQ访问自身文件的活动)

3) Path begins with C:windows, Exclude (排除QQ访问系统文件的活动)

3、在软件界面中选择Show File System Activity(QQ进程访问的文件),去除对注册表的监测显示,让监测结果更加直观。

syslog记录配置

log是管理员每日需要查看的文件记录。里面记载了大量系统正常和不正常的运行信息,
对管理员分析系统的状况,监视系统的活动是一个相当重要的部分。如何有效的利用
系统的log来 分析和定位攻击的可能呢?我将在下面的文章,介绍一下有关syslog如
何配置和如何使用第三方 工具检查问题。
/etc/syslog.conf文件
设备.行为级别 [;设备.行为级别] 记录行为
注意各栏之间用[Tab]来分隔,用空格是无效的。
注释:
第一栏:设备 描述
auth认证系统,即询问用户名和口令
cron 系统定时系统执行定时任务时发出的信息
daemon某些系统的守护程序的syslog,如由in.ftpd产生的log
kern 内核的syslog信息
lpr 打印机的syslog信息
mail 邮件系统的syslog信息
mark 定时发送消息的时标程序
news 新闻系统的syslog信息
user本地用户应用程序的syslog信息
uucp uucp子系统的syslog信息
local0..7 种本地类型的syslog信息,这些信息可以又用户来定义
*:代表以上各种设备
第二栏:行为级别 描述(危险程度递加)
debug 程序的调试信息
info 信息消息
notice 要注意的消息
warning 警告
err 一般性错误
crit 严重情况
alert 应该立即被纠正的情况
emerg紧急情况
none 指定的服务程序未给所选择的
第三栏:记录归属(举例) 描述
/dev/console send messages to devices 控制台,实际上是可以任何合法的设备名
/var/adm/messages write messages to files 写入/var/adm/messages,定义这里可
以分类
写到不同的log文件中@loghost forward messages to a loghost 其他的日志记录服
务器. 也叫loghost主机fred,user1 send messages to users 传送消息给某用户
(但此用户正登陆的时候可以看到)
*:send messages to all logged-in users 传送消息给所有的在线用户
@符号后面可以是ip,也可以是域名,默认在/etc/hosts文件下loghost这个别名已经指
定给了本机。
另外这一栏也支持m4的宏,下面我们看到的是一个标准的m4宏。在syslog.conf里可以通过
define(`LOGHOST`,hostname)来定义LOGHOST这个常量,注意的是这个LOGHOST可以不是
/etc/hosts下 的loghost这个别名所指向的主机.
ifdef(`LOGHOST', ,
user.err /dev/sysmsg
user.err /var/adm/messages
user.alert `root, operator'
user.emerg *
)
如果用打印机来记录日志文件,可以采用如下方法:
把打印机连接到终端端口/dev/ttya上,在/etc/syslog.conf中加入配置语句.
Auth.notice /dev/ttya
如果是记录到log文件中,一定要注意此文件必须存在,且文件属性为600,否则无法记
录log信息
配置举例
这里举一个比较通用的例子,某一台主机的log记录要求,所有的认证信息存到auth.log ,
各个deamon 的log,包括telnet,ftp的连接和状态记录到deamon.log,mail log单独记录
到maillog.log文件,其他 信息记录与messages里面.另外所有的这些log同样要传到一台
特定的loghost主机。我们首先在 /etc/hosts中定义一台主机的别名为loghost(当然你
可以也可以直接在syslog.conf里指定loghost)

192.168.1.88 deepin.nsfocus.com loghost
下面是符合条件的 syslog.conf的内容: *.info;mail.none;auth.none;deamon.none
/var/adm/messages *.info;mail.none;auth.none;deamon.none @loghost
auth.notice /var/log/auth.log
auth.notice @loghost
deamon.info /var/log/deamon.log
deamon.info @loghost
mail.debug /var/log/mail.log
mail.debug @loghost
改好syslog.conf以后,在定义的目录下确认log文件是否存在,不存在,就用
touch /var/log/auth.log;chmod 600 /var/log/auth.log来建立一个.另外..不要忘记给
syslog发 一个-HUP的信号.用ps �ef |grep syslogd找出syslogd的PID,再用
kill �HUP (刚才查到的)PID 来让syslogd重新读取syslog.conf.定义的loghost需要配置吗?
还是要作一点工作的.实际上最简单 的方法是用*.info /var/log/all.log 把所有主机各种
级别的log记到一个大文件里面。如果你在loghost上也想分类,按照常规写就是了。 在log
记录中会有一个域标识主机名来区别来源于不同主机的log记录。
是不是比想像的简单?实际上也没有必要用m4的宏,直接写也很明了。要注意的是按照syslog
的man 里面的说明,notice级别比info,waring低,但notice级别并不被Info包括也就是说用
auth.waring或 auth.ifo是无法记录在认证时的系统信息的,不过这是在solairs下使用的结
果,在linux和solairs 又不一样,auth.waring可以记录认证信息。
那么local0-7这几个设备名是怎么回事呢? 实际上用他们来记录自己开发的程序的信息是很
方便的。例如在你写的某个shell脚本里,使用类似 与:
logger �p local0.notice �t [tag]…这样的语句,可以利用syslogd帮你记录运行的信息,
当然你的syslog.conf也要加上一条 local0.notice��/var/log/myapps.log 具体logger的
用法,man logger看看就知道了。
Logcheck
由于业务繁忙的主机log往往相当巨大,很多无用的信息会把值得注意的log信息淹没起来,
对于管理 员审计log相当不便,所以一些“偷懒”的管理员们往往自己写上一些脚本来作log
的分类和整理工作。 当然,这些脚本也很容易在 internet上找到,一个易于使用且功能比较
强大的工具是logcheck。 Logcheck可以在
http://www.psionic.com/tools/logcheck-1.1.1.tar.gz 获得,安装是相当简便的, 仅仅只
有一个标准的c程序需要编译,主要运行部分是一个shell脚本。
解开压缩包以后,运行make,按照它的提示选择你所使用的操作系统以后重新make以后,很快
就能安装 完毕。配置文件和主运行脚本均默认安装在/usr/local/etc下主要是 logcheck.sh
主要运行脚本,负责分析本次的log并汇报结果 logcheck.hacking可能有人攻击而在log记录
中出现的关键词 例如,此文件里面默认包括了以下一些关键词
"wiz"
"WIZ"
"debug"
"DEBUG"
ATTACK
nested
VRFY bbs
VRFY decode
VRFY uudecode
VRFY lp
VRFY demo
VRFY guest
VRFY root
VRFY uucp
VRFY oracle
VRFY sybase
VRFY games
vrfy bbs
vrfy decode
vrfy uudecode
vrfy lp
vrfy demo
vrfy guest
vrfy root
vrfy uucp
vrfy oracle
vrfy sybase
vrfy games
expn decode
expn uudecode
expn wheel
expn root
EXPN decode
EXPN uudecode
EXPN wheel
EXPN root
LOGIN root REFUSED
rlogind.*: Connection from .* on illegal port
rshd.*: Connection from .* on illegal port
sendmail.*: user .* attempted to run daemon
uucico.*: refused connect from .*
tftpd.*: refused connect from .*
login.*: .*LOGIN FAILURE.* FROM .*root
login.*: .*LOGIN FAILURE.* FROM .*guest
login.*: .*LOGIN FAILURE.* FROM .*bin
login.*: .*LOGIN FAILURE.* FROM .*uucp
login.*: .*LOGIN FAILURE.* FROM .*adm
login.*: .*LOGIN FAILURE.* FROM .*bbs
login.*: .*LOGIN FAILURE.* FROM .*games
login.*: .*LOGIN FAILURE.* FROM .*sync
login.*: .*LOGIN FAILURE.* FROM .*oracle
login.*: .*LOGIN FAILURE.* FROM .*sybase
attackalert
同样,你可以自己分析系统的log,删除或增加必要的关键词
logcheck.viol
ations 系统运行时出现的异常信息的关键词 logcheck.violations.ignore
系统出现异常信息,但包含在这个文件中的关键词的log记录视为正常, 并不作为logcheck
报告异常信息的一部分logcheck.ignore 系统出现可能攻击的记录,但由于包含在 这个文件
中的关键词的log记录视为正常,并不作为logcheck报告攻击部分的一部分
在安装完成以后,你还需要作以下两件事,一个是修改logcheck.sh中的一些参数使它符合你
的要求, 一个是在你的cron任务里增加定时检测的任务。
Logcheck,sh里面注意的参数主要是:
# Person to send log activity to.
SYSADMIN=root
默认把logcheck的报告发给本机的root..当然你可能希望发给自己的信箱,改这里就可以了,
如果你 希望把结果发给几个人,自己定义mial的别名去吧。
另一个位置:
# SunOS, Sun Solaris 2.5
$LOGTAIL /var/log/syslog > $TMPDIR/check.$$
$LOGTAIL /var/adm/messages >> $TMPDIR/check.$$ 这个是sun标准存放log的地方,当然,
我们不是自己定义过log的存放地点吗?加上我们自己要检查的log文件
$LOGTAIL /var/log/auth.log >> $TMPDIR/check.$$
$LOGTAIL /var/log/deamon.log >> $TMPDIR/check.$$
$LOGTAIL /var/log/mail.log >> $TMPDIR/check.$$
下面就是要服务器帮你自动用logcheck.sh来检查你的log了。。不要告诉我你不会用cron来作
这件事。。。 对于log记录很多的主机每天就分析几次,对于firewall主机这类产生标准log
很少的主机每30-60分钟检查 一次不会对系统有什么负担。
使用了logcheck加上一个集中的loghost,对管理一个拥有大量主机的网络系统,能大大的降低
劳动强度,也便 于及时的发现系统的异常情况,阻止可能的攻击行为。最后一句。。。集中
管理大型网络的log..loghost主机 的存放log记录的硬盘一定要大,不然撑爆了是不能记录任
何log的:) …当然你可以时常备份这些log,再删除老 的log文件,删除以后…别忘了马上再touch
一个新的log文件..syslogd不会帮你检查和建立这个文件的,不过你 倒是可以在备份脚本里作
这件事

cisco关闭不必要的服务

*关闭BOOTP 服务器 BOOTP 是一个UDP服务,CISCO 路由器用它来访问另一个运行BOOTP服务的CISCO路由器上的IOS 拷贝。 这项服务可能使攻击者有机会下载一台路由器配置的COPY.缺省情况下,该服务开启的

  config t

  no ip bootp server *

  ___________________________________________________________

  .关闭CDP 服务 在全局模式下关闭CDP config t no cdp run 在接口模式下关闭CDP config t interface e0/1 no cdp enable 3.关闭配置自动加载服务 no service config

  ______________________________________________________________

  *关闭DNS服务

  no ip domain-lookup

  _____________________________________________________________

  *.关闭HTTP服务(缺省启用)

  config t

  no ip http server

  _____________________________________________________________

  *关闭ICMP重定向(缺省启用) CISCO IOS缺省是启动重定向消息,这种消息可以让一个端节点用特定路由器作为通向特定目的 的路径。 config t

  inerface e0/0

  no ip redirect

  _____________________________________________________________

  *关闭IP 源路由选择 IP 协议支持源路由选择,允许IP 报文的发送者控制报文到达最终目的地的路径。 可以在全局配置模式下禁止 config t

  no ip source-route

  ____________________________________

  *关闭ICMP不可达信息(缺省启用) ICMP 不可达信息可以向发送这通告不正确(不可达)的 IP地址,攻击者能够借此映射网络。 接口模式关闭

  config t

  interface e0/0 no ip unreachable

  _____________________________________________

  *关闭代理ARP(缺省启用) 如果路由器上启用了代理ARP,路由器就扮演了第二层(数据链路层)地址解析代理的角色,使 得网络跨多个接口得以扩展。 攻击者可能会利用代理 ARP的信任特性,伪装成一台可信主机,中途截获数据包。

  在端口模式下关闭

  config t

  interface e0/0 no ip proxy-arp

  _____________________________

  *.关闭小型服务器 (IOS11.3 之后缺省禁用) 一个攻击者可能发送一个 DNS 包,源地址伪装成一台可达的 DNS服务器,源端口伪装成 DNS服 务端口(端口53),如果这样的数据包发往 CISCO路由器 UDP echo 端口,路由器就会向可疑的 服务器发送一个 DNS 数据包。这样的数据包会被当作路由器本身生成,不会进行外出 ACL 检查。关闭小型TCP UDP 服务

  在全局模式

  config t

  no service tcp-small-servers

  no service udp-small-servers

  __________________________________________

  *关闭TFTP服务器 对路由器的 TFTP 访问可用来获取路由器文件系统的访问权,因此路由器或网络本身有被攻击 的危险。

  要禁用FLASH 内存TFTP服务器,可使用全局配置命令

  conf t

  no tftp-server flash

Red Hat Linux 安全设置文档 [转发]

http://hi.baidu.com/sdusoul/blog/item/5b25221f9c2b74fee0fe0bbe.html

Red Hat Linux 安全设置文档2010-01-13 10:15本文从各方面阐述了Red Hat Linux的安全配置方法,如果您使用的是Windows Server 2003服务器的话,请看Windows Server 2003 系统配置方案。
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。

网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。

1,最小化安全系统,删除不必要的软件,关闭不必要的服务.

# ntsysv
以下仅列出需要启动的服务,未列出的服务一律推荐关闭,必要运行的服务再逐个打开.
atd
crond
irqbalance
microcode_ctl
network
sshd
syslog

2,删除finger程序,具体方法如下

#rpm –e finger

3,BOIS安全设置

4,帐号安全设置

修改/etc/login.def文件
PASS_MAX_DAYS 120 ?设置密码过期日期
PASS_MIN_DAYS 0 ?设置密码最少更改日期
PASS_MIN_LEN 10 ?设置密码最小长度
PASS_WARN_AGE 7 ?设置过期提前警告天数
确保/etc/shadow为root只读
确保/etc/passwd为root读写

定期用密码工具检测用户密码强度

5, /etc/exports

如果通过NFS把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格.这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限.在/etc/exports文件加入:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
建议最好不要使用NFS.

6,inetd.conf或xinetd.conf
如果是inetd.conf建议注释掉所有的r开头的程序,exec等

7,TCP_Wrappers
在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行ALL:ALL

8,/etc/aliases文件

Aliases文件如果管理错误或管理粗心就会造成安全隐患.把定义”decode”这个别名的行从aliases文件中删除.
编辑aliases,删除或注释下面这些行:
#games: root
#ingres: root
#system: root
#toor: root
#uucp: root
#manager: root
#dumper: root
#operator: root
#decode: root
运行/usr/bin/nesaliases重新加载.

9,防止sendmail被没有授权的用户滥用

编辑sendmail.cf
把PrivacyOptions=authwarnings
改为PrivacyOptions=authwarnings,noexpn,novrfy

10,不响应ping

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

11,使TCP SYN Cookie保护生效

Echo 1 > /proc/sys/net/ipv4/tcp_syncookies

12,删除不必要的用户和组用户

删除的用户,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等
删除的组,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
可以设置不可更改位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow

13,防止任何人都可以用su命令成为root

编辑su文件(vi /etc/pam.d/su),加入如下两行
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
把能su为root的用户加入wheel组
usermod -G10 username

14,使Control+Alt+Delete关机键无效

编辑inittab文件,注释掉
Ca:ctrlaltdel:/sbin/shutdown –t3 –r now
运行/sbin/init q 使设置生效

15,创建所有重要的日志文件的硬拷贝

如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来.在/etc/syslog.conf文件中加入一行.:
Authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0
执行/etc/rc.d/init.d/syslog restart
或者把日志发送到其它服务器保存

authpriv.* /var/log/secure
要把它发送到192.168.0.2,就可以这样修改
authpriv.* @192.168.0.2 /var/log/secure

16,改变/etc/rc.d/init.d目录下的脚本文件的访问许可

chmod –R 700 /etc/rc.d/init.d/*
注意:慎重修改此安全设置

17,/etc/rc.d/rc.local

把此文件中无关的信息全部注释,不让任何人看到任何有关主机的信息.
删除/etc下的issue和issue.net

18,带S位的程序

可以清除s位的程序包括但不限于:
从来不用的程序;
不希望非root用户运行的程序;
偶尔用用,但是不介意先用su命令变为root后再运行.
find / -type f ( -perm 04000 –o –perm -02000 ) -print
chmod a-s 程序名

19,查看系统隐藏文件

find / -name “.*” –print

20,查找任何人都有写权限的文件和目录

find / -type f ( -perm -2 -o perm -20 ) ls
find / -type f ( -perm -2 –o –perm -20 ) ls

21,查找系统中没有主人的文件

find / -nouser –o –nogroup

22,查找.rhosts文件

find /home -name “.rhosts”
如果有,请删除它.

23,收回系统编译器的权限或删除

如: chmod 700 /usr/bin/gcc

一、磁盘分区

1、如果是新安装系统,对磁盘分区应考虑安全性:

1)根目录(/)、用户目录(/home)、临时目录(/tmp)和/var目录应分开到不同的磁盘分区;

2)以上各目录所在分区的磁盘空间大小应充分考虑,避免因某些原因造成分区空间用完而导致系统崩溃;

2、对于/tmp和/var目录所在分区,大多数情况下不需要有suid属性的程序,所以应为这些分区添加nosuid属性;

方法一:修改/etc/fstab文件,添加nosuid属性字。例如:

/dev/hda2 /tmp ext2 exec,dev,nosuid,rw 0 0

方法二:如果对/etc/fstab文件操作不熟,建议通过Linuxconf程序来修改。

运行linuxconf程序;

选择”File systems”下的”Access local drive”;

选择需要修改属性的磁盘分区;

选择”No setuid programs allowed”选项;

根据需要选择其它可选项;

正常退出。(一般会提示重新mount该分区)

二、安装

1、对于非测试主机,不应安装过多的软件包。这样可以降低因软件包而导致出现安全漏洞的可能性。

2、对于非测试主机,在选择主机启动服务时不应选择非必需的服务。例如routed、ypbind等。

三、安全配置与增强

内核升级。起码要升级至2.2.16以上版本。

GNU libc共享库升级。(警告:如果没有经验,不可轻易尝试。可暂缓。)

关闭危险的网络服务。echo、chargen、shell、login、finger、NFS、RPC等

关闭非必需的网络服务。talk、ntalk、pop-2等

常见网络服务安全配置与升级

确保网络服务所使用版本为当前最新和最安全的版本。

取消匿名FTP访问

去除非必需的suid程序

使用tcpwrapper

使用ipchains防火墙

日志系统syslogd

一些细节:

1.操作系统内部的log file是检测是否有网络入侵的重要线索,当然这个假定你的logfile不被侵入者所破坏,如果你有台服务器用专线直接连到Internet上,这意味 着你的IP地址是永久固定的地址,你会发现有很多人对你的系统做telnet/ftp登录尝试,试着运行#more /var/log/secure   grep refu
sed 去检查。

2. 限制具有SUID权限标志的程序数量,具有该权限标志的程序以root身份运行,是一个潜在的安全漏洞,当然,有些程序是必须要具有该标志的,象passwd程序。

3.BIOS安全。设置BIOS密码且修改引导次序禁止从软盘启动系统。

4. 用户口令。用户口令是Linux安全的一个最基本的起点,很多人使用的用户口令就是简单的‘passWord,这等于给侵入者敞开了大门,虽然从理论上说 没有不能确解的用户口令,只要有足够的时间和资源可以利用。比较好的用户口令是那些只有他自己能够容易记得并理解的一串字符,并且绝对不要在任何地方写出 来。

5./etc/eXPorts 文件。如果你使用NFS网络文件系统服务,那么确保你的/etc/exports具有最严格的存取权限设置,不意味着不要使用任何通配符,不允许root写权限,mount成只读文件系统。编辑文件/etc/exports并且加:例如:

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

/dir/to/export 是你想输出的目录,host.mydomain.com是登录这个目录的机器名,

ro意味着mount成只读系统,root_squash禁止root写入该目录。

为了让上面的改变生效,运行/usr/sbin/exportfs -a

6.确信/etc/inetd.conf的所有者是root,且文件权限设置为600 。

[root@deep]# chmod 600 /etc/inetd.conf
ENSURE that the owner is root.
[root@deep]# stat /etc/inetd.conf
File: “/etc/inetd.conf”
Size: 2869 Filetype: Regular File
Mode: (0600/-rw——-) Uid: ( 0/ root) Gid: ( 0/ root)
Device: 8,6 Inode: 18219 Links: 1
Access: Wed Sep 22 16:24:16 1999(00000.00:10:44)
Modify: Mon Sep 20 10:22:44 1999(00002.06:12:16)
Change:Mon Sep 20 10:22:44 1999(00002.06:12:16)

编辑/etc/inetd.conf禁止以下服务:

ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger,

auth, etc. 除非你真的想用它。

特别是禁止那些r命令.如果你用ssh/scp,那么你也可以禁止掉telnet/ftp。

为了使改变生效,运行#killall -HUP inetd

你也可以运行#chattr +i /etc/inetd.conf使该文件具有不可更改属性。

只有root才能解开,用命令

#chattr -i /etc/inetd.conf

7. TCP_WRAPPERS

默认地,Redhat Linux允许所有的请求,用TCP_WRAPPERS增强你的站点的安全性是举手

之劳,你可以放入

“ALL: ALL”到/etc/hosts.deny中禁止所有的请求,然后放那些明确允许的请求到

/etc/hosts.allow中,如:

sshd: 192.168.1.10/255.255.255.0 gate.openarch.com

对IP地址192.168.1.10和主机名gate.openarch.com,允许通过ssh连接。

配置完了之后,用tcpdchk检查

[root@deep]# tcpdchk

tcpchk是TCP_Wrapper配置检查工具,

它检查你的tcp wrapper配置并报告所有发现的潜在/存在的问题。

8. 别名文件aliases

编辑别名文件/etc/aliases(也可能是/etc/mail/aliases),移走/注释掉下面的行。

# Basic system aliases — these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root ?remove or comment out.
#ingres: root ?remove or comment out.
nobody: root
#system: root ?remove or comment out.
#toor: root ?remove or comment out.
#uUCp: root ?remove or comment out.
# Well-known aliases.
#manager: root ?remove or comment out.
#dumper: root ?remove or comment out.
#operator: root ?remove or comment out.
# trap decode to catch security attacks
#decode: root
# Person who should get roots mail
#root: marc

最后更新后不要忘记运行/usr/bin/newaliases,使改变生效。

9.阻止你的系统响应任何从外部/内部来的ping请求。

既然没有人能ping通你的机器并收到响应,你可以大大增强你的站点的安全性。你可以加下面的一行命令到/etc/rc.d/rc.local,以使每次启动后自动运行。

echo 1 >; /proc/sys/net/ipv4/icmp_echo_ignore_all

10. 不要显示出操作系统和版本信息。

如果你希望某个人远程登录到你的服务器时不要显示操作系统和版本信息,你能改变

/etc/inetd.conf中的一行象下面这样:

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

加-h标志在最后使得telnet后台不要显示系统信息,而仅仅显示login:

11.The /etc/host.conf file

编辑host.conf文件(vi /etc/host.conf)且加下面的行:

# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We dont have machines with multiple IP addresses on the same card
(like virtual server,IP Aliasing).
multi off
# Check for IP address spoofing.
nospoof on
IP Spoofing: IP-Spoofing is a security exploit that works by tricking
computers in a trust relationship that you are someone that you really arent.

12. The /etc/securetty file
该文件指定了允许root登录的tty设备,/etc/securetty被/bin/login程序读取,它的
格式是一行一个被允许的名字列表,如你可以编辑/etc/securetty且注释出下面的行。

tty1
#tty2
#tty3
#tty4
#tty5
#tty6
#tty7
#tty8

意味着root仅仅被允许在tty1终端登录。

13. 特别的帐号
禁止所有默认的被操作系统本身启动的且不需要的帐号,当你第一次装上系统时就应该做此检查,Linux提供了各种帐号,你可能不需要,如果你不需要这个帐号,就移走它,你有的帐号越多,就越容易受到攻击。
为删除你系统上的用户,用下面的命令:

[root@deep]# userdel username
为删除你系统上的组用户帐号,用下面的命令:
[root@deep]# groupdel username
在终端上打入下面的命令删掉下面的用户。
[root@deep]# userdel adm
[root@deep]# userdel lp
[root@deep]# userdel sync
[root@deep]# userdel shutdown
[root@deep]# userdel halt
[root@deep]# userdel mail
如果你不用sendmail服务器,procmail.mailx,就删除这个帐号。
[root@deep]# userdel news
[root@deep]# userdel uucp
[root@deep]# userdel operator
[root@deep]# userdel games
如果你不用X windows 服务器,就删掉这个帐号。
[root@deep]# userdel gopher
[root@deep]# userdel ftp
如果你不允许匿名FTP,就删掉这个用户帐号。
打入下面的命令删除组帐号
[root@deep]# groupdel adm
[root@deep]# groupdel lp
[root@deep]# groupdel mail
如不用Sendmail服务器,删除这个组帐号
[root@deep]# groupdel news
[root@deep]# groupdel uucp
[root@deep]# groupdel games
如你不用X Windows,删除这个组帐号
[root@deep]# groupdel dip
[root@deep]# groupdel pppusers
[root@deep]# groupdel popusers
如果你不用POP服务器,删除这个组帐号
[root@deep]# groupdel slipusers
用下面的命令加需要的用户帐号
[root@deep]# useradd username
用下面的命令改变用户口令
[root@deep]# passwd username

用chattr命令给下面的文件加上不可更改属性。
[root@deep]# chattr +i /etc/passwd
[root@deep]# chattr +i /etc/shadow
[root@deep]# chattr +i /etc/group
[root@deep]# chattr +i /etc/gshadow

14. 阻止任何人su作为root.
如果你不想任何人能够su作为root,你能编辑/etc/pam.d/su加下面的行:

auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security
/pam_wheel.so group=isd

意味着仅仅isd组的用户可以su作为root.
然后,如果你希望用户admin能su作为root.就运行下面的命令。

[root@deep]# usermod -G10 admin

16. 资源限制
对你的系统上所有的用户设置资源限制可以防止DoS类型攻击(denial of service attacks)
如最大进程数,内存数量等。例如,对所有用户的限制象下面这样:

编辑/etc/security/limits.con加:
* hard core 0
* hard rss 5000
* hard nproc 20

你也必须编辑/etc/pam.d/login文件加/检查这一行的存在。

session required /lib/security/pam_limits.so

上面的命令禁止core files“core 0”,限制进程数为“nproc 50“,且限制内存使用
为5M“rss 5000”。

17. The /etc/lilo.conf file

a) Add: restricted
加这一行到每一个引导映像下面,就这表明如果你引导时用(linux single),则需要一个password.

b) Add: password=some_password
当与restricted联合用,且正常引导时,需要用户输入密码,你也要确保lilo.conf
文件不能被不属于root的用户可读,也免看到密码明文。下面是例子:

编辑/etc/lilo.conf加:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
Default=linux
restricted ?add this line.
password=some_password ?add this line.
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-10.img
root=/dev/sda6
read-only
[root@deep]# chmod 600 /etc/lilo.conf (不再能被其他用户可读).
[root@deep]# /sbin/lilo -v (更新lilo配置).
[root@deep]# chattr +i /etc/lilo.conf(阻止该文件被修改)

18. 禁止 Control-Alt-Delete 重启动机器命令

[root@deep]# vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
To
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[root@deep]# /sbin/init q

19. 重新设置/etc/rc.d/init.d/目录下所有文件的许可权限
[root@deep]# chmod -R 700 /etc/rc.d/init.d/*
仅仅root可以读,写,执行上述所有script file.

20. The /etc/rc.d/rc.local file
默认地,当你login到linux server时,它告诉你linux版本名,内核版本名和服务器
主机名。它给了你太多的信息,如果你就希望得到提示login: ,编辑/etc/rc.d/rc.local放#在下面的行前面:

# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo “” >; /etc/issue
#echo “$R” >;>; /etc/issue
#echo “Kernel $(uname -r) on $a $(uname -m)” >;>; /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >;>; /etc/issue

然后,做下面的事情:

[root@deep]# rm -f /etc/issue
[root@deep]# rm -f /etc/issue.net
[root@deep]# touch /etc/issue
[root@deep]# touch /etc/issue.net

21. 被root拥有的程序的位。

移走那些被root拥有程序的s位标志,当然有些程序需要这个,用命令‘chmod a-s’完成这个。

注:前面带(*)号的那些程序一般不需要拥有s位标志。

[root@deep]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls –lg {} ;
-rwsr-xr-x 1 root root 33120 Mar 21 1999 /usr/bin/at
*-rwsr-xr-x 1 root root 30560 Apr 15 20:03 /usr/bin/chage
*-rwsr-xr-x 1 root root 29492 Apr 15 20:03 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 3208 Mar 22 1999 /usr/bin/disable-paste
-rwxr-sr-x 1 root man 32320 Apr 9 1999 /usr/bin/man
-r-s–x–x 1 root root 10704 Apr 14 17:21 /usr/bin/passwd
-rws–x–x 2 root root 517916 Apr 6 1999 /usr/bin/suidperl
-rws–x–x 2 root root 517916 Apr 6 1999 /usr/bin/sperl5.00503
-rwxr-sr-x 1 root mail 11432 Apr 6 1999 /usr/bin/lockfile
-rwsr-sr-x 1 root mail 64468 Apr 6 1999 /usr/bin/procmail
-rwsr-xr-x 1 root root 21848 Aug 27 11:06 /usr/bin/crontab
-rwxr-sr-x 1 root slocate 15032 Apr 19 14:55 /usr/bin/slocate
*-r-xr-sr-x 1 root tty 6212 Apr 17 11:29 /usr/bin/wall
*-rws–x–x 1 root root 14088 Apr 17 12:57 /usr/bin/chfn
*-rws–x–x 1 root root 13800 Apr 17 12:57 /usr/bin/chsh
*-rws–x–x 1 root root 5576 Apr 17 12:57 /usr/bin/newgrp
*-rwxr-sr-x 1 root tty 8392 Apr 17 12:57 /usr/bin/write
-rwsr-x— 1 root squid 14076 Oct 7 14:48 /usr/lib/squid/pinger
-rwxr-sr-x 1 root utmp 15587 Jun 9 09:30 /usr/sbin/utempter
*-rwsr-xr-x 1 root root 5736 Apr 19 15:39 /usr/sbin/usernetctl
*-rwsr-xr-x 1 root bin 16488 Jul 6 09:35 /usr/sbin/traceroute
-rwsr-sr-x 1 root root 299364 Apr 19 16:38 /usr/sbin/sendmail
-rwsr-xr-x 1 root root 34131 Apr 16 18:49 /usr/libexec/pt_chown
-rwsr-xr-x 1 root root 13208 Apr 13 14:58 /bin/su
*-rwsr-xr-x 1 root root 52788 Apr 17 15:16 /bin/mount
*-rwsr-xr-x 1 root root 26508 Apr 17 20:26 /bin/umount
*-rwsr-xr-x 1 root root 17652 Jul 6 09:33 /bin/ping
-rwsr-xr-x 1 root root 20164 Apr 17 12:57 /bin/login
*-rwxr-sr-x 1 root root 3860 Apr 19 15:39 /sbin/netreport
-r-sr-xr-x 1 root root 46472 Apr 17 16:26 /sbin/pwdb_chkpwd
[root@deep]# chmod a-s /usr/bin/chage
[root@deep]# chmod a-s /usr/bin/gpasswd
[root@deep]# chmod a-s /usr/bin/wall
[root@deep]# chmod a-s /usr/bin/chfn
[root@deep]# chmod a-s /usr/bin/chsh
[root@deep]# chmod a-s /usr/bin/newgrp
[root@deep]# chmod a-s /usr/bin/write
[root@deep]# chmod a-s /usr/sbin/usernetctl
[root@deep]# chmod a-s /usr/sbin/traceroute
[root@deep]# chmod a-s /bin/mount
[root@deep]# chmod a-s /bin/umount
[root@deep]# chmod a-s /bin/ping
[root@deep]# chmod a-s /sbin/netreport

你可以用下面的命令查找所有带s位标志的程序:

[root@deep]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

>; suid-sgid-results

把结果输出到文件suid-sgid-results中。

为了查找所有可写的文件和目录,用下面的命令:

[root@deep]# find / -type f ( -perm -2 -o -perm -20 ) -exec ls -lg {} ; >; ww-files-results

[root@deep]# find / -type d ( -perm -2 -o -perm -20 ) -exec ls -ldg {} ; >; ww-directories-results

用下面的命令查找没有拥有者的文件:

[root@deep]# find / -nouser -o -nogroup >; unowed-results

用下面的命令查找所有的.rhosts文件:

[root@deep]# find /home -name .rhosts >; rhost-results

建议替换的常见网络服务应用程序

WuFTPD

WuFTD从1994年就开始就不断地出现安全漏洞,黑客很容易就可以获得远程root访问(Remote Root Access)的权限,而且很多安全漏洞甚至不需要在FTP服务器上有一个有效的帐号。最近,WuFTP也是频频出现安全漏洞。

它的最好的替代程序是ProFTPD。ProFTPD很容易配置,在多数情况下速度也比较快,而且它的源代码也比较干净(缓冲溢出的错误比较少)。 有许多重要的站点使用ProFTPD。sourceforge.net就是一个很好的例子(这个站点共有3,000个开放源代码的项目,其负荷并不小 啊!)。一些Linux的发行商在它们的主FTP站点上使用的也是ProFTPD,只有两个主要Linux的发行商(SuSE和Caldera)使用 WuFTPD。

ProFTPD的另一个优点就是既可以从inetd运行又可以作为单独的daemon运行。这样就可以很容易解决inetd带来的一些问题,如:拒 绝服务的攻击(denial of service attack),等等。系统越简单,就越容易保证系统的安全。WuFTPD要么重新审核一遍全部的源代码(非常困难),要么完全重写一遍代码,否则 WuFTPD必然要被ProFTPD代替。

Telnet

Telnet是非常非常不安全的,它用明文来传送密码。它的安
全的替代程序是OpenSSH。

OpenSSH在Linux上已经非常成熟和稳定了,而且在Windows平台上也有很多免费的客户端软件。Linux的发行商应该采用 OpenBSD的策略:安装OpenSSH并把它设置为默认的,安装Telnet但是不把它设置成默认的。对于不在美国的Linux发行商,很容易就可以 在Linux的发行版中加上OpenSSH。美国的Linux发行商就要想一些别的办法了(例如:Red Hat在德国的FTP服务器上(ftp.redhat.de)就有最新的OpenSSH的rpm软件包)。

Telnet是无可救药的程序。要保证系统的安全必须用OpenSSH这样的软件来替代它。

Sendmail

最近这些年,Sendmail的安全性已经提高很多了(以前它通常是黑客重点攻击的程序)。然而,Sendmail还是有一个很严重的问题。一旦出 现了安全漏洞(例如:最近出现的Linux内核错误),Sendmail就是被黑客重点攻击的程序,因为Sendmail是以root权限运行而且代码很 庞大容易出问题。

几乎所有的Linux发行商都把Sendmail作为默认的配置,只有少数几个把Postfix或Qmail作为可选的软件包。但是,很少有Linux的发行商在自己的邮件服务器上使用Sendmail。SuSE和Red Hat都使用基于Qmail的系统。

Sendmail并不一定会被别的程序完全替代。但是它的两个替代程序Qmail和Postfix都比它安全、速度快,而且特别是Postfix比它容易配置和维护。

su

su是用来改变当前用户的ID,转换成别的用户。你可以以普通用户登录,当需要以root身份做一些事的时候,只要执行“su”命令,然后输入 root的密码。su本身是没有问题的,但是它会让人养成不好的习惯。如果一个系统有多个管理员,必须都给他们root的口令。

su的一个替代程序是sudo。Red Hat 6.2中包含这个软件。sudo允许你设置哪个用户哪个组可以以root身份执行哪些程序。你还可以根据用户登录的位置对他们加以限制(如果有人“破”了 一个用户的口令,并用这个帐号从远程计算机登录,你可以限制他使用sudo)。Debian也有一个类似的程序叫super,与sudo比较各有优缺点。

让用户养成良好的习惯。使用root帐号并让多个人知道root的密码并不是一个好的习惯。这就是www.apache.org被入侵的原因,因为它有多个系统管理员他们都有root的特权。一个乱成一团的系统是很容易被入侵的。

named

大部分Linux的发行商都解决了这个问题。named以前是以root运行的,因此当named出现新的漏洞的时候,很容易就可以入侵一些很重要 的计算机并获得root权限。现在只要用命令行的一些参数就能让named以非root的用户运行。而且,现在绝大多数Linux的发行商都让 named以普通用户的权限运行。命令格式通常为:named -u ; -g ;

INN

在INN的文档中已经明确地指出:“禁止这项功能(verifycancels),这项功能是没有用的而且将被除掉”。大约在一个月前,一个黑客发 布了当 “verifycancels”生效的时候入侵INN的方法。Red Hat是把“verifycancels”设为有效的。任何setuid/setgid的程序或网络服务程序都要正确地安装并且进行检查以保证尽量没有安 全漏洞。

安全守则

1. 废除系统所有默认的帐号和密码。

2. 在用户合法性得到验证前不要显示公司题头、在线帮助以及其它信息。

3. 废除“黑客”可以攻击系统的网络服务。

4. 使用6到8位的字母数字式密码。

5. 限制用户尝试登录到系统的次数。

6. 记录违反安全性的情况并对安全记录进行复查。

7. 对于重要信息,上网传输前要先进行加密。

8. 重视专家提出的建议,安装他们推荐的系统“补丁”。

9. 限制不需密码即可访问的主机文件。

10.修改网络配置文件,以便将来自外部的TCP连接限制到最少数量的端口。不允许诸如tftp,sunrpc,printer,rlogin或rexec之类的协议。

11.用upas代替sendmail。sendmail有太多已知漏洞,很难修补完全。

12.去掉对操作并非至关重要又极少使用的程序。

13.使用chmod将所有系统目录变更为711模式。这样,攻击者们将无法看到它们当中有什么东西,而用户仍可执行。

14.只要可能,就将磁盘安装为只读模式。其实,仅有少数目录需读写状态。

15.将系统软件升级为最新版本。老版本可能已被研究并被成功攻击,最新版本一般包括了这些问题的补救。

对VNC进行hosts.deny配置 转发 待研究

★VNC服务器问题★论坛搜索过
大家好,遇到一个问题请教一下。
系统:RHEL3
VNC:4.x RPM安装

要求:
可以通过VNC远程连接到服务器使用桌面。
并且,对VNC得访问作限制,固定的客户端以外不允许访问VNC服务器。

解决办法:
安装VNC服务器,并通过正常IE和VNC客户端软件的访问测试。
(问题:并不能做访问的控制,在防火墙的情况下,整个儿局域网都可以访问服务器(不喜欢)。咋办才能控制访问呢?)

控制访问限制解决处理,通过xinetd控制VNC服务器,通过gdm进行拥护认证。
通过TCP Wrappers进行基于IP访问控制。
(问题:xinetd的配置和TCP Wrappers的访问控制通过,可正常运行,
———但是 服务器必须以run level 5的模式下启动。
———可不使用xinetd的方法就不用这么做,run 3下也正常,客户端可以访问VNC服务器。
———可是不能够通过TCP Wappers进行访问限制,为啥?)

操作:
1.安装VNC服务器
2.修改/etc/service,文件末尾加vnc 5950/tcp
3.新建文件/etc/xinetd.d/vnc
##文件内容##
[table=95%][tr][td]
service vnc
{ socket_type = stream
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 800×600 -depth 8 -securitytypes=none
log_on_failure += USERID
disable = no
}
#server_args = -inetd -query localhost -once -geometry 800×600 -depth 16 –PasswordFile=/etc/vnc_password
[/td][/tr][/table]
4.修改/etc/X11/gdm/gdm.conf,将[xdmcp]的值设定为Enable=true。
5.restart xinetd
6.客户端访问测试,通过。★如果Run 5,就能够正常连接;如果Run 3连接后出现黑屏,无法显示GNOME桌面。★
7.修改/etc/hosts.deny,添加Xvnc : ALL ;修改/etc/hosts.allow,添加Xvnc : 客户端IP。
8.测试效果,测试通过。

问题理解:
关于VNC和X11 server的介绍太少,不是很明白。
以上的方法是通过VNC和X11 server结合的产物,并且通过xinetd进行控制,通过TCP Wrappers进行访问限制。
可为啥VNC单体配置的时候,虽然服务器在Run 3下的情况下,客户端IE或VNC客户端软件能正常访问。
而VNC + X11 server + TCP Wrappers的情况下就只能把服务器以Run Level 5 启动呢? 并且只能通过VNC客户端访问,IE不能够访问。(IE访问是不希望的。)
服务器在Run5情形下默认启动的程序比Run3多,还有啥区别么?服务器以Run 5启动,并且接受客户端来的访问,这样对服务器的负荷会增加?
服务器端和客户端的通信是否是加密的?如何实现服务器端和客户端的通信加密呢?VPN技术,SSH信道技术,操作都稍稍麻烦些。有简单方法么?

高人指点阿!
弹尽粮绝了,桌面用得很少,也不懂它的流程,更不懂他们是咋回事儿。
很多帖子都说以run 5启动,但没有说为啥啊? 为啥?