2008-09-23

Postfix 設定調整

自從去年初灌好 Postfix + amavisd-new + clamav 之後,並沒有很認真去關心這個系統,而且設定檔都跟別人不一樣,我一直搞不懂 .spamassassin 到底有沒有用,然後 clamav 一直有錯誤訊息產生!坦白說,整個系統只是堪用而已,並沒有真正發揮功效,上星期老大也覺得怪怪的,要我檢查一下系統的狀況。
趁此機會,仔細看了一下 queue 裡的信,大部份都是寄不出去的,一度以為是被當作 relay 來偷寄信(雖然這台已經被奇摩打入18層地獄了),檢查過確定並沒有被當作 relay,查看信件內容,都是退信,原來是廣告信使用公司的 domain 在寄信,由於用的是假帳號,信寄出去之後的退信就會回到公司來,我的 server 查無此人,又想把這封退信給退回去,耐何對方也不收(或拒收)我的退信(像奇摩),這封信就這樣卡在 queue 裡,打從機器上線之後,queue 都是在 500 封信以下,為了怕有萬一,還寫了一個程式定期檢查 queue 的信件數,超過 2000 封就發簡訊通知我,要知道,mail 在網路裡就像辦公室裡的電話一樣重要啊!
修改一:
我一直在找,怎麼樣才能讓 postfix 不要退信給對方,不管是什麼狀況,都不要退信,即便是 user 寄錯人,我的 mail server 就默默地把信吃掉(就像某些新聞說的吃案一樣)吧,不過一直找不到該在哪裡設定,倒是被我找到另一個設定:
  • unknown_local_recipient_reject_code = 550(reject mail)
把它改成
  • unknown_local_recipient_reject_code = 450(try again later)
這樣,收件者有誤的信件就寄不進來啦!
修改二:
之前一直有一個錯誤訊息,就是說什麼沒辦法讀 clamav 的病毒資訊檔之類的:
  • Mar 19 00:00:09 spam amavis[63730]: (63730-06) (!!) ask_av (ClamAV-clamd) FAILED – unexpected result: /var/amavis/amavis-20070318T235004-63730/parts: lstat() failed. ERROR\n
查看了一下 FAQ 之後發現解答了,原來是因為 amavisd 的 user 跟 clamav 不同,而 clamav 沒有權限去讀 amavisd 的檔案,所以我在 /etc/group 裡修改設定:
  • vscan:*:110:clamav 
然後重新啟動 amavisd clamav-clamd postfix,就不會再有這個錯誤訊息了!
設定完之後手動更新 clamav 病毒碼,發現一個有趣的現象:
spam [/usr/local/etc] -root- [W0] freshclam
ClamAV update process started at Tue Sep 23 15:13:36 2008
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.93 Recommended version: 0.94
DON’T PANIC! Read http://www.clamav.net/support/faq
main.cvd is up to date (version: 48, sigs: 399264, f-level: 35, builder: sven)
Downloading daily-8308.cdiff [100%]
Downloading daily-8309.cdiff [100%]
Downloading daily-8310.cdiff [100%]
Downloading daily-8311.cdiff [100%]
Downloading daily-8312.cdiff [100%]
Downloading daily-8313.cdiff [100%]
Downloading daily-8314.cdiff [100%]
Downloading daily-8315.cdiff [100%]
daily.cld updated (version: 8315, sigs: 34180, f-level: 35, builder: ccordes)
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Current functionality level = 29, recommended = 35
DON’T PANIC! Read http://www.clamav.net/support/faq
Database updated (433444 signatures) from database.clamav.net (IP: 140.128.9.18)
Clamd successfully notified about the update.
文中那二段 waring 我只看懂第一段!真糟~又有新的問題產生了

2008-09-11

Apache 防止 DOS 攻擊

前一陣子公司的命脈網站糟到中國網友的攻擊,幸好有及時反應過來並且做了適當的處理,影響並不大,我猜是因為遇到了沒經驗的駭客,加上主機的負載沒辦法拉太大,所以整個攻擊行動也沒有被持績擴大,算是傻人有傻福吧!
在處理的過程中,找到了 apache 的套件,可以經由設定,把不正常的連線 IP 擋掉,雖然不是很實用,可以留著應應急,也許哪天真的用上。
http://www.zdziarski.com/projects/mod_evasive/
裡頭有針對 apache 1.3 與 2.0 版本的說明檔,以下就 2.0 的來說明
安裝方法:
  1.  apxs -i -a -c mod_evasive20.c
  2. 打了這行指令以後,它會把模組copy到指定的地方
  3. 接下來它會自動改httpd.conf的設定檔,加上LoadModule evasive20_module…的資料
  4. 在httpd.conf中加上以下的資料
  5. 我們必需把這個檔案的格式由dos改成linux
  6. 重新啟動apache
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
#DOSWhitelist 127.0.0.*
#DOSWhitelist 127.0.0.1
DOSEmailNotify aaa@aaa.com
</IfModule>
如果有人跟這台apache連線,超過了我們的限制
就會把這個host給block起來(block 10秒鐘)
並寫入資料到syslog中,然後寄信給管理者
原文出處:http://gisanfu.pixnet.net/blog/post/17150033

2008-09-08

自動轉址


常常都是要用的時候找不到,趁這次記起來!要用就有啦~
a.
<html><head>
<meta http-equiv=”Refresh”
content=”0;URL=http://your.address.url”>
</head></html>
b.
<html>
<body onload=
“window.open(‘http://your.address.url’,'_top’)”>
</body>
</html>