官术网_书友最值得收藏!

認證目標2.05 考慮添加命令行工具

你可能想添加幾個命令行工具以幫助系統管理員管理各種Linux系統。本書后面將使用這些工具來確保各種服務器正常操作。雖然最好用Evolution和Thunderbird這樣的e-mail客戶端測試像Postfix這樣的服務,但是像telnet、nmap和mutt等命令可以用在命令行窗口遠程檢查這些服務。在Red Hat考試時,可以用這些工具測試、診斷和解決系統問題,所需要的時間不過相當于下載一個復雜的工具,如Evolution。雖然ssh命令可以實現遠程訪問GUI工具,但是與這類工具進行通信可能會非常耗時。

從管理角度而言,我們感興趣的工具有:

● telnet和nmap可以驗證對開放端口的遠程訪問。

● mutt作為一個e-mail客戶端可以驗證一個email服務器的功能。

● elink作為Web瀏覽器,它確保Web服務是可以訪問的。

● 在命令完成后可以用lftp訪問FTP服務器。

2.5.1 用telnet檢查端口

telnet命令其實非常強大。任何對明文客戶端存在的安全風險有所了解的人都對telnet命令有所顧忌。用telnet登錄到遠程服務器的用戶確實以明文的方式傳遞他們的用戶名、口令和其他命令。只要有一個像Wireshark的協議分析器,任何人都很容易讀取這些數據。

但是telnet的作用遠不止這些。當它在本地運行時,它可驗證一個服務的運行。例如,下面這個命令驗證了本地系統的vsFTP運行情況:

        $ telnet localhost 21
        Trying 127.0.0.1...
        Connected to localhost.
        Escape character is '^]'.
        220(vsFTPd 3.0.2)

“轉義字符(Escape Charater)”是Ctrl鍵和右方括號(]))同時按下來的字符。在屏幕上輸入這個命令組合會出現telnet>提示符。在這個提示下用quit命令可以退出。

        ^]
        telnet> quit

通常情況下甚至不用執行Escape Character就可以退出telnet提示符窗口,只需要輸入quit命令即可。

如果vsFTP沒有運行或者如果它的通信端口不是21,則會看到如下響應:

        Trying 127.0.0.1...
        telnet: connect to address 127.0.0.1: Connection refused

如果系統沒有安裝防火墻,則利用遠程系統也會得到相同的結果。但是如果防火墻阻止了21端口的通信,則會看到類似于下面的信息:

        telnet: connect to address 192.168.122.50: No route to host

有些服務(如Postfix電子郵件服務器)默認情況下只接受來自本地的連接。此時,不管有沒有防火墻,當我們連接一個遠程系統時都會看到“連接被拒絕”的消息。

2.5.2 用nmap檢查端口

nmap命令是一個功能強大的端口掃描工具。正因為如此,nmap開發者的網站上有這樣的描述:“當nmap命令使用不正確時,nmap很可能會使(但是很少發生)使用者遇到ISP的起訴、解雇、驅逐、監禁或屏蔽”。盡管如此,它已包含在標準RHEL 7庫中。因此它的合法使用已得到Red Hat的支持。用nmap命令可以快速確定在本地和在遠程打開的服務。例如,如圖2-20的nmap localhost命令檢測到并列出那些正在本地系統上運行的服務。

圖2-20 在本地應用端口掃描程序

但與此相反,如果從遠程系統上執行端口掃描,則看起來似乎只有一個端口是打開的。這說明此服務器上的防火墻起作用。

        Starting Nmap 6.40(http://nmap.org)at 2015-02-02 09:52 PST
        Nmap scan report for server1.example.com(192.168.122.50)
        Host is up(0.027s latency).
        Not shown: 999 filtered ports
        PORT   STATE SERVICE
        22/tcp open  ssh

2.5.3 配置e-mail客戶端

對于參加Red Hat考試的考生來說,GUI email客戶端的配置過程應該是易如反掌的。但是,對于命令行email客戶端,事情就不是這樣,命令行客戶端常用來測試Postfix和Sendmail等標準e-mail服務器的功能。例如,當一個服務器配置為郵局協議(Post Office Protocol, POP)電子郵件服務器時,或者此郵件服務器用幾乎無所不在的POP3版本發送郵件時,可以用下面的命令進行檢查:

        # mutt -f pop://username@host

GUI的e-mail客戶端對讀者來說很容易,因此本節的其余部分重點介紹命令行的email客戶端。

1.命令行電子郵件

測試本地郵件系統的一個方法是使用內置的命令行mail實用工具。它提供了一個簡單的基于文本的接口。郵件系統把每個用戶的郵件保存在與每個用戶名相關的/var/mail目錄中。用mail實用工具閱讀郵件的用戶也可以回復、轉發或刪除相關的信息。

當然可以用其他任何郵件閱讀程序,如mutt或者GUI Web瀏覽器自帶的郵件管理程序測試自己的郵件系統。其他郵件閱讀程序把信息保存在不同的目錄。如果在本地系統上已啟動簡單郵件傳輸協議(Simple Mail Transfer Protocol, SMTP)服務器,則像mutt和mail這樣的郵件閱讀程序可以用來發送信息。

mail命令有兩個基本用法。第一個是先輸入郵件主題,然后是郵件內容,完成后按Ctrl+D。將郵件發送出去,mail實用工具返回到命令行。下面是一個例子:

        $ mail michael
        Subject: Test Message
        Text of the message
        EOT
        $

也可以把一個文件以郵件的文本內容的方式重定向到另一個用戶。例如,下面的命令把/etc/hosts的副本發送給server1上的root用戶,郵件主題名為“hosts file”。

        $ mail -s 'hosts file' < /etc/hosts root@server1.example.com

2.閱讀郵件信息

默認情況下,mail系統不會為某個用戶打開,除非在相應的文件中有郵件。當mail系統打開后,用戶就會看到新郵件和已經閱讀郵件的列表。如果已經為某個賬戶打開mail系統,可以輸入郵件的編號并按下回車鍵。如果沒有輸入參數直接按回車鍵,則mail實用工具會認為要閱讀下一個還沒閱讀的郵件。為刪除一個郵件,可以在郵件后面使用d命令,或用d#刪除編號為#的郵件。

或者,在本地的/var/mail目錄里,在用戶指定的文件里讀取郵件內容。這個目錄里的文件都是按相應的用戶名命名的。

2.5.4 文本和圖形瀏覽器的使用

Linux包含了多個圖形化瀏覽器。訪問普通網站或安全網站要用相應的協議,即超文本傳輸協議(Hypertext Transfer Protocol, HTTP)或超文本傳輸協議安全(Hypertext Transfer Protocol, Secure, HTTPS)。任何Linux用戶都會使用圖形化瀏覽器。

也許你并不是總能訪問GUI,特別是不能從遠程系統訪問GUI。任何情況下,基于文本的瀏覽器速度比較快。在Red Hat Linux中,標準的基于文本的瀏覽器是ELinks。當ELinks程序包安裝后,可以用它在命令行打開任何想要訪問的網站。例如,圖2-21說明了elinks http://www.google.com命令的結果。

圖2-21 ELinks瀏覽器

為退出ELinks程序,只需要按下Esc鍵進入菜單欄,然后按下F | X并接受提示信息,即可退出ELinks瀏覽器。另一種方法是使用Q快捷鍵來退出ELinks程序。

如果需要配置一個Web服務器,最容易的辦法是確保它只用簡單的文本主頁,不需要HTML代碼。例如,可以在home.html中添加以下文本:

        This is my home page

然后就可以運行elinks home.html命令在ELinks瀏覽器中瀏覽這段文本。如果已經在第1章介紹的/var/www/html/inst目錄中建立一個Apache文件服務器,也可以通過以下命令,用elinks命令查看復制到此服務器上的文件:

        $ elinks http://192.168.122.1/inst

2.5.5 用lftp訪問URL

最初的FTP客戶端軟件都是一個簡單的命令行,它是提供了簡單高效的接口的面向文本的客戶端應用程序。大多數Web瀏覽器提供一個圖形接口,也可以用作FTP客戶端。

任何FTP客戶端允許用戶查看目錄樹和文件。把ftp當作客戶端是很容易的一件事。我們可以用ftp命令連接到像ftp.redhat.com這樣的服務器,如下所示:

        # ftp ftp.redhat.com

但是在這個客戶端需要輸入用戶名和口令。輸入用戶名anonymous,輸入e-mail地址作為口令,就可以訪問Red Hat FTP服務器,但如果用戶偶然輸入一個真實的用戶名和口令,這些數據將會用明文格式發送,在此網絡上任何碰巧使用網絡分析器應用程序的人都可以看到這些數據。奇怪的是,在標準的RHEL 7安裝中竟然沒有安裝ftp命令客戶端程序。

這只是lftp優于ftp的一個理由。它會自動嘗試匿名登錄而不會要求用戶輸入用戶名或口令。此外,它還支持命令補全(Command Completion)功能,該功能有助于訪問帶有長名稱的文件和目錄。

當然,大多數FTP客戶端都存在安全風險,因為它們都以明文形式傳送數據。但是,只要此命令僅限于用于對公開服務器的匿名訪問,則風險可以最小化。歸根結底,當我們用lftp命令從公共服務器下載Linux軟件包時,不大可能會暴露任何私人信息。當然,這類客戶端存在其他安全風險,但是Red Hat開發人員一直在努力使客戶端保持最新。

如果可以接受風險,則可以用lftp命令登錄FTP服務器,而這些FTP服務器允許使用用戶名和口令。用戶michael可以用下面的命令登錄到這樣一個服務器:

        $ lftp ftp.example.org -u michael

在lftp客戶端可以執行很多不同的命令,如圖2-22所示。其中一些命令在表2-5中描述。

圖2-22 lftp中的命令

表2-5 標準lftp客戶端命令

與Telnet會話相似,幾乎所有可以在FTP提示符后執行的命令都運行在遠程主機上。我們也可以在FTP提示符后執行常用的shell命令,只需要在命令前面加一個感嘆號(!)。

表中列出的只是lftp命令的一個子集。如果用戶記不起某個命令的用法,輸入help cmd就可以得到這個命令的詳細說明。

主站蜘蛛池模板: 榆社县| 卓资县| 双辽市| 抚顺市| 平利县| 岢岚县| 阳谷县| 遵义县| 历史| 土默特右旗| 会泽县| 荔波县| 甘孜县| 武清区| 三江| 彩票| 秦皇岛市| 抚顺县| 西贡区| 青铜峡市| 略阳县| 尉氏县| 徐州市| 宝坻区| 溆浦县| 通榆县| 陆良县| 卢氏县| 石楼县| 普宁市| 新沂市| 沙田区| 固原市| 包头市| 嘉善县| 尖扎县| 商都县| 上犹县| 揭阳市| 拉萨市| 丰镇市|