知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
目錄
有時你到一家新公司,接手一堆爛攤子,俗稱“擦屁股”。這是中國是離職,中國式裁員,中國式工作交接.....的結果,各種奇葩等着你。
你接手第一項工作就是工作交接,最重要的工作可能就是檢查系統後門。通常工作交接少有積極配合的,全要靠你自己。
在我多年的工作中遇到過很多種形式掛馬,有基于Linux的rootkit,有PHP腳本掛馬,Java掛馬,ASP掛馬。通常駭客會植入資料庫瀏覽工具,檔案目錄管理工具,壓縮解壓工具等等。
程序包括腳本,變異檔案等等,通常是隻讀權限
數據是指由程序生成的檔案,例如日誌
將程序與數據分離,存放在不同目錄,設置不同權限, 請關注“延伸閲讀”中的文章,裡面有詳細介紹,這裡略過。
我們這裡關注一旦運行的程序被撰改怎麼辦,包括入侵進入與合法進入。總之我們要能快速知道那些程序檔案被修改。前提是我們要將程序與數據分離,才能更好地監控程序目錄。
我使用 Incron 監控檔案變化
# yum install -y incron # systemctl enable incrond # systemctl start incrond
安裝日誌推送程序
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install
配置觸發事件
# incrontab -e /etc IN_MODIFY /srv/bin/monitor.sh $@/$# /www IN_MODIFY /srv/bin/monitor.sh $@/$# # incrontab -l /etc IN_MODIFY /srv/bin/monitor.sh $@/$# /www IN_MODIFY /srv/bin/monitor.sh $@/$#
/srv/bin/monitor.sh 腳本
# cat /srv/bin/monitor.sh #!/bin/bash echo $@ | /usr/local/bin/rlog -d -H 172.16.0.10 -p 1220 --stdin
/etc 與 /www 目錄中的任何檔案被修改都回運行/srv/bin/monitor.sh腳本,/srv/bin/monitor.sh腳本通過/usr/local/bin/rlog程序將檔案路徑數據發給遠程主機172.16.0.10。
$ git clone https://github.com/netkiller/logging.git $ cd logging $ python3 setup.py sdist $ python3 setup.py install
配置收集端連接埠,編輯檔案logging/init.d/ucollection
done << EOF 1220 /backup/172.16.0.10/incron.log 1221 /backup/172.16.0.11/incron.log 1222 /backup/172.16.0.12/incron.log EOF
然後根據incron.log給相關管理人員發送郵件或短信警報等等,關於怎麼發郵件與短信不再本文談論範圍,有興趣留意我的官網。