Linux ADSL接入用戶多是從Windows“移民”過來,對Linux環境和操作即新奇又陌生,Linux有強大的網絡功能,但是如果不掌握安全知識就如同三歲兒童手持黃金步行於鬧市,不但不能發揮網絡功能,而且會有安全危險。下面介紹一些適合Linux ADSL接入用戶的安全策略。
1. 關閉無用的端口
任何網絡連接都是通過開放的應用端口來實現的。如果我們盡可能少地開放端口,就使網絡攻擊變成無源之水,從而大大減少了攻擊者成功的機會。
首先檢查你的inetd.conf文件。inetd在某些端口上守侯,准備為你提供必要的服務。如果某人開發出一個特殊的inetd守護程序,這裡就存在一個安全隱患。你應當在inetd.conf文件中注釋掉那些永不會用到的服務(如:echo、gopher、rsh、rlogin、rexec、ntalk、finger等)。
注釋除非絕對需要,你一定要注釋掉rsh、rlogin和rexec,而telnet建議你使用更為安全的ssh來代替,然後殺掉lnetd進程。這樣inetd不再監控你機器上的守護程序,從而杜絕有人利用它來竊取你的應用端口。你最好是下載一個端口掃描程序掃描你的系統,如果發現有你不知道的開放端口,馬上找到正使用它的進程,從而判斷是否關閉它們。
2. 安裝和配置一個防火牆
一個配置適當的防火牆不僅是系統有效應對外部攻擊的第一道防線,也是最重要的一道防線。在新系統第一次連接上Internet之前,防火牆就應該被安裝並且配置好。防火牆配置成拒絕接收所有數據包,然後再打開允許接收的數據包,將有利於系統的安全。Linux為我們提供了一個非常優秀的防火牆工具,它就是netfilter/iptables(http://www.netfilter.org/)。
防火牆的具體設置方法請查看:教教你用Linux 防火牆保護你的ADSL連接
3. 刪除不用的軟件包
在進行系統規劃時,總的原則是將不需要的服務一律去掉。默認的Linux就是一個強大的系統,運行了很多的服務。但有許多服務是不需要的,很容易引起安全風險。這個文件就是/etc/inetd.conf,它制定了/usr/sbin/inetd將要監聽的服務,你可能只需要其中的兩個:telnet和ftp,其它的類如shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等,除非你真的想用它,否則統統關閉。
4. 不設置缺省路由
在主機中,應該嚴格禁止設置缺省路由,即default route。建議為每一個子網或網段設置一個路由,否則其它機器就可能通過一定方式訪問該主機。
5. 口令管理
口令的長度一般不要少於8個字符,口令的組成應以無規則的大小寫字母、數字和符號相結合,嚴格避免用英語單詞或詞組等設置口令,而且各用戶的口令應該養成定期更換的習慣。另外,口令的保護還涉及到對/etc/passwd和/etc/shadow文件的保護,必須做到只有系統管理員才能訪問這2個文件。
安裝一個口令過濾工具加npasswd,能幫你檢查你的口令是否耐得住攻擊。如果你以前沒有安裝此類的工具,建議你現在馬上安裝。如果你是系統管理員,你的系統中又沒有安裝口令過濾工具,請你馬上檢查所有用戶的口令是否能被窮盡搜索到,即對你的/ect/passwd文件實施窮盡搜索攻擊
6. 分區管理
一個潛在的攻擊,它首先就會嘗試緩沖區溢出。在過去的幾年中,以緩沖區溢出為類型的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩沖區溢出漏洞占了遠程網絡攻擊的絕大多數,這種攻擊可以輕易使得一個匿名的Internet用戶有機會獲得一台主機的部分或全部的控制權!
為了防止此類攻擊,我們從安裝系統時就應該注意。如果用root分區記錄數據,如log文件,就可能因為拒絕服務產生大量日志或垃圾郵件,從而導致系統崩潰。所以建議為/var開辟單獨的分區,用來存放日志和郵件,以避免root分區被溢出。最好為特殊的應用程序單獨開一個分區,特別是可以產生大量日志的程序,還建議為/home單獨分一個區,這樣他們就不能填滿/分區了,從而就避免了部分針對Linux分區溢出的惡意攻擊。
7. 防范網絡嗅探
嗅探器技術被廣泛應用於網絡維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網絡的各種信息,通過對這些數據的分析,網絡管理員可以深入了解網絡當前的運行狀況,以便找出網絡中的漏洞。在網絡安全日益被注意的今天.我們不但要正確使用嗅探器.還要合理防范嗅探器的危害.嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發現。對於一個安全性能要求很嚴格的企業,同時使用安全的拓撲結構、會話加密、使用靜態的ARP地址是有必要的。
8. 完整的日志管理
日志文件時刻為你記錄著你的系統的運行情況。當黑客光臨時,也不能逃脫日志的法眼。所以黑客往往在攻擊時修改日志文件,來隱藏蹤跡。因此我們要限制對/var/log文件的訪問,禁止一般權限的用戶去查看日志文件。
另外,我們還可以安裝一個icmp/tcp日志管理程序,如iplogger,來觀察那些可疑的多次的連接嘗試(加icmp flood3或一些類似的情況)。還要小心一些來自不明主機的登錄。 完整的日志管理要包括網絡數據的正確性、有效性、合法性。對日志文件的分析還可以預防入侵。例如、某一個用戶幾小時內的20次的注冊失敗記錄,很可能是入侵者正在嘗試該用戶的口令。
日志配置文件的典型格式是:警告類型.危險程度 日志文件名。如果在/etc/syslog.conf文件中包含有auth.* /var/log/secure和authpriv.* /var/log/secure。一記錄到文件/var/log/secure文件中。這些文件可以日後查。如果希望一發生這樣的敏感事件系統就能夠及時通知你,可以將日志的輸出文件改為控制台,即:
auth.* /dev/console
這樣,只要有人試圖登錄系統或者切換用戶,你立刻都可以在控制台上得到警告。完成日志文件配置後,需要執行下面命令來使配置生效:
kill -HUP $(cat /var/run/syslogd.pid)
另外對於桌面用戶系統的日志查看工具非常直觀。工作界面見下圖
系統日志工作界面(點擊看大圖)
9. 終止正進行的攻擊
假如你在檢查日志文件時,發現了一個用戶從你未知的主機登錄,而且你確定此用戶在這台主機上沒有賬號,此時你可能正被攻擊。首先你要馬上鎖住此賬號(在口令文件或shadow文件中,此用戶的口令前加一個Ib或其他的字符)。若攻擊者已經連接到系統,你應馬上斷開主機與網絡的物理連接。如有可能,你還要進一步查看此用戶的歷史記錄,查看其他用戶是否也被假冒,攻擊音是否擁有根權限。殺掉此用戶的所有進程並把此主機的ip地址掩碼加到文件hosts.deny中。
10. 使用安全工具軟件:
Linux已經有一些工具可以保障服務器的安全。如bastille linux。對於不熟悉 linux 安全設定的使用者來說,是一套相當方便的軟件,bastille linux 目的是希望在已經存在的 linux 系統上,建構出一個安全性的環境
11. 使用保留IP地址
維護網絡安全性最簡單的方法是保證網絡中的主機不同外界接觸。最基本的方法是與公共網絡隔離。然而,這種通過隔離達到的安全性策略在許多情況下是不能接受的。這時,使用保留IP地址是一種簡單可行的方法,它可以讓用戶訪問Internet同時保證一定的安全性。
RFC 1918規定了能夠用於本地 TCP/IP網絡使用的IP地址范圍,這些IP地址不會在Internet上路由,因此不必注冊這些地址。通過在該范圍分配IP地址,可以有效地將網絡流量限制在本地網絡內。這是一種拒絕外部計算機訪問而允許內部計算機互聯的快速有效的方法。
保留IP地址范圍:
---- 10.0.0.0 - 10.255.255.255
---- 172.16.0.0 - 172.31.255.255
---- 192.168.0.0 - 192.168.255.255
來自保留IP地址的網絡交通不會經過Internet路由器,因此被賦予保留IP地址的任何計算機不能從外部網絡訪問。但是,這種方法同時也不允許用戶訪問外部網絡。IP偽裝可以解決這一問題。
12. 選擇發行版本:
對於使用的Linux版本,既不使用最新的發行版本,也不選擇太老的版本。應當使用比較成熟的版本:前一個產品的最後發行版本如RHEL 4.2等。畢竟來說安全穩定是第一的。
13. 關注後門程序和病毒
可執行文件型病毒、蠕蟲(worm)病毒、腳本病毒的防范通過安裝GPL查殺病毒軟件基本可以防范。桌面用戶可以選擇tkantivir(http://www.sebastian-geiges.de/tkantivir/ )是用Tcl/Tk寫的,可以運行在任何X-Windows環境下面,比如KDE或Gnome等。
後門程序是潛伏在系統中的竊賊,其危害程序絕對不在病毒之下。在Linux中,後門程序可以非常隱蔽,清理也很困難,所以最簡便的防備方法是不運行任何來路不明的應用程序。但是這些還不夠,還需要一個清理程序Chkrootkit(http://www.chkrootkit.org/ )。Chkrootkit可以檢測系統的日志和文件,查看是否有惡意程序侵入系統,並且尋找關聯到不同惡意程序的信號。
最新版本的Chkrootkit0.45可以檢測出sniffers、Trojans、worms、rootkit等59種。
14. 使用ssh工具替代FTP和Telnet
我們通常使用的網絡傳輸程序FTP和Telnet等在本質上都是不安全的,因為它們在網絡上用明文傳送口令和數據,黑客利用嗅探器非常容易截獲這些口令和數據。SSH的英文全稱是Secure SHell。通過使用SSH,用戶可以把所有傳輸的數據進行加密,這樣即使網絡中的黑客能夠劫持用戶所傳輸的數據,如果不能解密的話,也不能對數據傳輸構成真正的威脅。
另外,傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP提供一個安全的“傳輸通道”。在不安全的網路通信環境中,它提供了很強的驗證(authentication)機制與非常安全的通信環境。SSH(Secure Shell)最初由芬蘭的一家公司開發,但由於受版權和加密算法的限制,很多人轉而使用免費的替代軟件OpenSSH。命令行使用OPENSSH比較麻煩。
這裡介紹 gFTP和OPENSSH整合在一齊,提供一個圖形化加密傳輸方案。gFTP和Windows下的CuteFtp一樣使用非常簡單,而且幾乎所有的Linux發行版本都帶有gFTP,不需要安裝就可以使用。gFTP工作界面見下圖。
安全的傳輸工具gFTP工作界面(點擊看大圖)
15. 勤打補丁
你應該經常到你所安裝的系統發行商的主頁上去找最新的補丁。操作系統是計算機系統靈魂,維護著系統的底層,對內存、進程等子系統進行管理和調度。如果操作系統本身出現了漏洞,其影響將會是致命的。操作系統的內核,對於網絡安全是至關重要的。
目前,內核的維護主要分兩種模式:對於私有操作系統,如Windows/Solaris等,由於個人用戶不能直接接觸其源代碼,其代碼由公司內部開發人員維護,其安全性由同樣的團隊保證,內核的修正與其他應用程序一樣,以patch/SP包的方式發布。對於Linux這樣的開放式系統,是一種開放的結構。應該說,開放的模式是雙刃劍。
Linux運行的軟件主要包括:Samba,Ftp,Ssh,Mysql,Php,Firefox等,這些軟件,大都是開源軟件,而且都在不停升級,穩定版和測試版交替出現。在www.samba.org和 www.apache.org 上,最新的ChangeLog中都寫著:bug fix, security bug fix的字樣。所以要經常的關注相關網站的bug fix和升級,及時升級或添加補