目前,許多中小用戶因業務發展,不斷更新或升級網絡,從而造成自身用戶環境差異較大,整個網絡系統平臺參差不齊,在服務器端大多使用Linux和Unix的,PC端使用Windows 9X/2000/XP。所以在企業應用中往往是Linux/Unix和Windows操作系統共存形成異構網絡。中小企業由于缺少經驗豐富的Linux網絡管理員和安全產品采購資金,所以對于網絡安全經常是頭痛醫頭、腳痛醫腳,缺乏缺乏全面的考慮。
這里筆者把中小企業的安全分為四種來提出解決方案。服務器安全、網絡設備的安全、接入互聯網的安全和內部網絡的安全。
一、服務器安全:
1. 關閉無用的端口
任何網絡連接都是通過開放的應用端口來實現的。如果我們盡可能少地開放端口,就使網絡攻擊變成無源之水,從而大大減少了攻擊者成功的機會。
首先檢查你的inetd.conf文件。inetd在某些端口上守侯,準備為你提供必要的服務。如果某人開發出一個特殊的inetd守護程序,這里就存在一個安全隱患。你應當在inetd.conf文件中注釋掉那些永不會用到的服務(如:echo、gopher、rsh、rlogin、rexec、ntalk、finger等)。注釋除非絕對需要,你一定要注釋掉rsh、rlogin和rexec,而telnet建議你使用更為安全的ssh來代替,然后殺掉lnetd進程。這樣inetd不再監控你機器上的守護程序,從而杜絕有人利用它來竊取你的應用端口。你最好是下載一個端口掃描程序掃描你的系統,如果發現有你不知道的開放端口,馬上找到正使用它的進程,從而判斷是否關閉它們。
2. 刪除不用的軟件包
在進行系統規劃時,總的原則是將不需要的服務一律去掉。默認的Linux就是一個強大的系統,運行了很多的服務。但有許多服務是不需要的,很容易引起安全風險。這個文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd將要監聽的服務,你可能只需要其中的兩個:telnet和ftp,其它的類如shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等,除非你真的想用它,否則統統關閉。
3. 不設置缺省路由
在主機中,應該嚴格禁止設置缺省路由,即default route。建議為每一個子網或網段設置一個路由,否則其它機器就可能通過一定方式訪問該主機
4. 口令管理
口令的長度一般不要少于8個字符,口令的組成應以無規則的大小寫字母、數字和符號相結合,嚴格避免用英語單詞或詞組等設置口令,而且各用戶的口令應該養成定期更換的習慣。另外,口令的保護還涉及到對/etc/passwd和/etc/shadow文件的保護,必須做到只有系統管理員才能訪問這2個文件。安裝一個口令過濾工具加npasswd,能幫你檢查你的口令是否耐得住攻擊。如果你以前沒有安裝此類的工具,建議你現在馬上安裝。如果你是系統管理員,你的系統中又沒有安裝口令過濾工具,請你馬上檢查所有用戶的口令是否能被窮盡搜索到,即對你的/ect/passwd文件實施窮盡搜索攻擊。
5. 分區管理
一個潛在的攻擊,它首先就會嘗試緩沖區溢出。在過去的幾年中,以緩沖區溢出為類型的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩沖區溢出漏洞占了遠程網絡攻擊的絕大多數,這種攻擊可以輕易使得一個匿名的Internet用戶有機會獲得一臺主機的部分或全部的控制權!
為了防止此類攻擊,我們從安裝系統時就應該注意。如果用root分區記錄數據,如log文件,就可能因為拒絕服務產生大量日志或垃圾郵件,從而導致系統崩潰。所以建議為/var開辟單獨的分區,用來存放日志和郵件,以避免root分區被溢出。最好為特殊的應用程序單獨開一個分區,特別是可以產生大量日志的程序,還建議為/home單獨分一個區,這樣他們就不能填滿/分區了,從而就避免了部分針對Linux分區溢出的惡意攻擊。