Windows 2016 服务器安全配置和加固「建议收藏」

2022-06-27 10:56:21 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

最近一个项目需要使用Windows服务器,选择安装了最新版的Windows 2016,上一次使用Windows服务器还是Windows 2008系统,发现变化还是挺多的,依次记录下来以备后面查阅。

更换Windows更新服务器 如果你觉得默认的Windows更新服务器比较慢,或者如果选择了阿里云或腾讯云服务器的话,可以更换Windows服务器。

右键开始菜单图标,选择“运行”,然后输入gpedit.msc,依次选择 “计算机配置” – “管理模板” – “Windows 组件” – “Windows 更新”,双击“指定 Intranet Microsoft 更新服务位置”:

选中 已启用,然后设置检测更新的Intranet更新服务和统计服务器,如果是阿里云经典网络可以

设置成 http://windowsupdate.aliyun-inc.com,阿里云VPC网络可以设置成 http://update.cloud.aliyuncs.com,腾讯云可以设置成 http://windowsupdate.tencentyun.com,备用下载服务器设置成 http://wsus.neu.edu.cn。

启用并允许自动更新 双击“允许自动更新立即安装”,选择“已启用”启用自动更新。然后双击“配置自动更新”,选中“已启用”并配置成“自动下载并通知安装”,如下图:

设置完上述两步之后,需要以管理员角色执行下面的命令:

代码语言:javascript复制
gpupdate /force

解决执行自动更新时出现的 0x8024401f 和 0x8024401c 错误 完成上述操作之后,选择开始菜单-设置,执行检查更新,检查一下是否正常。 如果出现 0x8024401f 或 0x8024401c 错误的话,以管理员身份执行下面的命令:

代码语言:javascript复制
net stop wuauserv
reg delete HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsWindowsUpdate
net start wuauserv

设置账号安全策略 在“运行”中执行secpol.msc命令,打开“本地安全策略”,进行如下设置: (1)“账户设置”-“密码策略” 设置合适的密码复杂度,增强密码的强度。参考设置如下:

(2)“账户设置”-“账户锁定策略” 设置账号密码出错之后的锁定时间,需要先设置“账户锁定阀值”才能设置其他两项,参考设置如下:

(3)“本地策略”-“安全选项” 将“交互式登录: 不显示最后的用户名”设置为“启用”状态。

检查并优化账号 将账户安全设置完成之后,再对系统的账号进行优化。在“运行”中执行compmgmt.msc命令,打开“计算机管理”,然后在“系统工具”-“本地用户和组”-“用户”中查看是否有不用的账户,将不用的账户删除或停用。除此之外,还要在命令行中使用 net user 命令查看一遍有没有多余的账号(有的账号会在计算机管理中隐藏),可以使用 net user /del 命令删除对应的账号。

将默认的管理员用户名 Administrator 进行重命名,并且建议重新设置新的管理员密码。

禁止系统自动登录 系统休眠重新激活之后,需要密码才能登录系统。在“运行”中输入 control userpasswords2,打开“用户账户”,然后启用“要是用本机,用户必须输入用户名和密码”的选项。

更改远程终端默认3389端口 将默认的远程终端端口3389修改成其他的端口。运行regedit打开注册表程序,需要修改注册表的两个地方:

HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWdsrepwdTdstcp HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStationsRDP-Tcp

将上述两个地方右侧 PortNumber的值修改成新的端口号(建议将基数设置为十进制):

设置完成之后关闭注册表,然后重启服务器之后即可生效。如果设置防火墙的话,注意新端口加入防火墙的白名单中。

将远程关机、本地关机和用户权限分配只授权给Administrtors组 在“运行”中执行secpol.msc,打开“本地安全策略”窗口,依次打开“本地策略”-“用户权限分配”。 (1)双击右侧的“从远程系统强制关机”,只保留“Administrators组”并将其他用户组删除; (2)双击右侧的“关闭系统”,只保留“Administrators组”并将其他用户组删除; (3)双击右侧的“取得文件或其它对象的所有权”,只保留“Administrators组”并将其他用户组删除;

将远程登录账户设置为具体的管理员账号 指定特定的管理员账号而不是Administrtors组,将增强登录系统的安全性,就算通过漏洞创建了Administrtors组的账号,也无法登录系统。

在“运行”中执行secpol.msc,打开“本地安全策略”窗口,依次打开“本地策略”-“用户权限分配”。双击右侧的“从网络访问此计算机”,将所有的用户组删除,然后点击下面的“添加用户或组…”按钮,点击“高级”按钮,然后点击“立即查询”按钮,从查询的结果中选择管理员的账号,然后依次确定保存;

关闭不需要的服务 在“运行”中执行 services.msc 命令,打开“服务”,根据情况建议将以下服务改为禁用:

Application Layer Gateway Service(为应用程序级协议插件提供支持并启用网络/协议连接) Background Intelligent Transfer Service(利用空闲的网络带宽在后台传输文件。如果服务被停用,例如Windows Update 和 MSN Explorer的功能将无法自动下载程序和其他信息) Computer Browser(维护网络上计算机的更新列表,并将列表提供给计算机指定浏览) DHCP Client Diagnostic Policy Service Distributed Link Tracking Client Distributed Transaction Coordinator DNS Client Print Spooler(管理所有本地和网络打印队列及控制所有打印工作) Remote Registry(使远程用户能修改此计算机上的注册表设置) Server(不使用文件共享可以关闭,关闭后再右键点某个磁盘选属性,“共享”这个页面就不存在了) Shell Hardware Detection TCP/IP NetBIOS Helper(提供 TCP/IP (NetBT) 服务上的NetBIOS 和网络上客户端的NetBIOS 名称解析的支持,从而使用户能够共享文件、打印和登录到网络) Task Scheduler(使用户能在此计算机上配置和计划自动任务) Windows Remote Management(47001端口,Windows远程管理服务,用于配合IIS管理硬件,一般用不到) Workstation(创建和维护到远程服务的客户端网络连接。如果服务停止,这些连接将不可用)

关闭“同步主机_xxx”服务 Windows 2016中有一个“同步主机_xxx”的服务,后面的xxx是一个数字,每个服务器不同。需要手动关闭,操作如下: 首先在“运行”中执行regedit打开注册表,然后在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 下面找到 OneSyncSvc、OneSyncSvc_xxx、UserDataSvc和UserDataSvc_xxx四个项,依次将其中的 start 值修改为4,退出注册表然后重启服务器即可。

关闭IPC共享 如果在上面停止并禁用 Server服务的话就不会出现IPC共享了,执行 net share 命令之后会提示“没有启动Server服务”,否则会类似C 、 D 、D 、D等默认共享,可以使用 net share C$ /del 命令进行删除。

在注册表中找到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters,在右侧空白处右键,依次选择“新建”-“DWORD项”,名称设置为AutoShareServer,键值设置为0。

关闭139端口(Netbios服务)、445端口、5355端口(LLMNR) (1)关闭139端口 依次打开“控制面板”-“查看网络状态和任务”,然后点击左侧的“更改适配器设置”,在网络连接中双击激活的网卡,点击“属性”按钮,双击“Internet 协议版本 4(TCP/IPv4)”,在打开的窗口中点击右下角的“高级”按钮,然后选择上面的“WINS”标签,在“NetBIOS设置”中选择“禁用 TCP/IP上的NetBIOS”,最后依次“确定”。

关闭此功能,你服务器上所有共享服务功能都将关闭,别人在资源管理器中将看不到你的共享资源。这样也防止了信息的泄露。

(2)关闭445端口 445端口是netbios用来在局域网内解析机器名的服务端口,一般服务器不需要对LAN开放什么共享,所以可以关闭。打开注册表,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters位置,在右侧右键并依次选择“新建”-“Dword值”,名称设置为SMBDeviceEnabled,值设置为0。

(3)关闭5355端口(LLMNR) LLMNR本地链路多播名称解析,也叫多播DNS,用于解析本地网段上的名称,可以通过组策略关闭将其关闭。打开“运行”,输入gpedit.msc打开“本地组策略编辑器”,依次选择“计算机配置”-“管理模板”-“网络”-“DNS客户端”,在右侧双击“关闭多播名称解析”项,然后设置为“已禁用”。

网络访问限制 在“运行”中执行 secpol.msc 打开“本地安全策略”,打开“安全设置”-“本地策略”-“安全选项”,设置下面的策略:

网络访问: 不允许 SAM 帐户的匿名枚举:已启用 网络访问: 不允许 SAM 帐户和共享的匿名枚举:已启用 网络访问: 将 Everyone 权限应用于匿名用户:已禁用 帐户: 使用空白密码的本地帐户只允许进行控制台登录:已启用

设置完成之后,在命令行(管理员身份)中执行 gpupdate /force 使其立即生效。

增强日志记录 增大日志量大小,避免由于日志文件容量过小导致日志记录不全。在“运行”中执行eventvwr.msc命令,打开“事件查看器”窗口,打开“Windows 日志”文件,分别右键下面的“应用程序”、“安全”和“系统”项,选择“属性”,修改“日志最大大小”为 20480。

增强审核 对系统事件进行记录,在日后出现故障时用于排查审计。在“运行”中执行secpol.msc命令,打开“本地安全策略”窗口,依次选择“安全设置”-“本地策略”-“审核策略”,建议将里面的项目设置如下:

审核策略更改:成功 审核登录事件:成功,失败 审核对象访问:成功 审核进程跟踪:成功,失败 审核目录服务访问:成功,失败 审核系统事件:成功,失败 审核帐户登录事件:成功,失败 审核帐户管理:成功,失败

上面的项目设置成功之后,在“运行”中执行 gpupdate /force 命令使设置立即生效。

开启并设置防火墙 如果使用了云服务器(如阿里云、腾讯云等),云服务商会提供一个防火墙工具,通常是放在路由级别的,使用起来更方便,如果误操作的话也不会将自己排除在服务器上,因此建议优先采用云服务商提供的防火墙。

开启或关闭Windows防火墙 打开“控制面板”,依次选择“系统和安全”-“Windows防火墙”,选择左侧的“启用或关闭Windows防火墙”,根据需要选择启用或关闭Windows防火墙。如果采用了云服务商提供的防火墙的话,建议将Windows防火墙关闭。PS:开启防火墙之前需要允许远程登录的端口访问,否则远程连接会中断!

允许特定的端口访问 这里以Windows防火墙为例进行说明(其实云服务商提供的防火墙规则是类似的),前提是防火墙是启用的。在“运行”中执行 WF.msc 打开“高级安全 Windows 防火墙”,点击左侧的“入站规则”,然后点击右侧的“新建规则…”打开“新建入站规则向导”窗口,选择“端口”然后点击“下一步”按钮;端口类型选择“TCP”,下面选择“特定本地端口”,里面输入设置的远程登录端口以及Web端口,如:80, 433, 3389,然后点击“下一步”按钮;选择“允许连接”,然后点击“下一步”按钮;选中所有的选项,然后点击“下一步”;最后输入一个规则的名称,比如“允许远程连接和Web服务”,最后点击“完成”保存。

关闭ICMP(禁ping) 按照上面的步骤打开“高级安全 Windows 防火墙”并选中左侧的“入站规则”,从默认的规则里面双击“文件和打印机共享(回显请求 – ICMPv4-In)”,在“常规”中选中“已启用”,并在“操作”中选中“阻止连接”,最后“确定”保存即可。

其它安全设置 设置屏保,使本地攻击者无法直接恢复桌面控制 打开“控制面板”,依次进入“外观和个性化”-“个性化”-“屏幕保护程序”,选择某一个屏保,然后选中“在恢复时显示登录屏幕”,并将等待时间设置为10分钟。

关闭Windows自动播放功能 在“运行”中执行gpedit.msc命令,依次打开“计算机配置”-“挂你模板”-“所有设置”,双击“关闭自动播放”,然后选择“已启用”。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133276.html原文链接:https://javaforall.cn

0 人点赞