是誰在撩動着個人服務器

            安全--怎樣才能追根朔源python

    有人說安全,安全是什麼,怎麼作,怎麼才能作好,實際上是個永無止境的話題。
linux

淺談下工做中那些方法:ios

一、全部的操做都必須流程化,可控化。shell

二、考覈機制。數據庫

三、相應的技術手段,提高安全的門檻<系統權限管理、堡壘機、跳板機、防火牆設置>。安全

四、主動防護。<蜜罐、waf>bash

五、探測技術。<nmap zmap>服務器

六、告警響應機制。ide

七、調查告警緣由。測試


那就談談怎麼實現:

原理圖

wKioL1lEBCGQVXksAAFtn7UeTJc815.png



  • 怎麼監控惡意行爲

工欲善其事,必先利其器


怎麼監控 Windows server服務器  配置安全-高級審覈策略,怎麼配置,請聽我慢慢到來。

實例以下:《可根據生產環境,斟酌採起各類日誌,一下只是實例》



賬戶登陸事件(此類別中的事件幫助文檔域嘗試對賬戶數據、域控制器或本地安全賬戶管理器 (SAM)  進行身份驗證。與登陸和註銷事件(它們跟蹤訪問特殊計算機的嘗試)不一樣,此類別中的事件報告正在使用的賬戶數據庫。) 憑據驗證
審覈由對用戶賬戶登陸憑據的驗證測試生成的事件。 成功、失敗
Kerberos 身份驗證服務
審覈  Kerberos 服務票證請求生成的事件。 失敗、成功
Kerberos服務票證操做
審覈由響應爲用戶賬戶登陸提交的憑據請求(非憑據驗證或  Kerberos 票證)生成的事件。 成功、失敗
其餘賬戶登陸事件
審覈由  Kerberos 身份驗證票證授予票證 (TGT) 請求生成的事件。 成功、失敗
賬戶管理事件(可使用此類別中的設置監視對用戶和計算機賬戶和組的更改。) 用戶賬戶管理
審覈對用戶賬戶的更改。 成功、失敗
計算機賬戶管理
審覈由對計算機賬戶的更改(如當建立、更改或刪除計算機賬戶時)生成的事件。 成功、失敗
安全組管理
審覈由對安全組的更改生成的事件。 成功、失敗
通信組管理
審覈由對通信組的更改生成的事件。注意:僅在域控制器上記錄此子類別中的事件。 成功、失敗
應用程序組管理
審覈由對應用程序組的更改生成的事件。 成功、失敗
其餘賬戶管理事件
審覈由此類別中不涉及的其餘用戶賬戶更改生成的事件。 成功、失敗



  • 本地會產生日誌,怎麼將日誌發送到遠端日誌服務器,簡單圖上面已經標明,利用evtsys.exe 發送到指定的log服務器。


  • Linux 服務器開啓審計策略

1.1    命令時間戳記錄

    /etc/bashrc文件中增長以下行

    export  HISTTIMEFORMAT="%F %T "


2.1    日誌審計策略配置


    /etc/audit/audit.rules

        實現監控全部用戶的登陸行爲,包含用戶全部操做,以及shell腳本中的命令

    -a exit,always-F arch=b64 -S execve -k exec

    -a exit,always -Farch=b32 -S execve -k exec

2.2  實現對重點配置文件的監控(根據實際應用額外添加文件列表)    

    -w /etc/crontab -p wa -kcrontab

    -w /etc/hosts -p wa -khosts

    -w /etc/hosts.allow-p wa -k hosts-allow

    -w /etc/hosts.deny-p wa -k hosts-deny

    -w /etc/fstab -p wa -k fstab

    -w /etc/passwd-p wa -k passwd

    -w /etc/shadow-p wa -k shadow

    -w /etc/group-p wa -k group


3.1    

    配置audit日誌,audit日誌文件自動保存在/var/log/audit/目錄中。

    num_logs = 4       #個數

    max_log_file = 50   # 大小(MB)



4.1    添加無用日誌過濾規則:

    

    /etc/rsyslog.d/目錄添加audit_filter.conf文件,並在文件中添加以下內容:

:msg, ereregex,"(bin|sbin|sa)\/(ping|top|mpstat|iostat|iotop|vmstat|sar|sadc|sh)\""~

:msg, ereregex,"(sbin|udev)\/(fstab_import|udisks-part-id|path_id|edd_id|scsi_id)\""~

:msg, ereregex,"(bin|sbin)\/(tr|sort|wc|cut|awk|gawk|grep|fgrep|egrep|sed|head|tail|tailf)\""~

:msg, ereregex,"(bin|sbin)\/(sleep|ls|expr|nohup|date|cat|du|dirname|tar|gzip|df|sg_persist|ip)\""~

:msg, ereregex,"(bin|sbin)\/(basename|hostname|readlink|bc|touch|dmesg)\"" ~

:msg, ereregex,"(bin|sbin)\/(consoletype|blkid|lsblk)\"" ~

:msg, ereregex,"\"(ping|top|mpstat|iostat|iotop|vmstat|sar|sadc|sh)\"" ~

:msg, ereregex,"\"(fstab_import|udisks-part-id|path_id|edd_id|scsi_id)\""~

:msg, ereregex,"\"(tr|sort|wc|cut|awk|gawk|grep|fgrep|egrep|sed|head|tail|tailf)\""~

:msg, ereregex,"\"(sleep|ls|expr|nohup|date|cat|du|dirname|tar|gzip|df|sg_persist|ip)\""~

:msg, ereregex,"\"(basename|hostname|readlink|bc|touch|dmesg)\"" ~

:msg, ereregex,"\"(consoletype|blkid|lsblk)\"" ~

:msg, ereregex,"(type=PATH)" ~

:msg, ereregex,"(key=\"exec\"|type=EXECVE)" @x.x.x.x:514


啓動服務

# service auditd start

  # service rsyslog start


5.1     附上一個批量部署的腳本

            

#!/bin/bash
#
# Description: Linux audit and syslog/rsyslog autoconfig Scripts.
#
# Author: ldyhj <qiongfei@vip.qq.com>
#
# ver 1.0
# --------------------------------------------------------------------------------

OS_VERSION=""
uname -r | grep el5 > /dev/null && OS_VERSION=el5
uname -r | grep el6 > /dev/null && OS_VERSION=el6
uname -r | grep el7 > /dev/null && OS_VERSION=el7

if [ "$OS_VERSION" = "el7" -o "$OS_VERSION" = "el6" ];then
    FILENAME=/etc/rsyslog.conf
    SERVER=rsyslog
elif [ "$OS_VERSION" = "el5" ];then
    FILENAME=/etc/syslog.conf
    SERVER=syslog	
fi

unset ret
ret=`egrep ^active[[:space:]]*= /etc/audisp/plugins.d/syslog.conf 2> /dev/null |wc -l`
if [ "$ret" -eq 0 ];then
    echo "active = yes" >> /etc/audisp/plugins.d/syslog.conf
    service auditd restart
elif [ "$ret" -eq 1 ];then
    ret1=`egrep ^active[[:space:]]*= /etc/audisp/plugins.d/syslog.conf |awk -F'=' '{print $NF}' |awk 'gsub(/^ *| *$/,"")'`
    if [ "$ret1" != "yes" ];then
        sed -i 's/^\(active[[:space:]]*=\).*/\1 yes/g' /etc/audisp/plugins.d/syslog.conf
        service auditd restart
	fi
elif [ "$ret" -gt 1 ];then
    sed -i 's/^\(active[[:space:]]*=.*\)/#\1/g' /etc/audisp/plugins.d/syslog.conf
    echo "active = yes" >> /etc/audisp/plugins.d/syslog.conf
    service auditd restart
fi
egrep ^active[[:space:]]*= /etc/audisp/plugins.d/syslog.conf

unset ret
unset ret1

ret=`egrep "^\*\.\*[[:space:]]*@" $FILENAME 2> /dev/null |wc -l`
if [ "$ret" -eq 0 ];then
    echo "*.* @x.x.x.x:514" >> $FILENAME
    service $SERVER restart
elif [ "$ret" -eq 1 ];then
    ret1=`egrep "^\*\.\*[[:space:]]*@" $FILENAME |awk -F'@' '{print $2}' |awk 'gsub(/^ *| *$/,"")'`
	if [ "$ret1" != "x.x.x.x:514" ];then
        sed -i 's/^\(\*\.\*[[:space:]]*@\).*/\x.x.x.x:514/g' $FILENAME
        service $SERVER restart
    fi
elif [ "$ret" -gt 0 ];then
    sed -i 's/^\(\*\.\*[[:space:]]*@.*\)/#\1/g' $FILENAME
    echo "*.* @x.x.x.x:514" >> $FILENAME
    service $SERVER restart
fi
	
egrep "\*\.info[[:space:]]*@" $FILENAME > /dev/null
if [ $? -eq 0 ];then
    sed -i 's/^\(\*\.info[[:space:]]*@.*\)/#\1/g' $FILENAME
    service $SERVER restart
fi

egrep "^\*\.\*[[:space:]]*@" $FILENAME



6.1    linux rsyslog服務器  配置

    /etc/rsyslog.conf

    配置模板

   

$templatepipeformat,"%TIMESTAMP% %fromhost-ip%%syslogtag%%msg:::drop-last-lf%\n"

$templateevtsysformat,"%TIMESTAMP% %fromhost-ip% %pri-text% %FROMHOST%%fromhost-ip% %syslogtag%%msg:::drop-last-lf%\n"

$templateruncmdformat,"%TIMESTAMP% %HOSTNAME% %fromhost-ip%%msg:::drop-last-lf%\n"

                根據需求進行摘選模板存放位置

                

if$fromhost-ip == 'IP' or $fromhost-ip == '接收來自客戶端IP' or $fromhost-ip== '接收IP' or $fromhost-ip == '接收客戶端IP' or $fromhost-ip =='接收客戶端IP' or $fromhost-ip == '接收客戶端IP' or $fromhost-ip =='接收客戶端IP' then |/var/tmp/log


    配置完成後,檢查語法  rsyslogd -N1

    重啓服務


有了數據,你想實現什麼樣的告警都須要去摸索

目前,我採用的是電視屏幕展現,加事件風險等級作報警短信告警,由於採用了固定的rsyslog模板,可使用 AWK  python 取你想要的東西作參數;這樣實現誰操做了服務器,作了什麼都是一目瞭然。



附件、附上本次須要設計到的文檔,軟件

相關文章
相關標籤/搜索