阿江的Windows 2000服务器安全设置教程
“只有客户发展了,才有我们的生存与发展!”这是成都创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站设计、成都网站建设、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。
前言
其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。
本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。
基本的服务器安全设置
安装补丁
安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果是2000则确定安装上了SP4,如果是2003,则最好安装上SP1,然后点击开始→Windows Update,安装所有的关键更新。
安装杀毒软件
虽然杀毒软件有时候不能解决问题,但是杀毒软件避免了很多问题。我一直在用诺顿2004,据说2005可以杀木马,不过我没试过。还有人用瑞星,瑞星是确定可以杀木马的。更多的人说卡巴司机好,不过我没用过。
不要指望杀毒软件杀掉所有的木马,因为ASP木马的特征是可以通过一定手段来避开杀毒软件的查杀。
设置端口保护和防火墙、删除默认共享
都是服务器防黑的措施,即使你的服务器上没有IIS,这些安全措施都最好做上。这是阿江的盲区,大概知道屏蔽端口用本地安全策略,不过这方面的东西网上攻略很多,大家可以擞出来看看,晚些时候我或者会复制一些到我的网站上。
权限设置
阿江感觉这是防止ASP漏洞攻击的关键所在,优秀的权限设置可以将危害减少在一个IIS站点甚至一个虚拟目录里。我这里讲一下原理和设置思路,聪明的朋友应该看完这个就能解决问题了。
权限设置的原理
WINDOWS用户,在WINNT系统中大多数时候把权限按用户(组)来划分。在【开始→程序→管理工具→计算机管理→本地用户和组】管理系统用户和用户组。
NTFS权限设置,请记住分区的时候把所有的硬盘都分为NTFS分区,然后我们可以确定每个分区对每个用户开放的权限。【文件(夹)上右键→属性→安全】在这里管理NTFS文件(夹)权限。
IIS匿名用户,每个IIS站点或者虚拟目录,都可以设置一个匿名访问用户(现在暂且把它叫“IIS匿名用户),当用户访问你的网站的.ASP文件的时候,这个.ASP文件所具有的权限,就是这个“IIS匿名用户所具有的权限。
权限设置的思路
要为每个独立的要保护的个体(比如一个网站或者一个虚拟目录)创建一个系统用户,让这个站点在系统中具有惟一的可以设置权限的身份。
在IIS的【站点属性或者虚拟目录属性→目录安全性→匿名访问和验证控制→编辑→匿名访问→编辑】填写刚刚创建的那个用户名。
设置所有的分区禁止这个用户访问,而刚才这个站点的主目录对应的那个文件夹设置允许这个用户访问(要去掉继承父权限,并且要加上超管组和SYSTEM组)。
这样设置了之后,这个站点里的ASP程序就只有当前这个文件夹的权限了,从探针上看,所有的硬盘都是红叉叉。
我的设置方法
我是先创建一个用户组,以后所有的站点的用户都建在这个组里,然后设置这个组在各个分区没病权限。然后再设置各个IIS用户在各在的文件夹里的权限。
因为比较多,所以我很不想写,其实知道了上面的原理,大多数人都应该懂了,除非不知道怎么添加系统用户和组,不知道怎么设置文件夹权限,不知道IIS站点属性在那里。真的有那样的人,你也不要着急,要沉住气慢慢来,具体的方法其实自己也能摸索出来的,我就是这样。当然,如果我有空,我会写我的具体设置方法,很傲能还会配上图片。
改名或卸载不安全组件
不安全组件不惊人
我的在阿江探针1.9里加入了不安全组件检测功能(其实这是参考7i24的代码写的,只是把界面改的友好了一点,检测方法和他是基本一样的),这个功能让很多站长吃惊不小,因为他发现他的服务器支持很多不安全组件。
其实,只要做好了上面的权限设置,那么FSO、XML、strem都不再是不安全组件了,因为他们都没有跨出自己的文件夹或者站点的权限。那个欢乐时光更不用怕,有杀毒软件在还怕什么时光啊。
最危险的组件是WSH和Shell,因为它可以运行你硬盘里的EXE等程序,比如它可以运行提升程序来提升SERV-U权限甚至用SERVU来运行更高权限的系统程序。
卸载最不安全的组件
最简单的办法是直接卸载后删除相应的程序文件。将下面的代码保存为一个.BAT文件,
regsvr32/u C:WINNTSystem32wshom.ocx
del C:WINNTSystem32wshom.ocx
regsvr32/u C:WINNTsystem32shell32.dll
del C:WINNTsystem32shell32.dll
然后运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示“×安全了。
改名不安全组件
需要注意的是组件的名称和Clsid都要改,并且要改彻底了。下面以Shell.application为例来介绍方法。
打开注册表编辑器【开始→运行→regedit回车】,然后【编辑→查找→填写Shell.application→查找下一个】,用这个方法能找到两个注册表项:“{13709620-C279-11CE-A49E-444553540000}和“Shell.application。为了确保万无一失,把这两个注册表项导出来,保存为 .reg 文件。
比如我们想做这样的更改
13709620-C279-11CE-A49E-444553540000 改名为 13709620-C279-11CE-A49E-444553540001
Shell.application 改名为 Shell.application_ajiang
那么,就把刚才导出的.reg文件里的内容按上面的对应关系替换掉,然后把修改好的.reg文件导入到注册表中(双击即可),导入了改名后的注册表项之后,别忘记了删除原有的`那两个项目。这里需要注意一点,Clsid中只能是十个数字和ABCDEF六个字母。
下面是我修改后的代码(两个文件我合到一起了):
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}]
@="Shell Automation Service"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}InProcServer32]
@="C:WINNTsystem32shell32.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}ProgID]
@="Shell.Application_ajiang.1"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}TypeLib]
@="{50a7e9b0-70ef-11d1-b75a-00a0c90564fe}"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}Version]
@="1.1"
[HKEY_CLASSES_ROOTCLSID{13709620-C279-11CE-A49E-444553540001}VersionIndependentProgID]
@="Shell.Application_ajiang"
[HKEY_CLASSES_ROOTShell.Application_ajiang]
@="Shell Automation Service"
[HKEY_CLASSES_ROOTShell.Application_ajiangCLSID]
@="{13709620-C279-11CE-A49E-444553540001}"
[HKEY_CLASSES_ROOTShell.Application_ajiangCurVer]
@="Shell.Application_ajiang.1"
你可以把这个保存为一个.reg文件运行试一下,但是可别就此了事,因为万一黑客也看了我的这篇文章,他会试验我改出来的这个名字的。
防止列出用户组和系统进程
我在阿江ASP探针1.9中结合7i24的方法利用getobject("WINNT")获得了系统用户和系统进程的列表,这个列表可能会被黑客利用,我们应当隐藏起来,方法是:
【开始→程序→管理工具→服务】,找到Workstation,停止它,禁用它。
防止Serv-U权限提升
其实,注销了Shell组件之后,侵入者运行提升工具的可能性就很小了,但是prel等别的脚本语言也有shell能力,为防万一,还是设置一下为好。
用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。
另外注意设置Serv-U所在的文件夹的权限,不要让IIS匿名用户有读取的权限,否则人家下走你修改过的文件,照样可以分析出你的管理员名和密码。
利用ASP漏洞攻击的常见方法及防范
一般情况下,黑客总是瞄准论坛等程序,因为这些程序都有上传功能,他们很容易的就可以上传ASP木马,即使设置了权限,木马也可以控制当前站点的所有文件了。另外,有了木马就然后用木马上传提升工具来获得更高的权限,我们关闭shell组件的目的很大程度上就是为了防止攻击者运行提升工具。
如果论坛管理员关闭了上传功能,则黑客会想办法获得超管密码,比如,如果你用动网论坛并且数据库忘记了改名,人家就可以直接下载你的数据库了,然后距离找到论坛管理员密码就不远了。
作为管理员,我们首先要检查我们的ASP程序,做好必要的设置,防止网站被黑客进入。另外就是防止攻击者使用一个被黑的网站来控制整个服务器,因为如果你的服务器上还为朋友开了站点,你可能无法确定你的朋友会把他上传的论坛做好安全设置。这就用到了前面所说的那一大堆东西,做了那些权限设置和防提升之后,黑客就算是进入了一个站点,也无法破坏这个网站以外的东西。
如何设置Windows服务器安全设置
一、取消文件夹隐藏共享在默认状态下,Windows 2000/XP会开启所有分区的隐藏共享,从“控制面板/管理工具/计算机管理”窗口下选择“系统工具/共享文件夹/共享”,就可以看到硬盘上的每个分区名后面都加了一个“$”。但是只要键入“计算机名或者IPC$”,系统就会询问用户名和密码,遗憾的是,大多数个人用户系统Administrator的密码都为空,入侵者可以轻易看到C盘的内容,这就给网络安全带来了极大的隐患。
怎么来消除默认共享呢?方法很简单,打开注册表编辑器,进入“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetSevicesLanmanworkstationparameters”,新建一个名为“AutoShareWKs”的双字节值,并将其值设为“0”,然后重新启动电脑,这样共享就取消了。关闭“文件和打印共享”文件和打印共享应该是一个非常有用的功能,但在不需要它的时候,也是黑客入侵的很好的安全漏洞。所以在没有必要“文件和打印共享”的情况下,我们可以将它关闭。用鼠标右击“网络邻居”,选择“属性”,然后单击“文件和打印共享”按钮,将弹出的“文件和打印共享”对话框中的两个复选框中的钩去掉即可。二、禁止建立空连接打开注册表编辑器,进入“HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsa”,将DWORD值“RestrictAnonymous”的键值改为“1”即可。三、删掉不必要的.协议对于服务器来说,只安装TCP/IP协议就够了。鼠标右击“网络邻居”,选择“属性”,再鼠标右击“本地连接”,选择“属性”,卸载不必要的协议。其中NETBIOS是很多安全缺陷的根源,对于不需要提供文件和打印共享的主机,还可以将绑定在TCP/IP协议的NETBIOS关闭,避免针对NETBIOS的攻击。选择“TCP/IP协议/属性/高级”,进入“高级TCP/IP设置”对话框,选择“WINS”标签,勾选“禁用TCP/IP上的NETBIOS”一项,关闭NETBIOS。四、禁用不必要的服务:Automatic Updates(自动更新下载)Computer BrowserDHCP ClientDNS ClientMessengerPrint SpoolerRemote Registry(远程修改注册表)Server(文件共享)Task Scheduler(计划任务)TCP/IP NetBIOS HelperThemes(桌面主题)Windows AudioWindows TimeWorkstation五、更换管理员帐户
Administrator帐户拥有最高的系统权限,一旦该帐户被人利用,后果不堪设想。黑客入侵的常用手段之一就是试图获得Administrator帐户的密码,所以我们要重新配置Administrator帐号。
首先是为Administrator帐户设置一个强大复杂的密码(个人建议至少12位),然后我们重命名Administrator帐户,再创建一个没有管理员权限的Administrator帐户欺骗入侵者。这样一来,入侵者就很难搞清哪个帐户真正拥有管理员权限,也就在一定程度上减少了危险性六、把Guest及其它不用的账号禁用有很多入侵都是通过这个账号进一步获得管理员密码或者权限的。如果不想把自己的计算机给别人当玩具,那还是禁止的好。打开控制面板,双击“用户和密码”,单击“高级”选项卡,再单击“高级”按钮,弹出本地用户和组窗口。在Guest账号上面点击右键,选择属性,在“常规”页中选中“账户已停用”。另外,将Administrator账号改名可以防止黑客知道自己的管理员账号,这会在很大程度上保证计算机安全。七、防范木马程序
木马程序会窃取所植入电脑中的有用信息,因此我们也要防止被黑客植入木马程序,常用的办法有:
● 在下载文件时先放到自己新建的文件夹里,再用杀毒软件来检测,起到提前预防的作用。
● 在“开始”→“程序”→“启动”或“开始”→“程序”→“Startup”选项里看是否有不明的运行项目,如果有,删除即可。
● 将注册表里 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun下的所有以“Run”为前缀的可疑程序全部删除即可。八、如果开放了Web服务,还需要对IIS服务进行安全配置:
(1) 更改Web服务主目录。右键单击“默认Web站点→属性→主目录→本地路径”,将“本地路径”指向其他目录。
(2) 删除原默认安装的Inetpub目录。(或者更改文件名)
(3) 删除以下虚拟目录: _vti_bin、IISSamples、Scripts、IIShelp、IISAdmin、IIShelp、MSADC。九、打开审核策略Windows默认安装没有打开任何安全审核,所以需要进入[我的电脑]→[控制面板]→[管理工具]→[本地安全策略]→[审核策略]中打开相应的审核。系统提供了九类可以审核的事件,对于每一类都可以指明是审核成功事件、失败事件,还是两者都审核策略更改:成功或失败登录事件:成功和失败对象访问:失败事件过程追踪:根据需要选用目录服务访问:失败事件特权使用:失败事件系统事件:成功和失败账户登录事件:成功和失败账户管理:成功和失败十、安装必要的安全软件
我们还应在电脑中安装并使用必要的防黑软件,杀毒软件和防火墙都是必备的。在上网时打开它们,这样即便有黑客进攻我们的安全也是有保证的。当然我们也不应安装一些没必要的软件,比如:QQ一些聊天工具,这样尽可能给黑客提供少的后门.最后建议大家给自己的系统打上补丁,微软那些没完没了的补丁还是很有用的。
关闭ping扫描,虽然没什么卵用
先切换到root
echo 1 /proc/sys/net/ipv4/icmp_echo_ignore_all
1代表关闭
0代表开启
用iptables
iptables -I INPUT -p icmp -j DROP
简单介绍下基本的 dedecms _aq/' target='_blank'安全设置
一、创建普通用户,禁止root登录,只允许普通用户使用su命令切换到root
这样做的好处是双重密码保护,黑客就算知道了普通用户的密码,如果没有root密码,对服务器上攻击也比较有限
以下是具体做法(需要在root下)
添加普通用户
useradd xxx
设置密码
passwd xxx
这样就创建好了一个普通用户
禁止root登录
vi /etc/ssh/sshd_config
PermitRootLogin no
Systemctl restart sshd
这样就完成了第一步,之后root就无法登录服务器只能通过普通用户su切换
二、修改ssh的默认端口22,因为ssh的端口是22,我们如果修改了该端口,他们就需要花费一点时间来扫描,稍微增加了点难度
以下将端口改为51866可以根据需要自己更改,最好选择10000-65535内的端口
step1 修改/etc/ssh/sshd_config
vi /etc/ssh/sshd_config
#Port 22 //这行去掉#号
Port 51866 //下面添加这一行
为什么不先删除22,以防其他端口没配置成功,而又把22的删除了,无法再次进入服务器
step2 修改SELinux
安装semanage
$ yum provides semanage
$ yum -y install policycoreutils-python
使用以下命令查看当前SElinux 允许的ssh端口:
semanage port -l | grep ssh
添加51866端口到 SELinux
semanage port -a -t ssh_port_t -p tcp 51866
注:操作不成功,可以参考:
失败了话应该是selinux没有打开
然后确认一下是否添加进去
semanage port -l | grep ssh
如果成功会输出
ssh_port_t tcp 51866, 22
step3 重启ssh
systemctl restart sshd.service
查看下ssh是否监听51866端口
netstat -tuln
Step4 防火墙开放51866端口
firewall-cmd --permanent --zone=public --add-port=51866/tcp
firewall-cmd --reload
然后测试试试,能不能通过51866登录,若能登录进来,说明成功,接着删除22端口
vi /etc/ssh/sshd_config
删除22端口 wq
systemctl restart sshd.service
同时防火墙也关闭22端口
firewall-cmd --permanent --zone=public --remove-port=22/tcp
注意如果是使用阿里的服务器需要到阿里里面的安全组添加新的入站规则(应该是因为阿里的服务器是用的内网,需要做端口映射)
三、使用一些类似DenyHosts预防SSH暴力破解的软件(不详细介绍)
其实就是一个python脚本,查看非法的登录,次数超过设置的次数自动将ip加入黑名单。
四、使用云锁(不详细介绍)
参考自
总的来说做好了前两步能够减少至少百分之五十的入侵,在做好第三步之后,基本可以杜绝百分之八十以上的入侵。当然最重要的还是自己要有安全意识,要多学习一些安全知识和linux的知识。
第三第四其中都有稍微提到一点,感兴趣可以看看