返回列表 发帖

[原创文章] Web服务器的安全设置

% A8 J: \8 Y, ?+ R! I0 m5 h3 C
原创作者:阿呆&柔肠寸断  [3.A.S.T]4 `% Z' W1 E, Y, U
信息来源:3.A.S.T网络安全团队  ( www.3ast.com.cn  )
5 @4 Z, f2 g0 S7 g" m: [
该文章已经发表在《黑客X档案》09第三期,转载请说明出处. i+ s* c8 A8 A0 ?6 C
' |5 a8 s+ u0 ?; T6 _6 ^& c
引入:
7 z/ G+ N0 \* v# Z又有段时间没发帖子了,记得小柔曾经发过相应的帖子,如果记得没错,小柔的帖子的主要部分是针对代码部分的,而今天我所说的Web服务器安全是从安全设置出发的,所以即使你不会代码,我相信按照我的方法也能做到相应的安全。
6 [, p! F" p- V) h8 ]1 O' L
9 }. b# u8 D! W( ]攻击:
- B! Y5 g. i  V; V1、旁注
/ f8 N# s8 ^9 N3 x# ]6 P. u# [, B如今在网络上对于网站的攻击,我们经常听到一个名词——旁注。那么旁注到底是个什么意思呢?顾名思意就是说我们要攻击一个网站或者一台服务器,在正面交锋中,我们无法将其拿下,那么我们就从旁边试图突破,然后再转到目标上来将其拿下;举个形象点的例子就是说,我们要进入一间房子,发现正门进不去,我们会怎么进去?有些人肯定会马上说翻窗户,对了,这里的翻窗户实际上就是我们的旁注的意思。我这样说大家应该理解了吧!
: ^8 n/ U* o8 m( T9 @% B9 S- }' P5 o; {- F: o
2、上传漏洞& z( z+ R6 ?' F# G% ^9 H7 i
在现在对于网站的攻击方法非常多,这里提到的上传漏洞也是其中一种,其实际意思就是说网站代码有漏洞,我们可以通过直接上传或者通过修改上传数据包的方式来将我们的ASP木马上传到服务器,从而得到webshell。至于是如何操作的,网络上相关的教程比比皆是,我在这就不浪费文字了。
% U5 t$ ~# A% i. z# }7 y9 x. `; f9 M' \( b" |: V
思考:$ s, [. |' z0 {- T% _; [: m9 _
不管你是如何得到别人的webshell的,只要你得到了webshell了,下面面临的最大问题就是获取服务器的admin权限,当然关于如何提权,也不是我今天要讲的内容,我们要思考的是,如何是防止别人提权及怎样通过BT的安全设置来妨碍那些所谓的“黑客”!2 p- ^8 f) Y. r  F- \9 W, C2 Q
. Y3 A( H" |# }- x  r! T
分析:/ Y9 P) G: M  l4 E* Q$ ?" a0 l/ E7 a
网站被入侵一般情况都是网站代码的问题,如果说你不会代码,又想要保障该网站的安全,那是有点困难的,但是想要保障服务器的安全,除开代码部分我们还是有方法的,下面我将从几个方面给大家说说一台虚拟主机应该如何来配置,从而可以使我们的服务器安全。, D' \9 ]. ~# {* {
! ^& h+ m  w! W5 a( J0 a, |+ Q; d& j
实战:0 B" v7 Z; @, A, S* e4 l, o
1、整体权限的把握5 b+ N) f' U/ i  e% \+ x

: j- a# {4 A# V1 E* I# U2 u想要做权限那么先要保证你的磁盘的文件系统为NTFS,这里我强烈建议那些想架设网站的和已经是ISP的人员这么做,因为这能够大大的提高服务器的安全性,附上FAT/FAT32转NTFS的命令:2 @7 B# g# n6 Q+ C) t0 B/ J
  1. convert 盘符 /fs:ntfs /x
复制代码

$ x! h" ?+ O) M( t! W. M整体的权限我个人的习惯是这样的,再次说明这只是我的个人习惯,我会将每个磁盘的权限设置为只有administrators跟system完全控制的权限,其他的任何组,任何用户,我都不再给权限,如下图:. m6 ?# S1 y% }7 ^
* l4 K, @+ r$ O7 \" _
system与上面的一样,所以我只放出一章图!; F8 H6 f! V& p: k5 P+ r

3 W  w* o6 W+ e% O# z$ A7 b9 p注意:我上面只放出一张图,并不是说只有C盘这样设置,是每个分区都要这样设置。. I/ ^' ^: l, O7 @' W* K# g8 O

) c8 C( H9 A% O7 |9 L到此我们的整体权限可以说是基本完成,当然后面肯定还有需要更改的地方,大家慢慢看,等会就知道了!; }" K# X/ {8 b8 t
" U3 g5 H0 e% G% R3 e" h2 ?, Y
, [- {$ {* j& H# B. Q5 x0 x+ P! c
2、默认站点的删除3 ]  [" T$ r. k

1 i# Y+ O" N; r$ K: l- h' X9 V+ {  L* N, G9 d7 f
" K' v7 d1 c3 I( G9 t
为什么要删除,相信大家都能够想明白,原因是因为,你知道默认站点的路径黑客也是知道的,所以没必要给黑客任何机会,所以毫不犹豫的删除吧!* a/ h" B. ~  ^# T
; a$ Q) L2 Z' Y

0 H! Q7 U3 i2 y6 E8 T0 \3、建立整体目录
2 U( S/ k' U% I/ [
: \0 c5 l/ I5 _& z8 a. M这只是为了方便自己日后管理。5 @4 h$ R, A2 A$ W0 o: s; H
比方说,我会将我要架设的站点全部放置在某一个分区的Web文件夹内,以后自己看见了,就知道,这个文件夹是自己专门用来放网站的,这个里面全部都是服务器上的网站。图略,步骤略。
+ w8 r  D8 m1 H. @; q3 h  z( F& A) W( L
4、单一的站点单一的用户
1 o2 R/ r1 f- |* q7 R5 r
% n: ?* D8 ~7 f- ]/ c这是什么意思呢?且听我慢慢道来!* j# d: F+ t" Q- n7 }* F& x
所谓单一的站点单一的用户,这个方法是针对那些做虚拟主机的服务商而言的,试想一下,如果所有站点都是使用的同一个用户(IUSR_机器名),那黑客拿下一个站点的权限,岂不是整个虚拟主机上的站点都被人拿到了,那损失就大了,具体的设置方法如下:
6 m+ f9 p# B9 e: X% z# P
* j$ F6 r7 n5 T+ C" }a、首先建立一个guests组的用户,比方说站点为aaa那么我们就建立一个aaa的用户,密码也为aaa(这是为了方便自己日后管理,免得站点多了,密码忘记了),将这个用户从users组删除并且加入到guests组,相关命令如下:
  1. net user aaa aaa /add
  2. net localgroup users aaa /del
  3. net localgroup guests aaa /add
复制代码
b、然后将上面建立的用户分别应用到IIS与根目录上,步骤如图:! k: f, r* Y1 V2 S  }/ n

& t9 P8 W6 u4 e/ v从上图可知aaa用户对于aaa站点的更目录拥有权限,权限的分配如上图,这个步骤是对于站点目录而言。
# a* U* _% P4 R) S+ `  l
3 v( e5 Y, p0 a) \下图是对IIS的设置,右键点击aaa站点,选择【属性】-【目录安全性】-【身份验证和访问控制】-【编辑】
' E+ S+ q( x% L( F, s  I将aaa用户填写进去。
( U' r3 U5 e: ^7 m
; J1 l3 {2 t' ^% T4 ]9 w至此,单一站点单一用户设置完成,至于这样设置之后为什么我们访问站点不会要求我们输入用户名的问题,由于时间关系这里我不做解释,大家先依葫芦画瓢的按我的步骤做吧!! f3 T( a+ z  P3 N9 P9 }+ _
' F8 F+ |7 K7 j: J% i
特别注意:我这里只说明了aaa站点跟aaa用户的设置,如果有bbb站点,那么你就应该建立一个bbb用户,然后按照上面的操作,将上面的aaa全部换成bbb即可。* e' q* k$ T: f' y# ]% t
9 P# h) T6 j$ u& u2 B
设置到这里,服务器的安全其实也就马马虎虎了,至少一个站点被入侵,其他的站点是不会有事情的。& W6 S: _- ~3 G& _' Q

2 m9 a8 D/ W" x4 |' n$ d5、防止上传漏洞的IIS设置6 _- B  F, S- l4 @8 j- c- q/ Z2 z
6 d& w8 y3 n$ n; d
插入几句话:我们知道一个好的站点,肯定是需要上传功能的,也正是因为这个原因导致很多网站被入侵,那么对于上传文件夹我们应该如何处理呢!下面我将假设aaa站点内存在一个专门用来存放用户上传文件的文件夹“uploadfiles”,然后对其进行设置,以下设置在IIS内完成,如下图:4 T3 J. |* G( Q
  v$ s& z  |9 V3 e4 e9 D0 H
在IIS中找到这个文件夹右键点击-【属性】-【目录】-【执行权限】,将原来的【纯脚本】改为【无】
; u! @: c' b6 s1 h5 D% P; ]为什么要这样设置呢?原因是因为,我们知道用户上传的文件要么是一些exe文件,要么是一些图片或者一些rar文件,而这些文件是绝对不会存在需要IIS解释的脚本的,也就是说这些文件根本不需要解释,可以被我们直接浏览,那我们为什么还给它一个执行权限为【纯脚本】让黑客有机可乘呢,改为【无】之后,用户上传文件,即使是ASP木马,用户也浏览不了了,这不是很好么!
9 I: N1 [, D# E; d0 h7 W4 l+ K/ a0 {
6、删除IIS中不必要的关联( z! O  b" Z6 t0 z

/ _. M2 U" ^$ K在IIS中,不管你是什么站点,是ASP的也好,是PHP的也好,实际上都是需要一个解释器对相应的ASP脚本语言、PHP脚本语言进行解释的,我们用户通过IE浏览到的页面,其实都是IIS解释之后的结果,就我个人熟识的,一个站点,我还没看见有几种脚本语言的,所以当你知道这个原理之后,我就问一下,如果我们的站点只是一个ASP的站点,我们有必要让我们的站点上面还存在PHP的解释器吗?答案就不言而喻了!操作步骤如下图:
& u( I! D" V& T2 b; X% |0 R0 j4 Z& U" i! J

2 H9 w# Q% W# F& s+ V. h& r. k& D2 M" x: o  T% z/ k# j' `
在鼠标右键点击该站点选择属性-【主目录】-【配置】-【映射】-【应用程序扩展】,将里面不需要的全部删除,如上图所示!
/ I/ x- z% g* j8 F! R这种操作之后,就可以防止黑客上传一些后缀为asa,cer的木马来得到webshell了!! ^4 s! u8 V' u% F9 g% {
" ?3 t4 }! W) r- a# m6 J  f2 L
7、防止数据库下载- F$ N4 X/ q1 E- S0 k
- Y" F1 _/ w  K6 l. {5 y5 N
我们知道网站最核心的东西就是它的数据库,很多黑客就围绕着数据库不知道下了多少心事,因为黑客知道,只要能把网站的数据库下载下来,目的差不多完成了一大半,那么我们应该如何来防止数据库下载呢?下面教给大家一个终极办法,从上一个步骤的说明大家可以知道,用户通过IE浏览网页都是浏览的IIS解释之后的结果,那么,我们可以添加一个无用的关联,使这个关联来解释我们的mdb文件,这个时候,黑客就无法来下载我们站点的数据库了,即使下载下来,也不用怕,因为那数据库已经是个乱七八糟的数据库了,为什么这么说,举个例子,我们有一篇英文文章,结果你找来一个德语翻译来翻译,最后的东西你能看明白吗?自己慢慢去体会吧!操作如下图:4 X! E* p  o7 l9 p5 K) R3 n
8 t6 ?9 a1 e2 m" e( S
按照上一个步骤的方法打开上图的地方之后点击【添加】,然后为.mdb创建一个新的关联,上面的【可执行文件】随便找一个.dll的文件就可以了!但是记住,千万不要选择asp.dll文件就可以了,原因,哎哟,一句两句解释不清楚,呵呵,反正记住我的忠告吧!呵呵!
( m" \& {* A0 b, v3 x) S8 h' c9 a8 B5 k6 F
8、对站点的文件夹的权限灵活设置(新手慎用6 ^2 e4 w! x3 z6 C+ ~# Z% c

  I: J7 t$ ^4 w$ b% ^这一步骤,我就不截图了,因为我怕,有人看了图不看我写的!我只给大家一个思路,比如你对你的站点非常属性,知道哪些目录是需要写权限,哪些目录是不需要写权限的,那么你就根据自己的思路,自由设置,如果不熟悉这个步骤可以省略!因为上面的设置个人觉得已经够黑客忙一阵子了!(*^__^*) 嘻嘻……!
  V2 {6 P& a' L5 k" |* C. }* M# n6 E: p2 j1 x6 h5 f
基本上算是完成了,哎哟妈耶累死我了!~~~~大家不回不要紧,我希望大家能认真看完,因为个人觉得这个东西对于网站的管理员而言是非常重要的!
& I/ y$ [' X& J( @5 h! Z2 {9 X+ @2 J. m% M
最后送大家一句话“没有绝对安全的服务器,只有不断安全的服务器”,所以说并不是按照我的步骤设置完成了,你的服务器就没有任何问题了,我希望大家能在学习中有所发现,能够提出更加完善的“服务器安全方案”!
2 G5 b8 `' R8 ]8 l- a/ U2 d. A+ ^( [: A, t& D: ?5 }+ s4 G$ B
再给大家一个公式:最小的权限+最少的服务=最大的安全。。。。
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

  • zhuyahui

  • 超超

阿呆主站:CISP中国网
注册信息安全专业人员资质认证(CISP)资料,心得以及备考指南。
阿呆的BLOG:北京SEO
这里时刻记录着阿呆在学习SEO及网络安全过程中的点点滴滴!

返回列表