歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux管理 >> Linux問題解決

Linux系統下網絡詳細解答

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 
…… 
alias eth0 eepro100 
alias eth1 ne 
options ne io=0x300 irp=5 
……

這一段文字說明了該Linux系統裝了兩塊網卡,其中alias命令指出以太網口所具有的驅動程序的名稱,即在0號以太網口需要加載的網卡驅動程序是eepro100.o,而1號以太網口要加載的是ne.0。大家一定已經注意到了在1號口下有options一項附加命令,指明了該網卡的io地址和中斷號。這是因為對於pci網卡,系統會自動找到網卡的io地址和中斷號,所以不必用options選項來指定網卡的io地址和中斷號;而對於ISA網卡,則必須要在該配置文件中用options選項指明該網卡的io地址和中斷號。

修改完conf.modules配置文件後,用命令inmod就可以以模塊的形式將網卡驅動程序加載到內核,加載完後還可以用lsmod命令來查看當前加載的模塊的信息。

配置網卡的方法並非只有這一種,用命令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 
inet addr:202.206.19.87 Bcast:202.206.112.3 Mask:255.255.255.0 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
PX packet:435510 errors:0 droped:0 overruns:0 frame:2 
TX packet 339781 errors:0 dropped:0 overruns:0 carrier:0 
Collisions:228938 txqueuelen:100 
Interrupt:10 Base address 0x1800 
eth1 link encap:Ethernet Hwaddr 4A:08:3D:00 
inet addr:129.1.1.6 Bcast:129.0.0.0 Mask:255.255.255.0 
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
PX packet:489 errors:0 droped:0 overruns:0 frame:2 
TX packet 34 errors:0 dropped:0 overruns:0 carrier:0 
Collisions:2 txqueuelen:100 
Interrupt:9 Base address 0x1800 
lo Link encap:Local Loopback 
inet addr:127.0.0.1 Mask:255.0.0.0 
UP LOOPBACK RUNNING MTU:3900 Metric:1 
PX packets:3880 errors:0 dropped:0 overrun:0 frame: 
TX packets:3800 errors:0 dropped:0 overrun:0 carrier:0 
Collisions:0 txqueue:0

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的安全管理還涉及到很多方面,並且任何一種單一的安全措施的防范能力都是有限的,多管齊下的安全策略,實時的檢測,各種高級安全管理技巧及防火牆等的設定,才能使你的系統安全地運行。

Copyright © Linux教程網 All Rights Reserved