1.安裝和配置一個防火墻
創(chuàng)新互聯(lián)專注于河源網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供河源營銷型網(wǎng)站建設(shè),河源網(wǎng)站制作、河源網(wǎng)頁設(shè)計、河源網(wǎng)站官網(wǎng)定制、小程序制作服務(wù),打造河源網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供河源網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
一個配置適當?shù)姆阑饓Σ粌H是系統(tǒng)有效應(yīng)對外部攻擊的第一道防線,也是最重要的一道防線。在新系統(tǒng)第一次連接上Internet之前,防火墻就應(yīng)該被安裝并且配置好。防火墻配置成拒絕接收所有數(shù)據(jù)包,然后再打開允許接收的數(shù)據(jù)包,將有利于系統(tǒng)的安全。Linux為我們提供了一個非常優(yōu)秀的防火墻工具,它就是netfilter/iptables。它完全是免費的,并且可以在一臺低配置的老機器上很好地運行。防火墻的具體設(shè)置方法請參見iptables使用方法。
2、關(guān)閉無用的服務(wù)和端口
任何網(wǎng)絡(luò)連接都是通過開放的應(yīng)用端口來實現(xiàn)的。如果我們盡可能少地開放端口,就使網(wǎng)絡(luò)攻擊變成無源之水,從而大大減少了攻擊者成功的機會。把Linux作為專用服務(wù)器是個明智的舉措。例如,希望Linux成為的Web服務(wù)器,可以取消系統(tǒng)內(nèi)所有非必要的服務(wù),只開啟必要服務(wù)。這樣做可以盡量減少后門,降低隱患,而且可以合理分配系統(tǒng)資源,提高整機性能。以下是幾個不常用的服務(wù):
① fingerd(finger服務(wù)器)報告指定用戶的個人信息,包括用戶名、真實姓名、shell、目錄和聯(lián)系方式,它將使系統(tǒng)暴露在不受歡迎的情報收集活動下,應(yīng)避免啟動此服務(wù)。
② R服務(wù)(rshd、rlogin、rwhod、rexec)提供各種級別的命令,它們可以在遠程主機上運行或與遠程主機交互,在封閉的網(wǎng)絡(luò)環(huán)境中登錄而不再要求輸入用戶名和口令,相當方便。然而在公共服務(wù)器上就會暴露問題,導致安全威脅。
3、刪除不用的軟件包
在進行系統(tǒng)規(guī)劃時,總的原則是將不需要的服務(wù)一律去掉。默認的Linux就是一個強大的系統(tǒng),運行了很多漏碼的服務(wù)。但有許多服務(wù)是不需要的,很容易引起安全風險。這個文件就是/etc/xinetd.conf,它制定了/usr/sbin/xinetd將要監(jiān)聽的服務(wù),你可能只需要其中的一個:ftp,其它的類如telnet、shell、login、exec、talk、ntalk、imap、finger、auth等,除非你真的想用它,否則統(tǒng)統(tǒng)關(guān)閉。
4、不設(shè)置缺省路由
在主機中,應(yīng)該嚴格禁止設(shè)置缺省路由,即default route。建議為每一個子網(wǎng)或網(wǎng)段設(shè)置一個路由,否則其它機器就可能通過一定方式訪問該主機?;比?/p>
5、口令管理
口令的長度一般不要少于8個字符,口令的組成應(yīng)以無規(guī)則的大小寫字母、數(shù)字和符號相結(jié)合,嚴格避免用英語單詞或詞組等設(shè)置口令,而且各用戶的口令應(yīng)該養(yǎng)成定期更換的習慣。另外,口令的保護還涉及到對/etc/passwd和/etc/shadow文件的保護,必須做到只有系統(tǒng)管理員才能訪問這2個文件。安裝一個口令過濾工具加npasswd,能幫你檢查你的口令是否耐得住攻擊。如果你以前沒有安裝此類的工具,建議你現(xiàn)在馬上安裝。如果你是系統(tǒng)管理員,你的系統(tǒng)中又沒有安裝口令過濾工具,請你馬上檢查所有用戶的口令是否能被窮返明哪盡搜索到,即對你的/ect/passwd文件實施窮盡搜索攻擊。用單詞作密碼是根本架不住暴力攻擊的。黑客們經(jīng)常用一些常用字來破解密碼。曾經(jīng)有一位美國黑客表示,只要用“password”這個字,就可以打開全美多數(shù)的計算機。其它常用的單詞還有: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等。
密碼設(shè)置和原則:
a.足夠長,指頭只要多動一下為密碼加一位,就可以讓攻擊者的辛苦增加十倍;
b. 不要用完整的單詞,盡可能包括數(shù)字、標點符號和特殊字符等;
c.混用大小寫字符;
d.經(jīng)常修改。
6、分區(qū)管理
一個潛在的攻擊,它首先就會嘗試緩沖區(qū)溢出。在過去的幾年中,以緩沖區(qū)溢出為類型的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩沖區(qū)溢出漏洞占了遠程網(wǎng)絡(luò)攻擊的絕大多數(shù),這種攻擊可以輕易使得一個匿名的Internet用戶有機會獲得一臺主機的部分或全部的控制權(quán)!。
為了防止此類攻擊,我們從安裝系統(tǒng)時就應(yīng)該注意。如果用root分區(qū)記錄數(shù)據(jù),如log文件,就可能因為拒絕服務(wù)產(chǎn)生大量日志或垃圾郵件,從而導致系統(tǒng)崩潰。所以建議為/var開辟單獨的分區(qū),用來存放日志和郵件,以避免root分區(qū)被溢出。最好為特殊的應(yīng)用程序單獨開一個分區(qū),特別是可以產(chǎn)生大量日志的程序,還建議為/home單獨分一個區(qū),這樣他們就不能填滿/分區(qū)了,從而就避免了部分針對Linux分區(qū)溢出的惡意攻擊。
很多Linux桌面用戶往往是使用Windows、Linux雙系統(tǒng)。最好使用雙硬盤。方法如下:首先將主硬盤的數(shù)據(jù)線拆下,找一個10GB左右的硬盤掛在計算機上,將小硬盤設(shè)置為從盤,按照平常的操作安裝Linux服務(wù)器版本,除了啟動的引導程序放在MBR外,其它沒有區(qū)別。 安裝完成,調(diào)試出桌面后,關(guān)閉計算機。將小硬盤的數(shù)據(jù)線拆下,裝上原硬盤,并設(shè)定為主盤(這是為了原硬盤和小硬盤同時掛接在一個數(shù)據(jù)線上),然后安裝Windows軟件。將兩個硬盤都掛在數(shù)據(jù)線上,數(shù)據(jù)線是IDE 0接口,將原硬盤設(shè)定為主盤,小硬盤設(shè)定為從盤。如果要從原硬盤啟動,就在CMOS里將啟動的順序設(shè)定為“C、D、CDROM”,或者是“IDE0(HDD-0)”。這樣計算機啟動的時候,進入Windows界面。如果要從小硬盤啟動,就將啟動順序改為“D、C、CDROM”,或者是“IDE1(HDD-1)”,啟動之后,將進入Linux界面。平時兩個操作系統(tǒng)是互相不能夠訪問的。
7、防范網(wǎng)絡(luò)嗅探:
嗅探器技術(shù)被廣泛應(yīng)用于網(wǎng)絡(luò)維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網(wǎng)絡(luò)的各種信息,通過對這些數(shù)據(jù)的分析,網(wǎng)絡(luò)管理員可以深入了解網(wǎng)絡(luò)當前的運行狀況,以便找出網(wǎng)絡(luò)中的漏洞。在網(wǎng)絡(luò)安全日益被注意的今天.我們不但要正確使用嗅探器.還要合理防范嗅探器的危害.嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發(fā)現(xiàn)。對于一個安全性能要求很嚴格的企業(yè),同時使用安全的拓撲結(jié)構(gòu)、會話加密、使用靜態(tài)的ARP地址是有必要的。
8、完整的日志管理
日志文件時刻為你記錄著你的系統(tǒng)的運行情況。當黑客光臨時,也不能逃脫日志的法眼。所以黑客往往在攻擊時修改日志文件,來隱藏蹤跡。因此我們要限制對/var/log文件的訪問,禁止一般權(quán)限的用戶去查看日志文件。
另外要使用日志服務(wù)器。將客戶機的日志信息保存副本是好主意,創(chuàng)建一臺服務(wù)器專門存放日志文件,可以通過檢查日志來發(fā)現(xiàn)問題。修改/etc/sysconfig/syslog文件加入接受遠程日志記錄。
/etc/sysconfig/syslog SYSLOGD_OPTIONS="-m r 0"
還應(yīng)該設(shè)定日志遠程保存。修改/etc/syslog.conf文件加入日志服務(wù)器的設(shè)置,syslog將保存副本在日志服務(wù)器上。
/etc/syslog.conf *.* @log_server_IP
可以使用彩色日志過濾器。彩色日志loco過濾器,目前版本是0.32。使用loco /var/log/messages | more可以顯示出彩色的日志,明顯標記出root的位置和日志中異常的命令。這樣可以減少分析日志時人為遺漏。還要進行日志的定期檢查。Red Hat Linux中提供了logwatch工具,定期自動檢查日志并發(fā)送郵件到管理員信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root參數(shù)后增加管理員的郵件地址。Logwatch會定期檢查日志,過濾有關(guān)使用root、sudo、telnet、ftp登錄等信息,協(xié)助管理員分析日常安全。完整的日志管理要包括網(wǎng)絡(luò)數(shù)據(jù)的正確性、有效性、合法性。對日志文件的分析還可以預防入侵。例如、某一個用戶幾小時內(nèi)的20次的注冊失敗記錄,很可能是入侵者正在嘗試該用戶的口令。
9、終止正進行的攻擊
假如你在檢查日志文件時,發(fā)現(xiàn)了一個用戶從你未知的主機登錄,而且你確定此用戶在這臺主機上沒有賬號,此時你可能正被攻擊。首先你要馬上鎖住此賬號(在口令文件或shadow文件中,此用戶的口令前加一個Ib或其他的字符)。若攻擊者已經(jīng)連接到系統(tǒng),你應(yīng)馬上斷開主機與網(wǎng)絡(luò)的物理連接。如有可能,你還要進一步查看此用戶的歷史記錄,查看其他用戶是否也被假冒,攻擊音是否擁有根權(quán)限。殺掉此用戶的所有進程并把此主機的ip地址掩碼加到文件hosts.deny中。
10、使用安全工具軟件:
Linux已經(jīng)有一些工具可以保障服務(wù)器的安全。如bastille linux和Selinux。 bastille linux對于不熟悉 linux 安全設(shè)定的使用者來說,是一套相當方便的軟件,bastille linux 目的是希望在已經(jīng)存在的 linux 系統(tǒng)上,建構(gòu)出一個安全性的環(huán)境。增強安全性的Linux(SELinux)是美國安全部的一個研發(fā)項目,它的目的在于增強開發(fā)代碼的Linux內(nèi)核,以提供更強的保護措施,防止一些關(guān)于安全方面的應(yīng)用程序走彎路,減輕惡意軟件帶來的災難。普通的Linux系統(tǒng)的安全性是依賴內(nèi)核的,這個依賴是通過setuid/setgid產(chǎn)生的。在傳統(tǒng)的安全機制下,暴露了一些應(yīng)用授權(quán)問題、配置問題或進程運行造成整個系統(tǒng)的安全問題。這些問題在現(xiàn)在的操作系統(tǒng)中都存在,這是由于他們的復雜性和與其它程序的互用性造成的。SELinux只單單依賴于系統(tǒng)的內(nèi)核和安全配置政策。一旦你正確配置了系統(tǒng),不正常的應(yīng)用程序配置或錯誤將只返回錯誤給用戶的程序和它的系統(tǒng)后臺程序。其它用戶程序的安全性和他們的后臺程序仍然可以正常運行,并保持著它們的安全系統(tǒng)結(jié)構(gòu)。用簡單一點的話說就是:沒有任何的程序配置錯誤可以造成整個系統(tǒng)的崩潰。安裝SELinux SELinux的內(nèi)核、工具、程序/工具包,還有文檔都可以到增強安全性的Linux網(wǎng)站上上下載你必須有一個已經(jīng)存在的Linux系統(tǒng)來編譯你的新內(nèi)核,這樣才能訪問沒有更改的系統(tǒng)補丁包。
11.使用保留IP地址
維護網(wǎng)絡(luò)安全性最簡單的方法是保證網(wǎng)絡(luò)中的主機不同外界接觸。最基本的方法是與公共網(wǎng)絡(luò)隔離。然而,這種通過隔離達到的安全性策略在許多情況下是不能接受的。這時,使用保留IP地址是一種簡單可行的方法,它可以讓用戶訪問Internet同時保證一定的安全性。- RFC 1918規(guī)定了能夠用于本地 TCP/IP網(wǎng)絡(luò)使用的IP地址范圍,這些IP地址不會在Internet上路由,因此不必注冊這些地址。通過在該范圍分配IP地址,可以有效地將網(wǎng)絡(luò)流量限制在本地網(wǎng)絡(luò)內(nèi)。這是一種拒絕外部計算機訪問而允許內(nèi)部計算機互聯(lián)的快速有效的方法。 保留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地址的網(wǎng)絡(luò)交通不會經(jīng)過Internet路由器,因此被賦予保留IP地址的任何計算機不能從外部網(wǎng)絡(luò)訪問。但是,這種方法同時也不允許用戶訪問外部網(wǎng)絡(luò)。IP偽裝可以解決這一問題。
12、合理選擇Linux發(fā)行版本:
對于服務(wù)器使用的Linux版本,既不使用最新的發(fā)行版本,也不選擇太老的版本。應(yīng)當使用比較成熟的版本:前一個產(chǎn)品的最后發(fā)行版本如RHEL 3.0等。畢竟對于服務(wù)器來說安全穩(wěn)定是第一的。
13、部署Linux防范病毒軟件
Linux操作系統(tǒng)一直被認為是Windows系統(tǒng)的勁敵,因為它不僅安全、穩(wěn)定、成本低,而且很少發(fā)現(xiàn)有病毒傳播。但是,隨著越來越多的服務(wù)器、工作站和個人電腦使用Linux軟件,電腦病毒制造者也開始攻擊這一系統(tǒng)。對于Linux系統(tǒng)無論是服務(wù)器,還是工作站的安全性和權(quán)限控制都是比較強大的,這主要得力于其優(yōu)秀的技術(shù)設(shè)計,不僅使它的作業(yè)系統(tǒng)難以宕機,而且也使其難以被濫用。Unix經(jīng)過20多年的發(fā)展和完善,已經(jīng)變得非常堅固,而Linux基本上繼承了它的優(yōu)點。在Linux里,如果不是超級用戶,那么惡意感染系統(tǒng)文件的程序?qū)⒑茈y得逞。速客一號(Slammer)、沖擊波(Blast)、霸王蟲(Sobig)、 米蟲(Mimail)、勞拉(Win32.Xorala)病毒等惡性程序雖然不會損壞Linux服務(wù)器,但是卻會傳播給訪問它的Windows系統(tǒng)平臺的計算機。
隨著開源系統(tǒng)Linux的盛行,其在大中型企業(yè)的應(yīng)用也在逐漸普及,很多企業(yè)的應(yīng)用服務(wù)都是構(gòu)筑在其之上,例如Web服務(wù)、數(shù)據(jù)庫服務(wù)、集群服務(wù)等等。因此,Linux的安全性就成為了企業(yè)構(gòu)筑安全應(yīng)用的一個基礎(chǔ),是重中之重,如何對其進行安全防護是企業(yè)需要解決的一個基礎(chǔ)性問題,基于此,本文將給出十大企業(yè)級Linux服務(wù)器安全防護的要點。 1、強化:密碼管理 設(shè)定登錄密碼是一項非常重要的安全措施,如果用戶的密碼設(shè)定不合適,就很容易被破譯,尤其是擁有超級用戶使用權(quán)限的用戶,如果沒有良好的密碼,將給系統(tǒng)造成很大的安全漏洞。 目前密碼破解程序大多采用字典攻擊以及暴力攻擊手段,而其中用戶密碼設(shè)定不當,則極易受到字典攻擊的威脅。很多用戶喜歡用自己的英文名、生日或者賬戶等信息來設(shè)定密碼,這樣,黑客可能通過字典攻擊或者是社會工程的手段來破解密碼。所以建議用戶在設(shè)定密碼的過程中,應(yīng)盡量使用非字典中出現(xiàn)的組合字符,并且采用數(shù)字與字符相結(jié)合、大小寫相結(jié)合的密碼設(shè)置方式,增加密碼被黑客破解的難度。而且,也可以使用定期修改密碼、使密碼定期作廢的方式,來保護自己的登錄密碼。 在多用戶系統(tǒng)中,如果強迫每個用戶選擇不易猜出的密碼,擾薯將大大提高系統(tǒng)的安全性。但如果passwd程序無法強迫每個上機用戶使用恰當?shù)拿艽a,要確保密碼的安全度,就只能依靠密碼破解程序了。實際上,密碼破解程序是黑客工具箱中的一種工具,它將常用的密碼或者是英文字典中所有可能用來作密碼的字都用程序加密成密碼字,然后將其與Linux系統(tǒng)的/etc/passwd密碼文件或/etc/shadow影子文件相比較,如果發(fā)現(xiàn)有吻合的密碼,就可以求得明碼了。在網(wǎng)絡(luò)上可以找到很多密碼破解程序,比較有名的程序是crack和john the ripper.用戶可以自己先執(zhí)緩判者行密碼破解程序,找出容易被黑客破解的密碼,先行改正總比被黑客破解要有利。 2、限定:網(wǎng)絡(luò)服務(wù)管理 早期的Linux版本中,每一個不同的網(wǎng)絡(luò)服務(wù)都有一個服務(wù)程序(守護進程,Daemon)在后臺運行,后來的版本用統(tǒng)一的/etc/inetd服務(wù)器程序擔此重任。Inetd是Internetdaemon的縮寫,它同時監(jiān)視多個網(wǎng)絡(luò)端口,一旦接收到外界傳來的連接信息,就執(zhí)行相應(yīng)的TCP或UDP網(wǎng)絡(luò)服務(wù)。由于受inetd的統(tǒng)一指揮,因此Linux中的大部分TCP或UDP服務(wù)都是在/etc/inetd.conf文件中設(shè)定。所以取消不必要服務(wù)的第一步就是檢查/etc/inetd.conf文件,在不要的服務(wù)前加上“#”號。 一般來說,除了http、smtp、telnet和ftp之外,其他服務(wù)都應(yīng)該取消,諸如簡單文件傳輸協(xié)議tftp、網(wǎng)絡(luò)郵件存儲及接收所用的imap/ipop傳輸協(xié)議、尋找和搜索資料用的gopher以及用于時間同步的daytime和time等。還有一些報告系統(tǒng)狀態(tài)的服務(wù),如finger、efinger、systat和netstat等,雖然對系統(tǒng)查錯和尋找用戶非常有用,但也給黑客提供了方便之門。例如,黑客可以利用finger服務(wù)查找用戶的電話、使用目錄以及其他重要信息。因此,很多Linux系統(tǒng)將這些服務(wù)全部取消或部分取消,以增強系統(tǒng)的安全性。Inetd除了利用/etc/inetd.conf設(shè)置系統(tǒng)服務(wù)項之外,還利用/etc/services文件查找各項服務(wù)所使用的端口。因此,用戶必須仔細檢查該文件中各端口的設(shè)定,以免有安全上的漏洞。 在后繼的Linux版本中(比如Red Hat Linux7.2之后),取而代之的是采用xinetd進行網(wǎng)絡(luò)服務(wù)的管理。 當然,具體取消哪些服務(wù)不能一概而論,需要根據(jù)實際的應(yīng)用情況來定,但是系統(tǒng)管理員需要做到心中有數(shù),因為一旦系統(tǒng)出現(xiàn)安全問題,才能做到有步驟、有條不紊地進行查漏和補救工作,這點比較重要。 3、嚴格審計:系統(tǒng)登錄用戶管理 在進入Linux系統(tǒng)之前,所有用戶都需要登錄,也就是說,用戶需要輸入用戶賬號和密碼,只有它們通過系統(tǒng)驗證之后,用戶才能進入系統(tǒng)。 與其他Unix操作系統(tǒng)一樣,Linux一般將密碼加密之后,存放在/etc/passwd文件中。Linux系統(tǒng)上的所有用戶都可以讀到/etc/passwd文件,雖然文件中保存的密碼沖卜已經(jīng)經(jīng)過加密,但仍然不太安全。因為一般的用戶可以利用現(xiàn)成的密碼破譯工具,以窮舉法猜測出密碼。比較安全的方法是設(shè)定影子文件/etc/shadow,只允許有特殊權(quán)限的用戶閱讀該文件。 在Linux系統(tǒng)中,如果要采用影子文件,必須將所有的公用程序重新編譯,才能支持影子文件。這種方法比較麻煩,比較簡便的方法是采用插入式驗證模塊(PAM)。很多Linux系統(tǒng)都帶有Linux的工具程序PAM,它是一種身份驗證機制,可以用來動態(tài)地改變身份驗證的方法和要求,而不要求重新編譯其他公用程序。這是因為PAM采用封閉包的方式,將所有與身份驗證有關(guān)的邏輯全部隱藏在模塊內(nèi),因此它是采用影子檔案的最佳幫手。 此外,PAM還有很多安全功能:它可以將傳統(tǒng)的DES加密方法改寫為其他功能更強的加密方法,以確保用戶密碼不會輕易地遭人破譯;它可以設(shè)定每個用戶使用電腦資源的上限;它甚至可以設(shè)定用戶的上機時間和地點。 Linux系統(tǒng)管理人員只需花費幾小時去安裝和設(shè)定PAM,就能大大提高Linux系統(tǒng)的安全性,把很多攻擊阻擋在系統(tǒng)之外。 4、設(shè)定:用戶賬號安全等級管理 除密碼之外,用戶賬號也有安全等級,這是因為在Linux上每個賬號可以被賦予不同的權(quán)限,因此在建立一個新用戶ID時,系統(tǒng)管理員應(yīng)該根據(jù)需要賦予該賬號不同的權(quán)限,并且歸并到不同的用戶組中。 在Linux系統(tǒng)中的部分文件中,可以設(shè)定允許上機和不允許上機人員的名單。其中,允許上機人員名單在/etc/hosts.allow中設(shè)置,不允許上機人員名單在/etc/hosts.deny中設(shè)置。此外,Linux將自動把允許進入或不允許進入的結(jié)果記錄到/var/log/secure文件中,系統(tǒng)管理員可以據(jù)此查出可疑的進入記錄。 每個賬號ID應(yīng)該有專人負責。在企業(yè)中,如果負責某個ID的職員離職,管理員應(yīng)立即從系統(tǒng)中刪除該賬號。很多入侵事件都是借用了那些很久不用的賬號。 在用戶賬號之中,黑客最喜歡具有root權(quán)限的賬號,這種超級用戶有權(quán)修改或刪除各種系統(tǒng)設(shè)置,可以在系統(tǒng)中暢行無阻。因此,在給任何賬號賦予root權(quán)限之前,都必須仔細考慮。 Linux系統(tǒng)中的/etc/securetty文件包含了一組能夠以root賬號登錄的終端機名稱。例如,在RedHatLinux系統(tǒng)中,該文件的初始值僅允許本地虛擬控制臺(rtys)以root權(quán)限登錄,而不允許遠程用戶以root權(quán)限登錄。最好不要修改該文件,如果一定要從遠程登錄為root權(quán)限,最好是先以普通賬號登錄,然后利用su命令升級為超級用戶。 5、謹慎使用:“r系列”遠程程序管理 在Linux系統(tǒng)中有一系列r字頭的公用程序,比如rlogin,rcp等等。它們非常容易被黑客用來入侵我們的系統(tǒng),因而非常危險,因此絕對不要將root賬號開放給這些公用程序。由于這些公用程序都是用。rhosts文件或者hosts.equiv文件核準進入的,因此一定要確保root賬號不包括在這些文件之內(nèi)。 由于r等遠程指令是黑客們用來攻擊系統(tǒng)的較好途徑,因此很多安全工具都是針對這一安全漏洞而設(shè)計的。例如,PAM工具就可以用來將r字頭公用程序有效地禁止掉,它在/etc/pam.d/rlogin文件中加上登錄必須先核準的指令,使整個系統(tǒng)的用戶都不能使用自己home目錄下的。rhosts文件。 6、限制:root用戶權(quán)限管理 Root一直是Linux保護的重點,由于它權(quán)力無限,因此最好不要輕易將超級用戶授權(quán)出去。但是,有些程序的安裝和維護工作必須要求有超級用戶的權(quán)限,在這種情況下,可以利用其他工具讓這類用戶有部分超級用戶的權(quán)限。sudo就是這樣的工具。 sudo程序允許一般用戶經(jīng)過組態(tài)設(shè)定后,以用戶自己的密碼再登錄一次,取得超級用戶的權(quán)限,但只能執(zhí)行有限的幾個指令。例如,應(yīng)用sudo后,可以讓管理磁帶備份的管理人員每天按時登錄到系統(tǒng)中,取得超級用戶權(quán)限去執(zhí)行文檔備份工作,但卻沒有特權(quán)去作其他只有超級用戶才能作的工作。 sudo不但限制了用戶的權(quán)限,而且還將每次使用sudo所執(zhí)行的指令記錄下來,不管該指令的執(zhí)行是成功還是失敗。在大型企業(yè)中,有時候有許多人同時管理Linux系統(tǒng)的各個不同部分,每個管理人員都有用sudo授權(quán)給某些用戶超級用戶權(quán)限的能力,從sudo的日志中,可以追蹤到誰做了什么以及改動了系統(tǒng)的哪些部分。 值得注意的是,sudo并不能限制所有的用戶行為,尤其是當某些簡單的指令沒有設(shè)置限定時,就有可能被黑客濫用。例如,一般用來顯示文件內(nèi)容的/etc/cat指令,如果有了超級用戶的權(quán)限,黑客就可以用它修改或刪除一些重要的文件。 7、追蹤黑客蹤跡:日志管理 當用戶仔細設(shè)定了各種與Linux相關(guān)的配置(最常用日志管理選項),并且安裝了必要的安全防護工具之后,Linux操作系統(tǒng)的安全性的確大為提高,但是卻并不能保證防止那些比較熟練的網(wǎng)絡(luò)黑客的入侵。 在平時,網(wǎng)絡(luò)管理人員要經(jīng)常提高警惕,隨時注意各種可疑狀況,并且按時檢查各種系統(tǒng)日志文件,包括一般信息日志、網(wǎng)絡(luò)連接日志、文件傳輸日志以及用戶登錄日志等。在檢查這些日志時,要注意是否有不合常理的時間記載。例如: 正常用戶在半夜三更登錄; 不正常的日志記錄,比如日志只記錄了一半就切斷了,或者整個日志文件被刪除了; 用戶從陌生的網(wǎng)址進入系統(tǒng); 因密碼錯誤或用戶賬號錯誤被擯棄在外的日志記錄,尤其是那些一再連續(xù)嘗試進入失敗,但卻有一定模式的試錯法; 非法使用或不正當使用超級用戶權(quán)限su的指令; 重新開機或重新啟動各項服務(wù)的記錄。 上述這些問題都需要系統(tǒng)管理員隨時留意系統(tǒng)登錄的用戶狀況以及查看相應(yīng)日志文件,許多背離正常行為的蛛絲馬跡都應(yīng)當引起高度注意。 8、橫向擴展:綜合防御管理 防火墻、IDS等防護技術(shù)已經(jīng)成功地應(yīng)用到網(wǎng)絡(luò)安全的各個領(lǐng)域,而且都有非常成熟的產(chǎn)品。 在Linux系統(tǒng)來說,有一個自帶的Netfilter/Iptables防火墻框架,通過合理地配置其也能起到主機防火墻的功效。在Linux系統(tǒng)中也有相應(yīng)的輕量級的網(wǎng)絡(luò)入侵檢測系統(tǒng)Snort以及主機入侵檢測系統(tǒng)LIDS(Linux Intrusion Detection System),使用它們可以快速、高效地進行防護。 需要提醒注意的是:在大多數(shù)的應(yīng)用情境下,我們需要綜合使用這兩項技術(shù),因為防火墻相當于安全防護的第一層,它僅僅通過簡單地比較IP地址/端口對來過濾網(wǎng)絡(luò)流量,而IDS更加具體,它需要通過具體的數(shù)據(jù)包(部分或者全部)來過濾網(wǎng)絡(luò)流量,是安全防護的第二層。綜合使用它們,能夠做到互補,并且發(fā)揮各自的優(yōu)勢,最終實現(xiàn)綜合防御。 9、評測:漏洞追蹤及管理 Linux作為一種優(yōu)秀的開源軟件,其自身的發(fā)展也日新月異,同時,其存在的問題也會在日后的應(yīng)用中慢慢暴露出來。黑客對新技術(shù)的關(guān)注從一定程度上來說要高于我們防護人員,所以要想在網(wǎng)絡(luò)攻防的戰(zhàn)爭中處于有利地位,保護Linux系統(tǒng)的安全,就要求我們要保持高度的警惕性和對新技術(shù)的高度關(guān)注。用戶特別是使用Linux作為關(guān)鍵業(yè)務(wù)系統(tǒng)的系統(tǒng)管理員們,需要通過Linux的一些權(quán)威網(wǎng)站和論壇上盡快地獲取有關(guān)該系統(tǒng)的一些新技術(shù)以及一些新的系統(tǒng)漏洞的信息,進行漏洞掃描、滲透測試等系統(tǒng)化的相關(guān)配套工作,做到防范于未然,提早行動,在漏洞出現(xiàn)后甚至是出現(xiàn)前的最短時間內(nèi)封堵系統(tǒng)的漏洞,并且在實踐中不斷地提高安全防護的技能,這樣才是一個比較的解決辦法和出路。 10、保持更新:補丁管理 Linux作為一種優(yōu)秀的開源軟件,其穩(wěn)定性、安全性和可用性有極為可靠的保證,世界上的Linux高手共同維護著個優(yōu)秀的產(chǎn)品,因而起流通渠道很多,而且經(jīng)常有更新的程序和系統(tǒng)補丁出現(xiàn),因此,為了加強系統(tǒng)安全,一定要經(jīng)常更新系統(tǒng)內(nèi)核。 Kernel是Linux操作系統(tǒng)的核心,它常駐內(nèi)存,用于加載操作系統(tǒng)的其他部分,并實現(xiàn)操作系統(tǒng)的基本功能。由于Kernel控制計算機和網(wǎng)絡(luò)的各種功能,因此,它的安全性對整個系統(tǒng)安全至關(guān)重要。早期的Kernel版本存在許多眾所周知的安全漏洞,而且也不太穩(wěn)定,只有2.0.x以上的版本才比較穩(wěn)定和安全(一般說來,內(nèi)核版本號為偶數(shù)的相對穩(wěn)定,而為奇數(shù)的則一般為測試版本,用戶們使用時要多留意),新版本的運行效率也有很大改觀。在設(shè)定Kernel的功能時,只選擇必要的功能,千萬不要所有功能照單全收,否則會使Kernel變得很大,既占用系統(tǒng)資源,也給黑客留下可乘之機。 在Internet上常常有最新的安全修補程序,Linux系統(tǒng)管理員應(yīng)該消息靈通,經(jīng)常光顧安全新聞組,查閱新的修補程序。
1、 關(guān)閉不需要的服務(wù)
這個應(yīng)該很容易理解的,凡是我們的系統(tǒng)不需要的服務(wù),一概關(guān)閉,這樣一州衡個好處是減少內(nèi)存和CPU時間的占用,另一個好處相對可以提高安全性
那么哪些服務(wù)是肯定要保留的呢?
在linux機器上通常有四項服務(wù)是必須保留的
iptables
linux下強大的防并跡帶火墻,只要機器需要連到網(wǎng)上,哪里離得開它
network
linux機器的網(wǎng)絡(luò),如果不上網(wǎng)可以關(guān)閉,只要上網(wǎng)當然要打開它
sshd
這是openssh server,如果你的機器不是本地操作,而是托管到IDC機房,
那么訪問機器時需要通過這個sshd服務(wù)進行
syslog
這是linux系統(tǒng)的日志系統(tǒng),必須要有,
否則機器出現(xiàn)問題時會找不到原因
除了這四項必需的服務(wù)之外,其他的服務(wù)需要保留哪些呢?
這時就可以根據(jù)系統(tǒng)的用途而定,比如:數(shù)據(jù)庫服務(wù)器,就需要啟用mysqld(或oracle)
web服務(wù)器,就需要啟用apache
2、 關(guān)閉不需要的tty
請編輯你的/etc/inittab
找到如下一段:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
這段命令使init為你打開了6個控制臺,分別可以用alt+f1到alt+f6進行訪問
此6個控制臺默認都駐留在內(nèi)存中,事實上沒有必要使用這么多的
你用ps auxf這個絕蘆命令可以看到,是六個進程
root 3004 0.0 0.0 1892 412 tty1 Ss+ Jun29 0:00 /sbin/mingetty tty1
root 3037 0.0 0.0 2492 412 tty2 Ss+ Jun29 0:00 /sbin/mingetty tty2
root 3038 0.0 0.0 2308 412 tty3 Ss+ Jun29 0:00 /sbin/mingetty tty3
root 3051 0.0 0.0 1812 412 tty4 Ss+ Jun29 0:00 /sbin/mingetty tty4
root 3056 0.0 0.0 2116 412 tty5 Ss+ Jun29 0:00 /sbin/mingetty tty5
root 3117 0.0 0.0 2396 412 tty6 Ss+ Jun29 0:00 /sbin/mingetty tty6
3. 如何關(guān)閉這些進程?
通常我們保留前2個控制臺就可以了,
把后面4個用#注釋掉就可以了
然后無需重啟機器,只需要執(zhí)行 init q 這個命令即可
init q
q作為參數(shù)的含義:重新執(zhí)行/etc/inittab中的命令
修改完成后需重啟機器使之生效
4 、如何關(guān)閉atime?
一個linux文件默認有3個時間:
atime:對此文件的訪問時間
ctime:此文件inode發(fā)生變化的時間
mtime:此文件的修改時間
如果有多個小文件時通常沒有必要記錄文件的訪問時間,
這樣可以減少磁盤的io,比如web服務(wù)器的頁面上有多個小圖片
如何進行設(shè)置呢?
修改文件系統(tǒng)的配置文件:vi /etc/fstab
在包含大量小文件的分區(qū)中使用noatime,nodiratime兩項
例如:
/dev/md5 /data/pics1 ext3 noatime,nodiratime 0 0
這樣文件被訪問時就不會再產(chǎn)生寫磁盤的io
5、 一定要讓你的服務(wù)器運行在level 3上
做法:
vi /etc/inittab
id:3:initdefault:
讓服務(wù)器運行X是沒有必要的
6, 優(yōu)化sshd
X11Forwarding no //不進行x圖形的轉(zhuǎn)發(fā)
UseDNS no //不對IP地址做反向的解析
7、 優(yōu)化shell
修改命令history記錄
# vi /etc/profile
找到 HISTSIZE=1000 改為 HISTSIZE=100
然后 source /etc/profile
如果你是一個系統(tǒng)管理員,你應(yīng)該按照以下的10點建議來保證Apache web服務(wù)器的安全。 1、禁用不必要的模塊 如果你打算源碼編譯安裝apache,你應(yīng)該禁用以下的模塊。如果你運行./configure -help,你將會看到所有可用的你可以禁用/開啟的模塊。 userdir –用戶特定用戶的請求映射。例如:帶用戶名的URL會轉(zhuǎn)化成服務(wù)器的一個目錄。 autoindex – 當沒有默認首頁(如index.html)時顯示目錄列表。 status –顯示服務(wù)器統(tǒng)計 env – 清除或修改環(huán)境變量 setenvif –根據(jù)客戶端請求頭字段設(shè)置環(huán)境變量 cgi –CGI腳本 actions – 根據(jù)特定的媒體類型或請求方法,激活特定的CGI腳本 negotiation –提供內(nèi)容協(xié)商支持 alias – 提供從文廳譽件系統(tǒng)的不同部分到文檔樹的映射和URL重定向 include –實現(xiàn)服務(wù)端包含文檔(SSI)處理 filter –根據(jù)上下文實際情況對輸出并敏過濾器進行動態(tài)配置 version –提供基于版本的配置段支持 asis – 發(fā)送自己包含HTTP頭內(nèi)容的文件 當你執(zhí)行./configure按照下面禁用以上的所有模塊。 ./configure \ --enable-ssl \ --enable-so \ --disable-userdir \ --disable-autoindex \ --disable-status \ --disable-env \ --disable-setenvif \ --disable-cgi \ --disable-actions \ --disable-negotiation \ --disable-alias \ --disable-include \ --disable-filter \ --disable-version \ --disable-asis 如果激活ssl且禁用mod_setenv,你將會得到以下錯誤。 錯誤: Syntax error on line 223 of /usr/local/apache2/conf/extra/httpd-ssl.conf: Invalid command ‘BrowserMatch’, perhaps misspelled or defined by a module not included in the server configuration 解決方案:如果你使用ssl,不要禁用setenvif模塊。或者你禁用setenvif模塊,可以在httpd-ssl.conf注釋BrowserMatch。 安裝完成全,執(zhí)行httpd -l,會列出所有已安裝的模塊。 # /usr/local/apache2/bin/httpd -l Compiled in modules: core.c mod_authn_file.c mod_authn_default.c mod_authz_host.c mod_authz_groupfile.c mod_authz_user.c mod_authz_default.c mod_auth_basic.c mod_log_config.c mod_ssl.c prefork.c http_core.c mod_mime.c mod_dir.c mod_so.c 在這個例子里,我們安裝了如下apache模塊: core.c –Apache核心模塊 mod_auth* –各種身份驗證模塊 mod_log_config.c –允許記錄日志和定制日志文件格式 mod_ssl.c – SSL prefork.c – 一個非線程型的、預派生的MPM httpd_core.c – Apache核心模塊 mod_mime.c – 根據(jù)文件擴展名決定應(yīng)答的行為(處理器/過濾器)和內(nèi)容(MIME類型/語言/字符集/編碼)絕伏枝 mod_dir.c – 指定目錄索引文件以及為目錄提供”尾斜杠”重定向 mod_so.c – 允許運行時加載DSO模塊 2、以單獨的用戶和用戶組運行Apache Apache可能默認地以nobody或daemon運行。讓Apache運行在自己沒有特權(quán)的帳戶比較好。例如:用戶apache。 創(chuàng)建apache用戶組和用戶。 groupadd apache useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache 更改httpd.conf,正確地設(shè)置User和Group。 # vi httpd.conf User apache Group apache 之后重啟apache,執(zhí)行ps -ef命令你會看到apache以“apache”用戶運行(除了第一個都是以root運行之外)。 # ps -ef | grep -i http | awk ‘{print $1}’ root apache apache apache apache apache 3、限制訪問根目錄(使用Allow和Deny) 在httpd.conf文件按如下設(shè)置來增強根目錄的安全。 Options None Order deny,allow Deny from all 在上面的: Options None –設(shè)置這個為None,是指不激活其它可有可無的功能。 Order deny,allow – 這個是指定處理Deny和Allow的順序。 Deny from all –阻止所有請求。Deny的后面沒有Allow指令,所以沒人能允許訪問。 4、為conf和bin目錄設(shè)置適當?shù)臋?quán)限 bin和conf目錄應(yīng)該只允許授權(quán)用戶查看。創(chuàng)建一個組和把所有允許查看/修改apache配置文件的用戶增加到這個組是一個不錯的授權(quán)方法。 下面我們設(shè)置這個組為:apacheadmin 創(chuàng)建組: groupadd apacheadmin 允許這個組訪問bin目錄。 chown -R root:apacheadmin /usr/local/apache2/bin chmod -R 770 /usr/local/apache2/bin 允許這個組訪問conf目錄。 chown -R root:apacheadmin /usr/local/apache2/conf chmod -R 770 /usr/local/apache2/conf 增加合適的用戶到這個組。 # vi /etc/group apacheadmin:x:1121:user1,user2 5、禁止目錄瀏覽 如果你不關(guān)閉目錄瀏覽,用戶就能看到你的根目錄(或任何子目錄)所有的文件(目錄)。 比如,當他們?yōu)g覽http://{your-ip}/images/而images下沒有默認首頁,那么他們就會在瀏覽器中看到所有的images文件(就像ls -l輸出)。從這里他們通過點擊就能看到私人的圖片文件,或點點擊子目錄看到里面的內(nèi)容。 為了禁止目錄瀏覽,你可以設(shè)置Opitons指令為“None“或者是“-Indexes”。在選項名前加“-”會強制性地在該目錄刪除這個特性。 Indexes選項會在瀏覽器顯示可用文件的列表和子目錄(當沒有默認首頁在這個目錄)。所以Indexes應(yīng)該禁用。 Options None Order allow,deny Allow from all (or) Options -Indexes Order allow,deny Allow from all 6、禁用.htaccess 在htdocs目錄下的特定子目錄下使用.htaccess文件,用戶能覆蓋默認apache指令。在一些情況下,這樣不好,應(yīng)該禁用這個功能。 我們可以在配置文件中按如下設(shè)置禁用.htaccess文件來不允許覆蓋apache默認配置。 Options None AllowOverride None Order allow,deny Allow from all 7、禁用其它選項 下面是一些Options指令的可用值。 Options All –所有的選項被激活(除了MultiViews)。如果你不指定Options指令,這個是默認值。 Options ExecCGI –執(zhí)行CGI腳本(使用mod_cgi)。 Options FollowSymLinks –如果在當前目錄有符號鏈接,它將會被跟隨。 Options Includes –允許服務(wù)器端包含文件(使用mod_include)。 Options IncludesNOEXEC –允許服務(wù)器端包含文件但不執(zhí)行命令或cgi。 Options Indexes –允許目錄列表。 Options MultiViews -允許內(nèi)容協(xié)商多重視圖(使用mod_negotiation) Options SymLinksIfOwnerMatch –跟FollowSymLinks類似。但是要當符號連接和被連接的原始目錄是同一所有者是才被允許。 絕不要指定“Options All”,通常指定上面的一個或多個的選項。你可以按下面代碼把多個選項連接。 Options Includes FollowSymLinks 當你要嵌入多個Directory指令時,“+”和“-”是有用處的。也有可能會覆蓋上面的Directory指令。 如下面,/site目錄,允許Includes和Indexes。 Options Includes Indexes AllowOverride None Order allow,deny Allow from all 對于/site/en目錄,如果你需要繼承/site目錄的Indexes(不允許Includes),而且只在這個目錄允許FollowSymLinks,如下: Options -Includes +FollowSymLink AllowOverride None Order allow,deny Allow from all /site目錄允許IncludesIndexes /site/en目錄允許Indexes和FollowSymLink 8、刪除不需要的DSO模塊 如果你加載了動態(tài)共享對象模塊到apache,他們應(yīng)該在httpd.conf文件在“LoadModule”指令下。 請注意靜態(tài)編譯的Apache模塊是不在“LoadModule”指令里的。 在httpd.conf注釋任何不需要的“LoadModules”指令。 grep LoadModule /usr/local/apache2/conf/httpd.conf 9、限制訪問特定網(wǎng)絡(luò)(或IP地址) 如果你需要只允許特定IP地址或網(wǎng)絡(luò)訪問你的網(wǎng)站,按如下操作: 只允許特定網(wǎng)絡(luò)訪問你的網(wǎng)站,在Allow指令下給出網(wǎng)絡(luò)地址。 Options None AllowOverride None Order deny,allow Deny from all Allow from 10.10.0.0/24 只允許特定IP地址訪問你的網(wǎng)站,在Allow指令下給出IP地址。 Options None AllowOverride None Order deny,allow Deny from all Allow from 10.10.1.21 10、禁止顯示或發(fā)送Apache版本號(設(shè)置ServerTokens) 默認地,服務(wù)器HTTP響應(yīng)頭會包含apache和php版本號。像下面的,這是有危害的,因為這會讓黑客通過知道詳細的版本號而發(fā)起已知該版本的漏洞攻擊。 Server:Apache/2.2.17 (Unix) PHP/5.3.5 為了阻止這個,需要在httpd.conf設(shè)置ServerTokens為Prod,這會在響應(yīng)頭中顯示“Server:Apache”而不包含任何的版本信息。 # vi httpd.conf ServerTokens Prod 下面是ServerTokens的一些可能的賦值: ServerTokens Prod 顯示“Server:Apache” ServerTokens Major 顯示 “Server:Apache/2″ ServerTokens Minor 顯示“Server:Apache/2.2″ ServerTokens Min d顯示“Server:Apache/2.2.17″ ServerTokens OS 顯示 “Server:Apache/2.2.17 (Unix)” ServerTokens Full 顯示 “Server:Apache/2.2.17 (Unix) PHP/5.3.5″ (如果你這指定任何的值,這個是默認的返回信息) 除了上面10個apache的安全建議,你還必要確保你的UNIX/Linux操作系統(tǒng)的安全。如果你的操作系統(tǒng)不安全,那么只是確保apache的安全就沒有任何意義了。通常的我們要保持apache版本的更新,最新的apahce版本會修復所有已知的安全問題。還有就是要確保時常查看apache日志文件。