WIN2003服务器安全设置

来源:百度文库 编辑:神马文学网 时间:2024/04/28 08:22:35
一、硬盘分区与操作系统的安装
硬盘分区
总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西, 如果实在不知道。那就只一个硬盘只分一个区,分区要一次性完成,不要先分成FAT32再转成NTFS。一次性分成 NTFS格式,以我个人习惯,系统盘一般给12G。建议使用光盘启动完成分区过程,不要加载硬盘软件。
系统安装
以下内容均以2003为例
安装过程也没什么多讲的,安装系统是一个以个人性格为参数的活动,我建议在安装路径上保持默认路径,好多文章上写什么安装路径要改成什么呀什么的,这是没必要的。路径保存在注册表里,怎么改都没用。在安装过程中就要选定你需要的服务,如一些DNS、DHCP没特别需要也就不要装了。在安装过程中网卡属性中可以只保留TCP/IP 这一项,同时禁用NETBOIS。安装完成后如果带宽条件允许可用系统自带在线升级。
二、系统权限与安全配置
前面讲的都是屁话,润润笔而已。(俺也文人一次)
话锋一转就到了系统权限设置与安全配置的实际操作阶段
系统设置网上有一句话是"最小的权限+最少的服务=最大的安全"。此句基本上是个人都看过,但我好像没有看到过一篇讲的比较详细稍具全面的文章,下面就以我个人经验作一次教学尝试!
2.1 最小的权限如何实现?
NTFS系统权限设置
在使用之前将每个硬盘根加上 Administrators 用户为全部权限(可选加入SYSTEM用户)
删除其它用户,进入系统盘:权限如下
C:\WINDOWS Administrators SYSTEM用户全部权限 Users 用户默认权限不作修改
其它目录删除Everyone用户,切记C:\Documents and Settings下All Users\Default User目录及其子目录
如C:\Documents and Settings\All Users\Application Data 目录默认配置保留了Everyone用户权限
C:\WINDOWS 目录下面的权限也得注意,如 C:\WINDOWS\PCHealth、C:\windows\Installer也是保留了Everyone权限.
删除C:\WINDOWS\Web\printers目录,此目录的存在会造成IIS里加入一个.printers的扩展名,可溢出攻击
默认IIS错误页面已基本上没多少人使用了。建议删除C:\WINDOWS\Help\iisHelp目录
删除C:\WINDOWS\system32\inetsrv\iisadmpwd,此目录为管理IIS密码之用,如一些因密码不同步造成500 错误的时候使用 OWA 或 Iisadmpwd 修改同步密码,但在这里可以删掉,下面讲到的设置将会杜绝因系统设置造成的密码不同步问题。
打开C:\Windows 搜索
net.exe;cmd.exe;tftp.exe;netstat.exe;regedit.exe;at.exe;attrib.exe;cacls.exe;format.com;
regsvr32.exe;xcopy.exe;wscript.exe;cscript.exe;ftp.exe;telnet.exe;arp.exe;edlin.exe;
ping.exe;route.exe;finger.exe;posix.exe;rsh.exe;atsvc.exe;qbasic.exe;runonce.exe;syskey.exe
修改权限,删除所有的用户只保存Administrators 和SYSTEM为所有权限
关闭445端口
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\netBT\Parameters
新建 "DWORD值"值名为 "SMBDeviceEnabled" 数据为默认值"0"
禁止建立空连接
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
新建 "DWORD值"值名为 "RestrictAnonymous" 数据值为"1" [2003默认为1]
禁止系统自动启动服务器共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareServer" 数据值为"0"
禁止系统自动启动管理共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
新建 "DWORD值"值名为 "AutoShareWks" 数据值为"0"
通过修改注册表防止小规模DDOS攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建 "DWORD值"值名为 "SynAttackProtect" 数据值为"1"
禁止dump file的产生
dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。然而,它也能够给黑客提供一些敏感信息比如一些应用程序的密码等。控制面板>系统属性>高级>启动和故障恢复把 写入调试信息 改成无。
关闭华医生Dr.Watson
在开始-运行中输入"drwtsn32",或者开始-程序-附件-系统工具-系统信息-工具-Dr Watson,调出系统里的华医生Dr.Watson ,只保留"转储全部线程上下文"选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。如果以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间。
本地安全策略配置
开始 > 程序 > 管理工具 > 本地安全策略
账户策略 > 密码策略 > 密码最短使用期限 改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步]
账户策略 > 账户锁定策略 >账户锁定阈值 5 次 账户锁定时间 10分钟 [个人推荐配置]
本地策略 > 审核策略 >
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
本地策略 > 安全选项 > 清除虚拟内存页面文件 更改为"已启用"
> 不显示上次的用户名 更改为"已启用"
> 不需要按CTRL+ALT+DEL 更改为"已启用"
> 不允许 SAM 账户的匿名枚举 更改为"已启用"
> 不允许 SAM 账户和共享的匿名枚举 更改为"已启用"
> 重命名来宾账户 更改成一个复杂的账户名
> 重命名系统管理员账号 更改一个自己用的账号 [同时可建立一个无用户组的Administrat账户]
组策略编辑器
运行 gpedit.msc 计算机配置 > 管理模板 > 系统 显示"关闭事件跟踪程序" 更改为已禁用
删除不安全组件
WScript.Shell 、Shell.application 这两个组件一般一些ASP木马或一些恶意程序都会使用到。
方案一:
regsvr32 /u wshom.ocx 卸载WScript.Shell 组件
regsvr32 /u shell32.dll 卸载Shell.application 组件
如果按照上面讲到的设置,可不必删除这两个文件
方案二:
删除注册表 HKEY_CLASSES_ROOT\CLSID\{72C24DD5-D70A-438B-8A42-98424B88AFB8} 对应 WScript.Shell
删除注册表 HKEY_CLASSES_ROOT\CLSID\{13709620-C279-11CE-A49E-444553540000} 对应 Shell.application
用户管理
建立另一个备用管理员账号,防止特殊情况发生。
安装有终端服务与SQL服务的服务器停用TsInternetUser, SQLDebugger这两个账号
用户组说明
在将来要使用到的IIS中,IIS用户一般使用Guests组,也可以再重新建立一个独立的专供IIS使用的组,但要将这个组赋予C:\Windows 目录为读取权限[单一读取] 个人不建议使用单独目录,太小家子气。
三、IIS、终端服务、FTP、SQL的配置
3.1 IIS配置
IIS6与IIS5有着很多不同之处,不一一列举,也不是我一个脑袋可以装下的东西。都在资料上!IIS6有一个非常不方便的东西,就是他限制了在线上传不得大于200K,如何修改,请看:
首先停用IIS服务,> 服务 > iis admin service > 停用
C:\windows\system32\inetsrv\ metabase.xml 文件 用记事本打开它
找到 ASPMaxRequestEntityAllowed 处。默认为 204800 即 204800字节(200K)
修改为想要的数字如: 2048000 [2M] 保存,重启IIS服务即可!
设置基本参数
打开IIS管理器 > 网站 > 属性 >
网站 > 启动日志记录 > 关闭
主目录 > 配置 > 应用程序扩展 > 只保留 asp,asa
主目录 > 配置 > 选项 > 启用父目录
主目录 > 配置 > 调试 > 向客户端发送文本错误消息
网站 > 自定义错误 > 全部改成默认值 [上一章已经删除IIS使用的错误信息页面]
IIS管理器 > WEB服务扩展 > 启用 Active Server Pages
注:停用IIS默认站点,切勿删除,有可能会造成IIS的不稳定。
站点的建立将在第四节中详细介绍。
IIS支持PHP的配置
http://www.php.net/downloads.php 以 PHP 5.1.1 为例
下载php-5.1.1-Win32.zip 解压到 D:\php 或任意目录 赋予该目录IIS用户组读取权限
将ext目录中的所有文件复制到 C:\Windows\System32目录下面
以记事本打开php.ini-dist文件
查找 extension_dir = "./" 更改为 extension_dir = "D:\php\ext"
查找 ; Windows Extensions 更改下面的参数
如要开通GD库支持 则将;extension=php_gd2.dll 前面的冒号删除
依此类推,更多设置参考PHP.INI中文版。完成设置好另存在C:\Windows\php.ini
尔后在IIS设置中 IIS管理器 > 网站 > 属性 > 主目录 > 配置 > 映射
添加 D:\php\php5isapi.dll 扩展名.php
其次在WEB服务扩展中 添加一个新的扩展名 PHP 执行位置 D:\php\php5isapi.dll 设为允许即可
由于WIN平台对MYSQL与PHP的组合无法体现性能优势。个人建议WIN平台PHP程序要使用数据库建议远程
或搭配文本数据库。
终端服务配置
开始 > 程序 > 管理工具 > 终端服务配置 > 连接
选择右侧列出的连接 属性 > 权限 删除所有用户组 添加单一的允许使用的管理员账户,这样即使服务器
被创建了其它的管理员.也无法使用终端服务。
另外在会话设置中可以进一步设置断1 D、注销等一些参数。
FTP的配置
目前大多数服务器使用Serv-U Server 为FTP SYSTEM。这里同时建议使用此软件
以 Serv-U FTP Server 6.1.0.5 final [最新版]为例,这里建议使用汉化版本.www.hanzify.org
安装原版至D:\Serv-U_3434999fdaf [复杂无规则的目录名可有效防止黑客的猜解]
尔后退出Serv-U,安装汉化包。
运行SERV-U管理器 IP地址可为空、安装为系统服务 设置密码防止溢出
PASV设置
Serv-U管理器 > <<本地服务器>> > 设置 > 高级
PASV端口范围 这里SERV-U只允许 50个端口范围 端口的设置范围 如 1025 - 1075 [1024以前的端口为系统使用]
更多个人化设置参考以下文档
第四招:修改注册表,让系统更强壮
1、隐藏重要文件/目录可以修改注册表实现完全隐藏:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ Current-Version\Explorer\Advanced\Folder\Hi-dden\SHOWALL”,鼠标右击 “CheckedValue”,选择修改,把数值由1改为0
2、启动系统自带的Internet连接_blank">防火墙,在设置服务选项中勾选Web服务器。
3、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
EnablePMTUDiscovery REG_DWORD 0
NoNameReleaseOnDemand REG_DWORD 1
EnableDeadGWDetect REG_DWORD 0
KeepAliveTime REG_DWORD 300,000
PerformRouterDiscovery REG_DWORD 0
EnableICMPRedirects REG_DWORD 0
4. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
5. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
6. 不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
7.修改终端服务端口
运行regedit,找到[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ Wds \ rdpwd \ Tds \ tcp],看到右边的PortNumber了吗?在十进制状态下改成你想要的端口号吧,比如7126之类的,只要不与其它冲突即可。
2、第二处HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Terminal Server \ WinStations \ RDP-Tcp,方法同上,记得改的端口号和上面改的一样就行了。
8、禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。打开注册表,找到Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
9、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己更改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如258,起码让那些小菜鸟晕上半天,就此放弃入侵你也不一定哦
10. 删除默认共享
有人问过我一开机就共享所有盘,改回来以后,重启又变成了共享是怎么回事,这是2K为管理而设置的默认共享,必须通过修改注册表的方式取消它:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters:AutoShareServer类型是REG_DWORD把值改为0即可
11. 禁止建立空连接
默认情况下,任何用户通过通过空连接连上服务器,进而枚举出帐号,猜测密码。我们可以通过修改注册表来禁止建立空连接:
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 的值改成”1”即可