目前,任何一套系統,只要是丟到防火牆外,或是丟到 DMZ,百分之百一定會不斷地遭受到「試探性」的攻擊,這些攻擊絕大多數來自所謂的 script-kids,只要你做好一些最基本的安全性防護,以及隨時在相關安全性網站出現安全性警告和報告時,能在第一時間作更新的動作,通常是沒什麼問題的。但是,身為系統管理者,不能這樣就可以自認高枕無憂,一定要把自己訓練成安全方面的偏執狂,有事沒就要盯著系統當中,除了系統本身的正常運行之外的其它不正常運作,尤其一旦你在系統中安裝而且甚至運行了某些網路伺服應用時,更是要繃緊神經,注意系統中任何不正常的風吹草動。因為這堆攻擊中可能隱藏著一位高手,只要出現一次,你的系統很可能就因此被綁架了。
所以,如果你打算在你自己的機器上安裝 Cygwin 加上 SSHd 時,你就要更小心觀察是否發生密碼被破解,或是有人利用 OpenSSH 的 bug,發動零時差攻擊。這時候會突然發現,Cygwin 預設並沒有安裝一套好的 log 系統。而且,當你查詢安裝套件清單時,應該只能找到一套相當強大的 log 系統 ─ syslog-ng。不過,它太強大了,強大到要受過訓練的有相當系統管理經驗的管理人員才能確實掌握,一般的系統管理者安裝它根本是殺雞用牛刀,也很難上手。那麼難道在 Cygwin 上沒有我們一般在 Unix/Linux 上常見的 Syslogd 嗎?其實是有的,只是它和一些網路工具一起被包在一個套件中:net/inetutils 當中,而 Cygwin 預設是不會自行安裝這個套件的,你必須手動把它加上去。
說到 Inetutils,事實上它是 Free Software Foundation (FSF,自由軟體基金會,由 Richard Stallman 所立,專門發表 GNU 專案的軟體)所發表的 open source 工具軟體,換句話說,像絕大部份 Linux 套件上所使用的 syslogd 應該也是這套工具。但是值得擔憂的是,GNU 的目標是實作一套好用的 Unix-like 作業系統,所以 Inetutils 不止包含了 syslog 和 syslogd,還包括 ftp, ftpd, rcp, rexec, rlogin, rlogind, rsh, rshd, talk, talkd, telnet, telnetd, tftp, tftpd, uucpd 等工具,看到這個清單,恐怕對 Unix 安全有點認識的朋友大概都會嚇出一身冷汗,很不幸的,這是一套全有全無的選擇,所以請安裝的朋友隨時注意 FSF 有關這個套件的更新消息,一旦出現安全上的疑慮時立刻更新。再來就是把不用的 TCP port 關閉(事實上 XP SP2 的防火牆就會自動幫你作這件事),甚至把你裝 Cygwin 的這台機器丟到防火牆內,最多只能放在 DMZ 中(以防當第一關被攻破時,還有第二關防護);如果還是不放心的話,那就只好請改用更強大的 syslog-ng。
即使你已經裝上 net/inetutils,syslogd 仍然不會自動以 Windows 的「服務」方式在開機時自動啟動,你仍然必須再加上一些步驟,使用 cygrunsrv 把它變成 Windows 的 service。不過,Cygwin 已經幫你寫了一個自動 script,執行它就會自動幫你完成這項工作。請按照下列指示輸入,整個過程只會遇到一個問題,也就是詢問你是否要把 syslogd 安裝成 Windows 的 service。另一個要注意的地方是,整個過程必須有系統管理員的權限,所以要使用系統管理的帳號來安裝:
yourpath$ syslogd-config
Creating default /etc/syslog.conf fileWarning: The following function requires administrator privileges!
Do you want to install syslogd as service?
(Say "no" if it's already installed as service) (yes/no) yesThe service has been installed under LocalSystem account.
To start the service, call `net start syslogd' or `cygrunsrv -S syslogd'.Check /etc/syslog.conf first, if it suits your needs.
Keep in mind that any file mentioned in /etc/syslog.conf
must exist and be readable and writable for the SYSTEM account.
Oh and, use tabs, not spaces in /etc/syslog.conf...Configuration finished. Have fun!
yourpath$
安裝的過程中的說明文字,是告訴你,你的 syslogd 的設定檔是 /etc/syslog.conf,請你在安裝好的時候去看一下有沒有需要修改的地方。一般來說,如果你只是用 Cygwin 安裝 SSHd,是用不著修改這個設定檔的內容。
剛安裝好的時候,syslogd 還沒啟動,你不必重新啟動電腦,只需採用兩種方法之一啟動它。
第一種是使用 Windows 的「控制台」/「系統管理工具」/「服務」對話方塊,找到其中的「CYGWIN syslogd」項目,啟動它。
另一種方式是使用 cygrunsrv:
yourpath$ cygrunsrv --start syslogd
yourpath$
這樣就會立即啟動 syslogd。之後凡是你想要查看系統 log,可以用 cat /var/log/message 查看。如果想測試一下,你可以從遠端用 ssh 登入機器看看 syslogd 有沒有正常記錄下來。