第一阶段:服务器搭建1、利用iis搭建web服务器,实现相同ip,相同端口,不同主机头的虚拟主机,主机头要做域名解析。2、如果要搭建动态网站,可以使用wamp的软件实现,这种方法较简单,软件安装完成即可。如果想深入研究,则可以手工配置支持asp,ASP.net
第一阶段:服务器搭建
1、利用iis搭建web服务器,实现相同ip,相同端口,不同主机头的虚拟主机,主机头要做域名解析。
2、如果要搭建动态网站,可以使用wamp的软件实现,这种方法较简单,软件安装完成即可。如果想深入研究,则可以手工配置支持asp,ASP.net,php的动态网站,数据库可以采用sqlserver,access,mysql。
3、配置好服务器之后,可以把一期网站课做好的网页放到服务器上,也可以按小组独立设计网页。如果想实现动态网站,可以搭建discuss论坛,并实现后台管理。
4、网页的上传和下载需要ftp服务器的支持,搭建ftp可以采用微软自带的ftp服务器组件,提高服务器的安全性。
第二阶段:服务器维护
Web服务器的日常维护是网管的一项重要工作,主要工作有:入侵检测、服务器优化、常见故障处理以及日志管理等一系列日常维护工作。
二、数据备份和数据恢复(用户自己备份)数据备份工作:1、每月备份一次系统数据。2、备份系统后的两周单独备份一次应用程序数据,主要包括IIS、数据库等数据。3、确保备份数据的安全,并分类放置这些数据备份。因基本上采用的都是全备份方法,对于数据的保留周期可以只保留该次备份和上次备份数据两份即可。
3、IIS性能优化1)调整IIS高速缓存HKEY_LOCAL_MACHINESystemCurrentControlSetServicesInetInfoParametersMemoryCacheSizeMemoryCacheSize的范围是从0道4GB,缺省值为3072000(3MB)。一般来说此值最小应设为服务器内存的10%。IIS通过高速缓存系统句柄、目录列表以及其他常用数据的值来提高系统的性能。这个参数指明了分配给高速缓存的内存大小。如果该值为0,那就意味着“不进行任何高速缓存”。在这种情况下系统的性能可能会降低。如果你的服务器网络通讯繁忙,并且有足够的内存空间,可以考虑增大该值。必须注意的是修改注册表后,需要重新启动才能使新值生效。2)不要关闭系统服务:“ProtectedStorage”3)对访问流量进行限制(1)对站点访问人数进行限制(2)站点带宽限制。保持HTTP连接。(3)进程限制,输入CPU的耗用百分比4)提高IIS的处理效率应用程序设置”处的“应用程序保护”下拉按钮,从弹出的下拉列表中,选中“低(IIS进程)”选项,IIS服务器处理程序的效率可以提高20%左右。但此设置会带来严重的安全问题,不值得推荐。
5)将IIS服务器设置为独立的服务器(1)提高硬件配置来优化IIS性能硬盘:硬盘空间被NT和IIS服务以如下两种方式使用:一种是简单地存储数据;另一种是作为虚拟内存使用。如果使用Ultra2的SCSI硬盘,可以显著提高IIS的性能(2)可以把NT服务器的页交换文件分布到多个物理磁盘上,注意是多个“物理磁盘”,分布在多个分区上是无效的。另外,不要将页交换文件放在与WIndowsNT引导区相同的分区中(3)使用磁盘镜像或磁盘带区集可以提高磁盘的读取性能(4)最好把所有的数据都储存在一个单独的分区里。然后定期运行磁盘碎片整理程序以保证在存储Web服务器数据的分区中没有碎片。使用NTFS有助于减少碎片。推荐使用Norton的Speeddisk,可以很快的整理NTFS分区。6)起用HTTP压缩HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、Javascript或CSS文件。可使用pipeboost进行设置。7)起用资源回收使用IIS5Recycle定时回收进程资源。
四、服务器常见故障排除(以下列举的主要都为动态网站故障,供参考)
1、ASP“请求的资源正在使用中”的解决办法:
该问题一般与杀毒软件有关,在服务器上安装个人版杀毒软件所致。出现这种错误可以通过卸载杀毒软件解决,也可尝试重新注册vbscript.dll和jscript.dll来解决,在命令行下运行:regsvr32vbscript.dll和regsvr32jscript.dll即可。
2、ASP500错误解决办法:
3、IIS出现105错误:
4、MySQL服务无法启动【错误代码1067】的解决方法
启动MySQL服务时都会在中途报错!内容为:在本地计算机无法启动MySQL服务错误1067:进程意外中止。解决方法:查找Windows目录下的my.ini文件,编辑内容(如果没有该文件,则新建一个),至少包含basedir,datadir这两个基本的配置。[mysqld]#setbasedirtoinstallationpath,e.g.,c:/mysql#设置为MYSQL的安装目录basedir=D:/www/WebServer/MySQL#setdatadirtolocationofdatadirectory,#e.g.,c:/mysql/dataord:/mydata/data#设置为MYSQL的数据目录datadir=D:/www/WebServer/MySQL/data注意,我在更改系统的temp目录之后没有对更改后的目录给予system用户的权限也出现过该问题。
5、DllHotst进程消耗cpu100%的问题
6、Windowsinstaller出错:
五、服务器管理
服务器日常管理安排服务器管理工作必须规范严谨,尤其在不是只有一位管理员的时候,日常管理工作包括:
3、服务器的数据备份工作(用户自己备份),每服务器至少保证每月备份一次系统数据,系统备份采用ghost方式,对于ghost文件固定存放在e:ghost文件目录下,文件名以备份的日期命名,如0824.gho,每服务器至少保证每两周备份一次应用程序数据,每服务器至少保证每月备份一次用户数据,备份的数据固定存放在e:databak文件夹,针对各种数据再建立对应的子文件夹,如serv-u用户数据放在该文件夹下的servu文件夹下,iis站点数据存放在该文件夹下的iis文件夹下。
7、服务器的隐患检查工作,主要包括安全隐患、性能等方面。每服务器必须保证每月重点的单独检查一次。每次的检查结果必须做好记录。
9、定期的管理密码更改工作,每服务器保证至少每两个月更改一次密码,对于SQL服务器由于如果SQL采用混合验证更改系统管理员密码会影响数据库的使用则不予修改。
对于数据备份、服务器定时重启等操作建议将服务器分组,例如分成四组,每月的周六晚备份一组服务器的数据,每周的某一天定时去重启一组的服务器,这样对于工作的开展比较方便,这些属于固定性的工作。另外有些工作可以同步进行,如每月一次的数据备份、安全检查和管理员密码修改工作,先进行数据备份,然后进行安全检查,再修改密码。对于需要的即时操作如服务器补丁程序的安装、服务器不定时的故障维护等工作,这些属于即时性的工作,但是原则上即时性的工作不能影响固定工作的安排。
补充:管理员日常注意事项在服务器管理过程中,管理员需要注意以下事项:1、对自己的每一次操作应做好详细记录,具体见上述建议,以便于后来检查。2、努力提高自身水平,加强学习。
第三阶段:服务器安全
一、安装杀毒软件和防火墙。
二、用户安全设置:
1、禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开
记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去。
2、限制不必要的用户
去掉所有的DuplicateUser用户、测试用户、共享用户等等。用户组策略设置相应权限,并且经常检查系统
的用户,删除已经不再使用的用户。这些用户很多时候都是黑客们入侵系统的突破口。
3、创建两个管理员账号
创建一个一般权限用户用来收信以及处理一些日常事物,另一个拥有Administrators权限的用户只在需要
的时候使用。
4、把系统Administrator账号改名
大家都知道,Windows2000的Administrator用户是不能被停用的,这意味着别人可以一遍又一遍地尝
试这个用户的密码。尽量把它伪装成普通用户,比如改成Guesycludx。
5、创建一个陷阱用户
什么是陷阱用户即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了
的入侵企图。
任何时候都不要把共享文件的用户设置成“Everyone”组,包括打印共享,默认的属性就是“Everyone”组
的,一定不要忘了改。
7、开启用户策略
次。
册表项“HKLMSoftwareMicrosoftWindowsTCurrentVersionWinlogonDont-
DisplayLastUserName”,把REG_SZ的键值改成1。
9、使用安全密码
一些公司的管理员创建账号的时候往往用公司名、计算机名做用户名,然后又把这些用户的密码设置得太简
单,比如“welcome”等等。因此,要注意密码的复杂性,还要记住经常改密码。
10、设置屏幕保护密码
11、开启密码策略
为42天。
12、考虑使用智能卡来代替密码
对于密码,总是使安全管理员进退两难,密码设置简单容易受到黑客的攻击,密码设置复杂又容易忘记。如果条件允许,用智能卡来代替复杂的密码是一个很好的解决方法。
三、本地安全策略的设置:
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改成功失败
审核对象访问失败
审核过程跟踪无审核
审核目录服务访问失败
审核特权使用失败
审核系统事件成功失败
审核账户管理成功失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests、User组
通过终端服务允许登陆:只加入Administrators组,其他全部删除
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名启用
网络访问:不允许SAM帐户和共享的匿名枚举启用
网络访问:不允许为网络身份验证储存凭证启用
网络访问:可匿名访问的共享全部删除
网络访问:可匿名访问的命全部删除
网络访问:可远程访问的注册表路径全部删除
网络访问:可远程访问的注册表路径和子路径全部删除
帐户:重命名来宾帐户重命名一个帐户
帐户:重命名系统管理员帐户重命名一个帐户
四、搭建serv-u的ftp的注意事项:
1、安装时的两点注意
在安装Serv-U时,就应该注意尽量不要将其安装在默认的C:ProgramFilesServ-U目录下,应该更换一个不易被猜测到的目录
2、初次设置尤重要
安装好Serv-U初次运行时,会自动弹出创建域和账户操作向导窗口。由于使用向导创建的账户会带来一些未知的安全问题,因此在这里建议单击“取消”按钮,改用手工来创建。
在Serv-U处于运行状态时,我们需要修改默认的管理口令此时在“新密码”和“重复新密码”窗口中连续输入自己欲设置的口令。这样用户在设置一些本地服务时将必须输入口令才能完成。
3、账户设置须仔细
2)防范大容量文件攻击
其次为了防范大容量文件攻击,大家需要限制最大速度。切换到“常规”标签,我们可以看到默认状态下“最大上传速度”和“最大下载速度”都是空白一片,则表示没有限制,这样一些黑客就会这个漏洞传送大容量的文件,从而导致FTP处理不过来使程序停止响应或自动关闭。因此,用户可以根据需要填写一个限制的速度,单位是KB/秒,一般填写1000KB/秒左右为宜。另外“空闲超时”和“会话超时”也建议设置一个数值,通常的10分钟左右即可。
3)目录访问权限
一般来说,我们不需要将多余的权限授予用户。因此,中需要根据其账户类型,在“目录访问”标签中选择相应的操作类型即可。但是有一点需要注意的是,不管是什么用户,建议都不要授予其“运行”权限,因为在取得webshell后就可以很容易的运行攻击程序来破坏Serv-U的正常工作。
4、启用SSL
默认状态下,Serv-U的数据传输都是以明文方式传送的,这样很容易被一些嗅探工具捕获。对此,我们可以启用SSL加密。
首先在Serv-U的管理窗口左侧选择“本地服务器”下的“设置”项,在右侧选择“SSL证书”标签,然后在“普通名称”中填入实际使用的FTP地址,其它的项目随便填写,填好后单击“应用”按钮完成SSL证书的创建。
接下来,我们就可以在域列表中选择自己已经创建好的域,然后在右侧的“安全性”下拉菜单中选中“只允许SSL/TLS进程”选项,再单击“应用”按钮即可启用当前域的SSL加密功能了。
不过要注意的是,启用SSL加密后,默认的FTP端口21将被改成990,对此需要告知用户,否则无法成功连接到FTP服务器。
5、认真查阅日志
6、注意升级
五、关闭所有不需要的服务和端口:
以下服务除非特殊情况非开不可,如果不用都要关掉,例如:alerter,ApplicationLayerGatewayService,BackgroundIntelligentTransferService,ComputerBrowser,DistributedFileSystem,HelpandSupport,Messenger,NetMeetingRemoteDesktopSharing,PrintSpooler,RemoteRegistry,TaskScheduler,Telnet等。
六、如果网站为动态网站,还需要注意以下安全:
1、php服务器安全
(1)打开php的安全模式
php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),
同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,
但是默认的php.ini是没有打开安全模式的,我们把它打开:
safe_mode=on
(2)用户组安全
当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同
组的用户也能够对文件进行访问。
建议设置为:
safe_mode_gid=off
如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要
对文件进行操作的时候。
(3)安全模式下执行程序主目录
如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:
safe_mode_exec_dir=D:/usr/bin
一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,
然后把需要执行的程序拷贝过去,比如:
safe_mode_exec_dir=D:/tmp/cmd
但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:
safe_mode_exec_dir=D:/usr/www
(4)安全模式下包含文件
如果要在安全模式下包含某些公共文件,那么就修改一下选项:
safe_mode_include_dir=D:/usr/www/include/
其实一般php脚本中包含文件都是在程序自己已经写好了,这个可以根据具体需要设置。
(5)控制php脚本能访问的目录
使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问
不应该访问的文件,一定程度上限制了phpshell的危害,我们一般可以设置为只能访问网站目录:
open_basedir=D:/usr/www
(6)关闭危险函数
如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,
我们觉得不希望执行包括system()等在那的能够执行命令的php函数,或者能够查看php信息的
phpinfo()等函数,那么我们就可以禁止它们:
disable_functions=system,passthru,exec,shell_exec,popen,phpinfo
如果你要禁止任何文件和目录的操作,那么可以关闭很多文件操作
disable_functions=
chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,copy,mkdir,
rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown
以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,
就能够抵制大部分的phpshell了。
expose_php=Off
比如黑客在telnetwww.12345.com80的时候,那么将无法看到PHP的信息。
(8)关闭注册全局变量
在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,
这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:
register_globals=Off
当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,
那么就要用$_GET['var']来进行获取,这个php程序员要注意。
(9)打开magic_quotes_gpc来防止SQL注入
SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,
所以一定要小心。php.ini中有一个设置:
magic_quotes_gpc=Off
这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,
比如把‘转为’等,这对防止sql注射有重大作用。所以我们推荐设置为:
magic_quotes_gpc=On
(10)错误信息控制
一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当
前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止
错误提示:
display_errors=Off
如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:
error_reporting=E_WARNING&E_ERROR
当然,我还是建议关闭错误提示。
(11)错误日志
建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:
log_errors=On
同时也要设置错误日志存放的目录,建议根apache的日志存在一起:
error_log=D:/usr/local/apache2/logs/php_error.log
注意:给文件必须允许apache用户的和组具有写的权限。
2、数据库的安全:
常用的数据库有sqlserver,mysql,对于安全性方面主要有以下几点:
1、账户安全,账户的密码一定要复杂。
2、端口安全,mysql端口是3306,sqlserver是1433,端口最好改掉
3、对于mysql最好不要使用图形化工具,命令行模式最好。
4、Sqlserver的sa账户最好禁用,也可以建立陷阱用户。
5、经常对数据库做备份。
八、启用windows防火墙
桌面—>网上邻居—>(右键)属性—>本地连接—>(右键)属性—>高级—>
(选中)Internet连接防火墙—>设置,把服务器上面要用到的服务端口选中
例如:一台WEB服务器,要提供WEB(80)、FTP(21)服务及远程桌面管理(3389)
在“FTP服务器”、“WEB服务器(HTTP)”、“远程桌面”、“安全WEB服务器”前面打上对号,如果你要提供服务的端口不在里面,你也可以点击“添加”铵钮来添加,SMTP和POP3根据需要打开,具体参数可以参照系统里面原有的参数。然后点击确定。注意:如果是远程管理这台服务器,请先确定远程管理的端口是否选中或添加。一般需要打开的端口有:21、25、80、110、443、3389、等,根据需要开放需要的端口,关闭掉不安全的端口,如135,139,445,1433等。
九、权限设置
WINDOWS用户,在WINNT系统中大多数时候把权限按用户(組)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户”),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户”所具有的权限。
磁盘权限
1)系统盘及所有磁盘只给Administrators组和SYSTEM的完全控制权限
2)系统盘DocumentsandSettings目录只给Administrators组和SYSTEM的完全控制权限
3)系统盘DocumentsandSettingsAllUsers目录只给Administrators组和SYSTEM的完全控制权限
4)系统盘Inetpub目录及下面所有目录、文件只给Administrators组和SYSTEM的完全控制权限
5)系统盘WindowsSystem32cacls.exe、cmd.exe、net.exe、net1.exe文件只给Administrators组和SYSTEM的完全控制权限
十、给操作系统和Web服务器打补丁一旦漏洞公布,如果你不修补它,迟早会被人发现并利用