Linux系統網路詳解(轉)

gugu99發表於2007-08-10
Linux系統網路詳解(轉)[@more@]

  Linux作為一種主要用於網路環境的作業系統,有著空前強大的網路功能。如何在Linux系統中安裝、配置、使用網路,使其高效、安全地工作十分重要。本文對Linux主機的網路裝置的安裝、配置、除錯、網路服務的設定以及Linux系統的網路使用進行詳細的講解。最後,還就Linux系統的安全性知識及技巧作簡單介紹。

  1. Linux下的網路安裝、配置及除錯

  將Linux接入Internet的方法很多,最常見而且快捷方便的方法是以區域網的形式接入。此時就涉及到Linux系統下一塊或多塊網路卡的安裝。對於乙太網卡,Linux在作業系統的安裝過程中會自動檢測到並自動配置核心以便系統能使用該網路卡。只需根據安裝程式的提示給出tcp/ip的配置引數,如本機的ip地址、DNS的ip地址等等,安裝程式將會自動把系統支援的網路卡驅動程式編譯到核心中。

  對於非乙太網卡或者要在原有的基礎上增加網路卡的情況下,或者系統本身不支援現有的網路卡時,就得自己動手安裝網路卡了。其實這並不難,只要瞭解了載入網路卡驅動程式的過程。在Linux系統中,網路卡的驅動程式是作為模組載入到核心中的,正因為如此,當沒有網路卡的驅動程式時,可以到網上去下載驅動程式的原始檔,甚至可以自己動手編寫網路卡的驅動程式,然後以模組的形式將其編譯到核心中去。所有Linux支援的網路卡驅動程式都存放在目錄/lib/modules /Linux版本號/net/,我們可以透過修改模組配置檔案來更換網路卡或增減網路卡。

  在etc目錄下的conf.modules配置檔案是載入模組的一個重要的引數檔案,在這個檔案中,指明瞭系統要載入的網路卡的驅動程式:

    #/etc/conf.modules

   ……

  

  配置網路卡的方法並非只有這一種,用命令netconf或netconfig也能完成網路卡的配置工作,netconfig命令是重新配置基本的TCP/IP引數,這些引數包括是否配置為動態獲得ip地址(dhcpd和bootp)、子網掩碼、預設閘道器及域名伺服器地址等;netconf命令用於詳細配置所有的網路引數,包括客戶端任務(主機名、有效域名、網路別名、網路卡的ip地址、網路掩碼、介面名、網路卡驅動程式、DNS地址、預設閘道器地址、NIS地址、ipx藉口,ppp/slip等),伺服器端任務(NFS、DNS、ApacheWebServer、Samba、Wu-ftpd等)和其他配置三部分。在超級使用者下鍵入netconf命令,然後只需根據系統給出的選項填入相應的資訊即可,同樣,對於PCI網路卡,甚至不必填寫硬體的io地址和中斷號;與此同時,你還可以指定該網路卡是否可用,其TCP/IP網路的ip地址及子網掩碼等。隨著Linux圖形介面的發展,同樣,在Xwindows下執行該命令,Linux提供了類似於windows的方便簡單的圖形配置方式。其實,在修改完conf.modules配置檔案後,同樣需要用命令netconf或ifconfig來配置TCP/IP網路引數,因為,上面的工作只是將網路卡的驅動程式載入到核心中使其可用而已。

  其實,透過修改lilo.conf檔案一樣可以將網路卡載入到系統核心。但對於一些比較新的Linux版本來說,作業系統能夠自動檢測到所有相關的硬體,完全沒有必要修改lilo.conf檔案。如果遇到的是ISA網路卡和老的Linux版本。為了使系統初始化時能夠對我們新插入的網路卡進行初始化,可以修改lilo.conf檔案:

  用vi命令開啟lilo.conf檔案,在檔案中新增如下語句:

  append="ether=5,0x300,eth0 ether=7,0x500,eth1"

  這樣,系統同樣能夠配置好網路卡(在上面的語句中是兩塊)。

  配置好網路卡後,要做的工作就是配置和除錯TCP/IP網路了。上面已經講了,可以用命令netconf來進行TCP/IP的引數配置。

  之後,可以用ifconfig命令來除錯網路。在Linux系統中,用命令ifconfig -a可以顯示系統中所有的網路介面的資訊,如:

    eth0 link encap:Ethernet Hwaddr 00:0E:5F:1A

  

  ifconfig命令不但可以檢視系統中網路介面的情況,還可以透過引數來配置網路,其命令格式為:

  #ifconfig 介面名 ip地址 netmask子網掩碼

  只是,ifconfig命令只在本次執行時改變網路卡的TCP/IP網路引數,但當系統重新啟動後,系統仍然按照預設設定來啟動網路介面。實際上,ifconfig命令是呼叫netconf來進行網路配置的。而且,在Linux系統中,我們可以用ifconfig命令給一塊網路卡設定多個ip地址,如:

  #ifconfig eth0:1 202.206.16.1 netmask 255.255.255.0

  然後我們用ifconfig -a命令進行檢視,就會發現有兩個具有相同的MAC地址但其ip地址卻不同的介面,分別為:eth0和eth0:1。

  另外,我們可以將網路卡設定成混雜模式(prosimc),在這個模式下,網路卡接收網路中所有的資料包。

  2.常用的網路命令

  計算機網路的好處就在於資源和資訊共享。Linux系統為大家提供了一組功能強大的網路命令使得使用者可以方便地除錯網路,檢視網路狀況和資源使用情況,以及遠端登入和檔案傳輸等工作。上面介紹了網路裝置的安裝及網路環境的設定,下面就向大家介紹一些常用的網路命令。

  * ping

  ping命令用來檢查網路上某臺主機是否處於活動狀態,它利用TCP/IP協議簇中的ICMP協議的ECHO_REQUEST資料包強制性地要求網路上某臺特定的主機作出響應,如果不能ping 通某臺主機,證明主機和那臺主機之間的網路存在故障。但ping 命令只是經過底層的幾個協議,就算能ping 通,但只能說明該條線路正常連線,並不能保證其他高層的服務正常執行,但如果不能ping 通,則這兩臺主機根本不能進行任何通訊。

  * traceroute

  traceroute命令也是用於檢查網路是否能夠正常通訊,與ping不同的是,ping命令只能測試出從本機到目的host是否能夠通訊,而traceroute命令則能測試出從本機經過了哪些路由器或主機到達目的主機,如果不能到達,其故障具體是出在什麼地方。所以我們常常在ping不通時用該命令在進一步查詢原因所在。

  *netstat

  netstat命令用於顯示網路狀態資訊,其用途很廣泛,可以用來察看網路連線狀態、介面配置、路由表等,並取得一些統計資訊。該命令的主要引數和用途如下:

  -a :顯示所有配置的介面

  -i :顯示介面的統計資訊

  -n :以數字的形式顯示ip地址

  -r :顯示核心的路由表

  -s :顯示計數器的值

  *ifconfig

  前面已經講到了,ifconfig命令用來檢視網路介面的配置情況,也用於除錯網路裝置是否已經正確安裝配置,或者用該命令來重新配置網路,只是用ifconfig命令配置的網路不是永久性的,系統一旦重新啟動,先前用ifconfig配置的各種引數便不復存在。

  *telnet

  telnet命令用於遠端登入,其命令格式為:telnet 主機名(或ip地址)。透過telnet命令登入遠端計算機,就像登入到本機上執行操作一樣。當然,要想遠端登入到一臺計算機上,必須知道該機合法的使用者名稱和密碼。要提醒大家的一點是,當用telnet命令登入並結束了遠端會話後,一定要使用logout命令退出遠端系統,以免造成意想不到的問題。

  *rlogin

  rlogin是remote login(遠端登入的縮寫),與telnet命令很相似,最常用的格式為:

  rlogin host

  rlogin命令還帶有一些引數,常用的有:

  -8 :始終允許8位輸入資料管道,允許傳送格式化ANSI字元和其他特殊程式碼。

  -E :禁止把任何字元當成跳脫字元。當該引數與-8一起使用時,便提供一個完全的透明連線。

  -L :允許rlogin會話在litout模式下執行。

  -x :為所有透過rlogin會話互動的資料進行DES加密,從而提供安全性。

  *ftp

  ftp命令是標準的檔案傳輸協議的使用者介面,命令格式為:ftp 主機名或ip地址,用於在TCP/IP網路上進行檔案傳輸。ftp命令可以用來傳輸ASCII檔案和二進位制檔案。同樣,要想實現ftp檔案傳輸,你必須知道遠端計算機上合法的使用者名稱和口令,並且該使用者名稱具有所要傳輸的檔案的存取許可權。

  *rcp

  rcp是remote file copy的縮寫,即遠端檔案複製,用於在計算機之間複製檔案,其命令格式有兩種,分別用於檔案到檔案的複製和將檔案或目錄複製到另一個目錄下,其一般格式為:

  rcp [-px] [-k realm] file1 file2

  rcp [-px] [-r] [-k realm] file

  其中,-p 是保留原檔案的修改時間和模式,忽略umask;-x 對所有資料實行DES加密,提高安全性;-k 是請求rcp獲得在指定區域內的遠端主機的Kerbero許可;-r 是以遞迴的方式把源目錄中的所有檔案或目錄都複製到目的目錄中。

  3. Linux的網路安全技巧

  網路的安全性是非常重要的,安全的策略是禁止所有不必要的服務,以免給不法之徒留下安全漏洞。雖然Linux本身是十分安全可靠的,但對於系統管理員來說,如何保證系統的安全性也不是一件容易的事。下面就為大家介紹一些網路安全管理常用技巧。

  *BIOS密碼保護

  管理員可以透過設定BIOS密碼並修改引導次序來禁止別有用心的人從軟盤來啟動系統。

  *使用者口令

  使用者口令是Linux安全的最基本的一點。設定只有自己才知道並理解的口令是非常重要的。

  *修改/etc/vinetd.conf檔案

  一定要確保/etc/inetd.conf的所有者是root使用者,且其檔案許可權為600,因此,務必要檢視並修改該檔案。

  *加強ftp的安全性

  ftp是一個並不十分安全的服務,在/etc/ftpusers中限定不允許透過ftp訪問Linux系統的使用者列表是非常有必要的。

  *經常檢查logfile

  從作業系統的logfile可以檢查到是否有網路入侵,應該經常去檢查該檔案,當發現自己的系統有很多人或有很長時間被嘗試telnet/ftp登入時,就試著執行#more /var/log/secure | grep refused 去檢查。

  *修改/etc/exports檔案

  如果使用的是NFS網路檔案系統,請修改etc/exports檔案從而確保exports具有最嚴格的存取許可權設定。

  *隱藏作業系統和版本資訊

  對於駭客來說,版本號是一個非常重要的資訊。修改存放這些資訊的/etc/issue檔案和/etc/issue.net檔案及/etc/inetd.conf檔案,從而隱藏這些敏感的資訊。在/etc/inetd.conf中加入:telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h,能使telnet後臺不再顯示系統資訊。

  * 禁止ctl+alt+del熱鍵重啟

  在一般的微機中都可以透過tcl+alt+del組合鍵來重新啟動Liunx系統,這是相當危險的,所以應該在檔案/etc/inittab中禁止到這個功能。

  Linux的安全管理還涉及到很多方面,並且任何一種單一的安全措施的防範能力都是有限的,多管齊下的安全策略,實時的檢測,各種高階安全管理技巧及防火牆等的設定,才能使你的系統安全地執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-939794/,如需轉載,請註明出處,否則將追究法律責任。

相關文章