北美网备份站

标题: 如何准确的清理数据库 [打印本页]

作者: 北美生活网    时间: 2016-9-25 16:34
标题: 如何准确的清理数据库
网站在昨晚升级空袭,数据库受到攻击,产生大量垃圾信息。学习如下:
, k. A8 @% z& l$ i2 e# |! a" J0 ^& d' H" d" r" b
0 [6 j4 I* {3 ]. g* Y
随着网站的发展占用的数据库是非常大的而且成本也越来越高如何清理数据库的无用数据是非常有效的减少成本的方法。清理周期不要太长也不需要太短的时间(特殊情况:网站被灌水需要做好防护并且随时清理)。
一定要提前做好数据库的备份
/ L. R- u" n, n$ ?  y9 O, ]当发现网站数据库增长非常大的时候。
0 }" n, ]$ G$ j; U+ A, A; O3 n
* d- Z7 u9 c9 }; z: u首先要判断网站是否被灌水 非常直观的是通过查看用户跟帖子比如会员名全部都是字母,数字。帖子内容全部都是垃圾信息或者违规信息。这些全部都是增加数据库最主要的原因。处理方法 到后台删除这些帖子跟用户,注意的是删除用户的时候也要删除UCenter里面的用户数据。
' h, N, K9 D8 o. J& N2 `& k) k/ _. c, L0 y: }
其次帖子跟会员都比较正常 数据库增加还是很大& ~* v# ~+ m1 b8 ~2 C" X1 h
经常遇到占用大并且可以清空的表
  Q+ y$ @$ }9 d$ C0 Y* h0 d' n  l( E$ ^  N' m
pre_common_credit_log 积分日志表% J: v7 {9 r* s" b: z! g2 d7 l( ]
pre_common_credit_log_field 积分日志详情
3 t& P: I9 N8 [( d; T: k  Xpre_common_credit_rule_log 积分规则日志表
3 I7 s: u& Q9 Z/ G1 e这几个表主要是记录积分的变动情况,关闭到一些异常变动或者站点管理,如果是灌水造成的一般可以清空,如果是大站点,运营过程中积分信息还是很重要的,清理前要慎重。
' Q7 V! i' H; R0 {( z, `% @4 kpre_common_failedlogin 失败登录表
& f/ G' g9 L" e$ kpre_common_grouppm 群发短消息表; E8 Z9 ?9 |+ V$ l
pre_common_invite 邀请表4 {7 Z7 L9 @$ P6 W! [
pre_common_mailqueue 邮件队列表
( d* y5 t: }+ C# _: ?pre_common_member_action_log 用户操作日志表
  @4 a" N  a) F+ H# f: qpre_common_member_newprompt 用户新提醒数量表, h' r9 V; }' u0 a' r
pre_common_member_validate 用户审核表
9 z3 {# ]+ T7 X" e/ ?2 T( O' \pre_common_visit 用户访问日志表
4 c$ @2 M" J& b2 apre_forum_post_moderate 帖子审核数据表0 A* K6 K8 M+ @. [4 L
pre_forum_thread_moderate 主题审核数据表
1 t( w; t3 G: }. Z( a. X6 m* \6 Bpre_home_blog_moderate 日志审核数据表* x' P! N8 n! e# L1 _( _
pre_home_comment_moderate 家园评论审核数据表9 n7 m4 u( `+ s. V4 X( i9 `* s
pre_home_doing_moderate 记录审核数据表
( a0 b& H& r8 h$ o% w" tpre_home_pic_moderate 图片审核数据表1 V9 m  w9 D( A1 A
pre_home_share_moderate 分享审核数据表
% O/ K3 O  r6 y$ apre_portal_article_moderate 文章审核数据表
$ g* P! P0 S+ `  o; K5 P% Ppre_portal_comment_moderate 文章/专题评论审核数据表
% E: k$ u$ B& w; l/ x" J% Kpre_home_notification 通知表; I6 ^, y- @; o4 R9 f
pre_security_evilpost
' [3 r, c" f( B' {pre_security_eviluser8 \) Z: c# T" q/ S+ t$ a
pre_security_failedlog防水墙积累的垃圾信息表
8 x3 z6 g, I4 G% o; {  r. _4 Y
. N% ]; ^/ @; d4 R# n9 R/ a; d3 A5 p6 r3 t6 T% F. A
以上表在论坛本身的展示内容来说是没有任何影响的
2 j9 y, i( j( ]3 U- n8 ?但是会在灌水、恶意注册或者日常操作中积累大量的垃圾信息9 m" @$ `+ Z. N  s

2 Q) c! C: {9 E视情况清理如下
( [6 ?8 N& r3 t5 L5 A2 Ipre_home_friendlog 用户好友动作日志表
0 q6 T! c6 X- X2 K7 }/ Fpre_home_friend_request 申请好友表0 E/ f2 {1 ^9 g5 b: G
pre_home_follow 用户关注关系表
( g. i; \0 ^  W' E6 l6 H* W$ Qpre_home_favorite 收藏表
+ O3 _0 U) k6 [: A( A7 S2 G/ Rpre_common_magiclog 道具日志表" m  j8 i; u: s* f
pre_home_blogfield 日志字段表
. E' P+ w. A) G
' f! C/ n$ G  R! j8 K3 Y9 Y5 c注意:清理完这些表之后 要全部优化一下表
+ V' ~2 R4 c. _2 |- e这样再看数据库发现会空闲出很多。
2 q# k4 p) ~% j
作者: 北美生活网    时间: 2016-9-25 17:15
http://os.51cto.com/art/201208/351277.htmDiscuz论坛安全加固浅析
Discuz! 论坛以其功能完善、效率高效、负载能力,深受被大多数的网站喜爱和青睐。无独有隅,笔者所维护的论坛就是用discuz! 来构建的,从接手时候的7.2到现在x2.0,经历了数次的二次开发和发布,感触颇多。
言归正传,本篇主要从nginx 安全加固、discuz 文件目录、mysql 用户权限等方面来阐述discuz论坛安全加固,希望给大家一点灵感。
1.Nginx安全加固
作为web的前端,在上面加强安全防护,效率比php要高多了。针对discuz! X2.0论坛nginx安全加固如下:
location ~* ^/(data|images|config|static|source)/.*\.(php|php5)$   {   deny all;   }
意思是data images config static source等目录及其所有的php不能从web访问,这样避免黑客在上传上面的目录上传的木马无法运行,返回403错误。当然最直接的方法就是先将所有的文件禁止运行,然后加入需要放开的php和目录,这样做起最直接,而且最彻底。
例如:(只是举个例子而已,千万不要直接拿到自己的生产环境去!否则,你会哭的。)
location ~ (index|forumn|api|home|).*\.(php)?$    {                allow all;                fastcgi_pass  127.0.0.1:9000;                fastcgi_index index.php;                include fcgi.conf;}
2.discuz目录加固
不要听信网上所有将目录设置为777,这样的话,任何用户都已对目录可写可执行。正确的做法如下:
1)运行 nginx 和php 的用户应该这样来设置 useradd -g www -d /data0/htdocs -s /sbin/nologin  www 意思:创建一个www用户根目录在/data0/htdocs 使用shell 是/sbin/nologin(不允许登录)
2)针对discuz!X2.0目录权限可以设置:
进入论坛根目录
  1. find source -type d -maxdepth 4 -exec chmod 555 \ {};
    / i/ \! y% N9 z- v! H' m. D6 @
  2. find api -type d -maxdepth 4 -exec chmod 555 \ {};4 b" D* q- t( J! m7 r3 ]
  3. find static -type d -maxdepth 4 -exec chmod 555 \ {};
    + N  e  {8 `) C6 C, K5 Z: ^1 q
  4. find archive -type d -maxdepth 4 -exec chmod 555 \ {};
    8 z  U9 Y+ I, P- i6 Q7 O& L6 F
  5. find config-type d -maxdepth 4 -exec chmod 555 \ {};6 s; }( k! x' O7 Q( \
  6. find data- type d -maxdepth 4 -exec chmod 755 \ {}; #data需要写缓存所以权限为755
    7 g' g# A6 d7 e: y3 S# p4 {
  7. find template - type d -maxdepth 4 -exec chmod 555 \ {};
    5 E2 @; P# L$ X& \  T7 I
  8. find uc_client - type d -maxdepth 4 -exec chmod 555 \ {};
复制代码

  K( x  `9 W4 M( K; k( x# I) \

) w1 q* S) q4 n0 U1 ^% D1 T
* T& W7 I- r# c( Y' y" L9 T/ C
3)    针对discuz!X2.0文件权限可以设置:
进入论坛根目录
find . - type f -maxdepth -exec chmod 444 \ {};#设置论坛目录的文件只可读,然后设置那些需要写的文件,一般只有data下的文件是可以的。find data - type f -maxdepth -exec chmod 755 \ {};#设置data 文件为755
3.mysql权限设置:
1)mysql 用户权限:用户的权限应严格限制,不应该有的权限全部去掉。比如该用户只需执行select 语句,且只能操作某个库,那么只赋予select 权限和限制在某个库即可,千万不要画蛇添脚,添加delete update权限等。例如下图所示
2)限制来源ip:这一点是最容易让人遗忘,可能测试放开了来源ip,但是上线的时候却忘记了。但是带来的后果确实不堪设想。设置用户的来源ip比如只允许来源ip 192.168.1.2可以连接。例如下图所示
以上我对discuz!论坛安全加固的一点点总结,因为是抽出很少时间来整理,所以难免有错误发生,希望大家不啬赐教。有一句话送给大家 “安全是相对,没有绝对的”,在以后说不定又有新的问题接踵而来,这就需要大家对新的问题详细分析,对症下药。
作者简介:崔晓辉,网名coralzd,大众网系统管理员,精通网站系统架构、Unix技术。





欢迎光临 北美网备份站 (http://beimeilife.duckdns.org/) Powered by Discuz! X3.2