sp; Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:508961 errors:0 dropped:0 overruns:0 frame:0
TX packets:508961 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:574086961 (547.4 MiB) TX bytes:574086961 (547.4 MiB)
從上面輸出可知,本系統(tǒng)有兩塊網(wǎng)卡,分別配置不同網(wǎng)段的IP地址,假定eth0通過映射的方式對外提供ssh連接服務,而eth1僅供局域網(wǎng)主機之間共享數(shù)據(jù)使用。
現(xiàn)在的問題是,外界無法ssh遠程登錄到此系統(tǒng),而網(wǎng)卡加載沒有問題,網(wǎng)卡IP設置也沒問題,接下來看看此系統(tǒng)的路由設置:
[root@webserver ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.0 * 255.255.255.0 U 0 0 0 eth0
192.168.200.0 * 255.255.255.0 U 0 0 0 eth1
default 192.168.200.1 0.0.0.0 UG 0 0 0 eth1
到這里,問題已經(jīng)基本排查出來了:從route的輸出可知,linux的缺省路由是192.168.200.1,而192.168.200段的IP僅僅供局域網(wǎng)主機之間共享數(shù)據(jù)使用,沒有連接出去的訪問權(quán)限,因而,外界無法連接到linux系統(tǒng),也是理所當然的事情了。
定位了問題,解決方法很簡單,刪除192段的缺省路由,然后增加10段的缺省路由即可:
[root@webserver ~]# route delete default
[root@webserver ~]#route add default gw 10.10.1.254
此時外界就可以通過ssh服務遠程連接到linux系統(tǒng)了。
3.檢查DNS解析文件是否設置正確
在Linux系統(tǒng)中,有兩個文件用來指定系統(tǒng)到哪里尋找相關域名解析的庫。分別是文件/etc/host.conf和/etc/nsswitch.conf。
/etc/host.conf文件指定系統(tǒng)如何解析主機名,Linux通過域名解析庫來獲得主機名對應的IP地址。下面是RedHat Linux安裝后缺省的/etc/host.conf內(nèi)容:
order hosts,bind
其中,order指定主機名查詢順序,這里表示首先查找/etc/hosts文件對應的解析,如果沒有找到對應的解析,接著就根據(jù)/etc/resolve.conf指定的域名服務器進行解析。
/etc/nsswitch.conf文件是由SUN公司開發(fā)的,用于管理系統(tǒng)中多個配置文件查詢的順序,由于nsswich.conf提供了更多的資源控制方式,nsswich.conf文件現(xiàn)在已經(jīng)基本取代了hosts.conf,雖然LINUX系統(tǒng)中默認這兩個文檔都存在,但實際上起作用的是nsswitch.conf文件。
nsswitch.conf文件每行的配置都以一個關鍵字開頭,后跟冒號,緊接著是空白,然后是一系列方法的列表。
例如這段信息:
hosts: files dns
表示系統(tǒng)首先查詢主機庫文件,如果沒有找到對應的解析,接著會去DNS配置文件指定的DNS服務器進行解析。
清楚了linux下域名解析的原理和過程,我們就可以根據(jù)這兩個文件的設定,確定解析的順序,從而判斷出域名解析可能出現(xiàn)的問題。
4.檢查服務是否正常打開
在一個應用出現(xiàn)故障時,必須要檢查的就是服務本身,比如服務是否開啟,配置是否正確等等,檢查服務是否正確打開,分為兩步,第一步是查看服務的端口是否打開:
例如,我們不能用root用戶ssh登錄到192.168.60.133這臺linux服務器,首先檢查sshd服務的22端口是否打開:
[root@localhost init.d]# telnet 192.168.60.133 22
SSH-2.0-OpenSSH_4.3
這個輸出表示192.168.60.133的22端口對外開放,或者可以說sshd服務是處于打開狀態(tài)。如果沒有任何輸出,可能是服務沒有啟動,或者服務端口被屏蔽。
也可以在服務器上通過netstat命令檢查22端口是否打開:
[root@localhost xinetd.d]# netstat -ntl
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 :::80 :::* LISTEN
tcp 0 0 :::22 :::* LISTEN
可以看到,22端口在服務器上是打開的,同時,服務器上打開的還有3306、80端口。
接著進行第二步的檢查,既然服務已經(jīng)打開,可能是sshd服務配置的問題,檢查sshd服務端配置文件/etc/ssh/sshd_config,發(fā)現(xiàn)有下面一行信息:
PermitRootLogin no
由此可知是ssh服務端配置文件限制了root用戶不能登錄系統(tǒng),如果需要root登錄系統(tǒng),只需更改為如下即可:
PermitRootLogin yes
到這里為止,我們通過對端口和服務配置文件的層層檢查,最終找到了問題的根源。需要說明的是,這里的重點不是講述如何讓root登錄linux系統(tǒng),而是要通過這個例子讓讀者學會處理類似問題的思路和方法。
5.檢查訪問權(quán)限是否打開
。1)檢查系統(tǒng)防火墻iptables的狀態(tài)
當某些服務不能訪問時,一定要檢查是否被linux本機防火墻iptables屏蔽了,可以通過iptables -L指令查看iptables的配置策略,例如我們不能訪問某臺linux服務器提供的www服務,通過檢查,系統(tǒng)網(wǎng)絡、域名解析都正常,并且服務也正常啟動,然后檢查了服務器的iptables策略配置,信息如下:
[root@localhost ~]# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
從上面的輸出可知,這個linux服務器僅僅設置了預設策略,而致命的是將INPUT鏈和OUTPUT鏈都設置為DROP,也就是所有外部數(shù)據(jù)不能進入服務器,服務器數(shù)據(jù)也不能出去,這樣的設置相當于沒有網(wǎng)絡。
為了能訪問這臺服務器提供的www服務,增加兩條策略即可:
[root@localhost ~]#iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
[root@localhost ~]#iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
這樣以來,internet上的其他人就能訪問我們的www服務了。
。2)檢查selinux是否打開
在前面的章節(jié),我們已經(jīng)講述過selinux的含義和功能,它可以最大限度地保證Linux系統(tǒng)的安全,但是selinux有時也會給linux下軟件的運行帶來一些問題,這些問題大部分是對selinux不了解造成的,為了迅速定位問題,最簡單的方法是先關閉selinux,然后測試軟件運行是否正常,這不是個好方法,但是對于判斷問題往往是很有用的,selinux是個很好的安全訪問控制軟件,可是如果你還不能熟練運用selinux訪問控制策略的話,還是建議將它暫時關閉,等到對linux有了更深入的認識后,再開啟selinux不失為一個明智的策略。
6.檢查局域網(wǎng)主機之間聯(lián)機是否正常
通過上面5步的檢查,linux系統(tǒng)自身的問題已經(jīng)基本排除,接下來需要擴展到linux主機之外的網(wǎng)絡環(huán)境,檢查網(wǎng)絡之間的連通是否存在故障,可以先通過ping命令測試局域網(wǎng)主機之間的連通性,然后ping網(wǎng)關,檢測主機到網(wǎng)關的通信是否正常。
任何網(wǎng)絡故障的出現(xiàn),都是有原因的,只要我們根據(jù)上面給出的解決問題流程,逐一排查,99%的問題都能得到很好的解決。
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|