Windows 2008 服务器安全加固

一、服务环境以及所需要的软件都已安装完毕( 记住一点所有安全性的操作设置都必须在软件安装完以后才能进行。)
         最少的服务+最小的权限=最大的安全 
        对于服务,不必要的话一定不要装,要知道服务的运行是SYSTEM级的哦,对于权限,本着够用就好的原则分配就是了

二、Windows  常规设置
        1、DOS跟WinNT的权限的分别:
            DOS是个单任务、单用户的操作系统。但是我们能说DOS没有权限吗?不能!当我们打开一台装有DOS操作系统的计算机的时候,我们就拥有了这个操作系统的管理员权限,而且,这个权限无处不在。所以,我们只能说DOS不支持权限的设置,不能说它没有权限。随着人们安全意识的提高,权限设置随着NTFS的发布诞生了。
            Windows NT里,用户被分成许多组,组和组之间都有不同的权限,当然,一个组的用户和用户之间也可以有不同的权限。下面我们来谈谈NT中常见的用户组。
        2、屏幕保护与电源
            桌面右键--〉个性化--〉屏幕保护程序,屏幕保护程序 选择无,更改电源设置 选择高性能,选择关闭显示器的时间 关闭显示器 选 从不 保存修改
        3、目录权限
            除系统所在分区之外的所有分区都赋予Administrators和SYSTEM有完全控制权,之后再对其下的子目录作单独的目录权限
        4、远程连接
            我的电脑属性--〉远程设置--〉远程--〉只允许运行带网络超级身份验证的远程桌面的计算机连接,选择允许运行任意版本远程桌面的计算机连接(较不安全)。备注:方便多种版本Windows远程管理服务器。windows server 2008的远程桌面连接,与2003相比,引入了网络级身份验证(NLA,network level authentication),XP SP3不支持这种网络级的身份验证,vista跟win7支持。然而在XP系统中修改一下注册表,即可让XP SP3支持网络级身份验证。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa在右窗口中双击Security Pakeages,添加一项“tspkg”。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders,在右窗口中双击SecurityProviders,添加credssp.dll;请注意,在添加这项值时,一定要在原有的值后添加逗号后,别忘了要空一格(英文状态)。然后将XP系统重启一下即可。再查看一下,即可发现XP系统已经支持网络级身份验证
        5、修改远程访问服务端口
            更改远程连接端口方法,可用windows自带的计算器将10进制转为16进制。更改3389端口为8208
            Windows Registry Editor Version 5.00
            [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]
"PortNumber"=dword:0002010
            [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"PortNumber"=dword:00002010
           (1)在开始--运行菜单里,输入regedit,进入注册表编辑,按下面的路径进入修改端口的地方
           (2)HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
           (3)找到右侧的 "PortNumber",用十进制方式显示,默认为3389,改为(例如)6666端口
           (4)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
           (5)找到右侧的 "PortNumber",用十进制方式显示,默认为3389,改为同上的端口
           (6)在控制面板--Windows 防火墙--高级设置--入站规则--新建规则
           (7)选择端口--协议和端口--TCP/特定本地端口:同上的端口
           (8)下一步,选择允许连接
           (9)下一步,选择公用
           (10)下一步,名称:远程桌面-新(TCP-In),描述:用于远程桌面服务的入站规则,以允许RDP通信。[TCP 同上的端口]
           (11)删除远程桌面(TCP-In)规则
           (12)重新启动计算机
        6、配置本地连接
            网络--〉属性--〉管理网络连接--〉本地连接,打开“本地连接”界面,选择“属性”,左键点击“Microsoft网络客户端”,再点击“卸载”,在弹出的对话框中“是”确认卸载。点击“Microsoft网络的文件和打印机共享”,再点击“卸载”,在弹出的对话框中选择“是”确认卸载。
            解除Netbios和TCP/IP协议的绑定139端口:打开“本地连接”界面,选择“属性”,在弹出的“属性”框中双击“Internet协议版本(TCP/IPV4)”,点击“属性”,再点击“高级”—“WINS”,选择“禁用TCP/IP上的NETBIOS”,点击“确认”并关闭本地连接属性。
      禁止默认共享:点击“开始”—“运行”,输入“Regedit”,打开注册表编辑器,打开注册表项“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters”,在右边的窗口中新建Dword值,名称设为AutoShareServer,值设为“0”。
         关闭 445端口:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters,新建 Dword(32位)名称设为SMBDeviceEnabled 值设为“0”
        7、共享和发现
            右键“网络” 属性 网络和共享中心  共享和发现
关闭,网络共享,文件共享,公用文件共享,打印机共享,显示我正在共享的所有文件和文件夹,显示这台计算机上所有共享的网络文件夹
        8、用防火墙限制Ping
        9、禁用DCOM ("冲击波"病毒 RPC/DCOM 漏洞)
            运行Dcomcnfg.exe。控制台根节点→组件服务→计算机→右键单击“我的电脑”→属性”→默认属性”选项卡→清除“在这台计算机上启用分布式 COM”复选框。
        10、ASP漏洞
            主要是卸载WScript.Shell 和 Shell.application 组件,是否删除看是否必要。
                regsvr32/u C:\WINDOWS\System32\wshom.ocx   
                regsvr32/u C:\WINDOWS\system32\shell32.dll
            删除可能权限不够
                del C:\WINDOWS\System32\wshom.ocx
                del C:\WINDOWS\system32\shell32.dll
            如果确实要使用,或者也可以给它们改个名字。
            WScript.Shell可以调用系统内核运行DOS基本命令
            可以通过修改注册表,将此组件改名,来防止此类木马的危害。
                HKEY_CLASSES_ROOT\WScript.Shell\及HKEY_CLASSES_ROOT\WScript.Shell.1\
                改名为其它的名字,如:改为WScript.Shell_ChangeName 或 WScript.Shell.1_ChangeName
            自己以后调用的时候使用这个就可以正常调用此组件了
            也要将clsid值也改一下
                HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值
                HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值
                也可以将其删除,来防止此类木马的危害。
            Shell.Application可以调用系统内核运行DOS基本命令
            可以通过修改注册表,将此组件改名,来防止此类木马的危害。
                HKEY_CLASSES_ROOT\Shell.Application\及HKEY_CLASSES_ROOT\Shell.Application.1\改名为其它的名字,如:改为Shell.Application_ChangeName 或 Shell.Application.1_ChangeName
            自己以后调用的时候使用这个就可以正常调用此组件了
            也要将clsid值也改一下
                HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
                HKEY_CLASSES_ROOT\Shell.Application\CLSID\项目的值
                也可以将其删除,来防止此类木马的危害。
            禁止Guest用户使用shell32.dll来防止调用此组件。
                2000使用命令:cacls C:\WINNT\system32\shell32.dll /e /d guests   
                2003使用命令:cacls C:\WINDOWS\system32\shell32.dll /e /d guests
           禁止使用FileSystemObject组件,FSO是使用率非常高的组件,要小心确定是否卸载。改名后调用就要改程序了,Set FSO = Server.CreateObject("Scripting.FileSystemObject")。FileSystemObject可以对文件进行常规操作,可以通过修改注册表,将此组件改名,来防止此类木马的危害。
            HKEY_CLASSES_ROOT\Scripting.FileSystemObject\改名为其它的名字,如:改为 FileSystemObject_ChangeName
            自己以后调用的时候使用这个就可以正常调用此组件了
            也要将clsid值也改一下HKEY_CLASSES_ROOT\Scripting.FileSystemObject\CLSID\项目的值
            也可以将其删除,来防止此类木马的危害。
                2000注销此组件命令:RegSrv32 /u C:\WINNT\SYSTEM\scrrun.dll
                2003注销此组件命令:RegSrv32 /u C:\WINDOWS\SYSTEM\scrrun.dll
            如何禁止Guest用户使用scrrun.dll来防止调用此组件?
                使用这个命令:cacls C:\WINNT\system32\scrrun.dll /e /d guests
        11、打开UAC(控制面板 用户账户 打开或关闭用户账户控制)
        12、程序权限
            "net.exe","net1.exe","cmd.exe","tftp.exe","netstat.exe","regedit.exe","at.exe","attrib.exe","cacls.exe","format.com","c.exe"
                或完全禁止上述命令的执行
                gpedit.msc-〉用户配置-〉管理模板-〉系统
                启用 阻止访问命令提示符 同时 也停用命令提示符脚本处理
                启用 阻止访问注册表编辑工具
                启用 不要运行指定的windows应用程序,添加下面的
                at.exe attrib.exe c.exe cacls.exe cmd.exe format.com net.exe net1.exe netstat.exe regedit.exe tftp.exe


三、Windows 组、用户设置
    1、所有盘符根目录只给system和Administrator的权限,其他的删除
    2、重命名帐户Administrator和Guest。禁用Guest账号,并加一个超级复杂的密码,密码可以是复制一段文本进去。
禁用SQLDebugger帐号。重命名管理员用户组Administrators
    3、更改Administrator,guest账户,新建一无任何权限的假Administrator账户作为陷阱帐户,设置超长密码,并去掉所有用户组

四、文件权限设置
    1、所有磁盘格式转换为NTFS格式
    2、关闭光盘和磁盘的自动播放功能(控制面板,自动播放,取消勾选,保存。)
        点击“开始”—“运行”,输入“Gpedit.msc”,打开组策略编辑器,依次展开“计算机配置”—“管理模板”—“Windows组件”,在右侧窗口找到“自动播放策略”选项并打开,双击右侧关闭自动播放,在打开的对话框上部选择“已启用”,在对话框下部选择“所有驱动器”,点击“确定”完成设置。
    3、删除系统默认共享
        可以使用 net share 命令查看,并全部删除默认共享
net share c$ /del net share d$ /del net share e$ /del net share f$ /del net share ipc$ /del net share admin$ /del
也可以在“服务”中直接禁用“server”服务。   
        直修改注册表的方法
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\parameters下面新建AutoShareServer ,值为0,重启电脑

五、Windows 服务禁启用
    1、禁用不必要的服务( 控制面板―――管理工具―――服务:把下面的服务全部停止并禁用)
        TCP/IP NetBIOS Helper Server    提供TCP/IP (NetBT) 服务上的NetBIOS 和网络上客户端的NetBIOS 名称解析的支持
        Distributed Link Tracking Client  用于局域网更新连接信息
        Microsoft Search
        Print Spooler  打印服务
        Remote Registry  远程修改注册表
        Workstation  泄漏系统用户名列表 与Terminal Services Configuration 关联
        Server  计算机通过网络的文件、打印、和命名管道共享
        Computer Browser 维护网络计算机更新 默认已经禁用
        Net Logon   域控制器通道管理 默认已经手动
        Remote Procedure Call (RPC) Locator   RpcNs*远程过程调用 (RPC) 默认已经手动
        删除服务sc delete MySql

六、组策略设置(在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-->Windows设置-->安全设置-->本地策略-->安全选项)
    1、本地策略——>审核策略
        审核策略更改 成功 失败
        审核登录事件 成功 失败
        审核对象访问 失败
        审核过程跟踪 无审核
        审核目录服务访问 失败
        审核特权使用 失败
        审核系统事件 成功 失败
        审核账户登录事件 成功 失败
        审核账户管理 成功 失败
    2、本地策略——>用户权限分配
        关闭系统:只有Administrators 组、其它的全部删除。
        通过终端服务拒绝登陆:加入Guests组、IUSR_*****、IWAM_*****、NETWORK SERVICE、SQLDebugger 
        通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除 在组策略中,计算机配置 > 管理模板 > 系统 显示“关闭事件跟踪程序” 更改为已禁用
    3、本地策略——>安全选项
        交互式登陆:不显示最后的用户名 启用
        网络访问:不允许SAM 帐户和共享的匿名枚举 启用
        网络访问: 不允许存储网络身份验证的凭据或 .NET Passports 启用
        网络访问:可远程访问的注册表路径 全部删除
        网络访问:可远程访问的注册表路径和子路径 全部删除
        网络访问:可匿名访问的共享         内容全部删除
        网络访问:可匿名访问的命名管道       内容全部删除
    4、安全设置-->账户策略-->账户锁定策略
        在运行中输入gpedit.msc回车,打开组策略编辑器,选择计算机配置-->Windows设置-->安全设置-->账户策略-->账户锁定策略,将账户锁定阈值设为“三次登陆无效”,“锁定时间为30分钟”,“复位锁定计数设为30分钟”。
    5、选择计算机配置-->Windows设置-->安全设置-->密码策略
        启动 密码必须符合复杂性要求,最短密码长度

七、注册表设置

八、系统软件权限设置
    1、微软最新补丁
    2、安装一款杀毒软件,推荐Mcafee(mcafee下载://www.jb51.net/softs/116659.html),再配合Windows 防火墙,它们俩应该是一个不错的组合
    3、下列系统程序都只给管理员权限,别的全部删除(所有的*.cpl和*.msc文件也只给管理员权限)
        arp.exe
        attrib.exe
        cmd.exe
        format.com
        ftp.exe
        tftp.exe
        net.exe
        net1.exe
        netstat.exe
        ping.exe
        regedit.exe
        regsvr32.exe
        telnet.exe
        xcopy.exe
        at.exe
    4、禁用IPV6
        1、server 2008 r2交互式登录: 不显示最后的用户名
        2、其实最重要的就是开启防火墙+服务器安全狗(安全狗自带的一些功能基本上都设置的差不多了)+mysql(sqlserver)低权限运行基本上就差不多了。3389远程登录,一定要限制ip登录。
        开始 -> 运行 - > 输入 Regedit 进入注册表编辑器
        定位到:
        [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
        右键点击 Parameters,选择新建 -> DWORD (32-位)值
        命名值为 DisabledComponents,然后修改值为 ffffffff (16进制)
        重启后生效
        DisableComponents 值定义:
        0, 启用所有 IPv 6 组件,默认设置
        0xffffffff,禁用所有 IPv 6 组件, 除 IPv 6 环回接口
        0x20, 以前缀策略中使用 IPv 4 而不是 IPv 6
        0x10, 禁用本机 IPv 6 接口
        0x01, 禁用所有隧道 IPv 6 接口
        0x11, 禁用除用于 IPv 6 环回接口所有 IPv 6 接口

九、站点目录权限设置
    1、站点文件夹安全属性设置
        一般给站点目录权限为:System 完全控制,Administrator 完全控制,Users 读,IIS_Iusrs 读、写,在IIS7 中删除不常用的映射

十、IIS安全设置(一站点一用户)

十一、Windows 端口设置
    1、只开启需要用的端口,关闭不必要的,以减少攻击面。(用不到的端口一律不要开启)
        80:IIS7 21:FTP 3389:远程 3306:MySQL 1433:Mssql

十二、Windows 防火墙设置
    1、开启防火墙
    2、防火墙高级设置(设置出入站规则)
    3、控制面板→Windows防火墙设置→更改设置→例外,勾选FTP、HTTP、远程桌面服务 核心网络
        HTTPS用不到可以不勾、3306:Mysql、1433:Mssql

十三、使用IP安全策略关闭端口

        1.点击 控制面板-管理工具",双击打开"本地策略",选中"IP安全策略,在本地计算机“右边的空白位置右击鼠标,弹出快捷菜单,选择"创建IP安全策略”,弹出向导。在向导中点击下一步,当显示“安全通信请求”画面时,“激活默认相应规则”左边的按默认留空,点“完成”就创建了一个新的IP安全策略。

        2.右击刚才创建的新的IP安全策略,在“属性”对话框中,把“使用添加向导”左边的钩去掉,然后再点击右边的“添加”按纽添加新的规则,随后弹出“新规则属性”对话框,在画面上点击“添加”按纽,弹出IP筛选器列表窗口。在列表中,首先把“使用添加向导”左边的钩去掉,然后再点击右边的"添加"按纽   添加新的筛选器。

        3.进入“筛选器属性”对话框,首先看到的是寻地址,源地址选“任何IP地址”,目标地址选“我的IP地址”,点击“协议”选项卡,在“选择协议类型”的下拉列表中选择“TCP”,然后在“到此端口”的下的文本框中输入“135”,点击确定。这样就添加了一个屏蔽TCP135 端口的筛选器,可以防止外界通过135端口连上你的电脑。
点确定后回到筛选器列表的对话框,可以看到已经添加了一条策略。重复以上步骤继续添加TCP137 139 445 593 1025 2745 3127 3128 3389 6129端口和udp 135 139 445 端口,为它们建立相应的筛选器。建立好上述端口的筛选器,最后点击确定按纽。

        4.在“新规则属性”对话框中,选中“新IP筛选器列表”然后点击其左边的复选框,表示已经激活。最后点击“筛选器操作”选项卡中,把“使用添加向导”左边的钩去掉,点击“添加”按钮,在“新筛选器操作属性”的“安全方法”选项卡中,选择“阻止”,然后点击“应用”“确定”。

        5.进入“新规则属性”对话框,选中“新筛选器操作”左边的复选框,表示已经激活,点击“关闭”按钮,关闭对话框。最后“新IP安全策略属性”对话框,在“新的IP筛选器列表”左边打钩,按确定关闭对话框。在“本地安全策略”窗口,用鼠标右击新添加的IP安全策略,然后选择“分配”。


十四、目录权限设置
    系统目录:
        1、确保所有盘符都是NTFS格式(如果不是,可以用命令 convert d:/fs:ntfs 转换为NTFS格式)
        2、所有磁盘(系统盘、数据盘)根目录只给system和administrators权限,其它删除。

    站点目录:
        1、每个网站对应一个目录,并为这个网站目录加上IUSR和IIS_IUSRS权限,都只给“列出文件夹内容”和“读取”权限。
        2、上传目录还需要给IIS_IUSRS组再添加“修改”、“写入”权限。
        3、打开IIS管理器,找到站点,选中上传目录,在中间栏IIS下双击打开“处理程序映射”,再选择“编辑功能权限”,把“脚本”前面的勾掉就可以了。(防止用户上传恶意文件并执行)
            注:我们打开upload文件夹看一下,是不是多了一个web.config。
              
              
                   
                       
                   

               

        意思是upload目录下的所有文件(包括所有子文件夹下的)将只有只读权限。这样用户即使上传了恶意文件,也发挥不了作用。
        的取值可以为“Read, Execute, Script”,分别表示“只读、执行、脚本”。

        每个网站程序的功能不同,设置也各不相同。最少的权限就是最大的安   

十五、操作技巧

1. 如何关掉IPv6?

这一点国内国外网站上基本上都有了共识,都是按照下面两步来进行。据说执行之后就剩本地换回路由还没关闭。但关闭之后我发现某些端口还是同时监听ipv4和ipv6的端口,尤其是135端口,已经把ipv4关闭了,ipv6竟然还开着。匪夷所思啊……

先关闭网络连接->本地连接->属性->Internet协议版本 6 (TCP/IPv6)

然后再修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters,增加一个Dword项,名字:DisabledComponents,值:ffffffff(十六位的8个f)

重启服务器即可关闭ipv6

2. 如何关闭135端口?

这个破端口是RPC服务的端口,以前出过很多问题,现在貌似没啥漏洞了,不过还是心有余悸啊,想关的这样关:

开始->运行->dcomcnfg->组件服务->计算机->我的电脑->属性->默认属性->关闭“在此计算机上启用分布式COM”->默认协议->移除“面向连接的TCP/IP”

但是感觉做了以上的操作还能看到135在Listen状态,还可以试试这样。

在cmd中执行:netsh rpc add 127.0.0.0,这样135端口只监听127.0.0.1了。

3. 如何关闭445端口?

445端口是netbios用来在局域网内解析机器名的服务端口,一般服务器不需要对LAN开放什么共享,所以可以关闭。

修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters,则更加一个Dword项:SMBDeviceEnabled,值:0

4. 关闭Netbios服务(关闭139端口)

网络连接->本地连接->属性->Internet协议版本 4->属性->高级->WINS->禁用TCP/IP上的NetBIOS

5. 关闭LLMNR(关闭5355端口)

什么是LLMNR?本地链路多播名称解析,也叫多播DNS,用于解析本地网段上的名称,没啥用但还占着5355端口。

使用组策略关闭,运行->gpedit.msc->计算机配置->管理模板->网络->DNS客户端->关闭多播名称解析->启用

还有一种方法,我没尝试,如果没有组策略管理的可以试试,修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsof\Windows NT\DNSClient,新建一个Dword项,名字:EnableMulticast,值:0

6. 关闭Windows Remote Management服务(关闭47001端口)

Windows远程管理服务,用于配合IIS管理硬件,一般用不到,但开放了47001端口很不爽,关闭方法很简单,禁用这个服务即可。

7. 关闭UDP 500,UDP 4500端口

这两个端口让我搜索了半天,虽然知道应该和VPN有关,但是不知道是哪个服务在占用。最后终于找到了,其实是IKE and AuthIP IPsec Keying Modules服务在作怪。如果你的服务器上不运行基于IKE认证的VPN服务,就可以关闭了。(我用的是PPTP方式连接VPN,把ipsec和ike都关闭了)

8. 删除文件和打印机共享

网络连接->本地连接->属性,把除了“Internet协议版本 4”以外的东西都勾掉。

9. 关闭文件和打印机共享

直接停止“server”服务,并设置为禁用,重启后再右键点某个磁盘选属性,“共享”这个页面就不存在了。


你可能感兴趣的:(Windows,Server)