咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

如何建立一個(gè)安全的 Linux服務器(qì)

發表日期:2014-11-04    文章編輯:    浏覽次數(shù):29    标簽:

要建立一個(gè)安全Linux服務器(qì)就首先要了解Linux環境下和(hé)網絡服務相關的配置文件的含義及如何進行(xíng)安全的配置。在Linux系統中,TCP/IP網絡是通(tōng)過若幹個(gè)文本文件進行(xíng)配置的,也許你(nǐ)需要編輯這些(xiē)文件來(lái)完成聯網工作(zuò),但(dàn)是這些(xiē)配置文件大(dà)都可(kě)以通(tōng)過配置命令linuxconf (其中網絡部分的配置可(kě)以通(tōng)過netconf命令來(lái)實現)。下面介紹基本的 TCP/IP網絡配置文件。
* /etc/conf.modules文件

該配置文件定義了各種需要在激活時(shí)加載的模塊的參數(shù)信息。這裏主要着重討(tǎo)論關于網卡的配置。在使用Linux做(zuò)網關的情況下,Linux服務器(qì)至少(shǎo)需要配置兩塊網卡。為(wèi)了減少(shǎo)激活時(shí)可(kě)能出現的問題,Linux內(nèi)核不會(huì)自動檢測多(duō)個(gè)網卡。對于沒有(yǒu)将網卡的驅動編譯到內(nèi)核而是作(zuò)為(wèi)模塊動态加載的系統若需要安裝多(duō)塊網卡,應該在“conf.modules”文件中進行(xíng)相應的配置。

若設備驅動被編譯為(wèi)模塊(內(nèi)核的模塊):對于PCI設備,模塊将自動檢測到所有(yǒu)已經安裝到系統上(shàng)的設備;對于ISA卡,則需要向模塊提供IO地址,以使模塊知道(dào)在何處尋找該卡,這些(xiē)信息在“/etc/conf.modules”中提供。

例如,我們有(yǒu)兩塊ISA總線的3c509卡,一個(gè)IO地址是0x300,另一個(gè)是0x320。編輯“conf.modules”文件如下:alias eth0 3c509alias eth1 3c509options 3c509 io=0x300,0x320這是說明(míng)3c509的驅動程序應當分别以eth0或eth1的名稱被加載(alias eth0,eth1),并且它們應該以參數(shù)io=0x300,0x320被裝載,來(lái)通(tōng)知驅動程序到哪裏去尋找網卡,其中0x是不可(kě)缺少(shǎo)的。

對于PCI卡,僅僅需要alias命令來(lái)使ethN和(hé)适當的驅動模塊名關聯,PCI卡的IO地址将會(huì)被自動的檢測到。對于PCI卡,編輯“conf.modules”文件如下:alias eth0 3c905alias eth1 3c905若驅動已經被編譯進了內(nèi)核:系統激活時(shí)的PCI檢測程序将會(huì)自動找到所有(yǒu)相關的網卡。ISA卡一般也能夠被自動檢測到,但(dàn)是在某些(xiē)情況下,ISA卡仍然需要做(zuò)下面的配置工作(zuò):

在“/etc/lilo.conf”中增加配置信息,其方法是通(tōng)過LILO程序将激活參數(shù)信息傳遞給內(nèi)核。對于ISA卡,編輯“lilo.conf”文件,增加如下內(nèi)容:append=" ether="0,0,eth0 ether="0,0,eth1"注:先不要在“lilo.conf”中加入激活參數(shù),測試一下你(nǐ)的ISA卡,若失敗再使用激活參數(shù)。

如果用傳遞激活參數(shù)的方法,eth0和(hé)eth1将按照激活時(shí)被發現的順序來(lái)設置。

* /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=eth0IPADDR=208.164.186.1NETMASK=255.255.255.0NETWORK=208.164.186.0BROADCAST=208.164.186.255ONBOOT=yesBOOTPROTO=noneUSERCTL=no

若希望手工修改網絡地址或在新的接口上(shàng)增加新的網絡界面,可(kě)以通(tōng)過修改對應的文件(ifcfg-ethN)或創建新的文件來(lái)實現。

DEVICE=name name表示物理(lǐ)設備的名字

IPADDR=addr addr表示賦給該卡的IP地址

NETMASK=mask mask表示網絡掩碼

NETWORK=addr addr表示網絡地址

BROADCAST=addr addr表示廣播地址

ONBOOT=yes/no 激活時(shí)是否激活該卡

none:無須激活協議

bootp:使用bootp協議

dhcp:使用dhcp協議

USERCTL=yes/no 是否允許非root用戶控制(zhì)該設備

*/etc/resolv.conf文件:

該文件是由域名解析器(qì)(resolver,一個(gè)根據主機名解析IP地址的庫)使用的配置文件,示例如下:

search openarch.comnameserver 208.164.186.1nameserver 208.164.186.2

“search domainname.com”表示當提供了一個(gè)不包括完全域名的主機名時(shí),在該主機名後添加domainname.com的後綴;“nameserver”表示解析域名時(shí)使用該地址指定的主機為(wèi)域名服務器(qì)。其中域名服務器(qì)是按照文件中出現的順序來(lái)查詢的。

共2頁。

*/etc/host.conf文件:

該文件指定如何解析主機名。Linux通(tōng)過解析器(qì)庫來(lái)獲得(de)主機名對應的IP地址。下面是一個(gè)“/etc/host.conf”的示例:

order bind,hosts

multi on

ospoof on

“order bind,hosts”指定主機名查詢順序,這裏規定先使用DNS來(lái)解析域名,然後再查詢“/etc/hosts”文件(也可(kě)以相反)。

“multi on”指定是否“/etc/hosts”文件中指定的主機可(kě)以有(yǒu)多(duō)個(gè)地址,擁有(yǒu)多(duō)個(gè)IP地址的主機一般稱為(wèi)多(duō)穴主機。

“nospoof on”指不允許對該服務器(qì)進行(xíng)IP地址欺騙。IP欺騙是一種攻擊系統安全的手段,通(tōng)過把IP地址僞裝成别的計(jì)算(suàn)器(qì),來(lái)取得(de)其它計(jì)算(suàn)器(qì)的信任。

*/etc/sysconfig/network文件

該文件用來(lái)指定服務器(qì)上(shàng)的網絡配置信息,下面是一個(gè)示例:

NETWORK=yesRORWARD_IPV4=yesHOSTNAME=deep.openarch.comGAREWAY=0.0.0.0GATEWAYDEV=NETWORK=yes/no 網絡是否被配置;FORWARD_IPV4=yes/no 是否開(kāi)啓IP轉發功能HOSTNAME=hostname hostname表示服務器(qì)的主機名GAREWAY=gw-ip gw-ip表示網絡網關的IP地址GAREWAYDEV=gw-dev gw-dw表示網關的設備名,如:etho等

注意:為(wèi)了和(hé)老的軟件相兼容,“/etc/HOSTNAME”文件應該用和(hé)HOSTNAME=hostname相同的主機名。

*/etc/hosts文件

當機器(qì)激活時(shí),在可(kě)以查詢DNS以前,機器(qì)需要查詢一些(xiē)主機名到IP地址的匹配。這些(xiē)匹配信息存放在/etc/hosts文件中。在沒有(yǒu)域名服務器(qì)情況下,系統上(shàng)的所有(yǒu)網絡程序都通(tōng)過查詢該文件來(lái)解析對應于某個(gè)主機名的IP地址。

下面是一個(gè)“/etc/hosts”文件的示例:

IP Address Hostname Alias127.0.0.1 Localhost Gate.openarch.com208.164.186.1 gate.openarch.com Gate

最左邊一列是主機IP信息,中間(jiān)一列是主機名。任何後面的列都是該主機的别名。一旦配置完機器(qì)的網絡配置文件,應該重新激活網絡以使修改生(shēng)效。使用下面的命令來(lái)重新激活網絡:/etc/rc.d/init.d/network restart

* /etc/inetd.conf文件

衆所周知,作(zuò)為(wèi)服務器(qì)來(lái)說,服務端口開(kāi)放越多(duō),系統安全穩定性越難以保證。所以提供特定服務的服務器(qì)應該盡可(kě)能開(kāi)放提供服務必不可(kě)少(shǎo)的端口,而将與服務器(qì)服務無關的服務關閉,比如:一台作(zuò)為(wèi)www和(hé)Ftp服務器(qì)的機器(qì),應該隻開(kāi)放80 和(hé)25端口,而将其它無關的服務如:finger auth等服務關掉,以減少(shǎo)系統漏洞。

而inetd,也叫作(zuò)“超級服務器(qì)”,就是監視(shì)一些(xiē)網絡請(qǐng)求的守護進程,其根據網絡請(qǐng)求來(lái)調用相應的服務進程來(lái)處理(lǐ)連接請(qǐng)求。inetd.conf則是inetd的配置文件。inetd.conf文件告訴inetd監聽(tīng)哪些(xiē)網絡端口,為(wèi)每個(gè)端口激活哪個(gè)服務。在任何的網絡環境中使用Linux系統,第一件要做(zuò)的事就是了解一下服務器(qì)到底要提供哪些(xiē)服務。不需要的那(nà)些(xiē)服務應該被禁止掉,最好卸載掉,這樣黑(hēi)客就少(shǎo)了一些(xiē)攻擊系統的機會(huì)。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些(xiē)服務。用加上(shàng)注釋的方法(在一行(xíng)的開(kāi)頭加上(shàng)#号),禁止任何不需要的服務,再給inetd進程發一個(gè)SIGHUP信号。

第一步:把文件的權限限改成600。

[root@deep]# chmod 600 /etc/inetd.conf

第二步:确信文件的所有(yǒu)者是root。

[root@deep]# stat /etc/inetd.conf

第三步:編輯“inetd.conf”文件(vi /etc/inetd.conf),禁止所有(yǒu)不需要的服務,如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。如果你(nǐ)覺得(de)某些(xiē)服務有(yǒu)用,可(kě)以不禁止這些(xiē)服務。但(dàn)是,把這些(xiē)服務禁止掉,系統受攻擊的可(kě)能性就會(huì)小(xiǎo)很(hěn)多(duō)。改變後的“inetd.conf”文件的內(nèi)容如下面所示:

# To re-read this file after changes, just do a 'killall -HUP inetd'##echo stream tcp nowait root internal#echo dgram udp wait root internal#discard stream tcp nowait root internal#discard dgram udp wait root internal#daytime stream tcp nowait root internal#daytime dgram udp wait root internal#chargen stream tcp nowait root internal#chargen dgram udp wait root internal#time stream

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博