提高linux伺服器安全的方法?
雖然linux主機比windows主機安全和穩定,但對於新手來說linux操作系統還是比較繁瑣,很多安全設置不可能全部兼顧到。本文總結了幾條安全設置linux主機的方法,而且設置簡單,十分實用。
1、安裝和配置一個防火牆
一個配置適當的防火牆不僅是系統有效應對外部攻擊的第一道防線,也是最重要的一道防線。在新系統第一次連接上Internet之前,防火牆就應該被安裝並且配置好。防火牆配置成拒絕接收所有數據包,然後再打開允許接收的數據包,將有利於系統的安全。Linux為我們提供了一個非常優秀的防火牆工具,它就是netfilter/iptables。它完全是免費的,並且可以在一台低配置的老機器上很好地運行。防火牆的具體設置方法請參見iptables使用方法。
2、關閉無用的服務和埠
任何網路連接都是通過開放的應用埠來實現的。如果我們儘可能少地開放埠,就使網路攻擊變成無源之水,從而大大減少了攻擊者成功的機會。把Linux作為專用伺服器是個明智的舉措。例如,希望Linux成為的Web伺服器,可以取消系統內所有非必要的服務,只開啟必要服務。這樣做可以盡量減少後門,降低隱患,而且可以合理分配系統資源,提高整機性能。以下是幾個不常用的服務:
① fingerd(finger伺服器)報告指定用戶的個人信息,包括用戶名、真實姓名、shell、目錄和聯繫方式,它將使系統暴露在不受歡迎的情報收集活動下,應避免啟動此服務。
② R服務(rshd、rlogin、rwhod、rexec)提供各種級別的命令,它們可以在遠程主機上運行或與遠程主機交互,在封閉的網路環境中登錄而不再要求輸入用戶名和口令,相當方便。然而在公共伺服器上就會暴露問題,導致安全威脅。
3、刪除不用的軟體包
在進行系統規劃時,總的原則是將不需要的服務一律去掉。默認的Linux就是一個強大的系統,運行了很多的服務。但有許多服務是不需要的,很容易引起安全風險。這個文件就是/etc/xinetd.conf,它制定了/usr/sbin/xinetd將要監聽的服務,你可能只需要其中的一個:ftp,其它的類如telnet、shell、login、exec、talk、ntalk、imap、finger、auth等,除非你真的想用它,否則統統關閉。
4、不設置預設路由
在主機中,應該嚴格禁止設置預設路由,即default route。建議為每一個子網或網段設置一個路由,否則其它機器就可能通過一定方式訪問該主機。
5、口令管理
口令的長度一般不要少於8個字元,口令的組成應以無規則的大小寫字母、數字和符號相結合,嚴格避免用英語單詞或片語等設置口令,而且各用戶的口令應該養成定期更換的習慣。另外,口令的保護還涉及到對/etc/passwd和/etc/shadow文件的保護,必須做到只有系統管理員才能訪問這2個文件。安裝一個口令過濾工具加npasswd,能幫你檢查你的口令是否耐得住攻擊。如果你以前沒有安裝此類的工具,建議你現在馬上安裝。如果你是系統管理員,你的系統中又沒有安裝口令過濾工具,請你馬上檢查所有用戶的口令是否能被窮盡搜索到,即對你的/ect/passwd文件實施窮盡搜索攻擊。用單詞作密碼是根本架不住暴力攻擊的。黑客們經常用一些常用字來破解密碼。曾經有一位美國黑客表示,只要用「password」這個字,就可以打開全美多數的計算機。其它常用的單詞還有:account、ald、alpha、beta、computer、dead、demo、dollar、games、bod、hello、help、intro、kill、love、no、ok、okay、please、sex、secret、superuser、system、test、work、yes等。
密碼設置和原則:
a.足夠長,指頭只要多動一下為密碼加一位,就可以讓攻擊者的辛苦增加十倍;
b. 不要用完整的單詞,儘可能包括數字、標點符號和特殊字元等;
c.混用大小寫字元;
d.經常修改。
6、分區管理
一個潛在的攻擊,它首先就會嘗試緩衝區溢出。在過去的幾年中,以緩衝區溢出為類型的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩衝區溢出漏洞佔了遠程網路攻擊的絕大多數,這種攻擊可以輕易使得一個匿名的Internet用戶有機會獲得一台主機的部分或全部的控制權!。
為了防止此類攻擊,我們從安裝系統時就應該注意。如果用root分區記錄數據,如log文件,就可能因為拒絕服務產生大量日誌或垃圾郵件,從而導致系統崩潰。所以建議為/var開闢單獨的分區,用來存放日誌和郵件,以避免root分區被溢出。最好為特殊的應用程序單獨開一個分區,特別是可以產生大量日誌的程序,還建議為/home單獨分一個區,這樣他們就不能填滿/分區了,從而就避免了部分針對Linux分區溢出的惡意攻擊。
很多Linux桌面用戶往往是使用Windows、Linux雙系統。最好使用雙硬碟。方法如下:首先將主硬碟的數據線拆下,找一個10GB左右的硬碟掛在計算機上,將小硬碟設置為從盤,按照平常的操作安裝Linux伺服器版本,除了啟動的引導程序放在MBR外,其它沒有區別。安裝完成,調試出桌面後,關閉計算機。將小硬碟的數據線拆下,裝上原硬碟,並設定為主盤(這是為了原硬碟和小硬碟同時掛接在一個數據線上),然後安裝Windows軟體。將兩個硬碟都掛在數據線上,數據線是IDE 0介面,將原硬碟設定為主盤,小硬碟設定為從盤。如果要從原硬碟啟動,就在CMOS里將啟動的順序設定為「C、D、CDROM」,或者是「IDE0(HDD-0)」。這樣計算機啟動的時候,進入Windows界面。如果要從小硬碟啟動,就將啟動順序改為「D、C、CDROM」,或者是「IDE1(HDD-1)」,啟動之後,將進入Linux界面。平時兩個操作系統是互相不能夠訪問的。
7、防範網路嗅探:
嗅探器技術被廣泛應用於網路維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網路的各種信息,通過對這些數據的分析,網路管理員可以深入了解網路當前的運行狀況,以便找出網路中的漏洞。在網路安全日益被注意的今天.我們不但要正確使用嗅探器.還要合理防範嗅探器的危害.嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發現。對於一個安全性能要求很嚴格的企業,同時使用安全的拓撲結構、會話加密、使用靜態的ARP地址是有必要的。
8、完整的日誌管理
日誌文件時刻為你記錄著你的系統的運行情況。當黑客光臨時,也不能逃脫日誌的法眼。所以黑客往往在攻擊時修改日誌文件,來隱藏蹤跡。因此我們要限制對/var/log文件的訪問,禁止一般許可權的用戶去查看日誌文件。
另外要使用日誌伺服器。將客戶機的日誌信息保存副本是好主意,創建一台伺服器專門存放日誌文件,可以通過檢查日誌來發現問題。修改/etc/sysconfig/syslog文件加入接受遠程日誌記錄。
/etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m r 0"
還應該設定日誌遠程保存。修改/etc/syslog.conf文件加入日誌伺服器的設置,syslog將保存副本在日誌伺服器上。
/etc/syslog.conf
*.* @log_server_IP
可以使用彩色日誌過濾器。彩色日誌loco過濾器,目前版本是0.32。使用loco /var/log/messages | more可以顯示出彩色的日誌,明顯標記出root的位置和日誌中異常的命令。這樣可以減少分析日誌時人為遺漏。還要進行日誌的定期檢查。Red Hat Linux中提供了logwatch工具,定期自動檢查日誌並發送郵件到管理員信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root參數後增加管理員的郵件地址。Logwatch會定期檢查日誌,過濾有關使用root、sudo、telnet、ftp登錄等信息,協助管理員分析日常安全。完整的日誌管理要包括網路數據的正確性、有效性、合法性。對日誌文件的分析還可以預防入侵。例如、某一個用戶幾小時內的20次的註冊失敗記錄,很可能是入侵者正在嘗試該用戶的口令。
9、終止正進行的攻擊
假如你在檢查日誌文件時,發現了一個用戶從你未知的主機登錄,而且你確定此用戶在這台主機上沒有賬號,此時你可能正被攻擊。首先你要馬上鎖住此賬號(在口令文件或shadow文件中,此用戶的口令前加一個Ib或其他的字元)。若攻擊者已經連接到系統,你應馬上斷開主機與網路的物理連接。如有可能,你還要進一步查看此用戶的歷史記錄,查看其他用戶是否也被假冒,攻擊音是否擁有根許可權。殺掉此用戶的所有進程並把此主機的ip地址掩碼加到文件hosts.deny中。
10、使用安全工具軟體:
Linux已經有一些工具可以保障伺服器的安全。如bastille linux和Selinux。 bastille linux對於不熟悉 linux 安全設定的使用者來說,是一套相當方便的軟體,bastille linux 目的是希望在已經存在的 linux 系統上,建構出一個安全性的環境。增強安全性的Linux(SELinux)是美國安全部的一個研發項目,它的目的在於增強開發代碼的Linux內核,以提供更強的保護措施,防止一些關於安全方面的應用程序走彎路,減輕惡意軟體帶來的災難。普通的Linux系統的安全性是依賴內核的,這個依賴是通過setuid/setgid產生的。在傳統的安全機制下,暴露了一些應用授權問題、配置問題或進程運行造成整個系統的安全問題。這些問題在現在的操作系統中都存在,這是由於他們的複雜性和與其它程序的互用性造成的。SELinux只單單依賴於系統的內核和安全配置政策。一旦你正確配置了系統,不正常的應用程序配置或錯誤將只返回錯誤給用戶的程序和它的系統後台程序。其它用戶程序的安全性和他們的後台程序仍然可以正常運行,並保持著它們的安全系統結構。用簡單一點的話說就是:沒有任何的程序配置錯誤可以造成整個系統的崩潰。安裝SELinux SELinux的內核、工具、程序/工具包,還有文檔都可以到增強安全性的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發行版本:
對於伺服器使用的Linux版本,既不使用最新的發行版本,也不選擇太老的版本。應當使用比較成熟的版本:前一個產品的最後發行版本如RHEL 3.0等。畢竟對於伺服器來說安全穩定是第一的。
13、部署Linux防範病毒軟體
Linux操作系統一直被認為是Windows系統的勁敵,因為它不僅安全、穩定、成本低,而且很少發現有病毒傳播。但是,隨著越來越多的伺服器、工作站和個人電腦使用Linux軟體,電腦病毒製造者也開始攻擊這一系統。對於Linux系統無論是伺服器,還是工作站的安全性和許可權控制都是比較強大的,這主要得力於其優秀的技術設計,不僅使它的作業系統難以宕機,而且也使其難以被濫用。Unix經過20多年的發展和完善,已經變得非常堅固,而Linux基本上繼承了它的優點。在Linux里,如果不是超級用戶,那麼惡意感染系統文件的程序將很難得逞。速客一號(Slammer)、衝擊波(Blast)、霸王蟲(Sobig)、 米蟲(Mimail)、勞拉(Win32.Xorala)病毒等惡性程序雖然不會損壞Linux伺服器,但是卻會傳播給訪問它的Windows系統平台的計算機。
經過我們精心地部署linux伺服器的安全配置,你就可以擁有一個安全的linux伺服器。快運用以上所教的幾種方法來提高你的linux伺服器吧!
推薦閱讀:
※行雲管家怎麼樣?
※QQ 相冊後台存儲架構重構與跨 IDC 容災實踐
※讓sonar帶著你的C++玩轉devops
※運維體系中建立反饋機制的重要性