本配置仅适合Win2003,部分内容也适合于Win2000。很多人觉得3389不安全,其实只要设置好,密码够长,攻破3389也不是件容易的事情,我觉得别的远程软件都很慢,还是使用了3389连接。
经测试,本配置在Win2003 + IIS6.0 + Serv-U + SQL Server 的单服务器多网站中一切正常。以下配置中打勾的为推荐进行配置,打叉的为可选配置。
一、系统权限的设置
1、磁盘权限
系统盘只给 Administrators 组和 SYSTEM 的完全控制权限
其他磁盘只给 Administrators 组完全控制权限
系统盘/Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘/Documents and Settings/All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘/windows/system32/config/ 禁止guests组
系统盘/Documents and Settings/All Users/「开始」菜单/程序/ 禁止guests组
系统盘/windowns/system32/inetsrv/data/ 禁止guests组
系统盘/Windows/System32/ at.exe、attrib.exe、cacls.exe、net.exe、net1.exe、netstat.exe、regedit.exe 文件只给 Administrators 组和 SYSTEM 的完全控制权限
系统盘/Windows/System32/ cmd.exe、format.com 仅 Administrators 组完全控制权限
把所有(Windows/system32和Windows/ServicePackFiles/i386) format.com 更名为 format_nowayh.com
2、本地安全策略设置
开始菜单->管理工具->本地安全策略
A、本地策略-->审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问失败
审核过程跟踪 无审核
审核目录服务访问失败
审核特权使用失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略-->用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务拒绝登陆:加入Guests组
通过终端服务允许登陆:加入Administrators、Remote Desktop Users组,其他全部删除
C、本地策略-->安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命全部删除
网络访问:可远程访问的注册表路径全部删除
网络访问:可远程访问的注册表路径和子路径全部删除
帐户:重命名来宾帐户重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
D、账户策略-->账户锁定策略
将账户设为“5次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”
二、其他配置
·把Administrator账户更改
管理工具→本地安全策略→本地策略→安全选项
·新建一无任何权限的假Administrator账户
管理工具→计算机管理→系统工具→本地用户和组→用户
更改描述:管理计算机(域)的内置帐户
·重命名IIS来宾账户
1、管理工具→计算机管理→系统工具→本地用户和组→用户→重命名IUSR_ComputerName
2、打开 IIS 管理器→本地计算机→属性→允许直接编辑配置数据库
3、进入Windows/system32/inetsrv文件夹→MetaBase.xml→右键编辑→找到"AnonymousUserName"→写入"IUSR_"新名称→保存
4、关闭"允许直接编辑配置数据库"
·禁止文件共享
本地连接属性→去掉"Microsoft网络的文件和打印共享"和"Microsoft 网络客户端"前面的"√"
·禁止NetBIOS(关闭139端口)
本地连接属性→TCP/IP属性→高级→WINS→禁用TCP/IP上的NetBIOS
管理工具→计算机管理→设备管理器→查看→显示隐藏的设备→非即插即用驱动程序→禁用 NetBios over tcpip→重启
·防火墙的设置
本地连接属性→高级→Windows防火墙设置→高级→第一个"设置",勾选FTP、HTTP、远程桌面服务
·禁止ADMIN$缺省共享、磁盘默认共享、限制IPC$缺省共享(匿名用户无法列举本机用户列表、禁止空连接)
新建REG文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters] "AutoshareWks"=dword:00000000 "AutoShareServer"=dword:00000000 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa] "restrictanonymous"=dword:00000001 |
·删除以下注册表主键
WScript.Network WScript.Network.1 {093FF999-1EA0-4079-9525-9614C3504B74} WScript.Shell WScript.Shell.1 {72C24DD5-D70A-438B-8A42-98424B88AFB8} Shell.Application Shell.Application.1 {13709620-C279-11CE-A49E-444553540000} |
·更改3389端口为12344
这里只介绍如何更改,既然本端口公布出来了,那大家就别用这个了,端口可用windows自带的计算器将10进制转为16进制,16进制数替换下面两个的dword:后面的值(7位数,不够的在前面补0),登陆的时候用10进制,端口更改在服务器重启后生效。新建REG文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp] "PortNumber"=dword:0003038 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp] "PortNumber"=dword:00003038 |
·禁止非管理员使用at命令,新建REG文件,导入注册表
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa] "SubmitControl"=dword:00000001 |
·卸载最不安全的组件
运行"卸载最不安全的组件.bat",重启后更名或删掉Windows/System32/里的wshom.ocx和shell32.dll
----------------卸载最不安全的组件.bat-----------------
regsvr32/u %SystemRoot%/System32/wshom.ocx regsvr32/u %SystemRoot%/System32/shell32.dll regsvr32/u %SystemRoot%/System32/wshext.dll |
·Windows日志的移动
打开"HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/"
Application 子项:应用程序日志
Security 子项:安全日志
System 子项:系统日志
分别更改子项的File键值,再把System32/config目录下的AppEvent.Evt、SecEvent.Evt、SysEvent.Evt复制到目标文件夹,重启。
·Windows日志的保护
1、移动日志后的文件夹→属性→安全→高级→去掉"允许父系的继承权限……"→复制→确定
2、保留System账户和User组,System账户保留除完全控制和修改之外的权限,User组仅保留只读权限
3、AppEvent.Evt、SysEvent.Evt保留Administrator、System账户和User组,Administrator、System账户保留除完全控制和修改之外的权 限,User组仅保留只读权限;
DnsEvent.Evt、SecEvent.Evt保留System账户和User组,System账户保留除完全控制和修改之外的权限,User组仅保留只读权限
·要手动停止/禁用的服务:Computer Browser、Error reporting service、Microsoft Serch、Print Spooler、Remote Registry、Server 、TCP/IP NetBIOS Helper、Workstation
·解决在 IIS 6.0 中,无法下载超过4M的附件(现改为10M)
停止IIS服务→打开WINDOWS/system32/inetsrv/→记事本打开MetaBase.xml→找到 AspBufferingLimit 项→值改为 10485760
·设置Web上传单个文件最大值为10 MB
停止IIS服务→打开WINDOWS/system32/inetsrv/→记事本打开MetaBase.xml→找到 AspMaxRequestEntityAllowed 项→值改为 10485760
·重新定位和设置 IIS 日志文件的权限
1、将 IIS 日志文件的位置移动到非系统分区:在非系统的NTFS分区新建一文件夹→打开 IIS 管理器→右键网站→属性→单击"启用日志 记录"框架中的"属性"→更改到刚才创建的文件夹
2、设置 IIS 日志文件的权限:浏览至日志文件所在的文件夹→属性→安全→确保Administrators和System的权限设置为"完全控制"
·配置 IIS 元数据库权限
打开 Windows/System32/Inetsrv/MetaBase.xml 文件→属性→安全→确认只有 Administrators 组的成员和 LocalSystem 帐户拥有对元 数据库的完全控制访问权,删除所有其他文件权限→确定
解释 Web 内容的权限
打开IIS管理器→右键想要配置的网站的文件夹、网站、目录、虚拟目录或文件
脚本源文件访问,用户可以访问源文件。如果选择"读",则可以读源文件;如果选择"写",则可以写源文件。脚本源访问包括脚本的源代码 。如果"读"或"写"均未选择,则此选项不可用。
读(默认情况下选择):用户可以查看目录或文件的内容和属性。
写:用户可以更改目录或文件的内容和属性。
目录浏览:用户可以查看文件列表和集合。
日志访问:对网站的每次访问创建日志项。
检索资源:允许检索服务检索此资源。这允许用户搜索资源。
·关闭自动播放
运行组策略编辑器(gpedit.msc)→计算机配置→管理模板→系统→关闭自动播放→属性→已启用→所有驱动器
·禁用DCOM
运行Dcomcnfg.exe。控制台根节点→组件服务→计算机→右键单击“我的电脑”→属性”→默认属性”选项卡→清除“在这台计算机上启用分布式 COM”复选框。
·启用父路径
IIS管理器→右键网站→属性→主目录→配置→选项→启用父路径
·IIS 6.0 系统无任何动作超时时间和脚本超时时间
IIS管理器→右键网站→属性→主目录→配置→选项→分别改为40分钟和180秒
·删除不必要的IIS扩展名映射
IIS管理器→右击Web站点→属性→主目录→配置→映射,去掉不必要的应用程序映射,主要为.shtml, .shtm, .stm
·增加IIS对MIME文件类型的支持
IIS管理器→选择服务器→右键→属性→MIME类型(或者右键web站点→属性→HTTP头→MIME类型→新建)添加如下表内容,然后重启IIS,扩展名MIME类型
.iso application/octet-stream .rmvb application/vnd.rn-realmedia |
· 禁止dump file的产生
我的电脑→右键→属性→高级→启动和故障恢复→写入调试信息→无。
dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料(不然我就照字面意思翻译成垃圾文件了)。然而,它也能够给黑客提供 一些敏感信息比如一些应用程序的密码等。
三、Serv-U FTP服务的设置
·本地服务器→设置→拦截"FTP_bounce"攻击和FXP
对于60秒内连接超过10次的用户拦截5分钟
·本地服务器→域→用户→选中需要设置的账号→右边的"同一IP只允许2个登录"
·本地服务器→域→设置→高级→取消"允许MDTM命令来更改文件的日期/时间"
设置Serv-U程序所在的文件夹的权限,Administrator组完全控制,禁止Guests组和IIS匿名用户有读取权限
服务器消息,自上而下分别改为:
服务器工作正常,现已准备就绪... 错误!请与管理员联系! FTP服务器正在离线维护中,请稍后再试! FTP服务器故障,请稍后再试! 当前账户达到最大用户访问数,请稍后再试! 很抱歉,服务器不允许匿名访问! 您上传的东西太少,请上传更多东西后再尝试下载! |
四、SQL安全设置
审核指向SQL Server的连接
企业管理器→展开服务器组→右键→属性→安全性→失败
修改sa账户密码
企业管理器→展开服务器组→安全性→登录→双击sa账户
SQL查询分析器
use master exec sp_dropextendedproc xp_cmdshell exec sp_dropextendedproc xp_dirtree exec sp_dropextendedproc xp_enumgroups exec sp_dropextendedproc xp_fixeddrives exec sp_dropextendedproc xp_loginconfig exec sp_dropextendedproc xp_enumerrorlogs exec sp_dropextendedproc xp_getfiledetails exec sp_dropextendedproc Sp_OACreate exec sp_dropextendedproc Sp_OADestroy exec sp_dropextendedproc Sp_OAGetErrorInfo exec sp_dropextendedproc Sp_OAGetProperty exec sp_dropextendedproc Sp_OAMethod exec sp_dropextendedproc Sp_OASetProperty exec sp_dropextendedproc Sp_OAStop exec sp_dropextendedproc Xp_regaddmultistring exec sp_dropextendedproc Xp_regdeletekey exec sp_dropextendedproc Xp_regdeletevalue exec sp_dropextendedproc Xp_regenumvalues exec sp_dropextendedproc Xp_regread exec sp_dropextendedproc Xp_regremovemultistring exec sp_dropextendedproc Xp_regwrite drop procedure sp_makewebtask |