新聞中心
隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡安全問題日益成為人們關(guān)注的焦點。如何保障網(wǎng)絡安全,成為每位網(wǎng)絡管理員必須關(guān)注的問題。本文將介紹一些Linux服務器安全配置的全攻略,幫助管理員加固網(wǎng)絡,提高網(wǎng)絡安全性。

一、應用更新
管理員應該保證所有應用程序的最新更新。使用過時的應用程序會帶來大大小小的安全問題。同時,需要注意,應用更新應該來自可信源,避免遭到黑客的攻擊。
二、SSH端口必須修改
SSH是系統(tǒng)管理的重要工具,也是黑客溢出攻擊的主要目標。為了增強系統(tǒng)的安全性,在使用SSH時應該修改SSH默認端口。管理員可以將SSH端口更改為無關(guān)聯(lián)的任何數(shù)字,這有助于增加黑客的攻擊難度。
三、密碼強度加強
密碼是保護系統(tǒng)安全的一個基本方法。管理員應該確保系統(tǒng)用戶以及超級用戶的密碼強度。合理的密碼管理需要包括以下要點:
1. 設置密碼復雜度:管理員應該設置密碼至少包含8個字符、至少包含一個大寫字母、至少包含一個小寫字母、至少包含一個數(shù)字以及至少包含一個特殊字符。
2. 密碼定期更改:定期更改密碼可以加強密碼的安全性,并降低被破解的風險。
3. 賬戶鎖定功能:管理員可以開啟賬戶鎖定功能來保護系統(tǒng),當用戶輸錯密碼多次時,賬戶將被鎖定。
四、關(guān)閉無用服務
開啟不必要的服務會增加系統(tǒng)的攻擊面。管理員應該關(guān)閉無用的服務來減少攻擊的可能性。比如說,如果服務器不需要郵件服務,管理員可以關(guān)閉TP和POP服務。
五、配置防火墻
防火墻是保護系統(tǒng)安全的有效手段之一,管理員應該合理配置防火墻策略。管理員可以通過防火墻控制網(wǎng)絡流量和網(wǎng)絡訪問,限制不必要的連接。同時,管理員還可以控制進出網(wǎng)絡的數(shù)據(jù)包,防范攻擊。
六、建立系統(tǒng)備份
建立系統(tǒng)備份可以保護系統(tǒng)免受各種意外事件的侵害,比如說硬件故障、惡意軟件的攻擊等等。管理員應該定期備份重要的數(shù)據(jù)和系統(tǒng)配置文件,并將備份文件存儲在可信任的位置。
七、加強日志管理
日志管理對于系統(tǒng)的安全至關(guān)重要,管理員應該合理地管理系統(tǒng)和應用程序的日志。通常,管理員應該記錄所有的登錄和操作,防止不法分子利用漏洞進行攻擊。管理員應該對日志進行分析和篩選,找出潛在的安全問題,并及時處理。
八、使用加密傳輸
在網(wǎng)絡通信中,有些敏感數(shù)據(jù)可能會被竊聽。管理員可以使用加密傳輸?shù)姆绞椒婪对搯栴}。常見的加密方式包括SSL和TLS,這些方式可以抵御黑客通過網(wǎng)絡嗅探的攻擊。
九、賬號權(quán)限控制
管理員應該根據(jù)需要設置用戶的訪問權(quán)限,限制用戶對系統(tǒng)資源的訪問。管理員應該避免過度授權(quán),以防止不必要的訪問。
十、安全監(jiān)控措施
管理員應該建立一套安全監(jiān)控措施,及時發(fā)現(xiàn)并做出應對。安全監(jiān)控措施包括定期審計系統(tǒng)和應用程序、檢測和防范潛在的安全威脅、對網(wǎng)絡流量和主機活動進行分析等等。這些措施可以提高系統(tǒng)安全性,降低黑客入侵的風險。
結(jié)論
網(wǎng)絡安全問題需要引起我們的重視,尤其是在當今信息化時代。就Linux服務器而言,我們可以通過上述措施來有效保障系統(tǒng)安全性。管理員應該時刻保持警惕,建立高效的安全機制,及時發(fā)現(xiàn)和處理潛在的安全問題。這樣才能讓我們的網(wǎng)絡更加安全,為人們提供更好的服務。
相關(guān)問題拓展閱讀:
- 如何遠程提升Linux服務器安全
- 關(guān)于Linux的安全問題
如何遠程提升Linux服務器安全
你好。
1.安裝和配置一個防火墻
一個配置適當?shù)姆阑饓Σ粌H是系統(tǒng)有效應對外部攻擊的之一道防線,也是最重要的一道防線。在新系統(tǒng)之一次連接上Internet之前,防火墻就應該被安裝并且配置好。防火墻配置成拒絕接收所有數(shù)據(jù)包,然后再打開允許接收的數(shù)據(jù)包,將有利于系統(tǒng)的安全。Linux為我們提供了一個非常優(yōu)秀的防火墻工具,它就是netfilter/iptables。它完全是免費的,并且可以在一臺低配置的老機器上很好地運行。防火墻的具體設置方法請參見iptables使用方法。
2、關(guān)閉無用的服務和端口
任何網(wǎng)絡連接都是通過開放的應用端口來實現(xiàn)的。如果我們盡可能少地開放端口,就使網(wǎng)絡攻擊變成無源之水,從而大大減少了攻擊者成功的機會。把Linux作為專用服務器是個明智的舉措。例如,希望Linux成為的Web服務器,可以取消系統(tǒng)內(nèi)所有非必要的服務,只開啟必要服務。這樣做可以盡量減少后門,降低隱患,而且可以合理分配系統(tǒng)資源,提高整機性能。以下是幾個不常用的服務:
① fingerd(finger服務器)報告指定用戶的個人信息,包括用戶名、真實姓名、shell、目錄和聯(lián)系方式,它將使系統(tǒng)暴露在不受歡迎的情報收集活動下,應避免啟動此服務。
② R服務(rshd、rlogin、rwhod、rexec)提供各種級別的命令,它們可以在遠程主機上運行或與遠程主機交互,在封閉的網(wǎng)絡環(huán)境中登錄而不再要求輸入用戶名和口令,相當方便。然而在公共服務器上就會暴露問題,導致安全威脅。
3、刪除不用的軟件包
在進行系統(tǒng)規(guī)劃時,總的原則是將不需要的服務一律去掉。默認的Linux就是一個強大的系統(tǒng),運行了很多的服務。但有許多服務是不需要的,很容易引起安全風險。這個文件就是/etc/xinetd.conf,它制定了/usr/in/xinetd將要監(jiān)聽的服務,你可能只需要其中的一個:ftp,其它的類如telnet、shell、login、exec、talk、ntalk、imap、finger、auth等,除非你真的想用它,否則統(tǒng)統(tǒng)關(guān)閉。
4、不設置缺省路由
在主機中,應該嚴格禁止設置缺省路由,即default route。建議為每一個子網(wǎng)或網(wǎng)段設置一個路由,否則其它機器就可能通過一定方式訪問該主機。
5、口令管理
口令的長度一般不要少于8個字符,口令的組成應以無規(guī)則的大小寫字母、數(shù)字和符號相結(jié)合,嚴格避免用英語單詞或詞組等設置口令,而且各用戶的口令應該養(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等。
密碼設置和原則:
a.足夠長,指頭只要多動一下為密碼加一位,就可以讓攻擊者的辛苦增加十倍;
b. 不要用完整的單詞,盡可能包括數(shù)字、標點符號和特殊字符等;
c.混用大小寫字符;
d.經(jīng)常修改。
6、分區(qū)管理
一個潛在的攻擊,它首先就會嘗試緩沖區(qū)溢出。在過去的幾年中,以緩沖區(qū)溢出為類型的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩沖區(qū)溢出漏洞占了遠程網(wǎng)絡攻擊的絕大多數(shù),這種攻擊可以輕易使得一個匿名的Internet用戶有機會獲得一臺主機的部分或全部的控制權(quán)!。
為了防止此類攻擊,我們從安裝系統(tǒng)時就應該注意。如果用root分區(qū)記錄數(shù)據(jù),如log文件,就可能因為拒絕服務產(chǎn)生大量日志或垃圾郵件,從而導致系統(tǒng)崩潰。所以建議為/var開辟單獨的分區(qū),用來存放日志和郵件,以避免root分區(qū)被溢出。更好為特殊的應用程序單獨開一個分區(qū),特別是可以產(chǎn)生大量日志的程序,還建議為/home單獨分一個區(qū),這樣他們就不能填滿/分區(qū)了,從而就避免了部分針對Linux分區(qū)溢出的惡意攻擊。
很多Linux桌面用戶往往是使用Windows、Linux雙系統(tǒng)。更好使用雙硬盤。方法如下:首先將主硬盤的數(shù)據(jù)線拆下,找一個10GB左右的硬盤掛在計算機上,將小硬盤設置為從盤,按照平常的操作安裝Linux服務器版本,除了啟動的引導程序放在MBR外,其它沒有區(qū)別。 安裝完成,調(diào)試出桌面后,關(guān)閉計算機。將小硬盤的數(shù)據(jù)線拆下,裝上原硬盤,并設定為主盤(這是為了原硬盤和小硬盤同時掛接在一個數(shù)據(jù)線上),然后安裝Windows軟件。將兩個硬盤都掛在數(shù)據(jù)線上,數(shù)據(jù)線是IDE 0接口,將原硬盤設定為主盤,小硬盤設定為從盤。如果要從原硬盤啟動,就在CMOS里將啟動的順序設定為“C、D、CDROM”,或者是“IDE0(HDD-0)”。這樣計算機啟動的時候,進入Windows界面。如果要從小硬盤啟動,就將啟動順序改為“D、C、CDROM”,或者是“IDE1(HDD-1)”,啟動之后,將進入Linux界面。平時兩個操作系統(tǒng)是互相不能夠訪問的。
7、防范網(wǎng)絡嗅探:
嗅探器技術(shù)被廣泛應用于網(wǎng)絡維護和管理方面,它工作的時候就像一部被動聲納,默默的接收看來自網(wǎng)絡的各種信息,通過對這些數(shù)據(jù)的分析,網(wǎng)絡管理員可以深入了解網(wǎng)絡當前的運行狀況,以便找出網(wǎng)絡中的漏洞。在網(wǎng)絡安全日益被注意的今天.我們不但要正確使用嗅探器.還要合理防范嗅探器的危害.嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發(fā)現(xiàn)。對于一個安全性能要求很嚴格的企業(yè),同時使用安全的拓撲結(jié)構(gòu)、會話加密、使用靜態(tài)的ARP地址是有必要的。
8、完整的日志管理
日志文件時刻為你記錄著你的系統(tǒng)的運行情況。當黑客光臨時,也不能逃脫日志的法眼。所以黑客往往在攻擊時修改日志文件,來隱藏蹤跡。因此我們要限制對/var/log文件的訪問,禁止一般權(quán)限的用戶去查看日志文件。
另外要使用日志服務器。將客戶機的日志信息保存副本是好主意,創(chuàng)建一臺服務器專門存放日志文件,可以通過檢查日志來發(fā)現(xiàn)問題。修改/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工具,定期自動檢查日志并發(fā)送郵件到管理員信箱。需要修改/etc/log.d/conf/ logwatch.conf文件,在MailTo = root參數(shù)后增加管理員的郵件地址。Logwatch會定期檢查日志,過濾有關(guān)使用root、sudo、telnet、ftp登錄等信息,協(xié)助管理員分析日常安全。完整的日志管理要包括網(wǎng)絡數(shù)據(jù)的正確性、有效性、合法性。對日志文件的分析還可以預防入侵。例如、某一個用戶幾小時內(nèi)的20次的注冊失敗記錄,很可能是入侵者正在嘗試該用戶的口令。
9、終止正進行的攻擊
假如你在檢查日志文件時,發(fā)現(xiàn)了一個用戶從你未知的主機登錄,而且你確定此用戶在這臺主機上沒有賬號,此時你可能正被攻擊。首先你要馬上鎖住此賬號(在口令文件或shadow文件中,此用戶的口令前加一個Ib或其他的字符)。若攻擊者已經(jīng)連接到系統(tǒng),你應馬上斷開主機與網(wǎng)絡的物理連接。如有可能,你還要進一步查看此用戶的歷史記錄,查看其他用戶是否也被假冒,攻擊音是否擁有根權(quán)限。殺掉此用戶的所有進程并把此主機的ip地址掩碼加到文件hosts.deny中。
10、使用安全工具軟件:
Linux已經(jīng)有一些工具可以保障服務器的安全。如bastille linux和Selinux。 bastille linux對于不熟悉 linux 安全設定的使用者來說,是一套相當方便的軟件,bastille linux 目的是希望在已經(jīng)存在的 linux 系統(tǒng)上,建構(gòu)出一個安全性的環(huán)境。增強安全性的Linux(SELinux)是美國安全部的一個研發(fā)項目,它的目的在于增強開發(fā)代碼的Linux內(nèi)核,以提供更強的保護措施,防止一些關(guān)于安全方面的應用程序走彎路,減輕惡意軟件帶來的災難。普通的Linux系統(tǒng)的安全性是依賴內(nèi)核的,這個依賴是通過setuid/setgid產(chǎn)生的。在傳統(tǒng)的安全機制下,暴露了一些應用授權(quán)問題、配置問題或進程運行造成整個系統(tǒng)的安全問題。這些問題在現(xiàn)在的操作系統(tǒng)中都存在,這是由于他們的復雜性和與其它程序的互用性造成的。SELinux只單單依賴于系統(tǒng)的內(nèi)核和安全配置政策。一旦你正確配置了系統(tǒ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)絡安全性最簡單的方法是保證網(wǎng)絡中的主機不同外界接觸。最基本的方法是與公共網(wǎng)絡隔離。然而,這種通過隔離達到的安全性策略在許多情況下是不能接受的。這時,使用保留IP地址是一種簡單可行的方法,它可以讓用戶訪問Internet同時保證一定的安全性。- RFC 1918規(guī)定了能夠用于本地 TCP/IP網(wǎng)絡使用的IP地址范圍,這些IP地址不會在Internet上路由,因此不必注冊這些地址。通過在該范圍分配IP地址,可以有效地將網(wǎng)絡流量限制在本地網(wǎng)絡內(nèi)。這是一種拒絕外部計算機訪問而允許內(nèi)部計算機互聯(lián)的快速有效的方法。 保留IP地址范圍:
.0.0 .0 – 10.255.255.255
.16.0..31.255.255
.168.0..168.255.255。
來自保留IP地址的網(wǎng)絡交通不會經(jīng)過Internet路由器,因此被賦予保留IP地址的任何計算機不能從外部網(wǎng)絡訪問。但是,這種方法同時也不允許用戶訪問外部網(wǎng)絡。IP偽裝可以解決這一問題。
12、合理選擇Linux發(fā)行版本:
對于服務器使用的Linux版本,既不使用最新的發(fā)行版本,也不選擇太老的版本。應當使用比較成熟的版本:前一個產(chǎn)品的最后發(fā)行版本如RHEL 3.0等。畢竟對于服務器來說安全穩(wěn)定是之一的。
13、部署Linux防范病毒軟件
Linux操作系統(tǒng)一直被認為是Windows系統(tǒng)的勁敵,因為它不僅安全、穩(wěn)定、成本低,而且很少發(fā)現(xiàn)有病毒傳播。但是,隨著越來越多的服務器、工作站和個人電腦使用Linux軟件,電腦病毒制造者也開始攻擊這一系統(tǒng)。對于Linux系統(tǒng)無論是服務器,還是工作站的安全性和權(quán)限控制都是比較強大的,這主要得力于其優(yōu)秀的技術(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服務器,但是卻會傳播給訪問它的Windows系統(tǒng)平臺的計算機。
關(guān)于Linux的安全問題
安全是針對性很強的問題,根據(jù)linux版本不同的。
比如 suse 是默認配置也是安全性高的。
一、關(guān)閉不必要的服務
Linux的服務分為兩種,一種是由inetd超級服務器來啟動的,如:ftp、telnet等;對于這些服務來說,系統(tǒng)并不總是運行telnetd、 ftpd等服務進程,而是由inetd進程監(jiān)聽這些服務的服務端口,一旦有服務請求到達就啟動對應的服務進程(如:telnetd等)來提供服務。另外一種是獨立的服務器,系統(tǒng)一直運行有對應的服務進程。
關(guān)閉這兩種服務的方法是不同的,對于inetd啟動的進程:
inetd超級服務器的配置文件為/etc/inetd.conf,該文件指示了inetd應該監(jiān)聽哪些服務請求,并在請求時啟動對應的服務。因此只要通過編輯/etc/inetd.conf文件就可以實現(xiàn)關(guān)閉不需要的服務,例如希望關(guān)閉pop3服務,則在編輯/etc/inetd.conf文件以前文件中有如下的內(nèi)容:
pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
要關(guān)閉pop3服務則在該行前添加注釋符即可:
#pop-3 stream tcp nowait root /usr/in/tcpd ipop3d
通過編輯該文件,實現(xiàn)關(guān)閉不需要的服務(例如我的系統(tǒng)我僅僅開放了telnet和ftp服務)以后,則需要重新啟動inetd超級服務器。首先找到inetd的進程號:
# ps ax|grep inetd
358 ? S 0:00 inetd
然后重新啟動inetd服務器:
# kill -HUP 358
最后因為inetd.conf應該不允許普通用戶讀寫,因此設置其訪問權(quán)限為600:
chmod 600 /etc/inetd.conf
而且該文件應該不被任何用戶修改,包括root用戶。因此為了防止用戶錯誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/inetd.conf
對于獨立服務器,則需要通過/usr/in/ntsysv命令來修改:
只需要服務前面通過空格鍵來選擇是否在系統(tǒng)啟動時啟動該服務就可以實現(xiàn)關(guān)閉某個服務器,如:希望系統(tǒng)關(guān)閉dhcpd服務,則通過上下鍵選中該服務器,然后通過空格鍵去掉該服務前內(nèi)的星號即表示系統(tǒng)啟動時不開放該服務。若希望了解某個服務的具體含義,可以選擇該服務以后按F1鍵來查看該服務的含義。
設置完畢以后,只有希望打開的服務前的內(nèi)才會有星號。然后通過Tab鍵選擇OK,按空格鍵。重新啟動機器。
重新啟動機器以后,可以通過下面的命令來察看系統(tǒng)打開了哪些服務,來決定是否已經(jīng)關(guān)閉了不需要的服務,例如我僅僅希望提供telnet服務則:
$ netstat -ln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node Path
從上面的命令輸出可以看到系統(tǒng)僅僅開放了23號端口,也就是telnet服務。
二、控制使用開放的服務的用戶
在上面提到的/etc/inetd.conf的配置文件中,我們看到pop3服務配置一行的最后兩個字段為:
/usr/in/tcpd ipop3d
很顯然,pop3的服務器程序為ipop3d,那么/usr/in/tcpd又是什么含義呢?這是一個稱為Tcp wrapper的安全程序。該程序用來在啟動某個服務以前查看兩個配置文件來決定該用戶是否允許使用該服務。在/etc目錄下,有兩個文件: hosts.deny hosts.allow。
通過配置這兩個文件,你可以指定哪些客戶機允許使用這些服務。配置這兩個文件是通過一種簡單的訪問控制語言來實現(xiàn)的,訪問控制語句的基本格式為: 程序名列表,主機名/IP地址列表。
程序名列表指定一個或者多個提供相應服務的程序的名字,名字之間用逗號或者空格分隔,可以在inetd.conf文件里查看提供相應服務的程序名:如上面的文件示例中,pop所在行的最后一項就是所需的程序名:ipop3d。
主機名/IP地址列表指定允許或者禁止使用該服務的一個或者多個主機的標識,主機名之間用逗號或空格分隔。程序名和主機地址都可以使用通配符,實現(xiàn)方便的指定多項服務和多個主機。 當服務請求到達服務器時,訪問控制軟件就按照下列順序查詢這兩個文件,直到遇到一個匹配為止:
1. 當在/etc/hosts.allow里面有一項與請求服務的主機地址項匹配,那么就允許該主機獲取該服務
2. 否則,如果在/etc/hosts.deny里面有一項與請求服務的主機地址項匹配,就禁止該主機使用該項服務
3. 若均沒有匹配,則允許使用該服務。若相應的配置文件不存在,訪問控制軟件就認為是一個空文件,所以可以通過刪除或者移走配置文件實現(xiàn)對所有主機關(guān)閉所有服務。
在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加 # 實 現(xiàn)注釋功能。Linux提供了下面靈活的方式指定進程或者主機列表:
1. 一個以”.”起始的域名串,如 .amms.ac.cn 那么
www.amms.ac.cn
就和這一項匹配成功
2. 以.結(jié)尾的IP串如 202.37.152. 那么IP地址包括202.37.152.的主機都與這一項匹配
3. 格式為n.n.n.n/m.m.m.m表示網(wǎng)絡/掩碼,如果請求服務的主機的IP地址與掩碼的位與的結(jié)果等于n.n.n.n 那么該主機與該項匹配。
4. ALL表示匹配所有可能性
5. EXPECT表示除去后面所定義的主機。如:list_1 EXCEPT list_2 表示list_1主機列表中除去List_2所列 出的主機
6. LOCAL表示匹配所有主機名中不包含.的主機
上面的幾種方式只是Linux提供的方式中的幾種,但是對于我們的一般應用來說是足夠了。我們通過舉幾個例子來說明這個問題:
例一:我們只希望允許同一個局域網(wǎng)的機器使用服務器的ftp功能,而禁止上面的ftp服務請求,本地局域網(wǎng)由 202.39.154. 、202.39.153. 和202.39.152. 三個網(wǎng)段組成。在hosts.deny文件中,我們定義禁止所有機器請求所有服務: ALL:ALL 在hosts.allow文件中,我們定義只允許局域網(wǎng)訪問ftp功能:
in.ftpd: 202.39..39.153. 202.39.152.
這樣,當非局域網(wǎng)的機器請求ftp服務時,就會被拒絕。而局域網(wǎng)的機器可以使用ftp服務。
然后重新啟動你的 inetd進程:
/etc/rc.d/init.d/inet restart
但是hosts.deny|allow文件只控制/etc/inetd.conf文件中包含的服務的訪問這些服務有/usr/bin/tcpd管理,監(jiān)聽接入的網(wǎng)絡請求,然后與在hosts.allow和hosts.deny的中的服務比較,然后做出允許或拒絕的決定。
最后因為hosts.allow|hosts.deny應該不允許普通用戶讀寫,因此設置其訪問權(quán)限為600:
chmod 600 /etc/hosts.*
并且該文件應該不被任何用戶修改,包括root用戶。因此為了防止用戶錯誤的修改該文件,為該文件添加不可修改位:
chattr i /etc/hosts.*
三、”/etc/exports”文件設置
如果通過NFS把文件共享出來,那么一定要配置”/etc/exports”文件,使得訪問限制盡可能的嚴。這就是說,不要用通配符,不允許對根目錄有寫權(quán)限,而且盡可能只給只讀權(quán)限。編輯exports文件(vi /etc/exports)加入:
例如:
/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)
“/dir/to/export”是你想共享出來的目錄,host.mydomain.com是允許訪問這個目錄的計算機。
代表只讀,代表不允許對根目錄進行寫操作。使這些改變生效,你還要運行 “/usr/in/exportfs -a”命令。
注意:在服務器上裝NFS服務是會有安全隱患的,就我個人而言,不建議你使用NFS。
四、禁止使用控制臺程序
一個最簡單而且最常用的保證系統(tǒng)安全的方法就是禁止使用所有的控制臺程序,如:shutdown和halt??梢赃\行下面的命令來實現(xiàn):
# rm -f /etc/security/console.apps/servicename
這里servicename是你要禁止的控制臺程序名。除非你使用xdm,否則不要把xserver文件刪掉,如果這樣除了root之外,沒有人可以啟動 X服務器了。(如果使用xdm啟動X服務器,這時root是唯一需要啟動X服務器的用戶,這才有必要把xserver文件刪掉)。例如:
# rm -f /etc/security/console.apps/halt
# rm -f /etc/security/console.apps/poweroff
# rm -f /etc/security/console.apps/reboot
# rm -f /etc/security/console.apps/shutdown
# rm -f /etc/security/console.apps/xserver (如果刪除,只有root可以啟動X).
這些命令就可以禁止所有的控制臺程序:halt、poweroff、reboot和shutdown。記住,只有裝了Xwindow,刪除xerver文件才會有效果。
五、”/etc/aliases”文件
aliases文件可能會造成安全隱患。例如:很多的軟件產(chǎn)商都把 “decode”這個別名放在aliases文件里。這樣做的目的是為了方便通過email傳送二進制文件。在發(fā)送郵件的時候,用戶把二進制文件用 “uuencode”轉(zhuǎn)成ASCII文件,然后把結(jié)果發(fā)給接收端的”decode”。由這個別名讓郵件信息通過”/usr/bin/uuencode”程序把二進制文件重新轉(zhuǎn)換成ASCII文件。如果允許”decode”出現(xiàn)在aliases文件中,可以想象將會有什么樣的安全隱患。
把定義”decode”這個別名的行從aliases文件中刪除。同樣地,每一個會運行程序的別名都要好好查看一下,很有可能要把它們刪除掉。要使改動生效,還必須運行:
# /usr/bin/newaliases
編輯aliases文件(vi /etc/aliases),刪除或注釋掉下面這些行:
# Basic system aliases — these MUST be present.
MAILER-DAEMON: postmaster
postmaster: root
# General redirections for pseudo accounts.
bin: root
daemon: root
#games: root
#ingres: root
nobody: root
#system: root
#toor: root
#uucp: root
# Well-known aliases.
#manager: root
#dumper: root
#operator: root
# trap decode to catch security attacks
#decode: root
# Person who should get roots mail
#root: marc
最后記得運行”/usr/bin/newaliases”使改變生效。
六、使系統(tǒng)對ping沒有反應
防止你的系統(tǒng)對ping請求做出反應,對于網(wǎng)絡安全很有好處,因為沒人能夠ping你的服務器并得到任何反應。TCP/IP協(xié)議本身有很多的弱點,黑客可以利用一些技術(shù),把傳輸正常數(shù)據(jù)包的通道用來偷偷地傳送數(shù)據(jù)。使你的系統(tǒng)對ping請求沒有反應可以把這個危險減到最小。用下面的命令:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
運行完這個命令后,系統(tǒng)對ping就沒有反應了??梢园堰@一行加到”/etc/rc.d/rc.local”文件中去,這樣當系統(tǒng)重新啟動的時候,該命令就會自動運行。對ping命令沒有反應,至少可以把絕大多數(shù)的黑客排除到系統(tǒng)之外,因為黑客不可能知道你的服務器在哪里。重新恢復對ping的響應,可以用下面的命令:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all”
七、不要顯示系統(tǒng)提示信息
如果你不想讓遠程登錄的用戶看到系統(tǒng)的提示信息,你可以改變”/etc/inetd.conf”文件中的telnet設置:
telnet stream tcp nowait root /usr/in/tcpd in.telnetd -h
在末尾加上”-h”參數(shù)可以讓daemon不顯示任何系統(tǒng)信息,只顯示登錄提示。當然,只有在服務器上裝了telnet服務器才有這樣做的必要。
八、”/etc/host.conf”文件
Linux用解析器(resolver)庫把主機名翻譯成IP地址?!?etc/host.conf”文件定義主機名是怎樣解析的?!?etc/host.conf”文件中的項告訴解析器庫用什么服務,以什么順序解析主機名。
編輯”host.conf”文件(vi /etc/host.conf)加入下面這些行:
# Lookup names via DNS first then fall back to /etc/hosts.
order bind,hosts
# We have machines with multiple IP addresses.
multi on
# Check for IP address spoofing.
nospoof on
order選項指明的是選擇服務的順序。上面”order bind, hosts”說的是解析器庫解析文件名的時候先查詢域名服務器,然后再查看”/etc/hosts”文件。因為性能和安全上的原因,更好將解析器庫的查找順序設成先查域名服務器(bind)。當然也要先安裝了DNS/BIND軟件,否則這樣配置根本沒有任何作用。
multi選項決定在”/etc/hosts”文件中出現(xiàn)的主機能不能有多個IP地址(多個網(wǎng)絡界面)。具有多個IP網(wǎng)絡界面的主機被稱為具有多個網(wǎng)絡界面(multiomed),因為同時有多個IP地址也就意味著這臺主機有多個網(wǎng)絡界面。例如:網(wǎng)關(guān)服務器就有多個IP地址,必須把這個選項設成ON。
nospoof選項指明不允許IP偽裝。IP偽裝是把自己偽裝成別的計算機去欺騙其它的計算機,獲得它的信任。這種攻擊方法把自己偽裝成別的服務器,并且與其它客戶機、服務器和大型數(shù)據(jù)存儲系統(tǒng)建立網(wǎng)絡連接或其它類型的網(wǎng)絡活動。不管對任何類型的服務器,這個選項都要設成ON。
九、防止源路由
路由和路由協(xié)議會導致一些問題。IP源路徑路由(IP source routing),也就是IP包包含到達底目的地址的詳細路徑信息,是非常危險的,因為根據(jù)RFC 1122規(guī)定目的主機必須按原路徑返回這樣的IP包。如果黑客能夠偽造原路徑路由的信息包,那么它就能截取返回的信息包,并且欺騙你的計算機,讓它覺得正在和它交換信息的是可以信任的主機。我強烈建議你禁止IP原路徑路由以避免這個安全漏洞。
用下面的命令在你的服務器上禁止IP原路徑路由:
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
done
把上面的命令加到”/etc/rc.d/rc.local”文件中去,你就不用在系統(tǒng)重新啟動之后再把這些命令敲一遍。注意,上面的命令將禁止所有的網(wǎng)絡界面(lo、ethN、pppN,等等)的源路徑路由包。
十、使TCP SYN Cookie保護生效
“SYN Attack”是一種拒絕服務(DoS)的攻擊方式,會消耗掉系統(tǒng)中的所有資源,迫使服務器重新啟動。拒絕服務(這種攻擊方式用巨大的信息流來消耗系統(tǒng)的資源,以至于服務器不能夠響應正常的連接請求)是很容易被黑客利用的。在2.1系列的內(nèi)核中,”syn cookie”只是一個可選項,并沒有使其生效。想要使其生效必須用下面的命令:
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
把這個命令加入”/etc/rc.d/rc.local”文件中,等下次系統(tǒng)重新啟動的時候就不必重新敲一遍了。如果打算安裝IPCHAINS防火墻,你就沒有必要用這個命令,因為它已經(jīng)包含在防火墻的腳本文件里了。
十一、特殊的帳號
禁止中不必要的預置帳號(每次升級或安裝完都要檢查一下)。Linux系統(tǒng)中就提供這樣一些你可能不需要的預置帳號。如果確實不需要這些帳號,就把它們刪掉。系統(tǒng)中有越多的帳號,就越容易受到攻擊。
我們假定你已經(jīng)在系統(tǒng)中使用shadow口令。如果不是這樣,更好在系統(tǒng)中加上shadow口令的支持,因為這樣系統(tǒng)會更安全。如果你是按照上一章介紹的方法安裝服務器,那么在”安全驗證配置”這一步就已經(jīng)選上”Enable Shaow Passwords”這個選項了。
在系統(tǒng)中刪除一個用戶可以用這個命令:
# userdel username
在系統(tǒng)中刪除一個組可以用這個命令:
# groupdel username
之一步 用下面的命令刪除一些不必要的用戶:
# userdel adm
# userdel lp
# userdel sync
# userdel shutdown
# userdel halt
# userdel news
# userdel uucp
# userdel operator
# userdel games (如果不用X Window服務器,可以刪除這個用戶)
# userdel gopher
# userdel ftp (如果沒安裝匿名ftp服務器,可以刪除這個用戶)
第二步 輸入下面的命令刪除一些不必要的組:
# groupdel adm
# groupdel lp
# groupdel news
# groupdel uucp
# groupdel games (delete this group if you don use X Window Server).
# groupdel dip
# groupdel pppusers
# groupdel popusers (delete this group if you don use pop server for email).
# groupdel slipusers
第三步
“不允許改變”位可以用來保護文件使其不被意外地刪除或重寫,也可以防止有些人創(chuàng)建這個文件的符號連接。刪除”/etc/passwd”、 “/etc/shadow”、”/etc/group”或”/etc/gshadow”都是黑客的攻擊方法。給口令文件和組文件設置不可改變位,可以用下面的命令:
# chattr i /etc/passwd
# chattr i /etc/shadow
# chattr i /etc/group
# chattr i /etc/gshadow
注意:如果將來要在口令或組文件中增加或刪除用戶,就必須先清除這些文件的不可改變位,否則就不能做任何改變。如果沒有清除這些文件的不可改變位,安裝那些會自動在口令文件和組文件中加入新用戶的rpm軟件包的時候,在安裝過程中就會出現(xiàn)出錯的提示。
十二、防止任何人都可以用su命令成為root
如果不想任何人都可以用”su”命令成為root或只讓某些用戶有權(quán)使用”su”命令,那么在”/etc/pam.d/su”文件中加入下面兩行。建議盡量限制用戶通過”su”命令成為root。
之一步
編輯su文件(vi /etc/pam.d/su)在文件的頭部加入下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
加入這兩行之后,”/etc/pam.d/su”文件變?yōu)椋?
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so
這兩行的意思是只有”wheel”組的成員才能用su命令成為root。注意,”wheel”組是系統(tǒng)中用于這個目的的特殊帳號。不能用別的組名。
第二步
在”/etc/pam.d/su”配置文件中定義有”wheel”組,現(xiàn)在介紹一下怎樣讓一些用戶可以用”su”命令成為”root”。下面是一個例子,讓admin用戶成為”wheel”組的成員,這樣就可以用”su”命令成為”root”:
# usermod -G10 admin
“G”是表示用戶所在的其它組?!?0″是”wheel”組的ID值,”admin”是我們加到”wheel”組的用戶。用同樣的命令可以讓其他的用戶可以用su命令成為root。
十三、 把rpm程序轉(zhuǎn)移到一個安全的地方,并改變默認的訪問許可
一旦在上用rpm命令安裝完所有需要的軟件,更好把rpm程序轉(zhuǎn)移到一個安全的地方,如:軟盤或其它你認為安全的地方。因為如果有人入侵了你的服務器,他就不能用rpm命令安裝那些有害的軟件。當然,如果將來要用rpm安裝新的軟件,你就要把rpm程序拷回原來的目錄。把rpm程序移到軟盤上,用下面的命令:
# mount /dev/fd0 /mnt/floppy/
# mv /bin/rpm /mnt/floppy/
# umount /mnt/floppy
注意:千萬不要把rpm程序從系統(tǒng)中卸載掉,否則以后就不能重新安裝它,因為安裝rpm程序或其它軟件包本身就要用rpm命令。
還有一點要注意的是,把rpm命令的訪問許可從默認的755改成700。這樣非root用戶就不能使用rpm命令了。特別是考慮到萬一在安裝完新軟件之后忘了把rpm程序移到一個安全的地方,這樣做就更有必要了。
改變”/bin/rpm”默認的訪問權(quán)限,用下面這個命令:
# chmod 700 /bin/rpm
十四、登錄shell
為了方便重復輸入很長的命令,bash shell可以在”~/.bash_history”文件(”~/”是家目錄,每個用戶都是不一樣的)中存500個曾經(jīng)輸入過的命令。每一個有自己帳號的用戶,在自己的家目錄中,都會有”.bash_history”文件??赡軙羞@種情況,用戶在不該輸入口令的地方輸入了口令,而輸入的口令會在 “.bash_history”文件中保存下來。而且”.bash_history”文件越大這種可能性也越大。
在”/etc/profile”文件中HISTFILESIZE和HISTSIZE這兩行決定了系統(tǒng)中所有用戶的 “.bash_history”文件可以保存多少命令。我建議把”/etc/profile”文件中的HISTFILESIZE和HISTSIZE都設成一個比較小的值,如:20。
編輯profile文件(vi /etc/profile),把這些行改成:
HISTFILESIZE=20
HISTSIZE=20
這樣每個用戶家目錄下的”.bash_history”就最多只能存20個命令。如果黑客試圖在用戶的”~/.bash_history”文件中發(fā)現(xiàn)一些口令,他就沒有什么機會了。
十五、改變”/etc/rc.d/init.d/”目錄下的腳本文件的訪問許可
改變啟動和停止daemon的腳本文件的權(quán)限。
# chmod -R 700 /etc/rc.d/init.d/*
這樣只有root可以讀、寫和執(zhí)行這個目錄下的腳本。我想一般用戶沒有什么必要知道腳本文件的內(nèi)容。
注意:如果你安裝或升級了一個程序,要用到”/etc/rc.d/init.d/”中system V腳本,不要忘記再檢查一下改變和檢查這個腳本文件的許可。
給Grub設了密碼(通常在裝系統(tǒng)時設定),在第二步按”e”時,
就會提示你輸入Grub密碼,輸對了才能修改啟動參數(shù).
所以給Grub設個密碼就好了.
(要使用resuce光盤來恢復密碼,就只有BIOS能抵抗了,其實Windows密碼不也可以用啟動光盤輕松破譯嗎?)
關(guān)于linux 服務器安全配置的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
香港服務器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
新聞標題:加固你的網(wǎng)絡:Linux服務器安全配置全攻略(linux服務器安全配置)
本文路徑:http://www.5511xx.com/article/djpjjdp.html


咨詢
建站咨詢
