10/29/15

【shell】日志归档分类归档

#!/bin/sh
#遍历当前目录,将日志压缩文件按照域名、日志日期分类
#为了日志统一管理,完善日志系统分析、采集、备份、统计等需求
#date:2015-10-29
#add by chen-123

for file in $(find . -name "*gz" -type f);
do
        path=${file#*/}
        cur_parent_dir=${path%%/*}
        old_dir=${path%/*}
        old_sub_dir=${old_dir%/*}
        project_log_dir_name=$(echo ${file##*/}|awk -F '[-_]' '{print $1}')
        log_filename=$(echo ${file##*/})
        if [ "${cur_parent_dir}" != "${project_log_dir_name}" ];then
                echo $log_filename
                if [ "${old_dir}" = "${old_sub_dir}" ];then
                        test -d "./"$project_log_dir_name || mkdir -p "./"$project_log_dir_name
                        moveto_path="./"$project_log_dir_name"/"$log_filename
                        test -f "${moveto_path}" && moveto_path="./"$project_log_dir_name"/"${log_filename/[_-]/_${cur_parent_dir}_/}
                        test -f "$moveto_path" ||  mv $file $moveto_path
                        test -f "$moveto_path" && echo "move $file to $moveto_path success"
                else
                        new_sub_dir=${old_dir##*/}
                        moveto_path=$project_log_dir_name"/"$new_sub_dir"/"$log_filename
                        test -d $project_log_dir_name"/"$new_sub_dir || mkdir -p $project_log_dir_name"/"$new_sub_dir
                        test -f "$moveto_path" && moveto_path="./"$project_log_dir_name"/"${log_filename/[_-]/_${cur_parent_dir}_/}
                        test -f "$moveto_path" ||  mv $file $moveto_path
                        test -f "$moveto_path" && echo "move $file to $moveto_path success"
                fi
        fi
done

10/13/15

关于网站安全问题的思考

前言:
    网站安全问题,预防为主,别等别人发现你们家漏洞,玩出点名堂才发觉。
     一、预防为主(早发现,早处理)
      1、完善网站资源备份
      2、逐步部署网站应用级入侵防御系统即WAF,使用第三放应用辅助检查安全漏洞(比如:360、百度云观测)
      3、所有项目要求部署ci_safe.php安全代码,规范网站帐号管理
      4、规范配置,将非法请求直接挡掉,并记录日志进行分析,完善白名单机制
      5、应用代码安全审计,安排高级工程师负责审计,规避程序设计存在的安全问题
      6、定期进行错误日志分析,访问日志分析,异常请求分析(404,500,异常IP)等
      7、建立漏洞分析机制,安全员负责收集主流漏洞并提供修复方案
      8、建立一套隔离只读系统,紧急情况可切到隔离只读版本。
      二、处理故障 (快速处理,降低影响)
      1、根据故障反馈情况,分析访问日志,错误日志,确定故障发生时间点、链接、IP、漏洞类型等信息
      2、找到故障源之后,深入分析漏洞原理,讨论修复方案
      3、评估故障影响范围,讨论运营恢复策略。比如:搜索引擎收入情况,其他业务影响情况等
      4、根据上述信息,运维联合技术及运营人员,快速制定恢复方案,并汇报给领导审查
      5、根据恢复方案实施,并在后续运营过程中跟进恢复情况,做相应调整。