服务器安全设置教程.docx
《服务器安全设置教程.docx》由会员分享,可在线阅读,更多相关《服务器安全设置教程.docx(15页珍藏版)》请在冰豆网上搜索。
![服务器安全设置教程.docx](https://file1.bdocx.com/fileroot1/2022-12/14/2e3295ec-d2df-4be9-8e04-4592b0f8ad57/2e3295ec-d2df-4be9-8e04-4592b0f8ad571.gif)
服务器安全设置教程
2003服务器安全设置教程(全)
一、硬盘分区与操作系统的安装
硬盘分区
总的来讲在硬盘分区上面没什么值得深入剖析的地方,无非就是一个在分区前做好规划知道要去放些什么东西,如果实在不知道。
那就只一个硬盘只分一个区,分区要一次性完成,不要先分成FAT32再转成NTFS。
一次性分成NTFS格式,以我个人习惯,系统盘一般给12G。
建议使用光盘启动完成分区过程,不要加载硬盘软件。
系统安装
以下内容均以2003为例
安装过程也没什么多讲的,安装系统是一个以个人性格为参数的活动,我建议在安装路径上保持默认路径,好多文章上写什么安装路径要改成什么呀什么的,这是没必要的。
路径保存在注册表里,怎么改都没用。
在安装过程中就要选定你需要的服务,如一些DNS、DHCP没特别需要也就不要装了。
在安装过程中网卡属性中可以只保留TCP/IP这一项,同时禁用NETBOIS。
安装完成后如果带宽条件允许可用系统自带在线升级。
二、系统权限与安全配置
前面讲的都是屁话,润润笔而已。
(俺也文人一次)
话锋一转就到了系统权限设置与安全配置的实际操作阶段
系统设置网上有一句话是"最小的权限+最少的服务=最大的安全"。
此句基本上是个人都看过,但我好像没有看到过一篇讲的比较详细稍具全面的文章,下面就以我个人经验作一次教学尝试!
2.1最小的权限如何实现?
NTFS系统权限设置
在使用之前将每个硬盘根加上Administrators用户为全部权限(可选加入SYSTEM用户)
删除其它用户,进入系统盘:
权限如下
C:
\WINDOWSAdministratorsSYSTEM用户全部权限Users用户默认权限不作修改
其它目录删除Everyone用户,切记C:
\DocumentsandSettings下AllUsers\DefaultUser目录及其子目录
如C:
\DocumentsandSettings\AllUsers\ApplicationData目录默认配置保留了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;;
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"
禁止dumpfile的产生
dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。
然而,它也能够给黑客提供一些敏感信息比如一些应用程序的密码等。
控制面板>系统属性>高级>启动和故障恢复把写入调试信息改成无。
关闭华医生Dr.Watson
在开始-运行中输入"drwtsn32",或者开始-程序-附件-系统工具-系统信息-工具-DrWatson,调出系统里的华医生Dr.Watson,只保留"转储全部线程上下文"选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。
如果以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间。
本地安全策略配置
开始>程序>管理工具>本地安全策略
账户策略>密码策略>密码最短使用期限改成0天[即密码不过期,上面我讲到不会造成IIS密码不同步]
账户策略>账户锁定策略>账户锁定阈值5次账户锁定时间10分钟[个人推荐配置]
本地策略>审核策略>
账户管理成功失败
登录事件成功失败
对象访问失败
策略更改成功失败
特权使用失败
系统事件成功失败
目录服务访问失败
账户登录事件成功失败
本地策略>安全选项>清除虚拟内存页面文件更改为"已启用"
>不显示上次的用户名更改为"已启用"
>不需要按CTRL+ALT+DEL更改为"已启用"
>不允许SAM账户的匿名枚举更改为"已启用"
>不允许SAM账户和共享的匿名枚举更改为"已启用"
>重命名来宾账户更改成一个复杂的账户名
>重命名系统管理员账号更改一个自己用的账号[同时可建立一个无用户组的Administrat账户]
组策略编辑器
运行gpedit.msc计算机配置>管理模板>系统显示"关闭事件跟踪程序"更改为已禁用
删除不安全组件
WScript.Shell、Shell.application这两个组件一般一些ASP木马或一些恶意程序都会使用到。
方案一:
regsvr32/uwshom.ocx卸载WScript.Shell组件
regsvr32/ushell32.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目录为读取权限[单一读取]个人不建议使用单独目录,太小家子气。
二、系统权限与安全配置
2.2最少的服务如果实现
黑色为自动绿色为手动红色为禁用
Alerter
ApplicationExperienceLookupService
ApplicationLayerGatewayService
ApplicationManagement
AutomaticUpdates[Windows自动更新,可选项]
BackgroundIntelligentTransferService
ClipBook
COM+EventSystem
COM+SystemApplication
ComputerBrowser
CryptographicServices
DCOMServerProcessLauncher
DHCPClient
DistributedFileSystem
DistributedLinkTrackingClient
DistributedLinkTrackingServer
DistributedTransactionCoordinator
DNSClient
ErrorReportingService
EventLog
FileReplication
HelpandSupport
HTTPSSL
HumanInterfaceDeviceAccess
IISAdminService
IMAPICD-BurningCOMService
IndexingService
IntersiteMessaging
IPSECServices[如果使用了IP安全策略则自动,如无则禁用,可选操作]
KerberosKeyDistributionCenter
LicenseLogging
LogicalDiskManager[可选,多硬盘建议自动]
LogicalDiskManagerAdministrativeService
Messenger/li>
MicrosoftSearch
MicrosoftSoftwareShadowCopyProvider
MSSQLSERVER
MSSQLServerADHelper
NetLogon
NetMeetingRemoteDesktopSharing
NetworkConnections
NetworkDDE
NetworkDDEDSDM
NetworkLocationAwareness(NLA)
NetworkProvisioningService
NTLMSecuritySupportProvider
PerformanceLogsandAlerts
PlugandPlay
PortableMediaSerialNumberService[微软反盗版工具,目前只针对多媒体类]
PrintSpooler
ProtectedStorage
RemoteAccessAutoConnectionManager
RemoteAccessConnectionManager
RemoteDesktopHelpSessionManager
RemoteProcedureCall(RPC)
RemoteProcedureCall(RPC)Locator
RemoteRegistry
RemovableStorage
ResultantSetofPolicyProvider
RoutingandRemoteAccess
SecondaryLogon
SecurityAccountsManager
Server
ShellHardwareDetection
SmartCard
SpecialAdministrationConsoleHelper
SQLSERVERAGENT
SystemEventNotification
TaskScheduler
TCP/IPNetBIOSHelper
Telephony
Telnet
TerminalServices
TerminalServicesSessionDirectory
Themes
UninterruptiblePowerSupply
UploadManager
VirtualDiskService
VolumeShadowCopy
WebClient
WindowsAudio[服务器没必要使用声音]
WindowsFirewall/InternetConnectionSharing(ICS)
WindowsImageAcquisition(WIA)
WindowsInstaller
WindowsManagementInstrumentation
WindowsManagementInstrumentationDriverExtensions
WindowsTime
WindowsUserModeDriverFramework
WinHTTPWebProxyAuto-DiscoveryService
WirelessConfiguration
WMIPerformanceAdapter
Workstation
WorldWideWebPublishingService
以上操作完成以后是否就"最小的权限+最少的服务=最大的安全"呢?
其实不然,任何事物都是相对的
依我个人而见,以上设置也只是最基本的一些东西而已,如有遗漏,稍后补上!
三、IIS、终端服务、FTP、SQL的配置
3.1IIS配置
IIS6与IIS5有着很多不同之处,不一一列举,也不是我一个脑袋可以装下的东西。
都在资料上!
IIS6有一个非常不方便的东西,就是他限制了在线上传不得大于200K,如何修改,请看:
首先停用IIS服务,>服务>iisadminservice>停用
C:
\windows\system32\inetsrv\metabase.xml文件用记事本打开它
找到ASPMaxRequestEntityAllowed处。
默认为204800即204800字节(200K)
修改为想要的数字如:
2048000[2M]保存,重启IIS服务即可!
设置基本参数
打开IIS管理器>网站>属性>
网站>启动日志记录>关闭
主目录>配置>应用程序扩展>只保留asp,asa
主目录>配置>选项>启用父目录
主目录>配置>调试>向客户端发送文本错误消息
网站>自定义错误>全部改成默认值[上一章已经删除IIS使用的错误信息页面]
IIS管理器>WEB服务扩展>启用ActiveServerPages
注:
停用IIS默认站点,切勿删除,有可能会造成IIS的不稳定。
站点的建立将在第四节中详细介绍。
IIS支持PHP的配置
以PHP5.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"
查找;WindowsExtensions更改下面的参数
如要开通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程序要使用数据库建议远程
或搭配文本数据库。
终端服务配置
开始>程序>管理工具>终端服务配置>连接
选择右侧列出的连接属性>权限删除所有用户组添加单一的允许使用的管理员账户,这样即使服务器
被创建了其它的管理员.也无法使用终端服务。
另外在会话设置中可以进一步设置断1D、注销等一些参数。
FTP的配置
目前大多数服务器使用Serv-UServer为FTPSYSTEM。
这里同时建议使用此软件以Serv-UFTPServer6.1.0.5final[最新版]为例,这里建议使用汉化版本.www.hanzify.org安装原版至D:
\Serv-U_3434999fdaf[复杂无规则的目录名可有效防止黑客的猜解]尔后退出Serv-U,安装汉化包。
运行SERV-U管理器IP地址可为空、安装为系统服务设置密码防止溢出
PASV设置
Serv-U管理器><<本地服务器>>>设置>高级
PASV端口范围这里SERV-U只允许50个端口范围端口的设置范围如1025-1075[1024以前的端口为系统使用]
更多个人化设置参考以下文档
SERV-U技巧
现在很多的朋友都用SERV-U做个人FTP的服务器,有关如何使用SERV-U架设服务器的文章很多了,这儿我就不多说了。
不过大家不知道注意到了没有,当你登陆很多FTP的时候,会显示一些欢迎信息,比如说显示你的IP,告诉你目前有多少人在使用FTP,带宽是多少等等。
。
。
看起来就比较的专业样子。
其实你自己也是可以做的,SERV-U这个软件本身就有这个功能。
下面我就说明以下如何在自己的FTP里面加上这些信息。
第一、先建立一个文本文件,随便取一个名字。
我们这儿就取message.txt吧。
第二、这个这个文本文件里面加上这些文字
------------------------------------
欢迎来到XXX的FTP服务器
你的IP地址是:
%IP
目前服务器所在的时间是%time
已经有%u24h个用户在最近24小时访问过本FTP
本FTP服务器已经运行了%ServerDays天,%ServerHours小时和%ServerMins分。
服务器的运行情况:
所有登陆用户数量:
%loggedInAlltotal
当前登陆用户数量:
%Unow
已经下载字节数:
%ServerKbDownKb
已经上传字节数:
%ServerKbUpKb
已经下载文件数:
%ServerFilesDown
已经上传文件数:
%ServerFilesUp
服务器平均带宽:
%ServerAvgKb/sec
服务器当前带宽:
%ServerKBpsKb/sec
------------------------------------
其中XXX可以改成你的名字
你也可以加上一些你自己认为喜欢的文字,不过要注意的是每行最好不要超过80个字符
其中以%开头的都是一些变量,下面是SERV-U能支持的变量
时间和*期
%Time-显示你的计算机当前时间
%Date-显示你的计算机当前*期
服务器的统计信息
%ServerDays-显示服务器已经运行的天数
%ServerHours-显示服务器已经运行的小时数
%ServerMins-显示服务器已经运行的分钟数
%ServerSecs-显示服务器已经运行的秒数
%ServerKbUp-显示自从服务器运行以来已经上传的字节数
%ServerKbDown-显示自从服务器运行以来已经下载的字节数
%ServerFilesUp-显示自从服务器运行以来已经上传的文件数
%ServerFilesDown-显示自从服务器运行以来已经下载的文件数
%LoggedInAll-显示自从服务器运行以来已经登陆的用户数
%ServerAvg-显示服务器的平均带宽
%ServerKBps-显示服务器的当前带宽
服务器的设定信息
%MaxUsers-显示服务器能同时登陆的最大用户数量
%MaxAnonymous-显示服务器能同时登陆的最大匿名用户数量
用户信息
%Name-显示登陆的用户名
%IP-显示登陆的用户IP地址
%Dir-显示登陆的用户的当前目录
%Disk-显示登陆的用户的当前磁盘
%DFree-显示登陆的用户的当前磁盘空间,单位是MB
%FUp-显示登陆的用户上传的文件数量
%FDown-显示登陆的用户下载的文件数量
%FTot-显示登陆的用户上传和下载的总的文件数量
%BUp-显示登陆的用户上传的字节数,单位是KB
%Bdown-显示登陆的用户下载的字节数,单位是KB
%BTot-显示登陆的用户上传和下载的总字节数,单位是KB
%TconM-显示登陆用户连接时间,单位是分钟
%TconS-显示登陆用户连接时间,单位是秒,要和%TconM一起使用
%RatioUp-显示登陆用户的上传流量限制
%RatioDown-显示登陆用户的下载流量限制
%RatioCredit-显示登陆用户还有多少credit可以上传和下载,这个是针对有些FTP是要上传多少文件,才能下载多少文件而设置的
%QuotaUsed-显示登陆用户的已经使用了多少空间,单位是KB
%QuotaLeft-显示登陆用户的还有多少空间可以使用,单位是KB
%QuotaMax-显示登陆用户的的最大空间,单位是KB
后面3个是针对有磁盘限制的用户设置的
用户数量
%UNow-显示当前有多少用户连接
%UAll-显示从服务器运行以来一共有多少用户连接过
%U24h-显示最近24小时有多少用户
%UAnonAll-显示当前总的匿名用户数量
%UAnonThisIP-显示所有匿名登陆的用户数
%UNon