点标签看更多好帖
开启左侧

学习:从Discuz论坛管理看网站安全防护

[复制链接] 0
回复
1430
查看
打印 上一主题 下一主题
楼主
跳转到指定楼层
发表于 2017-1-25 03:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
' X2 `6 O  Z9 N" o4 @" h8 o8 u8 S
" w/ G/ y2 Z3 ~% z
https://security.tencent.com/index.php/blog/msg/17% l" W- _! S* n: E! G4 r$ e

+ z1 p3 u4 N6 Q  g; a1 c
; M9 E, |! n  q9 M& Y5 g6 c6 y
前言

% B1 p$ G! a- V, O/ S$ J5 j8 Z
    Discuz是康盛公司推出的一套通用社区论坛软件系统,用户可以在不需要任何编程基础上,通过简单的设置和安装,在互联网上搭建起具有完善功能、高负载、高定制的论坛。Discuz是一个经过完善设计,适用于各种服务器环境的高效论坛系统解决方案。

( B. _/ v( T: q( m/ L/ @. v
    由于Discuz的安装和管理极其方便,许多企业管理员并未对他的安全风险有相应的了解;Discuz作为开源软件,历史上被发现若干安全漏洞,极容易导致服务器被入侵。

6 w" e( r6 o& |
    出于工作需要,笔者经常会接触到公司的各类Discuz论坛,对Discuz的安全问题十分关注,这里给大家分享一些关于discuz论坛防护的方案,希望能给广大企业用户提供帮助。
! _0 D. \- ]4 m2 f! z
    Discuz论坛管理大致分为服务器安全加固、网站安全加固、日常管理三个方面的内容,以下是详细的实施方案可供参考。
1 B: c& O( E" W0 a) w  a3 }
服务器安全加固

' A" S! Z' \& ~" V
确保网站安全首先要保证服务器各项组件的安全,如discuz服务器的一般组件有Apache、php、mysql等,确保这些第三方软件安全有如下一些原则:
6 \7 a% [3 N% a* I
1、权限最小化

$ Q3 J6 n  f, w! c) ^- \# t9 [9 h6 Ra) Webserver及数据库服务均以非root权限启动;
, R- m: F- a& c  q
b) 文件属主与webserver进程属主不同(一般设置文件的属主为root)
% V0 A7 i9 k9 ?/ C+ t
c) 确保discuz网站的目录和文件权限最小化。
目录权限除必须为777的目录外,其他目录权限须设置为755文件权限除必须为777的文件外,其他文件权限须设置为644
d) 数据库与webserver不在同一台机器上
1 y  b# \2 @; v$ ]$ M$ |0 q
e) 可写的目录没有执行脚本权限,可执行脚本权限的目录不可写。
常见可写目录为:./config、./data、./uc_client/data/、./uc_server/data/常见不可解析php的目录为:./data/、diy、template、attachment、./install/images、forumdata、images在apache中配置不允许执行php权限如下:<Directory "/discuz/data/">    php_flag engine off    <Files ~ ".php">        Order allow,deny        Deny from all    </Files></Directory>
f) 控制脚本仅允许访问网站文件
php.ini中配置open_basedir项为网站目录8 e& G" e. ?4 B! p2 k
2、默认选项需要加固

3 c7 A' D5 U. u8 g- U7 s) A
a) 删除默认webserver页面
& I7 f: S" ^& A& @  D4 X% b
如apache需要删除icons和manual两个目录
b) 禁用php危险函数
在php.ini配置:disable_functions=exec,popen,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open) ^! o! m. C9 o; q
3、敏感信息不显示
a) 关闭webserver的目录浏览功能
5 D# u- w  S- j2 i
Apache配置文件中的目录配置项的“Indexes”删除或者改为“-Indexes”
b) 关闭php的错误消息显示
: y. N! |+ w4 S( a, X7 @8 T
Php配置:display_errors = Off5 A  `+ H7 U6 g8 \0 N4 k9 R2 X9 W
4、开启日志记录
a) 开启webserver的日志记录功能4 M/ P, \, m$ A; v) `, A6 I5 C
CustomLog /www/logs/access_log common

! I- q  X) f% M5 g& S b) 开启php的错误日志记录功能( j& _2 z3 H* C2 ]7 D
log_errors = Onerror_log = D:/usr/local/apache2/logs/php_error.log注意:该文件必须允许apache用户的和组具有写的权限
( Q: o: N9 g* w) b! z7 \5 d+ Z+ E
5、实施ip策略

; O" `. X4 ?* b5 J# Z# k
a) 数据库仅开放在内网

& s4 X: o8 I8 Y7 Q& @" w
b) 不允许任意ip连接数据库

# S& x( f4 |; Y6 F" @
c) Iptables禁止所有的非法连接
( s8 t; n3 y8 m# d; c4 }
d) 管理目录仅允许内网访问

0 |: y" l, \' U7 [3 N
网站安全加固
0 H. K8 h' j$ b. |0 R6 S
服务器足够安全只是网站安全的前提,确保网站安全大致有如下措施:

9 o# R8 k+ G) w5 G+ _
1、账户安全

+ K5 [5 F5 c3 e- j8 B( \! A4 V
a) 用户密码需要加密存储
- N* y6 ^7 k$ ]3 L* g+ j/ zb) 用户密码需要采用密文的形式在网络上传输
" y7 e- O0 o$ W% Y" a1 V
2、后台管理
  h$ W3 C# }% {! x9 n  x" \$ z0 s
a) 后台管理界面需要使用双因子确保管理员的合法性。常见的因子如(ip策略、token、用户密码)等。

2 G9 j+ ]  x5 O1 C$ [- @8 [' ^
3、业务配置

  G& D5 E' [1 o' M' e
a) 针对discuz业务特性,在安装的时候会删除不必要的插件
api目录(外部接口)里的以下功能如果不使用可以删除Db目录 ---> UCenter数据库备份接口google---google引擎使用Javascript目录 ---> 数据和广告的js调用Trade目录 ---> 在线支付接口Manyou目录 ---> 漫游和云平台使用
b) 关闭论坛的个人空间,防止恶意钓鱼,欺诈。
Discuz! X1.5关闭个人空间方式:修改文件 source/module/home/home_space.php,搜索如下代码:$do=(!empty($_GET['do'])&&in_array($_GET['do'], $dos))?$_GET['do']:'index';下面添加如下代码: if(in_array($do, array('home', 'doing', 'blog', 'album', 'share', 'wall'))) {showmessage('抱歉,家园功能尚未开启', 'forum.php');}Discuz! X2关闭个人空间方式:后台->全局->站点功能->功能模块(是否开启家园功能,点否即可关闭)
c) 检查crossdomain.xml文件,限制到特定的域名或者将此文件删除。
' `; W$ v, v( V  }7 y1 t
d) 遵循Discuz常见安全配置
1、forumfounders= '1'论坛创始人UID,建议只有一个创始人。2、论坛防御级别配置attackevasive = 0 (由于会影响用户,这里默认是0,如果遭到 攻击,可以自行尝试1248的配置)论坛防御级别,可防止大量的非正常请求造成的拒绝服务攻击。3、urlxssdefend = 1论坛访问页面防御开关。4、admincp['forcesecques'] = 1管理人员必须设置安全提问才能进入系统设置,0=否,1=是【安全】。5、admincp['checkip'] = 1后台管理操作是否验证管理员的 IP,1=是【安全】,0=否。6、admincp['tpledit'] = 0 (这项针对discuz! 7.2的安全配置)是否允许在线编辑论坛模板 1=是 0=否【安全】。7、admincp['runquery'] = 0是否允许后台运行SQL语句1=是,0=否【安全】。8、admincp['dbimport'] = 0是否允许后台恢复论坛数据 1=是 0=否【安全】。详细说明请参考:http://faq.comsenz.com/viewnews-924
+ X: I! S% |  [9 n' r# P( j& P3 y& c. `% ^
日常管理
- {+ t( B! X$ A% O' n$ }' s
1、 所有的第三方软件均需要使用最新版本,确保安全。
, w1 _+ k9 N; ?5 d& u! P' R
2、 关注所用到的第三方软件的安全信息,及时更新补丁或升级。如dz论坛容易出现nginx的解析漏洞
在PHP的配置文件php.ini中配置cgi.fix_pathinfo = 0,防止nginx文件解析漏洞
3、 关注官方发布的安全信息。
. W! g* J7 h+ q# ~" I3 lhttp://www.discuz.net/forum-10-1.html
. X) M+ n$ p' ]" \, n- P* W5 ]
4、 dz论坛统一管理。统一化的管理可以高效的对discuz论坛进行更新、维护,避免出现各个管理员对安全信息掌握不一致的问题。
& Y( `" j2 u- B
5、 增加dz的网站风险检测系统,24扫描dz站点,及时掌握dz的安全状况
2 Z5 n6 Z1 z9 z8 b
6、 增加漏洞收集渠道,更好的掌握自身产品的安全漏洞。
; x% t& c/ w$ x7 c+ C3 R! }  l
     作为普通网站的管理人员,通常需要遵循服务器安全加固中的1,2,3,4四点、网站安全加固的1,2两点、及日常管理的1,2,3三点用于确保网站的安全性。

7 C- P( R1 M: p) N7 I% }: f$ @
    中小型企业若使用到discuz论坛可以参考网站安全加固的业务配置选项,更好的防御discuz论坛。

- M( {1 i: Q: r. r9 A
    对于人力不足或在短期内迫切需要提升网站安全性的管理人员来说,推荐使用安全宝(http://anquanbao.com/)或加速乐(http://www.jiasule.com/)的一键安全防护功能。
7 F- S- C1 P& e9 j" w; B! G; ]$ }
* i8 e/ J  i9 ]2 s1 `# }5 }1 u+ F
( x* i; t" N8 c: X, U


转载请保留当前帖子的链接:https://www.beimeilife.com/thread-41672-1-1.html 谢谢

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表