自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux服務器平臺的安全保護

安全 網(wǎng)站安全
互聯(lián)網(wǎng)上有許多企業(yè)公司和組織采用Linux作為服務器平臺。當這些服務器與互聯(lián)網(wǎng)連接以提供應用服務時,不可避免地會成為攻擊目標。本文討論Linux系統(tǒng)安全配置的一些基本知識,以幫助你保護Linux系統(tǒng)。

互聯(lián)網(wǎng)上有許多企業(yè)公司和組織采用Linux作為服務器平臺。當這些服務器與互聯(lián)網(wǎng)連接以提供應用服務時,不可避免地會成為攻擊目標。本文討論Linux系統(tǒng)安全配置的一些基本知識,以幫助你保護Linux系統(tǒng)。

雖然在這里以Red Hat 6.0為例子,但也應該適用于其它Linux發(fā)行版本。

1、安裝

配置系統(tǒng)安全的頭一步最好是在系統(tǒng)的開始--操作系統(tǒng)的安全。因為配置的是防火墻,所以你絕對不能信任任何以前的系統(tǒng)安裝和配置,而應該從全新安裝開始,才能真正保證系統(tǒng)安全的完整性。

使你的系統(tǒng)處于單獨(或隔離)的網(wǎng)絡中。決不要讓未受保護的系統(tǒng)連接到其它網(wǎng)絡或互聯(lián)網(wǎng)中受到可能的攻擊。按我個人的經(jīng)驗,一個連接到互聯(lián)網(wǎng)的新安裝系統(tǒng)可以在15分鐘內被掃描和入侵取得完全控制權。你可能需要另一臺機器從互聯(lián)網(wǎng)獲取重要工具和安全補丁等等,然后再從這些機器將其傳送到單獨的"配置網(wǎng)絡"中。

當把將要作為未來防火墻的機器放置于隔離的網(wǎng)絡中時,就可以開始下一步了。

第一步是選擇操作系統(tǒng)將要安裝的軟件包。對于Red Hat 6.0,提供了三種安裝選擇:Workstation(工作站)、Server(服務器)、Custom(定制,缺省選項)。我個人強烈推薦"定制",因為這允許你選擇添加哪些服務和硬盤如何分區(qū)。安裝策略是在維持最大化效率時進行"最小化"安裝。系統(tǒng)中的軟件越少,潛在的安全漏洞就會越少。例如,如果你不需要News或Real Audio Server,就不要安裝它。Linux系統(tǒng)有一個好處就是如果你后來改變了想法,也是很容易添加所需軟件包的。不管選擇了哪種安裝方式,手冊頁和HOWTO文檔都應該是必不可缺的。雖然可能會使系統(tǒng)增加一點點風險,但它們有時確實特別有用。

如果選擇了"定制"安裝,會被提示進行硬盤分區(qū)。我個人通常喜歡使根分區(qū)盡可能地大,并且把所有東西都放在那里。然后,我們確實需要創(chuàng)建幾個分區(qū)以保護根分區(qū)。因為如果根分區(qū)被例如系統(tǒng)日志或電子郵件等數(shù)據(jù)塞滿的話,就會出現(xiàn)拒絕服務,甚至有可能使系統(tǒng)崩潰。

因此,我總是推薦為/var設置一個單獨的分區(qū)。/var是用于存放系統(tǒng)所有日志和電子郵件的地方,將/var分區(qū)獨立出來,就能夠有效地保護根分區(qū)被這些數(shù)據(jù)塞滿。對于許多網(wǎng)絡環(huán)境,為/var分區(qū)設置不少于400MB基本上就足夠了。另外可以考慮為某些特定的服務或應用創(chuàng)建或保留單獨的分區(qū),特別是敏感的日志記錄。如果系統(tǒng)中存在不可完全信任的用戶,也許應該為/home創(chuàng)建單獨的分區(qū),這樣可以避免惡意用戶輕易攻擊/根分區(qū)。對于一臺獨立服務器以下是一個分區(qū)實例:

/ - everything else

/var - 400 MB

swap - (I normally go with 256 MB)

當系統(tǒng)安裝完成并重啟后,務必要安裝必需的安全補丁。對于Red Hat,可以到http://www.redhat.com/apps/support/updates.html找到它的所有安全補丁程序。安全補丁對于維持一個安全的防火墻是至關重要的,應該經(jīng)常保持更新。

   bugtraq@securityfocus.comredhat-watch-list-request@redhat.com是獲取最新安全漏洞信息的最佳資源。如果不安裝這些補丁,你的系統(tǒng)可能會輕易入侵。記住,從上面提及的另一臺機器獲取這些補丁,防火墻機器應該仍處于隔離網(wǎng)絡中。對于Red Hat系統(tǒng),下載RPM包會使系統(tǒng)更新變得更簡單。例如是對wu-ftpd進行安全升級的實例:

rpm -Uvh wu-ftpd-2.6.0-14.6x.i386.rpm

如果系統(tǒng)早已處于互聯(lián)網(wǎng)上,可以直接從互聯(lián)網(wǎng)上安裝:

rpm -Uvh ftp://updates.redhat.com/6.1/i386/wu-ftpd-2.6.0-14.6x.i386.rpm

推薦使用autorpm工具保持對RPM軟件包的補丁更新。這個命令行工具分析確定哪些.rpm包需要升級,并會自動(如果你愿意的話)從Red Hat的網(wǎng)站上下載并安裝升級文件。這個工具的使用非常靈活簡單,可以讓其在cron中運行,這樣你的系統(tǒng)就會定期自動檢查升級更新,并可以向管理員發(fā)送提醒系統(tǒng)需要升級的電子郵件。

2、關閉服務

一旦安裝完系統(tǒng)的安裝包、補丁,重啟后,我們現(xiàn)在就可以開始對操作系統(tǒng)進行安全增強配置了。安全增強配置主要包括關閉服務、增加日志、調整幾個文件和配置TCP Wrappers。首先從關閉服務開始。

缺省情況下,Solaris是一個提供許多有用服務的高性能操作系統(tǒng)。然而,對于防火墻來說,其中的大多數(shù)服務是不需要,且可能是安全風險。首先需要修改/etc/inetd.conf文件。這個文件定義了由/usr/sbin/inetd超級守護進程需要監(jiān)聽的服務。缺省情況下,/etc/inetd.conf會啟動35個服務,然而最多僅需要兩項:ftp和telnet。其余服務都不是必需的,可以將它們注釋(關閉)。這是很重要的,因為inetd監(jiān)聽的許多服務存在嚴重的安全威脅,例如popd、imapd和rsh。以下命令列出inetd守護進程會監(jiān)聽的服務,請確認將其中不必要的服務的所在行注釋(行首加"#"號):

grep -v "^#" /etc/inetd.conf

下一步要修改的是/etc/rc2.d和/etc/rc3.d目錄下的文件。在這里你能夠找到被init進程執(zhí)行的啟動腳本。其中也有許多是不需要的。要取消在啟動過程中執(zhí)行一個腳本,只需將對應文件名的起始大寫S改為小寫s即可。此外,Red Hat系統(tǒng)中帶有一個好工具用以關閉服務。只要在命令行輸入"/usr/sbin/setup",然后選擇"System Services",接著再選擇在系統(tǒng)啟動時需要執(zhí)行的腳本。另外還有一種方法就是在大多數(shù)發(fā)行版本中都帶有的chkconfig工具。以下啟動腳本是系統(tǒng)缺省安裝,但通常卻不是必需的。如果確定不需要它們,應該將禁止其啟動。

注意其中的數(shù)字用于決定執(zhí)行的順序,在不同的發(fā)行版本中可能會有所變化。以大寫K開始的腳本用于kill已經(jīng)在運行中的服務。

S05apmd (僅有筆記本電腦才需要)

S10xntpd (網(wǎng)絡時間協(xié)議)

S11portmap (如果運行RPC服務則必需打開)

S15sound (保存聲卡設置)

S15netfs (NFS客戶端,用于從NFS服務器安裝文件系統(tǒng))

S20rstatd (向遠程用戶泄露過多信息)

S20rusersd

S20rwhod

S20rwalld

S20bootparamd (用于無盤客戶端,通常都不需要)

S25squid (代理服務器)

S34yppasswdd (如果系統(tǒng)運行NIS服務器,則必需此服務)

S35ypserv (如果系統(tǒng)運行NIS服務器,則必需此服務)

S35dhcpd (啟動DHCP服務器守護進程)

S40atd (at服務,類似cron服務,但系統(tǒng)通常不需要)

S45pcmcia (僅有筆記本電腦才需要)

S50snmpd (SNMP守護進程,向遠程用戶泄露過多信息)

S55named (DNS服務器。如果需要運行DNS,請升級到最新版本)

S55routed (RIP,僅在必需時才應該啟動)

S60lpd (打印服務)

S60mars-nwe (Netware文件和打印服務器)

S60nfs (用于NFS服務器。除非必須,此服務不應運行)

S72amd (AutoMount守護進程,用于自動安裝遠程文件系統(tǒng))

S75gated (用于運行其它路由協(xié)議,例如OSPF)

S80sendmail (如果不需要接收或轉發(fā)電子郵件應關閉。此時仍可發(fā)送電子郵件)

S85httpd (Apache服務器,建議升級到最新版本)

S87ypbind (僅有NIS客戶端才需要)

S90xfs (X Windows系統(tǒng)字體服務器

S95innd (News服務器)

S99linuxconf (通過瀏覽器遠程配置Linux系統(tǒng))

要想在修改啟動腳本前了解有多少服務正在運行,輸入:

ps aux | wc -l

然后修改啟動腳本后,重啟系統(tǒng),再次輸入上面的命令,就可計算出減少了多少項服務。越少服務在運行,安全性就越好。另外運行以下命令可以了解還有多少服務在運行:

netstat -na --ip

3、日志和系統(tǒng)調整

在盡可能多地取消服務后,下一步就是配置系統(tǒng)日志了。所有的系統(tǒng)日志存放在/var/log目錄下。缺省時,Linux有不錯的日志設置,除了ftp。有兩種方法記錄ftp的日志,配置/etc/ftpaccess文件或編輯/etc/inetd.conf。建議采用相對簡單的編輯/etc/inetd.conf文件的方法。通過編輯/etc/inetd.conf文件如下,可以記錄所有FTP會話的所有日志。

ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o

--- 以下選自ftp手冊頁 ---

如果指定-l參數(shù),syslog會記錄每一個ftp會話。

如果指定-L參數(shù),缺省時一旦ftp服務器被調用,命令日志就會激活。這將使服務器記錄下所有的USER命令。注意,此時如果一個用戶偶然性地在用戶名輸入時輸入了口令,該口令會被syslog記錄下來!

如果指定-i參數(shù),ftpd服務器接收到的文件都會被記錄到xferlog。

如果指定-o參數(shù),ftpd服務器發(fā)送的文件都會被記錄到xferlog。

--- snip snip ---

下一步配置是系統(tǒng)調整。這包括了多個文件的管理。第一件事情是確保/etc/passwd文件的安全。首先要確認系統(tǒng)使用了/etc/shadow文件,此保存了所有用戶口令密文的文件僅允許root根用戶訪問,這可以阻止用戶口令輕易地被訪問和破解。Red Hat 6.0缺省時使用了shadow口令系統(tǒng),但務必要檢查確定。只要運行以下命令,就會將口令系統(tǒng)自動轉換到/etc/shadow口令系統(tǒng):

pwconv

第二步是刪除/etc/passwd文件中許多缺省的系統(tǒng)帳號。Linux提供這些帳號主要是用于許多其實極少需要的系統(tǒng)操作。如果不需要這些帳號,刪除它們。帳號越多,系統(tǒng)被入侵的可能性就越大。例如"news"帳號,如果不運行nntp新聞組服務器,就不需要該帳號(注意要更新/etc/cron.hourly文件,因為腳本中涉及到了"news"用戶)。另外,一定要刪除"ftp"帳號,因為該帳號僅用于匿名FTP訪問。

我們還要修改/etc/ftpusers文件。任何被列入該文件的帳號將不能ftp到本系統(tǒng)。通常用于限制系統(tǒng)帳號,例如root和bin等,禁止這些帳號的FTP會話。缺省時Linux已創(chuàng)建了該文件。一定要確保root根用戶被包含在該文件中,以禁止root與系統(tǒng)的ftp會話。檢查并確認需要FTP到該防火墻的所有帳號**不**在/etc/ftpusers文件中。

另外,確保根用戶root不能telnet到系統(tǒng)。這強迫用戶用其普通帳號登錄到系統(tǒng),然后再su成為root。/etc/securetty文件列出了root所能連接的tty終端。

將tty1、tty2等列入該文件中,使root用戶只能從本地登錄到系統(tǒng)中。ttyp1、ttyp2等是pseudo(虛擬)終端,它們允許root遠程telnet到系統(tǒng)中。

最后,創(chuàng)建/etc/issue文件。該ASCII文本文件用于在所有telnet登錄時顯示的信息。當試圖登錄到系統(tǒng)中時,該文件中的警告信息將被顯示。在Linux系統(tǒng)中要修改/etc/rc.d/init.d/S99local腳本文件,以生成固定的/etc/issue文件。

因為缺省時Linux在每次啟動時都生成新的/etc/issue文件。

4、連接到防火墻

通過安全可控的途徑連接到防火墻也是非常重要的。通常,我們需要遠程訪問防火墻以進行管理或上載文件。這些通訊需要考慮安全性。在這里我們主要討論兩種方式:ssh和TCP Wrappers。

我個人推薦ssh,因為它使在我們和防火墻之間的通訊都是經(jīng)過加密的。TCP Wrappers不能保證網(wǎng)絡通訊不被竊聽,使用戶仍然有可能捕獲通過網(wǎng)絡傳送的明文口令。如果你擔心被其它用戶竊聽你和防火墻之間的通訊,推薦用ssh替代telnet/ftp。ssh會話對其所有網(wǎng)絡通訊進行加密,使在防火墻上的管理和文件上載變得更安全。ssh和TCP Wrappers的相似之處是有自己的日志文件功能,并能限制哪些系統(tǒng)可以創(chuàng)建網(wǎng)絡連接。建議使用1.2.x版本的ssh,因為2.x版本有版權限制。對于Windows 95/NT用戶,推薦用SecureCRT作為ssh客戶端。

TCP Wrappers,雖然不支持加密,但它提供日志功能和控制何人能訪問系統(tǒng)。它通常用于為inetd中的服務,例如telnet或ftp,添加一層限制。當使用TCP Wrappers時,系統(tǒng)通過它來監(jiān)視inetd進程創(chuàng)建的連接,記錄所有連接請求,然后對照一個訪問控制列表(ACL)檢驗該請求。如果該連接是允許的,TCP Wrappers將此連接請求傳遞給相應的真正守護進程,例如telnet。如果該連接是禁止的,則TCP Wrappers會丟棄此連接請求。對于Linux系統(tǒng),TCP Wrappers缺省時就被安裝到系統(tǒng)中,我們只需編輯/etc/hosts.allow和/etc/hosts.deny文件即可。這些文件用于確定什么人能和不能訪問系統(tǒng)。TCP Wrappers的語法比較簡單,將被允許網(wǎng)絡連接的IP地址或網(wǎng)絡添加到/etc/hosts.allow文件,將被禁止網(wǎng)絡連接的IP地址或網(wǎng)絡添加到/etc/hosts.deny文件。缺省時,Linux允許所有連接,所以需要對這兩個文件進行修改。對于TCP Wrappers有以下兩點建議:

使用IP地址而不是系統(tǒng)名字或域名。

設置/etc/hosts.deny文件禁止所有連接(ALL),然后在/etc/hosts.allow文件中指定僅允許特定主機和網(wǎng)絡。

5、更嚴格的安全配置

以上討論的內容包括了所有的要點。通過執(zhí)行以上操作,你就可以顯著增強系統(tǒng)的安全性。然后不幸的是,你的系統(tǒng)并不是100%安全,而且永遠也不會是。因此,這里提供幾個更嚴格的安全配置方法和步驟。

首先是創(chuàng)建whell用戶組。wheel用戶組包含了允許執(zhí)行一些功能強大命令(例如/usr/bin/su)的用戶帳號列表。通過限制有權限訪問這些命令的用戶帳號,就能夠增強系統(tǒng)的安全性。要創(chuàng)建wheel組,用vi編輯文件/etc/group,創(chuàng)建wheel組并為其增加系統(tǒng)管理員帳號。然后確定重要的系統(tǒng)程序,例如/usr/bin/su。

把這些程序文件的組用戶設置為wheel,并只允許程序的屬主和組用戶執(zhí)行(注意要保留必需的suid或guid位)。例如對于/usr/bin/su,使用如下命令:

/usr/bin/chgrp wheel /usr/bin/su

/usr/bin/chmod 4750 /usr/bin/su

然后,我們需要限制.rhosts、.netrc和/etc/hosts.equiv文件的使用。r系列命令使用這些文件來訪問系統(tǒng)。要為這些文件加鎖,先創(chuàng)建它們,然后修改其屬性為零即可。這樣除了root用戶就沒有其它用戶能創(chuàng)建或修改它們了。

例如:

/usr/bin/touch /.rhosts /.netrc /etc/hosts.equiv

/usr/bin/chmod 0 /.rhosts /.netrc /etc/hosts.equiv


第三,配置/etc/shadow使用MD5哈希函數(shù)而不用crypt函數(shù)作為加密算法。這可以使被加密的口令文件更難以破解。這可以通過修改PAM模塊配置完成。PAM(Pluggable Authentication Modules)是一個共享庫套件,可用于選擇應用程序如何對用戶進行認證等。

在以前的舊版本中,必須手工修改PAM模塊以使用MD5哈希函數(shù)。然而在Red Hat 6.0及更高版本中,可用setup工具選擇MD5哈希。在命令行輸入"setup"然后選擇"authentication configuration",從那里就能夠選擇使用MD5哈希。然而,MD5哈希在用戶再次輸入其口令前并未真正生效。如果因為某些原因不使用setup工具,手工修改PAM模塊也是可以的。

作為bash用戶,我不大愿意使用.bash_history文件,因為不希望別人(包括root)知道我曾經(jīng)運行了哪些命令。所以,在.bash_profile文件里,我添加了一行,這樣命令就不會被記錄到.bash_history文件:

HISTFILESIZE=0

最后一件事情是保護系統(tǒng)不被攻擊者物理訪問。一是要為BIOS設置口令,二是通過在/etc/lilo.conf文件中配置口令保護(password=xxx)系統(tǒng)的啟動過程。然而記住,一旦系統(tǒng)被入侵者能夠完全物理接觸,則沒有任何方法能保證系統(tǒng)的絕對安全了。

6、IPChains

討論Linux安全性,不可能不討論IPChains。IPChains是集成到2.2.x內核中的包過濾防火墻軟件。只要運行了Red Hat 6.0或更高版本,IPChains已在Linux的安裝包中。IPChains與Cisco Access Control Lists(訪問控制列表)相似,它能夠控制什么數(shù)據(jù)包能夠進出Linux系統(tǒng)。作為一個防火墻軟件,IPChains能夠用于保護Linux系統(tǒng)。要保護一臺獨立服務器系統(tǒng),可以配置IPChains僅允許出站的TCP連接。如果外部主機試圖發(fā)起任何TCP連接,都會被禁止創(chuàng)建連接。由于IPChains不是基于狀態(tài)過濾的,因此通常允許所有的UDP和ICMP連接。最后,應該記錄下所有的被禁止連接,這樣可以發(fā)現(xiàn)可能的攻擊企圖。然而,對于廣播和多播數(shù)據(jù)包,應該將其丟棄,因為這些數(shù)據(jù)包可能會很快地填滿系統(tǒng)日志。以下是一個IPChains配置例子(保護獨立服務器系統(tǒng)):

bash# ipchains -L

Chain input (policy DENY):

target prot opt source destination ports

DENY all ------ 0.0.0.0 anywhere n/a

DENY all ------ anywhere 255.255.255.255 n/a

DENY all ------ anywhere BASE-ADDRESS.MCAST.NET/8 n/a

ACCEPT tcp !y---- anywhere anywhere any -> any

ACCEPT udp ----l- anywhere anywhere any -> any

ACCEPT icmp ----l- anywhere anywhere any -> any

DENY all ----l- anywhere anywhere n/a

Chain forward (policy ACCEPT):

Chain output (policy ACCEPT):

7、結論

我們在本文中討論了如何安全配置一臺Linux系統(tǒng)(Red Hat發(fā)行版本)的一些主要步驟。使一個系統(tǒng)安全的關鍵是最小化安裝,使用TCP Wrappers、IPChains等軟件、用shadow口令增加安全防護。此外還有一些附加步驟,例如tripwire(監(jiān)視系統(tǒng)文件的改動)和swatch(日志監(jiān)視和報警工具)。另外向Linux初學者推薦一個能夠自動對新安裝的Linux系統(tǒng)進行安全配置的PERL腳本:Bastille。記住,沒有系統(tǒng)是真正100%安全的。然而,通過以上列出的操作步驟,可以較大幅度地減少安全風險。

 

責任編輯:Oo小孩兒 來源: pcdog.com
相關推薦

2010-08-25 17:25:06

DHCP服務器

2010-05-12 17:33:44

2011-11-21 16:32:19

2023-06-26 14:19:35

2010-05-17 17:20:38

2012-11-26 14:24:30

2019-10-12 10:00:17

Linux服務器網(wǎng)絡

2019-04-30 10:27:46

無服務器云計算安全

2010-03-17 17:49:03

Java編程加密

2010-05-19 16:48:06

2018-01-31 11:20:48

2010-05-12 17:32:18

2009-10-28 13:28:05

2020-11-20 13:00:10

微軟Linux服務器

2021-11-14 11:53:05

Linux 系統(tǒng)攻防Linux 系統(tǒng)

2012-11-26 16:39:27

2009-10-21 09:47:40

UbuntuLinux服務器

2019-06-19 08:11:30

Linux服務器數(shù)據(jù)中心

2011-05-18 11:35:58

2011-03-18 13:41:50

點贊
收藏

51CTO技術棧公眾號