IIS Web服务器安全加固步骤:
安装和配置 Windows Server 2003。
1. 将<systemroot>/System32/cmd.exe转移到其他目录或更名;
2. 系统帐号尽量少,更改默认帐户名(如Administrator)和描述,密码尽量复杂;
3. 拒绝通过网络访问该计算机(匿名登录;内置管理员帐户;Support_ 388945a 0;Guest;所有非操作系统服务帐户)
4. 建议对一般用户只给予读取权限,而只给管理员和System以完全控制权限,但这样做有可能使某些正常的脚本程序不能执行,或者某些需要写的操作不能完成,这时需要对这些文件所在的文件夹权限进行更改,建议在做更改前先在测试机器上作测试,然后慎重更改。
5. NTFS文件权限设定(注意文件的权限优先级别比文件夹的权限高):
文件类型 | 建议的 NTFS 权限 |
CGI 文件(.exe、.dll、.cmd、.pl) | Everyone(执行) |
6. 禁止C$、D$一类的缺省共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters
AutoShareServer、REG_DWORD、0x0
7. 禁止ADMIN$缺省共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/lanmanserver/parameters
AutoShareWks、REG_DWORD、0x0
8. 限制IPC$缺省共享
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa
restrictanonymous REG_DWORD 0x0 缺省
0x1 匿名用户无法列举本机用户列表
0x2 匿名用户无法连接本机IPC$共享
说明:不建议使用2,否则可能会造成你的一些服务无法启动,如SQL Server
9. 仅给用户真正需要的权限,权限的最小化原则是安全的重要保障
10. 在本地安全策略->审核策略中打开相应的审核,推荐的审核是:
账户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
账户登录事件 成功 失败
审核项目少的缺点是万一你想看发现没有记录那就一点都没辙;审核项目太多不仅会占用系统资源而且会导致你根本没空去看,这样就失去了审核的意义。 与之相关的是:
在账户策略->密码策略中设定:
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5次
最长存留期 30天
在账户策略->账户锁定策略中设定:
账户锁定 3次错误登录
锁定时间 20分钟
复位锁定计数 20分钟
11. 在Terminal Service Configration(远程服务配置)-权限-高级中配置安全审核,一般来说只要记录登录、注销事件就可以了。
12. 解除NetBios与TCP/IP协议的绑定
控制面版——网络——绑定——NetBios接口——禁用 2000:控制面版——网络和拨号连接——本地网络——属性——TCP/IP——属性——高级——WINS——禁用TCP/IP上的NETBIOS
13. 在网络连接的协议里启用TCP/IP筛选,仅开放必要的端口(如80)
14. 通过更改注册表Local_Machine/System/CurrentControlSet/Control/LSA-RestrictAnonymous = 1来禁止139空连接
15. 修改数据包的生存时间(TTL)值
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)
16. 防止SYN洪水攻击
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
SynAttackProtect REG_DWORD 0x2(默认值为0x0)
17. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters/Interfaces/interface
PerformRouterDiscovery REG_DWORD 0x0(默认值为0x2)
18. 防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
EnableICMPRedirects REG_DWORD 0x0(默认值为0x1)
19. 不支持IGMP协议
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters
IGMPLevel REG_DWORD 0x0(默认值为0x2)
20. 设置arp缓存老化时间设置
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
ArpCacheLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为120秒)
ArpCacheMinReferencedLife REG_DWORD 0-0xFFFFFFFF(秒数,默认值为600)
21. 禁止死网关监测技术
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
EnableDeadGWDetect REG_DWORD 0x0(默认值为ox1)
22. 不支持路由功能
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services:/Tcpip/Parameters
IPEnableRouter REG_DWORD 0x0(默认值为0x0)
安装和配置 IIS 服务:
1. 仅安装必要的 IIS 组件。(禁用不需要的如FTP 和 SMTP 服务) 2. 仅启用必要的服务和 Web Service 扩展,推荐配置:
万维网服务子组件
3. 将IIS目录&数据与系统磁盘分开,保存在专用磁盘空间内。 4. 在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可) 5. 在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件 6. Web站点权限设定(建议)
7. 建议使用W 3C 扩充日志文件格式,每天记录客户IP地址,用户名,服务器端口,方法,URI字根,HTTP状态,用户代理,而且每天均要审查日志。(最好不要使用缺省的目录,建议更换一个记日志的路径,同时设置日志的访问权限,只允许管理员和system为Full Control)。 8. 程序安全: |
安全更新
应用所需的所有 Service Pack 和 定期手动更新补丁。
安装和配置防病毒保护
推荐NAV 8.1以上版本病毒防火墙(配置为至少每周自动升级一次)。
安装和配置防火墙保护
推荐最新版BlackICE Server Protection防火墙(配置简单,比较实用)
监视解决方案
根据要求安装和配置 MOM代理或类似的监视解决方案。
加强数据备份
Web数据定时做备份,保证在出现问题后可以恢复到最近的状态。
考虑实施 IPSec 筛选器
用 IPSec 过滤器阻断端口
Internet 协议安全性 (IPSec) 过滤器可为增强服务器所需要的安全级别提供有效的方法。本指南推荐在指南中定义的高安全性环境中使用该选项,以便进一步减少服务器的受攻击面。
有关使用 IPSec 过滤器的详细信息,请参阅模块其他成员服务器强化过程。
下表列出在本指南定义的高级安全性环境下可在 IIS 服务器上创建的所有 IPSec 过滤器。
服务 | 协议 | 源端口 | 目标端口 | 源地址 | 目标地址 | 操作 | 镜像 |
Terminal Services | TCP | 所有 | 3389 | 所有 | ME | 允许 | 是 |
HTTP Server | TCP | 所有 | 80 | 所有 | ME | 允许 | 是 |
HTTPS Server | TCP | 所有 | 443 | 所有 | ME | 允许 | 是 |
Internet 协议安全性 (IPSec) 过滤器可为增强服务器所需要的安全级别提供有效的方法。本指南推荐在指南中定义的高安全性环境中使用该选项,以便进一步减少服务器的受攻击面。
有关使用 IPSec 过滤器的详细信息,请参阅模块其他成员服务器强化过程。
下表列出在本指南定义的高级安全性环境下可在 IIS 服务器上创建的所有 IPSec 过滤器。
服务 | 协议 | 源端口 | 目标端口 | 源地址 | 目标地址 | 操作 | 镜像 |
Terminal Services | TCP | 所有 | 3389 | 所有 | ME | 允许 | 是 |
HTTP Server | TCP | 所有 | 80 | 所有 | ME | 允许 | 是 |
HTTPS Server | TCP | 所有 | 443 | 所有 | ME | 允许 | 是 |
SQL服务器安全加固
步骤 | 说明 |
MDAC 升级 | 安装最新的MDAC(http://www.microsoft.com/data/download.htm) |
密码策略 | 由于SQL Server不能更改sa用户名称,也不能删除这个超级用户,所以,我们必须对这个帐号进行最强的保护,当然,包括使用一个非常强壮的密码,最好不要在数据库应用中使用sa帐号。新建立一个拥有与sa一样权限的超级用户来管理数据库。同时养成定期修改密码的好习惯。数据库管理员应该定期查看是否有不符合密码要求的帐号。比如使用下面的SQL语句: |
数据库日志的记录 | 核数据库登录事件的“失败和成功”,在实例属性中选择“安全性”,将其中的审核级别选定为全部,这样在数据库系统和操作系统日志里面,就详细记录了所有帐号的登录事件。 |
管理扩展存储过程 | xp_cmdshell是进入操作系统的最佳捷径,是数据库留给操作系统的一个大后门。请把它去掉。使用这个SQL语句: OLE自动存储过程(会造成管理器中的某些特征不能使用),这些过程包括如下(不需要可以全部去掉: 去掉不需要的注册表访问的存储过程,注册表存储过程甚至能够读出操作系统管理员的密码来,如下: |
防TCP/IP端口探测 | 在实例属性中选择TCP/IP协议的属性。选择隐藏 SQL Server 实例。 |
对网络连接进行IP限制 | 使用操作系统自己的IPSec可以实现IP数据包的安全性。请对IP连接进行限制,保证只有自己的IP能够访问,拒绝其他IP进行的端口连接。 |
附:Win2003系统建议禁用服务列表
名 称 | 服务名 | 建议设置 |
自动更新 | wuauserv | 禁用 |
Background Intelligent Transfer Service | BITS | 禁用 |
Computer Browser | Browser | 禁用 |
DHCP Client | Dhcp | 禁用 |
NTLM Security Support Provider | NtLmSsp | 禁用 |
Network Location Awareness | NLA | 禁用 |
Performance Logs and Alerts | SysmonLog | 禁用 |
Remote Administration Service | SrvcSurg | 禁用 |
Remote Registry Service | RemoteRegistry | 禁用 |
Server | lanmanserver | 禁用 |
TCP/IP NetBIOS Helper Service | LmHosts | 禁用 |
DHCP Client | Dhcp | 禁用 |
NTLM Security Support Provider | NtLmSsp | 禁用 |
Terminal Services | TermService | 禁用 |
Windows Installer | MSIServer | 禁用 |
Windows Management Instrumentation Driver Extensions | Wmi | 禁用 |
WMI Performance Adapter | WMIApSrv | 禁用 |
Error Reporting | ErrRep | 禁用 |