未知力量技術(shù)團隊linux核心開發(fā)Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)_第1頁
未知力量技術(shù)團隊linux核心開發(fā)Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)_第2頁
未知力量技術(shù)團隊linux核心開發(fā)Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)_第3頁
未知力量技術(shù)團隊linux核心開發(fā)Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)_第4頁
未知力量技術(shù)團隊linux核心開發(fā)Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、Linux操作系統(tǒng)網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)要建立一個安全Linux服務(wù)器就首先要了解Linux環(huán)境下和網(wǎng)絡(luò)服務(wù)相關(guān)的配置文件的含義及如何進行安全的配置。在Linux系統(tǒng)中,TCP/IP網(wǎng)絡(luò)是通過若干個文本文件進行配置的,也許你需要編輯這些文件來完成聯(lián)網(wǎng)工作,但是這些配置文件大都可以通過配置命令linuxconf(其中網(wǎng)絡(luò)部分的配置可以通過netconf命令來實現(xiàn))命令來實現(xiàn)。下面介紹基本的 TCP/IP網(wǎng)絡(luò)配置文件。 * /etc/conf.modules 文件該配置文件定義了各種需要在啟動時加載的模塊的參數(shù)信息。這里主要著重討論關(guān)于網(wǎng)卡的配置。在使用Linux做網(wǎng)關(guān)的情況下,Linux服務(wù)器至少需

2、要配置兩塊網(wǎng)卡。為了減少啟動時可能出現(xiàn)的問題,Linux內(nèi)核不會自動檢測多個網(wǎng)卡。對于沒有將網(wǎng)卡的驅(qū)動編譯到內(nèi)核而是作為模塊動態(tài)載入的系統(tǒng)若需要安裝多塊網(wǎng)卡,應(yīng)該在“conf.modules”文件中進行相應(yīng)的配置。 若設(shè)備驅(qū)動被編譯為模塊(內(nèi)核的模塊):對于PCI設(shè)備,模塊將自動檢測到所有已經(jīng)安裝到系統(tǒng)上的設(shè)備;對于ISA卡,則需要向模塊提供IO地址,以使模塊知道在何處尋找該卡,這些信息在“/etc/conf.modules”中提供。 例如,我們有兩塊ISA總線的3c509卡,一個IO地址是0 x300,另一個是0 x320。編輯“conf.modules”文件如下: alias eth0 3

3、c509 alias eth1 3c509 options 3c509 io=0 x300,0 x320 這是說明3c509的驅(qū)動程序應(yīng)當(dāng)分別以eth0或eth1的名稱被加載(alias eth0,eth1),并且它們應(yīng)該以參數(shù)io=0 x300,0 x320被裝載,來通知驅(qū)動程序到哪里去尋找網(wǎng)卡,其中0 x是不可缺少的。 對于PCI卡,僅僅需要alias命令來使ethN和適當(dāng)?shù)尿?qū)動模塊名關(guān)聯(lián),PCI卡的IO地址將會被自動的檢測到。對于PCI卡,編輯“conf.modules”文件如下: alias eth0 3c905 alias eth1 3c905 若驅(qū)動已經(jīng)被編譯進了內(nèi)核:系統(tǒng)啟動時的

4、PCI檢測程序?qū)詣诱业剿邢嚓P(guān)的網(wǎng)卡。ISA卡一般也能夠被自動檢測到,但是在某些情況下,ISA卡仍然需要做下面的配置工作: 在“/etc/lilo.conf”中增加配置信息,其方法是通過LILO程序?qū)訁?shù)信息傳遞給內(nèi)核。對于ISA卡,編輯“l(fā)ilo.conf”文件,增加如下內(nèi)容: append= ether=0,0,eth0 ether=0,0,eth1 注:先不要在“l(fā)ilo.conf”中加入啟動參數(shù),測試一下你的ISA卡,若失敗再使用啟動參數(shù)。 如果用傳遞啟動參數(shù)的方法,eth0和eth1將按照啟動時被發(fā)現(xiàn)的順序來設(shè)置。 * /etc/HOSTNAME 文件 該文件包含了系統(tǒng)的主機

5、名稱,包括完全的域名,如:。 */etc/sysconfig/network-scripts/ifcfg-ethN 文件 在RedHat中,系統(tǒng)網(wǎng)絡(luò)設(shè)備的配置文件保存在“/etc/sysconfig/network-scripts”目錄下,ifcfg-eth0包含第一塊網(wǎng)卡的配置信息,ifcfg-eth1包含第二塊網(wǎng)卡的配置信息。 下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例: DEVICE=eth0 IPADDR= NETMASK= NETWORK= BROADCAST=55 ONBOOT=yes BOOTPROTO=none USE

6、RCTL=no 若希望手工修改網(wǎng)絡(luò)地址或在新的接口上增加新的網(wǎng)絡(luò)界面,可以通過修改對應(yīng)的文件(ifcfg-ethN)或創(chuàng)建新的文件來實現(xiàn)。 DEVICE=name name表示物理設(shè)備的名字 IPADDR=addr addr表示賦給該卡的IP地址 NETMASK=maskmask表示網(wǎng)絡(luò)掩碼 NETWORK=addraddr表示網(wǎng)絡(luò)地址 BROADCAST=addr addr表示廣播地址 ONBOOT=yes/no 啟動時是否激活該卡 none:無須啟動協(xié)議 bootp:使用bootp協(xié)議 dhcp:使用dhcp協(xié)議 USERCTL=yes/no 是否允許非root用戶控制該設(shè)備 */etc/

7、resolv.conf 文件 該文件是由域名解析器(resolver,一個根據(jù)主機名解析IP地址的庫)使用的配置文件,示例如下: search nameserver nameserver “search ”表示當(dāng)提供了一個不包括完全域名的主機名時,在該主機名后添加的后綴;“nameserver”表示解析域名時使用該地址指定的主機為域名服務(wù)器。其中域名服務(wù)器是按照文件中出現(xiàn)的順序來查詢的。 */etc/host.conf 文件 該文件指定如何解析主機名。Linux通過解析器庫來獲得主機名對應(yīng)的IP地址。下面是一個“/etc/host.conf”的示例: order bind,hosts mult

8、i on ospoof on “order bind,hosts”指定主機名查詢順序,這里規(guī)定先使用DNS來解析域名,然后再查詢“/etc/hosts”文件(也可以相反)。 “multi on”指定是否“/etc/hosts”文件中指定的主機可以有多個地址,擁有多個IP地址的主機一般稱為多穴主機。 “nospoof on”指不允許對該服務(wù)器進行IP地址欺騙。IP欺騙是一種攻擊系統(tǒng)安全的手段,通過把IP地址偽裝成別的計算機,來取得其它計算機的信任。 */etc/sysconfig/network 文件 該文件用來指定服務(wù)器上的網(wǎng)絡(luò)配置信息,下面是一個示例: NETWORK=yes RORWARD

9、_IPV4=yes HOSTNAME= GAREWAY= GATEWAYDEV= NETWORK=yes/no 網(wǎng)絡(luò)是否被配置; FORWARD_IPV4=yes/no是否開啟IP轉(zhuǎn)發(fā)功能 HOSTNAME=hostname hostname表示服務(wù)器的主機名 GAREWAY=gw-ip gw-ip表示網(wǎng)絡(luò)網(wǎng)關(guān)的IP地址 GAREWAYDEV=gw-dev gw-dw表示網(wǎng)關(guān)的設(shè)備名,如:etho等 注意:為了和老的軟件相兼容,“/etc/HOSTNAME”文件應(yīng)該用和HOSTNAME=hostname相同的主機名。 */etc/hosts 文件 當(dāng)機器啟動時,在可以查詢DNS以前,機器需要查

10、詢一些主機名到IP地址的匹配。這些匹配信息存放在/etc/hosts文件中。在沒有域名服務(wù)器情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢該文件來解析對應(yīng)于某個主機名的IP地址。 下面是一個“/etc/hosts”文件的示例: IP Address Hostname Alias LocalhostG Gate 最左邊一列是主機IP信息,中間一列是主機名。任何后面的列都是該主機的別名。一旦配置完機器的網(wǎng)絡(luò)配置文件,應(yīng)該重新啟動網(wǎng)絡(luò)以使修改生效。使用下面的命令來重新啟動網(wǎng)絡(luò):/etc/rc.d/init.d/network restart * /etc/inetd.conf 文件 眾所周知,作為服務(wù)器來說

11、,服務(wù)端口開放越多,系統(tǒng)安全穩(wěn)定性越難以保證。所以提供特定服務(wù)的服務(wù)器應(yīng)該盡可能開放提供服務(wù)必不可少的端口,而將與服務(wù)器服務(wù)無關(guān)的服務(wù)關(guān)閉,比如:一臺作為www和 HYPERLINK /art/200512/13182.htm FTP服務(wù)器的機器,應(yīng)該只開放80 和25端口,而將其他無關(guān)的服務(wù)如:finger auth等服務(wù)關(guān)掉,以減少系統(tǒng)漏洞。 而inetd,也叫作“超級服務(wù)器”,就是監(jiān)視一些網(wǎng)絡(luò)請求的守護進程,其根據(jù)網(wǎng)絡(luò)請求來調(diào)用相應(yīng)的服務(wù)進程來處理連接請求。inetd.conf則是inetd的配置文件。inetd.conf文件告訴inetd監(jiān)聽哪些網(wǎng)絡(luò)端口,為每個端口啟動哪個服務(wù)。在任何

12、的網(wǎng)絡(luò)環(huán)境中使用Linux系統(tǒng),第一件要做的事就是了解一下服務(wù)器到底要提供哪些服務(wù)。不需要的那些服務(wù)應(yīng)該被禁止掉,最好卸載掉,這樣黑客就少了一些攻擊系統(tǒng)的機會。查看“/etc/inetd.conf”文件,了解一下inetd提供哪些服務(wù)。用加上注釋的方法(在一行的開頭加上#號),禁止任何不需要的服務(wù),再給inetd進程發(fā)一個SIGHUP信號。 第一步:把文件的許可權(quán)限改成600。 rootdeep# chmod 600 /etc/inetd.conf 第二步:確信文件的所有者是root。 rootdeep# stat /etc/inetd.conf 第三步:編輯“inetd.conf”文件(vi

13、 /etc/inetd.conf),禁止所有不需要的服務(wù),如:ftp、 telnet、 shell、 login、 exec、talk、ntalk、 imap、 pop-2、pop-3、finger、auth,等等。如果你覺得某些服務(wù)有用,可以不禁止這些服務(wù)。但是,把這些服務(wù)禁止掉,系統(tǒng)受攻擊的可能性就會小很多。改變后的“inetd.conf”文件的內(nèi)容如下面所示: # To re-read this file after changes, just do a killall -HUP inetd # #echo stream tcp nowait root internal #echo dg

14、ram 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 tcp nowait root interna

15、l #time dgram udp wait root internal # # These are standard services. # #ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd # # Shell, login, exec, comsat and talk are BSD protocols. # #shell stream tcp nowait root /usr/sbin/tcpd in.rshd

16、#login stream tcp nowait root /usr/sbin/tcpd in.rlogind #exec stream tcp nowait root /usr/sbin/tcpd in.rexecd #comsat dgram udp wait root /usr/sbin/tcpd sat #talk dgram udp wait root /usr/sbin/tcpd in.talkd #ntalk dgram udp wait root /usr/sbin/tcpd in.ntalkd #dtalk stream tcp wait nobody /usr/sbin/t

17、cpd in.dtalkd # # Pop and imap mail services et al # #pop-2 stream tcp nowait root /usr/sbin/tcpd ipop2d #pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d #imap stream tcp nowait root /usr/sbin/tcpd imapd # # The Internet UUCP service. # #uucp stream tcp nowait uucp /usr/sbin/tcpd /usr/lib/uucp/uu

18、cico -l # # Tftp service is provided primarily for booting. Most sites # run this only on machines acting as boot servers. Do not uncomment # this unless you *need* it. # #tftp dgram udp wait root /usr/sbin/tcpd in.tftpd #bootps dgram udp wait root /usr/sbin/tcpd bootpd # # Finger, systat and netsta

19、t give out user information which may be # valuable to potential system crackers. Many sites choose to disable # some or all of these services to improve security. # #finger stream tcp nowait root /usr/sbin/tcpd in.fingerd #cfinger stream tcp nowait root /usr/sbin/tcpd in.cfingerd #systat stream tcp

20、 nowait guest /usr/sbin/tcpd /bin/ps -auwwx #netstat stream tcp nowait guest /usr/sbin/tcpd /bin/netstat -f inet # # Authentication # #auth stream tcp nowait nobody /usr/sbin/in.identd in.identd -l -e -o # # End of inetd.conf 注意:改變了“inetd.conf”文件之后,別忘了給inetd進程發(fā)一個SIGHUP信號(killall HUP inetd)。 rootdeep

21、 /root# killall -HUP inetd 第四步: 為了保證“inetd.conf”文件的安全,可以用chattr命令把它設(shè)成不可改變。把文件設(shè)成不可改變的只要用下面的命令: rootdeep# chattr +i /etc/inetd.conf 這樣可以避免“inetd.conf”文件的任何改變(意外或是別的原因)。一個有“i”屬性的文件是不能被改動的:不能刪除或重命名,不能創(chuàng)建這個文件的鏈接,不能往這個文件里寫數(shù)據(jù)。只有系統(tǒng)管理員才能設(shè)置和清除這個屬性。如果要改變inetd.conf文件,你必須先清除這個不允許改變的標(biāo)志: rootdeep# chattr -i /etc/in

22、etd.conf 但是對于諸如sendmail,named,www等服務(wù),由于它們不象finger,telnet等服務(wù),在請求到來時由inet守護進程啟動相應(yīng)的進程提供服務(wù),而是在系統(tǒng)啟動時,作為守護進程運行的。而對于redhat linux,提供了一個linuxconfig命令,可以通過它在圖形界面下交互式地設(shè)置是否在啟動時運行相關(guān)服務(wù)。也可以通過命令來設(shè)置是否啟動時啟動某個服務(wù),如:rootdeep# chkconfig level 35 named off 具體命令可以參考man chkconfig的說明* /etc/hosts.allow 文件但是對于telnet、ftp等服務(wù),如果將

23、其一同關(guān)閉,那么對于管理員需要遠程管理時,將非常不方便。Linux提供另外一種更為靈活和有效的方法來實現(xiàn)對服務(wù)請求用戶的限制,從而可以在保證安全性的基礎(chǔ)上,使可信任用戶使用各種服務(wù)。Linux提供了一個叫TCP wrapper的程序。在大多數(shù)發(fā)布版本中該程序往往是缺省地被安裝。利用TCP wrapper你可以限制訪問前面提到的某些服務(wù)。而且TCP wrapper的記錄文件記錄了所有的企圖訪問你的系統(tǒng)的行為。通過last命令查看該程序的log,管理員可以獲知誰曾經(jīng)或者企圖連接你的系統(tǒng)。 在/etc目錄下,有兩個文件:hosts.deny hosts.allow 通過配置這兩個文件,你可以指定哪些

24、機器可以使用這些服務(wù),哪些不可以使用這些服務(wù)。 當(dāng)服務(wù)請求到達服務(wù)器時,TCP wrapper就按照下列順序查詢這兩個文件,直到遇到一個匹配為止: 1.當(dāng)在/etc/hosts.allow里面有一項與請求服務(wù)的主機地址項匹配,那么就允許該主機獲取該服務(wù) 2.否則,如果在/etc/hosts.deny里面有一項與請求服務(wù)的主機地址項匹配,就禁止該主機使用該項服務(wù)。 3.如果相應(yīng)的配置文件不存在,訪問控制軟件就認(rèn)為是一個空文件,所以可以通過刪除或者移走配置文件實現(xiàn)對清除所有設(shè)置。在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加 # 實現(xiàn)注釋功能。 配置這兩個文件是通過一種簡單的訪問控制語

25、言來實現(xiàn)的,訪問控制語句的基本格式為: 程序名列表:主機名/IP地址列表。 程序名列表指定一個或者多個提供相應(yīng)服務(wù)的程序的名字,名字之間用逗號或者空格分割,可以在inetd.conf文件里查看提供相應(yīng)服務(wù)的程序名:如上面的文件示例中,telent所在行的最后一項就是所需的程序名:in.telnetd。 主機名/IP地址列表指定允許或者禁止使用該服務(wù)的一個或者多個主機的標(biāo)識,主機名之間用逗號或空格分隔。程序名和主機地址都可以使用通配符,實現(xiàn)方便的指定多項服務(wù)和多個主機。 Linux提供了下面靈活的方式指定進程或者主機列表: 1.一個以.起始的域名串,如 . 那么 HYPERLINK 就和這一項匹

26、配 2.以.結(jié)尾的IP串如 202.37.152. 那么IP地址包括202.37.152. 的主機都與這一項匹配。 3.格式為n.n.n.n/m.m.m.m表示網(wǎng)絡(luò)/掩碼,如果請求服務(wù)的主機的IP地址與掩碼的位與的結(jié)果等于n.n.n.n 那么該主機與該項匹配。 4.ALL表示匹配所有可能性 5.EXPECT表示除去后面所定義的主機。如:list_1 EXCEPT list_2 表示list_1主機列表中除去List_2所列出的主機 6.LOCAL表示匹配所有主機名中不包含.的主機 上面的幾種方式只是Linux提供的方式中的幾種,但是對于我們的一般應(yīng)用來說是足夠了。我們通過舉幾個例子來說明這個問

27、題: 例一:我們只希望允許同一個局域網(wǎng)的機器使用服務(wù)器的ftp功能,而禁止廣域網(wǎng)上面的ftp服務(wù)請求,本地局域網(wǎng)由 202.39.154.、202.39.153.和202.39.152. 三個網(wǎng)段組成。 在hosts.deny文件中,我們定義禁止所有機器請求所有服務(wù): ALL:ALL 在hosts.allow文件中,我們定義只允許局域網(wǎng)訪問ftp功能: in.ftpd -l a: 202.39.154 202.39.153. 202.39.152. 這樣,當(dāng)非局域網(wǎng)的機器請求ftp服務(wù)時,就會被拒絕。而局域網(wǎng)的機器可以使用ftp服務(wù)。此外,應(yīng)該定期檢查/var/log目錄下的紀(jì)錄文件,發(fā)現(xiàn)對系

28、統(tǒng)安全有威脅的登錄事件。last命令可以有效的查看系統(tǒng)登錄事件,發(fā)現(xiàn)問題所在。 最后tcpdchk是檢查TCP_WAPPERS配置的程序。它檢查TCP_WAPPERS的配置,并報告它可以發(fā)現(xiàn)的問題或潛在的問題。在所有的配置都完成了之后,請運行tcpdchk程序: rootdeep# tcpdchk * /etc/services 文件 端口號和標(biāo)準(zhǔn)服務(wù)之間的對應(yīng)關(guān)系在RFC 1700 “Assigned Numbers”中有詳細的定義?!?etc/services”文件使得服務(wù)器和客戶端的程序能夠把服務(wù)的名字轉(zhuǎn)成端口號,這張表在每一臺主機上都存在,其文件名是“/etc/services”。只有

29、“root”用戶才有權(quán)限修改這個文件,而且在通常情況下這個文件是沒有必要修改的,因為這個文件中已經(jīng)包含了常用的服務(wù)所對應(yīng)的端口號。為了提高安全性,我們可以給這個文件加上保護以避免沒有經(jīng)過授權(quán)的刪除和改變。為了保護這個文件可以用下面的命令: rootdeep# chattr +i /etc/services * /etc/securetty 文件 “/etc/securetty”文件允許你規(guī)定“root”用戶可以從那個TTY設(shè)備登錄。登錄程序(通常是“/bin/login”)需要讀取“/etc/securetty”文件。它的格式是:列出來的tty設(shè)備都是允許登錄的,注釋掉或是在這個文件中不存在的都是不允許root登錄的。 注釋掉(在這一行的開頭加上號)所有你想不讓root登錄的tty設(shè)備。 編輯securetty文件(vi /etc/securetty)象下面一樣,注釋掉一些行: tty1 #tty2 #tty3 #tty4 #tty5 #tty6 #tty7 #tty8 * 使Control-Alt-Delete關(guān)機鍵無效 把“/etc/inittab”文件中的一行注釋掉可以禁止用Control-Alt-Delete關(guān)閉計算機。如果服務(wù)器不是放在一個安全的地方,這非常重要。 編輯inittab文件(vi /etc/inittab)把這一行: ca:ctrlaltdel:/sb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論