在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > linux網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)

            linux網(wǎng)絡(luò)服務(wù)器配置基礎(chǔ)

            作者: 時間:2007-03-09 來源:網(wǎng)絡(luò) 收藏

              要建立一個安全linux服務(wù)器就首先要了解環(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)的情況下,服務(wù)器至少需要配置兩塊網(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)核的模塊):對于設(shè)備,模塊將自動檢測到所有已經(jīng)安裝到系統(tǒng)上的設(shè)備;對于ISA卡,則需要向模塊提供IO地址,以使模塊知道在何處尋找該卡,這些信息在“/etc/conf.modules”中提供。
              例如,我們有兩塊ISA總線的3c509卡,一個IO地址是0x300,另一個是0x320。編輯conf.modules文件如下:
              alias eth0 3c509
              alias eth1 3c509
              options 3c509 io=0x300,0x320
              這是說明3c509的驅(qū)動程序應(yīng)當分別以eth0或eth1的名稱被加載(alias eth0,eth1),并且它們應(yīng)該以參數(shù)io=0x300,0x320被裝載,來通知驅(qū)動程序到哪里去尋找網(wǎng)卡,其中0x是不可缺少的。
              對于卡,僅僅需要alias命令來使ethN和適當?shù)尿?qū)動模塊名關(guān)聯(lián),卡的IO地址將會被自動的檢測到。對于PCI卡,編輯conf.modules文件如下:
              alias eth0 3c905
              alias eth1 3c905
              若驅(qū)動已經(jīng)被編譯進了內(nèi)核:系統(tǒng)啟動時的PCI檢測程序?qū)詣诱业剿邢嚓P(guān)的網(wǎng)卡。ISA卡一般也能夠被自動檢測到,但是在某些情況下,ISA卡仍然需要做下面的配置工作:
              在/etc/lilo.conf中增加配置信息,其方法是通過LILO程序?qū)訁?shù)信息傳遞給內(nèi)核。對于ISA卡,編輯lilo.conf文件,增加如下內(nèi)容:
              append= ether=0,0,eth0 ether=0,0,eth1
              注:先不要在lilo.conf中加入啟動參數(shù),測試一下你的ISA卡,若失敗再使用啟動參數(shù)。
              如果用傳遞啟動參數(shù)的方法,eth0和eth1將按照啟動時被發(fā)現(xiàn)的順序來設(shè)置。
            * /etc/HOSTNAME文件
              該文件包含了系統(tǒng)的主機名稱,包括完全的域名,如:deep.openarch.com。
            * /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=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
              若希望手工修改網(wǎng)絡(luò)地址或在新的接口上增加新的網(wǎng)絡(luò)界面,可以通過修改對應(yīng)的文件(ifcfg-ethN)或創(chuàng)建新的文件來實現(xiàn)。
              DEVICE=name    name表示物理設(shè)備的名字
              IPADDR=addr    addr表示賦給該卡的IP地址
              NETMASK=mask    mask表示網(wǎng)絡(luò)掩碼
              NETWORK=addr    addr表示網(wǎng)絡(luò)地址
              BROADCAST=addr  addr表示廣播地址
              ONBOOT=yes/no  啟動時是否激活該卡
              none:無須啟動協(xié)議
              bootp:使用bootp協(xié)議
              dhcp:使用dhcp協(xié)議
              USERCTL=yes/no      是否允許非root用戶控制該設(shè)備
            * /etc/resolv.conf文件
              該文件是由域名解析器(resolver,一個根據(jù)主機名解析IP地址的庫)使用的配置文件,示例如下:
              search openarch.com
              nameserver 208.164.186.1
              nameserver 208.164.186.2
              “search domainname.com”表示當提供了一個不包括完全域名的主機名時,在該主機名后添加domainname.com的后綴;“nameserver”表示解析域名時使用該地址指定的主機為域名服務(wù)器。其中域名服務(wù)器是按照文件中出現(xiàn)的順序來查詢的。
            * /etc/host.conf文件
              該文件指定如何解析主機名。linux通過解析器庫來獲得主機名對應(yīng)的IP地址。下面是一個“/etc/host.conf”的示例:
              order bind,hosts
              multi 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_IPV4=yes
              HOSTNAME=deep.openarch.com
              GAREWAY=0.0.0.0
              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文件
              當機器啟動時,在可以查詢DNS以前,機器需要查詢一些主機名到IP地址的匹配。這些匹配信息存放在/etc/hosts文件中。在沒有域名服務(wù)器情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢該文件來解析對應(yīng)于某個主機名的IP地址。
              下面是一個“/etc/hosts”文件的示例:
              IP Address    Hostname          Alias
              127.0.0.1      Localhost          Gate.openarch.com
              208.164.186.1    gate.openarch.com Gate
              …………      …………          ………
              最左邊一列是主機IP信息,中間一列是主機名。任何后面的列都是該主機的別名。一旦配置完機器的網(wǎng)絡(luò)配置文件,應(yīng)該重新啟動網(wǎng)絡(luò)以使修改生效。使用下面的命令來重新啟動網(wǎng)絡(luò):/etc/rc.d/init.d/network restart
            * /etc/inetd.conf文件
              眾所周知,作為服務(wù)器來說,服務(wù)端口開放越多,系統(tǒng)安全穩(wěn)定性越難以保證。所以提供特定服務(wù)的服務(wù)器應(yīng)該盡可能開放提供服務(wù)必不可少的端口,而將與服務(wù)器服務(wù)無關(guān)的服務(wù)關(guān)閉,比如:一臺作為www和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ù)。在任何的網(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。
              [root@deep]# chmod 600 /etc/inetd.conf
              第二步:確信文件的所有者是root。
              [root@deep]# stat /etc/inetd.conf
              第三步:編輯“inetd.conf”文件(vi /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 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 tcp nowait root internal
              #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
              #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 in.comsat
              #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/tcpd 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/uucico -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 netstat 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 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)。
              [root@deep /root]# killall -HUP inetd
              第四步:
              為了保證“inetd.conf”文件的安全,可以用chattr命令把它設(shè)成不可改變。把文件設(shè)成不可改變的只要用下面的命令:
              [root@deep]# chattr +i /etc/inetd.conf
              這樣可以避免“inetd.conf”文件的任何改變(意外或是別的原因)。一個有“i”屬性的文件是不能被改動的:不能刪除或重命名,不能創(chuàng)建這個文件的鏈接,不能往這個文件里寫數(shù)據(jù)。只有系統(tǒng)管理員才能設(shè)置和清除這個屬性。如果要改變inetd.conf文件,你必須先清除這個不允許改變的標志:
              [root@deep]# chattr -i /etc/inetd.conf
              但是對于諸如sendmail,named,www等服務(wù),由于它們不象finger,telnet等服務(wù),在請求到來時由inet守護進程啟動相應(yīng)的進程提供服務(wù),而是在系統(tǒng)啟動時,作為守護進程運行的。而對于redhat linux,提供了一個linuxconfig命令,可以通過它在圖形界面下交互式地設(shè)置是否在啟動時運行相關(guān)服務(wù)。也可以通過命令來設(shè)置是否啟動時啟動某個服務(wù),如:[root@deep]# chkconfig –level 35 named off
              具體命令可以參考man chkconfig的說明。linux配置基礎(chǔ)(下)
            * /etc/hosts.allow文件
              但是對于telnet、ftp等服務(wù),如果將其一同關(guān)閉,那么對于管理員需要遠程管理時,將非常不方便。linux提供另外一種更為靈活和有效的方法來實現(xiàn)對服務(wù)請求用戶的限制,從而可以在保證安全性的基礎(chǔ)上,使可信任用戶使用各種服務(wù)。提供了一個叫TCP wrapper的程序。在大多數(shù)發(fā)布版本中該程序往往是缺省地被安裝。利用TCP wrapper你可以限制訪問前面提到的某些服務(wù)。而且TCP wrapper的記錄文件記錄了所有的企圖訪問你的系統(tǒng)的行為。通過last命令查看該程序的log,管理員可以獲知誰曾經(jīng)或者企圖連接你的系統(tǒng)。
              在/etc目錄下,有兩個文件:hosts.deny hosts.allow 通過配置這兩個文件,你可以指定哪些機器可以使用這些服務(wù),哪些不可以使用這些服務(wù)。
              當服務(wù)請求到達服務(wù)器時,TCP wrapper就按照下列順序查詢這兩個文件,直到遇到一個匹配為止:
              1.當在/etc/hosts.allow里面有一項與請求服務(wù)的主機地址項匹配,那么就允許該主機獲取該服務(wù)
              2.否則,如果在/etc/hosts.deny里面有一項與請求服務(wù)的主機地址項匹配,就禁止該主機使用該項服務(wù)。
              3.如果相應(yīng)的配置文件不存在,訪問控制軟件就認為是一個空文件,所以可以通過刪除或者移走配置文件實現(xiàn)對清除所有設(shè)置。在文件中,空白行或者以#開頭的行被忽略,你可以通過在行前加#實現(xiàn)注釋功能。
              配置這兩個文件是通過一種簡單的訪問控制語言來實現(xiàn)的,訪問控制語句的基本格式為:
              程序名列表:主機名/IP地址列表。
              程序名列表指定一個或者多個提供相應(yīng)服務(wù)的程序的名字,名字之間用逗號或者空格分割,可以在inetd.conf文件里查看提供相應(yīng)服務(wù)的程序名:如上面的文件示例中,telent所在行的最后一項就是所需的程序名:in.telnetd。
              主機名/IP地址列表指定允許或者禁止使用該服務(wù)的一個或者多個主機的標識,主機名之間用逗號或空格分隔。程序名和主機地址都可以使用通配符,實現(xiàn)方便的指定多項服務(wù)和多個主機。
              linux提供了下面靈活的方式指定進程或者主機列表:
              1.一個以.起始的域名串,如.amms.ac.cn,那么www.amms.ac.cn就和這一項匹配
              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)用來說是足夠了。我們通過舉幾個例子來說明這個問題:
              例一:我們只希望允許同一個局域網(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.
              這樣,當非局域網(wǎng)的機器請求ftp服務(wù)時,就會被拒絕。而局域網(wǎng)的機器可以使用ftp服務(wù)。此外,應(yīng)該定期檢查/var/log目錄下的紀錄文件,發(fā)現(xiàn)對系統(tǒng)安全有威脅的登錄事件。last命令可以有效的查看系統(tǒng)登錄事件,發(fā)現(xiàn)問題所在。
              最后tcpdchk是檢查TCP_WAPPERS配置的程序。它檢查TCP_WAPPERS的配置,并報告它可以發(fā)現(xiàn)的問題或潛在的問題。在所有的配置都完成了之后,請運行tcpdchk程序:
              [root@deep]# tcpdchk
            * /etc/services文件
              端口號和標準服務(wù)之間的對應(yīng)關(guān)系在RFC 1700 “Assigned Numbers”中有詳細的定義。“/etc/services”文件使得服務(wù)器和客戶端的程序能夠把服務(wù)的名字轉(zhuǎn)成端口號,這張表在每一臺主機上都存在,其文件名是“/etc/services”。只有“root”用戶才有權(quán)限修改這個文件,而且在通常情況下這個文件是沒有必要修改的,因為這個文件中已經(jīng)包含了常用的服務(wù)所對應(yīng)的端口號。為了提高安全性,我們可以給這個文件加上保護以避免沒有經(jīng)過授權(quán)的刪除和改變。為了保護這個文件可以用下面的命令:
              [root@deep]# 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:/sbin/shutdown -t3 -r now
              改為:
              #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
              用下面的命令使改變生效:
              [root@deep]# /sbin/init q
            * 改變“/etc/rc.d/init.d/”目錄下的腳本文件的訪問許可
              /etc/rc.d/init.d/下的腳本主要包含了啟動服務(wù)的腳本程序。一般用戶沒有什么必要知道腳本文件的內(nèi)容。所以應(yīng)該改變這些腳本文件的權(quán)限。
              [root@deep]# chmod -R 700 /etc/rc.d/init.d/*
              這樣只有root可以讀、寫和執(zhí)行這個目錄下的腳本。
            * /etc/rc.d/rc.local文件
              在默認情況下,當?shù)卿浹b有l(wèi)inux系統(tǒng)的計算機時,系統(tǒng)會告訴你Linux發(fā)行版的名字、版本號、內(nèi)核版本和服務(wù)器名稱。這泄露了太多的系統(tǒng)信息。最好只顯示一個“Login:”的提示信息。
              第一步:
              編輯“/ect/rc.d/rc.local”文件,在下面這些行的前面加上“#”:
              --
              # This will overwrite /etc/issue at every boot. So, make any changes you
              # want to make to /etc/issue here or you will lose them when you reboot.
              #echo > /etc/issue
              #echo $R >> /etc/issue
              #echo Kernel $(uname -r) on $a $(uname -m) >> /etc/issue
              #
              #cp -f /etc/issue /etc/issue.net
              #echo >> /etc/issue
              --
              第二步:
              刪除“/etc”目錄下的“issue.net”和“issue”文件:
              [root@deep]# rm -f /etc/issue
              [root@deep]# rm -f /etc/issue.net
              注意:“/etc/issue.net”文件是用戶從網(wǎng)絡(luò)登錄計算機時(例如:telnet、SSH),看到的登錄提示。同樣在“”目錄下還有一個“issue”文件,是用戶從本地登錄時看到的提示。這兩個文件都是文本文件,可以根據(jù)需要改變。但是,如果想刪掉這兩個文件,必須象上面介紹的那樣把“/etc/rc.d/rc.local”腳本中的那些行注釋掉,否則每次重新啟動的時候,系統(tǒng)又會重新創(chuàng)建這兩個文件

            本文引用地址:http://www.biyoush.com/article/258233.htm
            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉