亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

教你配置Linux操作系統安全管理服務
2007-02-08   黑客基地 

任何計算機安全措施的一個重要方面是維持實際控制服務的運行,讓不必要的網絡服務接受請求將提高系統的安全風險。即使這些網絡服務對于服務器的某些功能是必要的也需要仔細管理,并且對其進行配置最小化不受歡迎的入侵和登錄的可能性。

為Linux系統配置安全性時,使用/etc/inittab文件、runlevels和一兩個服務管理“superdaemons”如inetd或xinetd直接管理服務。

Inittab

/etc/inittab文件用于系統的初始化過程啟動系統服務。在一個配置好的系統上,雖然它一般都不會包括很多服務,但是在某些Linux系統的默認安裝中會加載很多其他服務。/etc/inittab文件內容有些模糊,它的重要之處在于讓服務管理變得相對簡單。

首先,可不要通過/etc/inittab文件方式向系統啟動項中添加服務。

第二,不要移除/etc/inittab文件中第一個冒號之前其第一個字段是單精度型的數字,或整個登錄服務的前面部分。以單精度數字開頭的行可以打開TTY控制臺,所有服務在它們打開之前都一一列出,甚至列出其更重要的功能。也許有些例外情況,在不改動它時是很安全的,尤其如果不確定的情況下請不要改動。

第三,/etc/inittab在導入和runlevel選擇的時候用于過程管理。一般不用于正常的系統操作。

第四,在導入時由rc系統開始添加步驟,而不是init系統。如果看看/etc/inittab的內容,將會注意到登錄以rc0到rc6這樣的字符結束。這是初始化系統如何處理runlevels的說明。

Runlevels

基于Linux操作系統的運轉可以通過runlevels進行管理。不同的runlevels被定義成有不同的行為,就像Windows操作系統一樣,它有正常操作模式、安全模式、在某些情況下還有DOS模式。

Runlevel 0用于關閉系統,如果軟電源設置恰當,它能關閉系統電源。

Runlevel 1是單用戶無網絡的模式,它用于低水平的故障修復和管理操作。

Runlevel 2到Runlevel 5正常系統操作的多用戶模式。Runlevel2和3是命令行模式,3有網絡連接而2沒有網絡連接。Runlevel 5用于啟動X Windows提供圖形用戶接口。

Runlevel 6用于系統重啟,當整個init系統甚至bootloader 需要重啟時采用它。

其他runlevels由系統管理員進行定義,但是“傳統”UNIX系統沒有此功能。這種情況下,他們不能被定義也不能被使用。

在shell處,可以輸入runlevel命令找到以前的renlevel和當前runlevel。如果沒有更改系統 runlevel ,命令的輸出結果為大寫N后面跟runlevel的數字,這里的N表示沒有前runlevel,如果要更改runlevel,可以使用init命令,后面跟想要使用到的runlevel的數字。例如,輸入init 6表示重啟系統,或init 1 進入單用戶模式。

配置runlevel的過程每一版本的情況都不同。例如,在Debian GNU/Linux系統中,位于/etc/init.d的服務腳本有來自/etc/rcN.d的路徑與它們進行鏈接,這里的N表示需要配置的runlevel數字。以字母K開頭的symlinks指示在進入runlevel時被殺死的程序,而以字母 S開頭的symlinks指示在進入runlevel時被啟動的程序。字母后面的數字值越大,從1到99,表示啟動或殺死的時間愈靠后。

大多數基于RPM的版本都采用RedHat所用到的rc系統。比起基于Debian的系統,這一系統使用更復雜的路徑結構,并且不同的基于RPM的系統之間也有很大的不同。說明書上提供了更多的關于管理runlevel的信息。

Inetd

一個用于Linux后臺程序管理的“superdaemon”是眾所周知的inetd,它是個用于服務管理的命令行工具。終止服務很簡單:首先,作為根用戶用文本編輯器打開/etc/inetd.conf文件。接下來,找到文件中需要終止的服務。最后,在服務所在行的最前面添加#符號(其他還有“尖頂符”和“英鎊符”),如下所示。“注釋掉”這一行,因此inted以后都不會啟動這一服務。

編輯之前服務登錄可能是下面這樣:

ident stream tcp wait identd /usr/sbin/identd identd

停止之后,服務登錄變成下面這個樣子:

# ident stream tcp wait identd /usr/sbin/identd identd

如果正在卸載被登錄參考的后臺程序,可以刪除文件中的某些行——是否通過包管理器進行卸載或刪除執行文件卸載(對于上面的例子是/usr/sbin/identd文件)。

編輯/etc/inetd.conf文件之后,保存它,inetd以后則可以使用更改。編輯和保存一旦完成,可以在根部輸入下面的命令使更改即時生效:

kill -HUP `pidofinetd`

使用修改(保存)后的配置文件會導致inetd重啟。

Xinetd

另外一個稱為xinetd的superdaemon比inetd更新穎更復雜,能完成更多的功能。但是對于關閉服務來說,他們的使用方法相似。

使用xinetd時,必須在/etc/xinetd.conf文件中添加一行關閉服務。如果只想簡單的刪除服務,必須刪除好幾行代碼而不是一行。找到想要關閉的服務所在的那一塊,在塊的后面添加“disable = yes”這一行,或者刪除整個塊。例如,如果關閉telnet服務,需要像下面這樣做。(這里的省略號代表了塊的其他內容)

service telnet  

{  

. . .  

disable = yes  

}

在某些系統中,對于某些服務,服務配置并不在/etc/xinetd.conf文件中。例如,像telnet這樣的服務有可能在文件/etc/xinetd.d/telnet中,改變其服務配置方法與它在/etc/xinetd.conf文件中的方法是一樣的。

編輯保存了/etc/xinetd.conf文件后或者更改了服務文件后,可以輸入下面的命令讓修改即時生效:

kill -USR2 `pidofxinetd`

這將通知xinetd程序,使用更改后的配置。

Xinetd除了關閉或移除服務配置之外,還可以用于控制遠程主機登錄服務。這將通過幾個機制完成:

可以為服務指定一個允許的主機。例如:可以通過在服務配置文件中添加only_from = 192.168.0.101這一行限制主機登錄telnet服務。盡管使用了詞語“only”,但是它只能限制主機的數目,而不僅僅只一臺主機。也可以使用部分地址指定完整的網絡。例如:可以使用“only_from = 192.168.0.to”表示本地Class C的任何主機都能訪問這個服務。

可以在配置文件中為某個服務指定禁止的主機。例如:可以在配置文件中添加“no_access = 192.168.0.102”這一行禁止這個主機遠程訪問telnet服務。這個也可以使用多次而且也可以使用部分地址指定多個主機。萬一某個主機滿足only_from和no_access兩個限制,則會權衡確定其訪問權限。如果xinetd不能確定哪個限制能被應用,則系統默認更安全的選項——服務不會開啟。

超越服務管理

對于安全的遠程服務訪問,還有更多的事情可以做。應該恰當配置防火墻保護服務免受攻擊。代理服務器、通過網關服務器端口推進以及網絡地址轉移都能有效減少服務攻擊的風險。針對安全使用,那些用于登錄正在運行的服務工具也應進行配置,例如,如果使用安全shell進行遠程連接而沒有使用X Server時,在SSH中調低X forwarding是很重要的。直接進行安全管理是保證Linux系統安全的重要部分,但是它也只是全面安全計劃的一部分。

熱詞搜索:

上一篇:找出Windows中不老實的服務
下一篇:windows 2003 sp1 客戶機優化方法

分享到: 收藏