1、首先我们要登陆php(做为现在的主流开发语言)MyAdmin,不做演示。
2、创建一个数据库,如下图,在php(做为现在的主流开发语言)MyAdmin右边窗口中,填写数据库名称,点创建即可。
例如我们这里创建一个名字为:cncmstest 的数据库
创建成功会有如下提示:
3、点击左上角的主页按钮,返回php(做为现在的主流开发语言)MyAdmin主界面:
4、在主界面的右边点击“权限”来创建数据库帐号。
5、在权限页面中,我们点击“添加新用户”
6、在该页面中,我们填写要创建的数据库用户名,该用户的访问范围,及密码。
如上图,我们填写了用户名为:cncmsuser,该数据库用户只允许本机访问,主机一项选择本地;密码我们使用自动生成的,点下面的“Generate”会生成一个随机密码,然后点“Copy”会自动填写到密码框中。
下面的框都不选,直接拉到页面最下面点执行即可创建一个新用户。
数据库用户创建成功,会返回如下页面:
7、最重要的一步,设置该用户的数据库访问权限
在数据库用户添加成功返回的页面中可以直接设置权限。这里我们选择按数据库指定权限:
如上图,在数据库列表中选择我们刚刚创建的cncmstest,即会自动进入该数据库的权限设置页面。
在上图的权限设置中,我们把“数据”、“结构”两列的权限全部选中,管理权限都不要选。点执行即可。
到这里,我们已经全部设置完毕了,创建了一个数据库:cncmstest,并创建了数据库用户cncmsuser,特别指定了该用户只对cncmstest的访问权限。如此,便达到了我们一开始所讲的目的:为每一个数据库指定独立的用户访问权限。
看过这个演示,之前的"超详细web服务器权限设置,精确到每个文件夹"和"超详细web服务器权限设置,事件查看器完全无报错"就不用再看了.这个比原来做的有所改进.操作系统用的是雨林木风的ghost镜像,补丁是打上截止11.2号最新的
Power Users组是否取消无所谓
具体操作看演示
windows下根目录的权限设置:
C:\WINDOWS\Application Compatibility Scripts 不用做任何修改,包括其下所有子目录
C:\WINDOWS\AppPatch AcWebSvc.dll已经有users组权限,其它文件加上users组权限
C:\WINDOWS\Connection Wizard 取消users组权限
C:\WINDOWS\Debug users组的默认不改
C:\WINDOWS\Debug\UserMode默认不修改有写入文件的权限,取消users组权限,给特别的权限,看演示
C:\WINDOWS\Debug\WPD不取消Authenticated Users组权限可以写入文件,创建目录.
C:\WINDOWS\Driver Cache取消users组权限,给i386文件夹下所有文件加上users组权限
C:\WINDOWS\Help取消users组权限
C:\WINDOWS\Help\iisHelp\common取消users组权限
C:\WINDOWS\IIS Temporary Compressed Files默认不修改
C:\WINDOWS\ime不用做任何修改,包括其下所有子目录
C:\WINDOWS\inf不用做任何修改,包括其下所有子目录
C:\WINDOWS\Installer 删除everyone组权限,给目录下的文件加上everyone组读取和运行的权限
C:\WINDOWS\java 取消users组权限,给子目录下的所有文件加上users组权限
C:\WINDOWS\MAGICSET 默认不变
C:\WINDOWS\Media 默认不变
C:\WINDOWS\Microsoft.NET不用做任何修改,包括其下所有子目录
C:\WINDOWS\msagent 取消users组权限,给子目录下的所有文件加上users组权限
C:\WINDOWS\msapps 不用做任何修改,包括其下所有子目录
C:\WINDOWS\mui取消users组权限
C:\WINDOWS\PCHEALTH 默认不改
C:\WINDOWS\PCHEALTH\ERRORREP\QHEADLES 取消everyone组的权限
C:\WINDOWS\PCHEALTH\ERRORREP\QSIGNOFF 取消everyone组的权限
C:\WINDOWS\PCHealth\UploadLB 删除everyone组的权限,其它下级目录不用管,没有user组和everyone组权限
C:\WINDOWS\PCHealth\HelpCtr 删除everyone组的权限,其它下级目录不用管,没有user组和everyone组权限(这个不用按照演示中的搜索那些文件了,不须添加users组权限就行)
C:\WINDOWS\PIF 默认不改
C:\WINDOWS\PolicyBackup默认不改,给子目录下的所有文件加上users组权限
C:\WINDOWS\Prefetch 默认不改
C:\WINDOWS\provisioning 默认不改,给子目录下的所有文件加上users组权限
C:\WINDOWS\pss默认不改,给子目录下的所有文件加上users组权限
C:\WINDOWS\RegisteredPackages默认不改,给子目录下的所有文件加上users组权限
C:\WINDOWS\Registration\CRMLog默认不改会有写入的权限,取消users组的权限
C:\WINDOWS\Registration取消everyone组权限.加NETWORK SERVICE 给子目录下的文件加everyone可读取的权限,
C:\WINDOWS\repair取消users组权限
C:\WINDOWS\Resources取消users组权限
C:\WINDOWS\security users组的默认不改,其下Database和logs目录默认不改.取消templates目录users组权限,给文件加上users组
C:\WINDOWS\ServicePackFiles 不用做任何修改,包括其下所有子目录
C:\WINDOWS\SoftwareDistribution不用做任何修改,包括其下所有子目录
C:\WINDOWS\srchasst 不用做任何修改,包括其下所有子目录
C:\WINDOWS\system 保持默认
C:\WINDOWS\TAPI取消users组权限,其下那个tsec.ini权限不要改
C:\WINDOWS\twain_32取消users组权限,给目录下的文件加users组权限
C:\WINDOWS\vnDrvBas 不用做任何修改,包括其下所有子目录
C:\WINDOWS\Web取消users组权限给其下的所有文件加上users组权限
C:\WINDOWS\WinSxS 取消users组权限,搜索*.tlb,*.policy,*.cat,*.manifest,*.dll,给这些文件加上everyone组和users权限
给目录加NETWORK SERVICE完全控制的权限
C:\WINDOWS\system32\wbem 这个目录有重要作用。如果不给users组权限,打开一些应用软件时会非常慢。并且事件查看器中有时会报出一堆错误。导致一些程序不能正常运行。但为了不让webshell有浏览系统所属目录的权限,给wbem目录下所有的*.dll文件users组和everyone组权限。
*.dll
users;everyone
我先暂停。你操作时挨个检查就行了
C:\WINDOWS\#$$#%^$^@!#$%$^S#@\#$#$%$#@@@$%!!WERa (我用的temp文件夹路径)temp由于必须给写入的权限,所以修改了默认路径和名称。防止webshell往此目录中写入。修改路径后要重启生效。
至此,系统盘任何一个目录是不可浏览的,唯一一个可写入的C:\WINDOWS\temp,又修改了默认路径和名称变成C:\WINDOWS\#$$#%^$^@!#$%$^S#@\#$#$%$#@@@$%!!WERa
这样配置应该相对安全了些。
我先去安装一下几款流行的网站程序,先暂停.几款常用的网站程序在这样的权限设置下完全正常。还没有装上sql2000数据库,无法测试动易2006SQL版了。肯定正常。大家可以试试。
服务设置:
1.设置win2k的屏幕保护,用pcanywhere的时候,有时候下线时忘记锁定计算机了,如果别人破解了你的pcanywhere密码,就直接可以进入你计算机,如果设置了屏保,当你几分钟不用后就自动锁定计算机,这样就防止了用pcanyhwerer直接进入你计算机的可能,也是防止内部人员破坏服务器的一个屏障
2.关闭光盘和磁盘的自动播放功能,在组策略里面设.这样可以防止入侵者编辑恶意的autorun.inf让你以管理员的身份运行他的木马,来达到提升权限的目的。可以用net share 查看默认共享。由于没开server服务,等于已经关闭默认共享了,最好还是禁用server服务。www.cnzz.cc
附删除默认共享的命令:
net share c$ /del
net share d$ /del
net share e$ /del
net share f$ /del
net share ipc$ /del
net share admin$ /del
3.关闭不需要的端口和服务,在网络连接里,把不需要的协议和服务都删掉,这里只安装了基本的Internet协议(TCP/IP),由于要控制带宽流量服务,额外安装了Qos数据包计划程序。在高级tcp/ip设置里--"NetBIOS"设置"禁用tcp/IP上的NetBIOS 。
修改3389远程连接端口(也可以用工具修改更方便)
修改注册表.
开始--运行--regedit
依次展开 HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/
TERMINAL SERVER/WDS/RDPWD/TDS/TCP
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 1989 )
HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/CONTROL/TERMINAL SERVER/
WINSTATIONS/RDP-TCP/
右边键值中 PortNumber 改为你想用的端口号.注意使用十进制(例 1989 )
注意:别忘了在WINDOWS2003自带的防火墙给+上10000端口
修改完毕.重新启动服务器.设置生效.
这里就不改了,你可以自己决定是否修改.权限设置的好后,个人感觉改不改无所谓
4.禁用Guest账号
在计算机管理的用户里面把Guest账号禁用。为了保险起见,最好给Guest加一个复杂的密码。你可以打开记事本,在里面输入一串包含特殊字符、数字、字母的长字符串,然后把它作为Guest用户的密码拷进去.我这里随便复制了一段文本内容进去.
如果设置密码时提示:工作站服务没有启动 先去本地安全策略里把密码策略里启动密码复杂性给禁用后就可以修改了
5.创建一个陷阱用户
即创建一个名为“Administrator”的本地用户,把它的权限设置成最低,什么事也干不了的那种,并且加上一个超过10位的超级复杂密码。这样可以让那些 Hacker们忙上一段时间,借此发现它们的入侵企图。
6.本地安全策略设置
开始菜单—>管理工具—>本地安全策略
A、本地策略——>审核策略
审核策略更改 成功 失败
审核登录事件 成功 失败
审核对象访问 失败
审核过程跟踪 无审核
审核目录服务访问 失败
审核特权使用 失败
审核系统事件 成功 失败
审核账户登录事件 成功 失败
审核账户管理 成功 失败
B、本地策略——>用户权限分配
关闭系统:只有Administrators组、其它全部删除。
通过终端服务允许登陆:只加入Administrators,Remote Desktop Users组,其他全部删除
运行 gpedit.msc 计算机配置 > 管理模板 > 系统 显示“关闭事件跟踪程序” 更改为已禁用
用户管理,建立另一个备用管理员账号,防止特殊情况发生。安装有终端服务与SQL服务的服务器停用TsInternetUser, SQLDebugger这两 个账号
C、本地策略——>安全选项
交互式登陆:不显示上次的用户名 启用
网络访问:不允许SAM帐户和共享的匿名枚举 启用
网络访问:不允许为网络身份验证储存凭证 启用
网络访问:可匿名访问的共享 全部删除
网络访问:可匿名访问的命 全部删除
网络访问:可远程访问的注册表路径 全部删除
网络访问:可远程访问的注册表路径和子路径 全部删除
帐户:重命名来宾帐户 重命名一个帐户
帐户:重命名系统管理员帐户 重命名一个帐户
7.禁止dump file的产生
dump文件在系统崩溃和蓝屏的时候是一份很有用的查找问题的资料。然而,它也能够给黑客提供一些敏感
信息比如一些应用程序的密码等。控制面板>系统属性>高级>启动和故障恢复把 写入调试信息 改成无。
关闭华医生Dr.Watson
在开始-运行中输入“drwtsn32”,或者开始-程序-附件-系统工具-系统信息-工具-Dr Watson,调出系统
里的华医生Dr.Watson ,只保留“转储全部线程上下文”选项,否则一旦程序出错,硬盘会读很久,并占
用大量空间。如果以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间。.
在命令行运行drwtsn32 -i 可以直接关闭华医生,普通用户没什么用处
8.禁用不必要的服务 开始-运行-services.msc
TCP/IPNetBIOS Helper提供 TCP/IP 服务上的 NetBIOS 和网络上客户端的 NetBIOS 名称解析的支持而使用户能够共享
文件、打印和登录到网络
Server支持此计算机通过网络的文件、打印、和命名管道共享
Computer Browser 维护网络上计算机的最新列表以及提供这个列表
Task scheduler 允许程序在指定时间运行
Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息
Distributed File System: 局域网管理共享文件,不需要可禁用
Distributed linktracking client:用于局域网更新连接信息,不需要可禁用
Error reporting service:禁止发送错误报告
Microsoft Serch:提供快速的单词搜索,建议禁用****不禁用移动*.msc文件后启动系统时会报错。禁用后没影响
NTLMSecuritysupportprovide:telnet服务和Microsoft Serch用的,不需要可禁用
PrintSpooler:如果没有打印机可禁用
Remote Registry:禁止远程修改注册表
Remote Desktop Help Session Manager:禁止远程协助
Workstation 关闭的话远程NET命令列不出用户组
以上是在Windows Server 2003 系统上面默认启动的服务中禁用的,默认禁用的服务如没特别需要的话不要启动。
看下我开了些什么服务,大家可以参考设置一下.如果把不该禁用的服务禁了,事件查看器可能会出现一些报错.
9.设置IP筛选,只开放你所要用到的端口,这样可以防止别人的木马程序连接,因为任何一个网络程序要和你服务器通信,都要通过端口。查看本机所开的端口是用netstat -na 命令,这儿我们开放了80 1989 21 1433(sqlserver),5631(pcanywhere)和ip6端口,这样设置后,一般的后门程序就无法连接到本机了,注意要重新启动了才有效果
附常用服务的各个端口:
IIS 80
FTP 21 启用后需要FTP客户端关闭PSAV才能连接
SMTP 25
POP3 110
MS SQL 1433
Mysql 3306
PcAnywhere 5631
Windows远程客户端 3389
10.修改相关注册表,个人感觉这样的效果不大。没去修改,仅供参考:
A、防止SYN洪水攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为SynAttackProtect,值为2
新建EnablePMTUDiscovery REG_DWORD 0
新建NoNameReleaseOnDemand REG_DWORD 1
新建EnableDeadGWDetect REG_DWORD 0
新建KeepAliveTime REG_DWORD 300,000
新建PerformRouterDiscovery REG_DWORD 0
新建EnableICMPRedirects REG_DWORD 03. 禁止响应ICMP路由通告报文
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\interface
新建DWORD值,名为PerformRouterDiscovery 值为0
B、防止ICMP重定向报文的攻击
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
将EnableICMPRedirects 值设为0
C、不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
新建DWORD值,名为IGMPLevel 值为0
D、禁止IPC空连接:
cracker可以利用net use命令建立空连接,进而入侵,还有net view,nbtstat这些都是基于空连接的,禁止空连接就好了。
Local_Machine\System\CurrentControlSet\Control\LSA-RestrictAnonymous 把这个值改成”1”即可。
E、更改TTL值
cracker可以根据ping回的TTL值来大致判断你的操作系统,如:
TTL=107(WINNT);
TTL=108(win2000);
TTL=127或128(win9x);
TTL=240或241(linux);
TTL=252(solaris);
TTL=240(Irix);
实际上你可以自己改的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters:DefaultTTL REG_DWORD 0-0xff(0-255 十进制,默认值128)改成一个莫名其妙的数字如250
11.把系统Administrator账号改名,我的已经改成了 中央人民政府 。可以把硬盘的其它分区或重要目录设置成仅这个用户可以访问。这样即使入侵者把自己提升成了超级管理员组成员。也无法访问这些地方。 将Administrators组改名为其他,这样即使系统出现了溢出漏洞,但系统盘下的net.exe程序已被转移删除,想加入管理员组基本难以实现。何况Administrators组已被改名,用那个net localgroup administrators xxx /add,不知道管理员组的名字,会提示指定的本地组不存在。这样即使net命令可用也加不上了。
最后给你的管理员帐户设定一个非常复杂的密码.
设置本地用户帐号,把管理员和来宾帐号重新命名,禁止不必用的帐号,最好还要建立一个管理员备用帐号,以防万一(提示:养成经常看一看本地用户帐号属性的习惯,以防后门帐号)
12.控制面板的设置:
修改*.cpl(控制面板文件)的权限为只有管理员可以访问
移动所有*.msc(管理控制台文件)到你的一个固定目录,并设置这个目录的访问权限(只有管理员可以防问,比如上面11中说的,把这个目录加上只有中央人民政府这个用户可以访问.这样就是别人进入你服务器也没办法操作,还有就是把net.exe改名或者移动.搜索net.exe;net1.exe只给管理员可以访问的权限
设置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的权限只有管理员权限可以访问(注意net1.exe与net同样作用)搜索这些文件时注意选择其它高级选项,勾选搜索隐藏的文件和文件夹。
13.卸载wscript.shell对象(强烈建议卸载.命令行执行组件.可以通过上传cmd.exe到网站目录下或直接调用服务器上的从而运行相关命令)
在cmd下运行:regsvr32 WSHom.Ocx /u
卸载FSO对象(不建议卸载.文件操作组件.一般虚拟主机服务提供商都开放着,禁用后一些asp程序不能正常运行)
在cmd下运行:regsvr32.exe scrrun.dll /u
禁用Workstation服务,如果不禁用,asp网马可以查看系统用户与服务,知道你的所有用户名称
14.IIS站点设置:
1、将IIS目录数据与系统磁盘分开,保存在专用磁盘空间内。
2、启用父级路径
3、在IIS管理器中删除必须之外的任何没有用到的映射(保留asp等必要映射即可)
4、在IIS中将HTTP404 Object Not Found出错页面通过URL重定向到一个定制HTM文件
5、Web站点权限设定(建议)
读 允许
写 不允许
脚本源访问 不允许
目录浏览 建议关闭
日志访问 建议关闭
索引资源 建议关闭
执行 推荐选择 “仅限于脚本”
经过以上的设置后,服务器基本上已经安全了。注意常更新系统安全补丁,关注一些最新漏洞的危害,并做相应的预防。好了,如果按照以上Jack讲的对服务器进行设置的话,您的服务器安全级别至少在80分以上,一般的ASP马和小黑客就可以拒之门外了,如果还需要进一步深入的做安全配置请联系站长安全网Jack帮你。
“冲击波”等蠕虫病毒特征之一就是利用有漏洞的操作系统进行端口攻击,因此防范此类病毒的简单方法就是屏蔽不必要的端口,防火墙软件都有此功能,其实对于采用Windows2003或者WindowsXP的用户来说,不需要安装任何其他软件,因为可以利用系统自带的“Internet连接防火墙”来防范黑客的攻击。
“冲击波”等蠕虫病毒特征之一就是利用有漏洞的操作系统进行端口攻击,因此防范此类病毒的简单方法就是屏蔽不必要的端口,防火墙软件都有此功能,其实对于采用Windows2003或者WindowsXP的用户来说,不需要安装任何其他软件,因为可以利用系统自带的“Internet连接防火墙”来防范黑客的攻击。
一、基本设置
1、鼠标右键单击“网上邻居”,选择“属性”。
2、然后鼠标右键单击“本地连接”,选择“属性”,出现图1界面。如图选择“高级”选项,选中“Internet连接防火墙”,确定后防火墙即起了作用。
图 1
二、测试基本设置
1、在另为一台机子上ping本机,出现Request timed out表示ping不同本机
2、在另为一台机子上用漏洞扫描工具扫描本机发现没有打开的端口。
这两种测试通过后说明防火墙已经起了作用。
三、高级设置
点击图1中“设置(G)...”按钮出现图2界面可进行高级设置。
图2
1、选择要开通的服务
如图3所示,如果本机要开通相应的服务可选中该服务,本例选中了FTP服务,这样从其它机器就可FTP到本机,扫描本机可以发现21端口是开放的。可以按“添加”按钮增加相应的服务端口。
图3
2、设置日志
如图4所示,选择要记录的项目,防火墙将记录相应的数据,日志默认在c:\windows\pfirewall.log,用记事本就可以打开看看。
图4
3、设置ICMP协议
如图5所示,最常用的ping就是用的ICMP协议,默认设置完后ping不通本机就是因为屏蔽了ICMP协议,如果想ping通本机只需将“允许传入响应请求”一项选中即可。
图5
四、几点疑问
设置非常简单,但我在给别人设置过程中,有些人提出了以下几点疑问,不知您是否也有下面的困惑?
1、端口都封住了怎么与别的计算机通信?
按默认设置完成后,可以看出没有添加一个端口,那端口都封住了怎么与别的计算机通信呢?
在Internet上相互通信是靠TCP/IP协议完成的,而上网访问网页时,是在本机上随机打开一个大于1024的端口去连服务器的80服务端口,用Telnet协议登陆其它设备也是在本机上随机打开一个大于1024的端口去连服务器的23服务端口。“Internet连接防火墙”封住的是服务端口,例如HTTP的80端口,FTP的21端口、TELNET的23端口等,只要系统提供了这些服务,一开机这些端口就是开放的,等待别的计算机连接到提供服务的计算机上,可以说这些端口是长期有效的。而随机打开的端口是临时的,比如当你上网访问一个网站,你的计算机随机开个端口1026连接到网站服务器的80端口,当访问完毕关闭网页后,本机的1026端口随之关闭,而服务器的80端口始终是开着的。有上可见“Internet连接防火墙”是封住的服务端口,而不是临时打开的端口,所以一个端口不添加也可正常上网。WIN98默认不提供任何服务就没有打开的端口,不照样能正常上网吗?
一般上网用户不用提供任何服务,所以没有必要开放任何端口,但是要利用一些网络联络工具,比如要开通FTP服务的话,就要把“21”这个端口打开,同理,如果发现某个常用的网络工具不起作用时,请查清它在本机所开的端口,然后在“Internet连接防火墙”中添加端口即可。
2、设置了“Internet 连接防火墙”后用netstat –na命令察看,可是端口还是开的?
有些人以为如上设置后就没有端口开放了,可设置完后用netstat–na命令察看开放的端口与没设置之前一样一个不少,难道没起作用?
实际上端口是由某个服务的进程打开的,要彻底关闭某个端口就要结束相应的服务,例如要关闭80端口就要停止WWW服务。而我们用“Internet连接防火墙”是在外围建一个防火墙,打个简单的比喻,一所房子有很多的门,要保证安全有两个办法,一是把门用砖头堵住;二是留着门,在房子周围建一道墙。用结束进程来关闭端口用的是第一种办法,用“Internet连接防火墙”用的是第二种方法,虽然用netstat–na察看端口是开放的,但在外围已建了一睹密不透风的墙。
如何知道防火墙是否起作用了?最简单的方法就是在另外一台机子上用xscan、superscan之类的扫描工具扫描本机,如果没有打开的端口表示在房子周围建一道墙是没有漏洞的。
3、没有扫描软件如何在远程测试本机端口是否打开
如果手头没有扫描软件,可以用telnet命令来测试相应的端口是否打开,例如测试21端口是否打开,可以在另为一台机器上telnetxxx.xxx.xxx.xxx21,如果端口打开会出现提示信息,如果没有打开则出现连接失败的提示。