?? 熟悉linux系統安全和優化(中).txt
字號:
作者:hansome
email: hansome@chinaasp.com
日期:8/30/2001 9:33:41 AM
啟動和停止daemon服務
init是內核在引導的時候運行的程序。它負責管理那些在引導的時候要啟動的進程。這些進程包括:Apache daemon、網絡daemon和其它你想在引導時運行的進程。
那么init是怎么啟動和停止服務呢?每一個啟動腳本都有可以接受一個參數,參數的值為:“start”或“stop”。這些腳本在“/etc/rc.d/init.d/”目錄下。你也可以手工運行這些腳本,用類似下面的命令:
例如:
* 在Linux上手工啟動httpd Web服務器。
[root@deep]# /etc/rc.d/init.d/httpd start
* 停止httpd Web服務器
root@deep]# /etc/rc.d/init.d/httpd stop
可以在“/etc/rc.d/init.d/”目錄下查看一下有什么服務,然后,用參數“start”或“stop”,啟動或停止服務。
安裝完服務器之后必須卸載的軟件
RedHat Linux在默認情況下會安裝一些預置的軟件,而且在安裝的過程中,不能夠選擇不安裝。因此,必須在安裝完成之后卸載下面這些軟件:
pump
apmd
isapnptools
redhat-logos
mt-st
kernel-pcmcia-cs
setserial
redhat-release
eject
linuxconf
kudzu
gd
Bc
getty_ps
raidtools
pciutils
mailcap
setconsole
gnupg
用下面的rpm命令卸載這些軟件:
[root@deep]# rpm -e softwarenames
softwarename在這里指的是軟件包的名字,如:foo。
apmd、kudzu和sendmail是daemon進程,在卸載它們之前最好先停止這些進程。
停止這些進程用如下的命令:
[root@deep]# /etc/rc.d/init.d/apmd stop
[root@deep]# /etc/rc.d/init.d/sendmail stop
[root@deep]# /etc/rc.d/init.d/kudzu stop
現在你可以象卸載其它程序那樣卸載它們,步驟如下:
第一步
卸載這些軟件包。
[root@deep]# rpm -e pump mt-st eject bc mailcap apmd kernel-pcmcia-cs linuxconf getty_ps setconsole isapnptools setserial kudzu raidtools gnupg redhat-logos redhat-release gd pciutils
第二步
手工刪除linux.conf-installed文件。
[root@deep]# rm -f /etc/conf.linuxconf-installed
注意:這是和linuxconf程序相關的的配置文件,必須手工刪除。
如果你有IDE硬盤,hdparm程序是必須要的,所以一定要保留下來。否則,你可以把它從硬盤中卸載掉。
kdbconfig、mouseconfig和timeconfig是用來設置鍵盤類型、鼠標類型和時區的。在這些都設置好之后,就很少有機會再用到它們了。所以,可以把它們卸載掉。等需要改變鍵盤、鼠標和時區的時候,可以再從CD-ROM用rpm命令安裝。
sendmail、procmail和mailx在通常情況下是必須要的。因為服務器上運行的各種各樣的服務會用這些程序發消息給root用戶,以建立系統日志(syslog)。
sendmail是一個強大的郵件傳送代理(Mail Transport Agent,簡稱MTA),可以把郵件從一臺計算機發送到另一臺計算機。它實際上所起的作用就是通過網絡或Internet把email傳送到email的目的地。sendmail有很多不同的配置方式:可以做為一個把郵件轉給郵件集中服務器(Mail Hub Server)的內部郵件服務器,也可以做為單獨的mail服務器,或者做為網絡上所有sendmail服務器的中央郵件集中服務器(Central Mail Hub Server)。因此,可以根據需要配置不同的sendmail服務器。所以,你要先把sendmail卸載掉,參考本書sendmail的配置和安裝的相關章節,根據需要建立自己的sendmail服務器。
sendmail并不是自己處理郵件的分發,它是通過運行其它程序來完成這項工作。procmail是RedHat Linux用于本地郵件分發的分發代理(delivery agent)。因此,procmail只要裝在中央郵件集中服務器(Central Mail Hub Server)上就行了。所以,沒有必要在內部所有運行sendmail服務的計算機上都安裝procmail程序。因為,這些內部的計算機會通過“/bin/mail”或sendmail把郵件轉發到中央郵件集中服務器上。
Pump DHCP(Dynamic Host Configuration Protocol)和BOOTP(Boot Protocol)協議允許在IP網絡上的設備,從服務器上獲取它們的網絡配置信息(IP地址、子網掩碼、廣播地址,等等)。【沒有必要】
mt-st軟件包包括mt和st磁帶機驅動管理程序。mt(用于磁性磁帶驅動器(magnetic tape drivers))和st(用于SCSI磁帶驅動器)可以控制磁帶的回卷、彈出、跳過文件或塊以及其它。【沒有必要】
eject程序允許用戶用軟件彈出可移動的介質,如:CD-ROM、軟盤以及Jaz或Zip盤。【沒有必要】
bc軟件包包括:bc和dc兩個應用程序,bc是一種非常精確的用于處理算術運算的語言。dc是基于堆棧的交互式計算器,是用在文本模式下的。【沒有必要】
mailcap文件是用于metamail程序的。metamail通過讀mailcap文件來確定怎么顯示非文本的和多媒體的郵件信息。【沒有必要】
apmd是高級能源管理(Advanced Power Management)daemon和實用工具。它可以監控筆記本電腦的電池使用情況。當電池電壓過低的時候,它會給出警告。【沒有必要】
所有支持PCMCIA的筆記本電腦都要用到kernel-pcmcia-cs軟件包。PCMCIA卡是很小的卡片,可以是SCSI卡或是modem。【沒有必要】
linuxconf是非常好的系統配置工具。linuxconf提供四種界面供你選擇:命令行、文本菜單、X Window的圖形界面和基于Web的界面。【沒有必要,有bug的程序】
getty_ps軟件包包括getty和uugetty兩個程序,這兩個程序是RedHat Linux系統中實現進程登錄的基本程序。getty和uugetty是用于接受控制臺或終端的登錄請求。【沒有必要】
setconsole是基本的系統工具,用在為一個新的控制臺創建/etc/inittab、/dev/systty和/dev/console文件。控制臺可以是本地的終端(直接通過顯示卡連接到系統上)或是通過串口連接的控制臺。【沒有必要】
ispnptools軟件包包括用于配置ISA接口的即插即用(Plug-and-Play)卡,符合PnP ISA Specification 1.0a標準。【沒有必要】
kudzu是系統引導的時候運行的硬件探測程序,可以檢測到哪些硬件從系統中刪除或添加到系統中。【沒有必要】
raidtools軟件包包括在Linux系統中建立和維護軟件RAID(磁盤陣列,用于容錯和提高性能,需要兩個以上的磁盤)。【取決于你用不用RAID】
GnuPG是GNU的數據通訊和存儲的安全工具。它可以用來加密數據和創建數字簽名。包括高級的密匙管理工具,而且遵循RFC2440中描述的OpenPGP的國際標準。【我們會在后面的章節介紹如何自己編譯】
redhat-logos包括RedHat “Shawdow Man”和RPM的標志圖片。【沒有必要】
redhat-release是RedHat Linux的發行文件。【沒有必要】
gd是處理gif文件的圖形函數庫。gd可以用于顯示圖像(線條、弧、文本、多種顏色、從其它圖像中剪切和粘貼、填充),并把結果保存為gif文件。【沒有必要】
pciutils包括各種各樣的工具,用于檢測和設置連接到PCI總線上的設備。【我們用其它的方法】
kbdconfig是文本模式的程序,提供了設置鍵盤映像的一個簡單的界面。【沒有必要】
mousconfig是基于文本模式的鼠標設置程序。mouseconfig在RedHat Linux系統中,創建配置和使用鼠標所需要的文件和鏈接。【沒有必要】
timeconfig包括:timeconfig和setclock。timeconfig提供了一個簡單的文本模式的工具,用來配置/etc/sysconfig/clock和/etc/localtime中的時間參數。【沒有必要】
procmail是RedHat Linux用于處理本地郵件發送的程序。除了發送郵件,procmail還可以用于自動過濾、排序和其它處理mail的工作。而且,procmail是SmartList郵件列表程序的基礎。【只用在郵件集中服務器上】
安裝完服務器之后必須安裝的軟件
為了可以在你的服務器上編譯軟件,你還必須安裝下面的RPM軟件包。這部分安裝是非常重要的,要求你安裝所有如下所述的軟件包。所有的這些軟件都在RedHat 6.1第一張光盤的/RedHat/RPMS目錄下,而且都是使你的Linux系統能夠編譯程序所必須要的。
* 第一步
首先,先mount 上CD-ROM驅動器,轉到RPMS子目錄下。
mount CD-ROM驅動器和轉到RPMS目錄用下面的命令:
[root@deep]# mount /dev/cdrom /mnt/cdrom/
[root@deep]# cd /mnt/cdrom/RedHat/RPMS/
下面是我們需要安裝的軟件包,只有安裝了這些軟件包才在Linux系統上編譯程序。記住這不過是能夠編譯.tar.gz軟件最少必須的軟件包。有一些軟件的編譯可能還需要用到別的特殊的軟件包。這些特殊的軟件包在RedHat的光盤中都能找到。所以,編譯程序的時候,如果出錯了,可以先看看需要編譯的軟件包的README文件。
autoconf-2.13-5.noarch.rpm
m4-1.4-12.i386.rpm
automake-1.4-5.noarch.rpm
dev86-0.14.9-1.i386.rpm
bison-1.28-1.i386.rpm
byacc-1.9-11.i386.rpm
cdecl-2.5-9.i386.rpm
cpp-1.1.2-24.i386.rpm
cproto-4.6-2.i386.rpm
ctags-3.2-1.i386.rpm
egcs-1.1.2-24.i386.rpm
ElectricFence-2.1-1.i386.rpm
flex-2.5.4a-7.i386.rpm
gdb-4.18-4.i386.rpm
kernel-headers-2.2.12-20.i386.rpm
glibc-devel-2.1.2-11.i386.rpm
make-3.77-6.i386.rpm
patch-2.5-9.i386.rpm
注意:最好把這些軟件一起全裝了,省得在安裝這些RPM包的時候總出現一些相關出錯的信息。
* 第二步
安裝所有這些軟件只要用一個命令就夠了。這個命令是:
[root@deep]# rpm -Uvh autoconf-2.13-5.noarch.rpm m4-1.4-12.i386.rpm automake-1.4-5.noarch.rpm dev86-0.14.9-1.i386.rpm bison-1.28-1.i386.rpm byacc-1.9-11.i386.rpm cdecl-2.5-9.i386.rpm cpp-1.1.2-24.i386.rpm cproto-4.6-2.i386.rpm ctags-3.2-1.i386.rpm egcs-1.1.2-24.i386.rpm ElectricFence-2.1-1.i386.rpm flex-2.5.4a-7.i386.rpm gdb-4.18-4.i386.rpm kernel-headers-2.2.12-20.i386.rpm glibc-devel-2.1.2-11.i386.rpm make-3.77-6.i386.rpm patch-2.5-9.i386.rpm
* 第三步
為了讓所有的改變都生效,必須退出再重新登錄。退出的命令是:
[root@deep]# exit
安裝和編譯完在服務器上需要的所有軟件之后,最好把上面幾步安裝的軟件包都卸掉,除非有什么特殊的需要。這樣做,其中一個原因是:如果黑客成功地入侵了你的服務器,他也不可能用上面這些軟件來編譯軟件或改變二進制程序。同時,把它們卸載掉也釋放了很多磁盤空間,這樣當進行系統的安全性和一致性檢查的時候,可以加快掃描所有文件的時間(文件少了)。
當然,有很多建立服務器的方法和策略,我在這本書中介紹的不過是我自己的觀點,我的觀點如下:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -