顯示具有 網管 標籤的文章。 顯示所有文章
顯示具有 網管 標籤的文章。 顯示所有文章

2008年1月8日 星期二

[更新][網管]搬進 DMZ 、擋掉百度搜尋、擋掉搜狗搜尋

這兩天提供 web 服務的主機狂當, CPU 經常跑到 100% 不回應,流量也不正常,於是終於做了一件早就該做的事:把這部主機搬進 DMZ 。 :P

另外在 access_log 裡看到大量的百度機器人和搜狗機器人搜尋紀錄,以前原本不太在意這回事兒,但既然主機有點流量問題,還是擋一下好了。參考阿駕的擋掉百度 (來自 GSLin 的這裡) 說明,加入了下面的設定:

SetEnvIf User-Agent ^Baidu baidu
Deny from env=baidu

SetEnvIf User-Agent ^Sogou sogou
Deny from env=sogou

huihui 說要從防火牆把整個百度擋掉,有人能幫忙提供 IP 列表嗎?

2007年11月16日 星期五

[網管]vlan 與 802.1Q

huihui 說要研究這個......

先把看懂的記下來:

2007年10月25日 星期四

[postfix procmail spamassassin]搞定垃圾郵件過濾最終解決方案

搞了一個禮拜的東西,記一下,做個紀念!

遇到的問題:

  1. amavisd-new 在當時無法從套件庫安裝。 解決方法:考慮大量相依性問題 ( 可能還有缺少的很多套件 ) ,放棄使用。
  2. procmail 必需能搭配郵件目錄使用 Maildir/ 格式,而非 mbox 檔案格式。 解決方法:見前一篇「 [postfix procmail Maildir]procmail 與 Maildir 信箱格式的搭配」。
  3. 有人很少 ( 或根本 ) 不收信,家目錄的 quota 用完後,無法收信會讓 spamd / spamc 的執行環境錯亂無法過濾垃圾郵件。 本篇目的就是解決這個問題。

使用 procmail 替代直接遞送 mail box ,是造成上述問題的原因。如果是由 postfix 遞送郵件到收件人信箱,無法遞送時 ( 如我遇到的收件者信箱 quota exceeded 問題 ) 會由 postfix 退信。但是如果是由 promail 遞送到收件者信箱, postfix 把信交給 procmail 時,就算完工了,而 procmail 則是無法退信 ( 註1 ) ,於是送信到預設的 mbox 信箱去了。

我決定採用 Postfix After-Queue Content Filter 裡的 Simple content filter ,讓 procmail 做為 mail filter ( 註2 ) ,將郵件 pipe 給 spamc 過濾加標籤,再 pipe 給 sendmail ,讓郵件重回 postfix 的 mail queue ,讓 postfix 做最後的遞送到收件人信箱。如此,就可以解決收件人信箱 quota exceeded 的問題了。

以下是各項設定:

2007年10月23日 星期二

[spamassassin]自己動手安裝spamc/spamd

上週升級 mail 主機的痛苦之一,是套件庫裡雖有 spamassassin ,但是少了 spamc / spamd 。學校的 mail 主機,真正在用的人雖然不多,但是垃圾著實不少,還是得用 spamc / spamd 來得安全些。

既然套件庫沒有,那就自己抓 source 來安裝吧。

2007年10月18日 星期四

[poppassd]使用 MD5 密碼

poppassd 透過 pam 來改密碼,預設是使用 DES 編碼,要改用比較安全的 MD5 ,要修改 /etc/pam.d/poppassd

#%PAM-1.0
auth required pam_pwdb.so shadow nullok
account required pam_pwdb.so
password required pam_cracklib.so retry=3
password required pam_pwdb.so md5 use_authtok nullok

在第四行的 pam_pwdb.so 加上 md5 參數就行了。

[poppassd]500 Old password is incorrect

以前用 SquirrelMail 時,有一個 change_password plugin 很好用,我是用 poppassd backend ,可以讓使用者直接在 webmail 裡修改自己帳號的密碼。

後來因故放棄 SquirrelMail 後,改用 V-webmail ,界面什麼都不錯,中文問題也修得差不多了,就是沒有線上改密碼的功能。於是,動手把 SquirrelMail 的 change_password plugin 裡的 poppassd beckend 給移植過來用,效果蠻不錯的。

V-webmail change password

最近將 Mail 主機升級 ( 其實是重新安裝 ) 成 Mandriva 2008.0 Free ,結果慘劇發生,完全相同的程式碼,不管輸入的密碼是多麼的正確,一律給錯:

500 Old password is incorrect

好不容易終於解決了。因為是 poppassd 的問題,所以,解決這個問題後, SquirrelMail 的 change_password plugin 不能換密碼的問題也可以一併解決。

2007年10月4日 星期四

[ssh]Server refused our key

為了讓努力不懈的大陸網友能有繼續努力永不休止的機會, Server 的 ssh 全面使用 ssh-key 認證,密碼登入沒有了。

不過,改用過程中發生一件怪事,我的帳號沒有問題,可以用 ssh-key 登入 ssh console / sftp ,但是同事的帳號卻發生 "Server refused our key" 的訊息拒絕連線。

經過一番檢查,原來是 ~/.ssh/authorized_keys 的權限錯了。

2007年10月3日 星期三

[apache]虛擬主機與SSL憑證

純筆記!

IP-based Virtual host 可以各自擁有獨立的 SSL 憑證, Name-based Virtual host 則只能共用一個 SSL 憑證。

原因: SSL 為比 http 更底層的協定, Name-based Virtual host 是在 http 層才能分辨,而 SSL 憑證早在這之前就載入了。

若 Virtual host 要同時支援 http 與 https 協定,要當成兩個 Virtual host 設定,分別監聽 80 port 與 443 port ,但是把網址與文件目錄設為相同。至於 access log 與 error log 最好是分開以方便未來利用。

2007年9月26日 星期三

[tool]好用的lsof

Daniel Miessler 的 dmiessler.com 寫了一篇好文章介紹超好用的網管指令 lsof ,以前都不知道,真是受教了。

先記下連結: http://dmiessler.com/study/lsof/ ,找時間要全文翻過來放著用。

2006年5月26日 星期五

修改 amavisd-new 的設定

目前學校的郵件主機是使用 amavisd-new 搭配 spamassassin 做 spamfilter 。除了 spamassassin 原本的過濾規則之外, amavisd-new 的設定檔裡面也有一些自訂的過濾規則。其中,過濾附件檔名的規則裡,預設把常見的壓縮檔格式全擋掉了。於是寄一個 .rar 的檔案,就收到系統如下的回信:

BANNED CONTENTS ALERT

Our content checker found
banned name: multipart/mixed | application/x-msdownload,.rar,104.rar
in email presumably from you (<寄件者>),
to the following recipient:
-> (收件者)

要開放附件可以寄壓縮檔,要修改 /etc/amavisd/amavisd.conf 裡面的兩項設定:

2006年5月16日 星期二

停用電子郵件帳戶

一位同仁因為不堪垃圾郵件困擾,要求關閉他的電子郵件帳號。這裡紀錄一下做法。

最簡單的方法,讓帳戶過期:

usermod -e 2006-01-01 user

這裡是用 usermod 命令,設定帳戶在 2006-01-01 (過去的某一個日期) 過期,這樣,過期就立刻生效,帳戶立刻無法使用。

順便記一下,另一個無效的方法:

passwd -l user

這是在 /etc/passwd 裡面加註帳號鎖定。這只會讓帳號無法經由 telnet / ssh 服務時無法登入。而我們的電子郵件帳號原本就設定成無法登入系統,所以此法無效。

2005年12月23日 星期五

好用的 awk 命令

使用 awk 命令做 Linux 上的帳號批次管理,我已經用很久了。真的很好用!

剛好今天應教學組長的要求,重設了一個班學生的密碼,順便記下來吧!

以下是我下的指令:

awk -F: '/:207-/
{
cmd="echo newpassword" | passwd --stdin "$1;
print cmd;
system(cmd)
}'
/etc/passwd

這個指令的意思是,從 /etc/passwd 系統帳號檔案裡面抓出 207 班的學生帳號資料,並且把新密碼逐一設定給取出的帳號。