要建立一個安全Linux伺服器就首先要瞭解Linux環境下和網路服務相關的設定檔的含義及如何進行安全的配置。在Linux系統中,TCP/IP網路是通過若干個文字檔進行配置的,也許你需要編輯這些檔案來完成連網工作,但是這些設定檔大都可以通過配置命令linuxconf(其中網路部分的配置可以通過netconf命令來實現)命令來實現。下面介紹基本的 TCP/IP網路設定檔。
* /etc/conf.modules 檔案
該設定檔定義了各種需要在啟動時載入的模組的參數資訊。這裡主要著重討論關於網卡的配置。在使用Linux做網關的情況下,Linux伺服器至少需要配置兩塊網卡。為了減少啟動時可能出現的問題,Linux核心不會自動檢測多個網卡。對於沒有將網卡的驅動編譯到核心而是作為模組動態載入的系統若需要安裝多塊網卡,應該在“conf.modules”檔案中進行相應的配置。
若裝置驅動被編譯為模組(核心的模組):對於PCI裝置,模組將自動檢測到所有已經安裝到系統上的裝置;對於ISA卡,則需要向模組提供IO地址,以使模組知道在何處尋找該卡,這些資訊在“/etc/conf.modules”中提供。
例如,我們有兩塊ISA匯流排的3c509卡,一個IO地址是0x300,另一個是0x320。編輯“conf.modules”檔案如下:
alias eth0 3c509
alias eth1 3c509
options 3c509 io=0x300,0x320
這是說明3c509的驅動程式應當分別以eth0或eth1的名稱被載入(alias eth0,eth1),並且它們應該以參數io=0x300,0x320被裝載,來通知驅動程式到哪裡去尋找網卡,其中0x是不可缺少的。
對於PCI卡,僅僅需要alias命令來使ethN和適當的驅動模組名關聯,PCI卡的IO地址將會被自動的檢測到。對於PCI卡,編輯“conf.modules”檔案如下:
alias eth0 3c905
alias eth1 3c905
若驅動已經被編譯進了核心:系統啟動時的PCI檢測程式將會自動找到所有相關的網卡。ISA卡一般也能夠被自動檢測到,但是在某些情況下,ISA卡仍然需要做下面的配置工作:
在“/etc/lilo.conf”中增加配置資訊,其方法是通過LILO程式將啟動參數資訊傳遞給核心。對於ISA卡,編輯“lilo.conf”檔案,增加如下內容:
append=" ether="0,0,eth0 ether="0,0,eth1"
註:先不要在“lilo.conf”中加入啟動參數,測試一下你的ISA卡,若失敗再使用啟動參數。
如果用傳遞啟動參數的方法,eth0和eth1將按照啟動時被發現的順序來設定。
* /etc/HOSTNAME 檔案
該檔案包含了系統的主機名稱,包括完全的網域名稱,如:deep.openarch.com。
*/etc/sysconfig/network-scripts/ifcfg-ethN 檔案
在RedHat中,系統網路裝置的設定檔儲存在“/etc/sysconfig/network-scripts”目錄下,ifcfg-eth0包含第一塊網卡的配置資訊,ifcfg-eth1包含第二塊網卡的配置資訊。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”檔案的樣本:
DEVICE=eth0
IPADDR=208.164.186.1
NETMASK=255.255.255.0
NETWORK=208.164.186.0
BROADCAST=208.164.186.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
若希望手工修改網路地址或在新的介面上增加新的網路介面,可以通過修改對應的檔案(ifcfg-ethN)或建立新的檔案來實現。
DEVICE=name name表示物理裝置的名字
IPADDR=addr addr表示賦給該卡的IP地址
NETMASK=maskmask表示網路遮罩
NETWORK=addraddr表示網路地址
BROADCAST=addr addr表示廣播位址
ONBOOT=yes/no 啟動時是否啟用該卡
none:無須啟動協議
bootp:使用bootp協議
dhcp:使用dhcp協議
USERCTL=yes/no 是否允許非root使用者控制該裝置
*/etc/resolv.conf 檔案
該檔案是由網域名稱解析器(resolver,一個根據主機名稱解析IP地址的庫)使用的設定檔,樣本如下:
search openarch.com
nameserver 208.164.186.1
nameserver 208.164.186.2
“search domainname.com”表示當提供了一個不包括完全網域名稱的主機名稱時,在該主機名稱後添加domainname.com的尾碼;“nameserver”表示解析網域名稱時使用該地址指定的主機為網域名稱伺服器。其中網域名稱伺服器是按照檔案中出現的順序來查詢的。
*/etc/host.conf 檔案
該檔案指定如何解析主機名稱。Linux通過解析器庫來獲得主機名稱對應的IP地址。下面是一個“/etc/host.conf”的樣本:
order bind,hosts
multi on
ospoof on
“order bind,hosts”指定主機名稱查詢順序,這裡規定先使用DNS來解析網域名稱,然後再查詢“/etc/hosts”檔案(也可以相反)。
“multi on”指定是否“/etc/hosts”檔案中指定的主機可以有多個地址,擁有多個IP地址的主機一般稱為多穴主機。
“nospoof on”指不允許對該伺服器進行IP地址欺騙。IP欺騙是一種攻擊系統安全的手段,通過把IP地址偽裝成別的電腦,來取得其它電腦的信任。
*/etc/sysconfig/network 檔案
該檔案用來指定伺服器上的網路設定資訊,下面是一個樣本:
NETWORK=yes
RORWARD_IPV4=yes
HOSTNAME=deep.openarch.com
GAREWAY=0.0.0.0
GATEWAYDEV=
NETWORK=yes/no 網路是否被配置;
FORWARD_IPV4=yes/no是否開啟IP轉寄功能
HOSTNAME=hostname hostname表示伺服器的主機名稱
GAREWAY=gw-ip gw-ip表示網路網關的IP地址
GAREWAYDEV=gw-dev gw-dw表示網關的裝置名稱,如:etho等
注意:為了和老的軟體相相容,“/etc/HOSTNAME”檔案應該用和HOSTNAME=hostname相同的主機名稱。
*/etc/hosts 檔案
當機器啟動時,在可以查詢DNS以前,機器需要查詢一些主機名稱到IP地址的匹配。這些匹配資訊存放在/etc/hosts檔案中。在沒有網域名稱伺服器情況下,系統上的所有網路程式都通過查詢該檔案來解析對應於某個主機名稱的IP地址。
下面是一個“/etc/hosts”檔案的樣本:
IP Address Hostname Alias
127.0.0.1LocalhostGate.openarch.com
208.164.186.1gate.openarch.com Gate
………… ………… ………
最左邊一列是主機IP資訊,中間一列是主機名稱。任何後面的列都是該主機的別名。一旦配置完機器的網路設定檔,應該重新啟動網路以使修改生效。使用下面的命令來重新啟動網路:/etc/rc.d/init.d/network restart
(出處:網路)