您当前的位置:首页 > 其他技术 > 系统技术

私服游戏服务器安全指南

本文出处:网游动力作者:本站发布时间:2009-01-16阅读次数:
新人架设好后游戏服务器,开发已经是很容易的事情,但是如何防止INTERNETE上的不安全因数了
我们以现在大家架设私服最留下的系统WIN2K来说,用WIN98的朋友我强烈建议你选择WIN2K服务器,因为WIN98本身就没有安全可以谈。
WIN2K服务器如果大家是就近才买的光盘,应该注意到了安装后默认都是关闭了GUEST帐号的,如果没有关闭该帐号的朋友请在控制面板管理工具,计算机管理中的用户那里进行永久禁用处理.现在去打上SP4,后门漏洞应该关闭的差不多了,注意开机一定要设定一个密码,最好让WIN2K使用自动升级功能,实现无人管理.
如果你的系统上安装了SQL,一定要屏蔽了3389端口.
私服安全现在已经做的差不多了.现在应该做的是一定把防火墙安装起,如果有条件可以把LockDown给他安装起.他可以有效的制止黑客木马程序运行起作用.
屏蔽端口文章:
用win2000的IP安全策略封闭端口的办法
封锁端口,全面构建防线
黑客大多通过端口进行入侵,所以你的服务器只能开放你需要的端口,那么你需要哪些端口呢?以下是常用端口,你可根据需要取舍:
80为Web网站服务;21为FTP服务;25 为E-mail SMTP服务;110为Email POP3服务。
其他还有SQL Server的端口1433等,你可到网上查找相关资料。那些不用的端口一定要关闭!关闭这些端口,我们可以通过Windows 2000的安全策略进行。
借助它的安全策略,完全可以阻止入侵者的攻击。你可以通过“管理工具→本地安全策略”进入,右击“IP安全策略”,选择“创建IP安全策略”,点[下一步]。输入安全策略的名称,点[下一步],一直到完成,你就创建了一个安全策略:
接着你要做的是右击“IP安全策略”,进入管理IP筛选器和筛选器操作,在管理IP筛选器列表中,你可以添加要封锁的端口,这里以关闭ICMP和139端口为例说明。
关闭了ICMP,黑客软件如果没有强制扫描功能就不能扫描到你的机器,也Ping不到你的机器。关闭ICMP的具体操作如下:点[添加],然后在名称中输入“关闭ICMP”,点右边的[添加],再点[下一步]。在源地址中选“任何IP地址”,点[下一步]。在目标地址中选择“我的IP地址”,点[下一步]。在协议中选择“ICMP”,点[下一步]。回到关闭ICMP属性窗口,即关闭了ICMP。
下面我们再设置关闭139,同样在管理IP筛选器列表中点“添加”,名称设置为“关闭139”,点右边的“添加”,点[下一步]。在源地址中选择“任何IP地址”,点[下一步]。在目标地址中选择“我的IP地址”,点[下一步]。在协议中选择“TCP”,点[下一步]。在设置IP协议端口中选择从任意端口到此端口,在此端口中输入139,点[下一步]。即完成关闭139端口,其他的端口也同样设置

然后进入设置管理筛选器操作,点“添加”,点[下一步],在名称中输入“拒绝”,点[下一步]。选择“阻止”,点[下一步]。

然后关闭该属性页,右击新建的IP安全策略“安全”,打开属性页。在规则中选择“添加”,点[下一步]。选择“此规则不指定隧道”,点[下一步]。在选择网络类型中选择“所有网络连接”,点[下一步]。在IP筛选器列表中选择“关闭ICMP”,点[下一步]。在筛选器操作中选择“拒绝”,点[下一步]。这样你就将“关闭ICMP”的筛选器加入到名为“安全”的IP安全策略中。同样的方法,你可以将“关闭139”等其他筛选器加入进来。

最后要做的是指派该策略,只有指派后,它才起作用。方法是右击“安全”,在菜单中选择“所有任务”,选择“指派”。IP安全设置到此结束,你可根据自己的情况,设置相应的策略。
windows2000服务安全与建议
Windows Internet Name Service 
服务方向: 是微软用于NetBIOS网络的名称服务. 
可执行文件: winntsystem32win.exe 
风险: 具有暴露敏感系统信息的潜在危险 
建议: 纯粹的Windows2000网络并不依赖WINS.应当被禁用.或是只在本地使用好了. 
端口部分
139端口
1.开始—程序—管理工具—本地安全策略—鼠标右点“IP安全策略,在本地机器”;
2.点击“管理IP筛选器表和筛选器操作”,在“管理IP筛选器列表”上点“添加”;
3.将弹出“IP筛选器列表”窗口;
4.添入名称和描述,比如“禁止139”,点添加,然后会出现一个IP“筛选器向导”,点下一步;
5.到“指定IP源地址”窗口,在“源地址”中选择“任何IP地址”,点下一步;
6.在“IP通信目标”的“目标地址”选择“我的IP地址”,点下一步;
7.在“IP协议类型”的“选择协议类型”选择“TCP”,点下一步;
8.在“筛选器向导”的“设置IP协议端口”里第一拦“从任意端口”,第二拦“到此端口”并且添上“139”,点下一步;
9.点“完成”,然后在点“关闭”,回到“管理IP筛选器表和筛选器操作”;
10.选择“管理筛选器操作”,点“添加”;
11.这时会出现一个“筛选器操作向导”的,点“下一步”,在“名称“里添上“禁止139端口”连接,点下一步,选择“阻止”,再点下一步;
12.点“完成”和“关闭”。
445端口
方法和上面的139端口的方法一样,只是注意在添加筛选器操作的时候不能用同一个“阻止”筛选器操作,否则规则没有作用。
完成上面两项操作后,回到“IP安全策略,在本地机器”,右点“IP安全策略”:
1.“IP安全策略向导”,点“下一步”,在“名称”中,添入“禁止使用139,445端口连接”一路点下一步,完成。
2.在“禁止使用139,445端口连接”里点“添加”,出现“安全规则向导”,一路下一步,到“IP筛选器列表”,选择“禁止139”(就是我们先前关闭139的时候添入的那名称),点下一步,在“筛选器操作”选择“禁止139”,点下一步,最后,点“完成”,“确定”;
3.通过“添加”将禁用445端口的筛选器列表和操作也添进去一路下一步,到“IP筛选器列表”,选择“禁止445”,点下一步,在“筛选器操作”里选“禁止445”,点下一步然后点“关闭”,回到“属性”窗口;
最后,只需要将刚才配置好的东西指派就成了。
135端口
对于135端口开放的问题,可以在你的防火墙上,增加一条规则:拒绝所有的这?*氲腢DP包,目的端口是135,源端口是7,19,或者135,这样可以保护内部的系统,防止来自外部的攻击。大多数防火墙或者包过滤器已经设置了很多严格的规则,已覆盖了这条过滤规则,但任需注意:有一些NT的应用程序,它们依*UDP135端口进行合法的通讯,而打开你135的端口与NT的RPC服务进行通讯。如果真是这样,你一定要在那些原始地址的系统上(需要135口通讯),实施上述的规则,指定来自这些系统的通讯可以通过防火墙,或者,可以被攻击检测系统所忽略,以便维持那些应用程序的正常连接。
关于17,19,7,9端口的打开应该是属于使用的是默认服务配置,关闭的方法;先去下载一个叫做 Configure Port Blocker 的软件,该软件可以直接删除不必要的端口
80端口
使用安全有效的验证用户身份的方法(建议不允许匿名登陆);
在IIS中,将HTTP404 object Not Found 出错页面通过URL重定向到一个定制的HTM文件。
IIS服务器
1.更改默认的IIS路径,把C盘下的InetPub目录彻底删除,然后随便在什么盘建立一个,在IIS管理器中将主目录指向我们建立的目录
2.打开IIS服务器,到“主目录”页面,找到“设置”,删除不必要的映射,留下我们要用的。删除在IIS管理器中右点主机—属性—WWW 服务编辑—主目录配置—应用程序映射。在那个窗口的应用程序调试书签内,讲脚本错误消息改为发送文本,错误文本随便怎么写好了。退出时,让虚拟站点继承设定的属性。
3.删除默认的那些不必要用到的虚拟目录,比如mstdc,scripts等
4.到C:Winntsystem32下,把 FTP , CMD, TFTP 这样重要的EXE程序进行一次全新的设置,把系统的“IUSR_计算机名”,这个用户拒绝访问。
其他
1.关掉Guest帐号:把这个账号停用,任何时候都不允许使用他登陆。最好是给他设置一个超复杂密码,用记事本乱打他什么数字,大小写字母,特殊符号,弄他二十几位出来,然后从记事本上复制进去;
2.删除掉没有用处的用户;
3.把Administrator帐号改名,随便改成一个什么。这个帐号好象可以使人用穷举法一次一次的尝试破解的。或者使用超长密码;
4.共享文件的权限改成“授权用户”;
5.打开审核策略记录下比如尝试用户密码,改变帐户策略,未经许可的文件访问等;
6.密码策略得开启;
7.不让系统显示上次登陆的用户名:修改HKLM  Software  Microsoft Windows NT  CurrentVersion Winlogon  DontDisplay LastUserName 把 REG_SZ 的键值 改为 1;
8.禁止建立空连接:默认情况下,任何人都可以通过空连接连上服务器,猜密码。修改Local_Machine  System  CurrentControlSet  Control  LSA-RestrictAnonymous 的值改成1;
9.如果服务器不玩游戏的话,把DirectDraw关掉: HKLM  SYSTEM  CurrentControlSet  Control  GraphicsDrivers DGI的Timeout(TEG_DWORD)为 0;
10.禁止Dump File 的产生:这个东西能提供给别人一些敏感信息,如应用程序的密码等,记录的是在死机,蓝屏时的信息,关掉。控制面板—系统属性—高级—启动和故障恢复,把“写入调试信息”改为 无。
终端服务的设置
1、第一步,更改终端服务的服务器端设置。
打开注册表,找到类似这样的键值HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWdsRepwdTdsTcp, 找到PortNumber。0xd3d,这个是16进制,就是3389,这个值是RDP(远程桌面协议)的默认值,也就是说用来配置以后新建的RDP服务的,要改已经建立的RDP服务,我们去下一个键值:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStations这里应该有一个或多个类似RDP-TCP的子健(取决于你建立了多少个RDP服务),一样改掉PortNumber。
2、第二步,改客户端。
再来改客户端:打开客户端连接管理器,按照正常的步骤建立一个客户 端连接的快捷方式,选中这个连接,然后在“文件”菜单里选择“导出”(Menu->File->Export),这个操作会生成一个cns文件,就是终端服务客户端的配置文件,你可以用文本编辑器(比如记事本)编辑这个文件,找到“Server Port=3389”,改成你要的端口,然后再选导入(Menu->File->Import),这是的客户端快捷方式已经变成你需要的端口了。
需要注意的是,从微软主页上下载的终端服务客户端Terminal Service Client(MSI版)以及ActiveX版都不能更改端口,只有使用Win2000服务器版终端服务自带的“制作安装盘”功能制作版本可以改端口,这个功能在管理工具的“终端服务客户端生成器”(Terminal Service Client Creator)中。
对于日志的问题,其实Terminal Service自己是有日志功能的,在管理工具中打开远程控制服务配置(Terminal Service Configration),点击“连接”,右击你想配置的RDP服务(比如RDP-TCP(Microsoft RDP5.0)),选中书签“权限”,点击左下角的“高级”,看见上面那个“审核”了吗?我们来加入一个Everyone组,这代表所有的用户,然后审核他的“连接”、“断开”、“注销”的成功和“登陆”的功能和失败就足够了,审核太多了反而不好,这个审核试记录在安全日志中的,可以从“管理工具”->“日志查看器”中查看。现在什么人什么时候登陆都一清二楚了,可是它却不记录客户端的IP(只能查看在线用户的ip)而是记录计算机名。我们建立一个.bat文件,叫做TSLog.bat,这个文件用来记录登录者的ip,内容如下:
time /t>>TSLog.log 
netstat -n -p tcpfind :3389>>TSLog.log 
start Explorer 
来解释一下这个文件的含义: 
第一行是记录用户登陆的时间,Time/t的意思是直接返回系统时间(如果不加/t,系统会等待你输入新的时间),然后我们用追加符号>>把这个时间记入TSLog.log第二行是记录用户的ip地址,Netstat是用来显示当前网络连接状况的命令,-n表示显示ip和端口而不是域名、协议,-p tcp是只显示tcp协议,然后我们用管道符号“”把这个命令的结果输出给Find命令,从输出结果中查找包含“:3389”的行(这就是我们要得客户的ip所在行,如果你改了终端服务的端口,这个数值也要作相应的改变),最后我们同样把这个结果重定向到日志文件TSLog.log中去,于是在TSLog.log文件中,记录格式如下:
22:40
TCP 192.168.12.28:3389 192.168.10.123:4903ESTABLISHED
22:54
TCP 192.168.12.28:3389 192.168.12.29:1039ESTABLISHED
也就是说只要TSLog.bat文件一运行,所有连在3389端口的ip都会被记录,那么如何让这个批处理文件运行呢?终端服务允许我们为用户自定义起始的程序,在终端服务配置中,我们覆盖用户的登陆脚本设置并指定TSLog.bat为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认得脚本(相当于SHELL环境)是Explorer(资源管理器),所以我在TSLog.bat的最后一行加上了启动Explorer的命令start Explorer,如果不加这一行命令,用户是没有办法进入桌面的。当然,如果你只需要给用户特定的SHELL:例如cmd.exe或者word.exe你也可以把start explorer替换成任意的SHELL。这个脚本也可以有其他的写法,例如写一个脚本把每个登陆用户的ip发送到自己的信箱对于很重要的服务器也是一个很好的方法。正常情况下,一般的用户没有查看终端服务设置的权限,所以他不会知道你对登陆进行了