伺服器架設篇 - RedHat 9

以 Openssh 取代 Telnet 的連線方式

說明 SSH 應該要如何安裝的問題!~

最近更新時間: 2002/01/18

本文資料主要針對 RedHat 9 的系統進行說明,要注意的是,RedHat 9 與 Red Hat Enterprise Linux (RHEL) 是完全不同的東西!RedHat 9 在 2003 年推出,在 2004 年就不再維護了!這部份網站更新到 2005 年,也沒有再維護過! 因此,建議您前往本站查詢最新版本的 Linux distribution 文章來閱讀,比較不會浪費時間。那為何還需要編輯 RedHat 9 的資料呢? 鳥哥只想要做個自己曾經撰寫過的文件內容保存而已囉! ^_^!最新文章請前往鳥站首頁查閱囉!

前言
    不知道您有沒有發現,最近的 Linux 套件中,都將 telnet 的功能自『預設啟動』的條件,改為需要由使用者開啟的狀態?也就是說, Red Hat 在 7.x 版本以後,如果您需要 telnet 的服務,那麼你就必須要自行啟動他,因為他已經被排除在『預設啟動』的服務項目之外了!為什麼呢?這是由於 telnet 本身在傳送資料或者是在進行任何工作的時候,都是以『明碼』的狀態來傳送指令,這樣一來,當有心人士以 listen 的功能監聽你的資料封包時,那麼你所傳送的資料將會被擷取而遭到竊取了!所以,基本上,那是非常不安全的一種傳輸資料方式!因此,在最近所釋出的 Linux 版本中,例如 Red Hat 7.x 版本,他們的 telnet 服務就已經不再是『預設啟動』的功能了
    那如果我們要從遠端連線到主機的話,應該怎麼辦?既然使用 telnet 這種明碼的方式行不通的話,那麼我們要使用何種方式呢?呵呵,現在有更好的方式來提供喔!那就是使用 openssh 這個套件啦!這個 SSH 的服務,最重要的是可以使用『非明碼』的方式來傳送你所鍵入的資料封包,也就是說,你的資料在網路上,即使被監聽而遭竊取了,由於 SSH 是一種加密過後的封包,故而即使被竊取了,該資料要經過解密也不是三天兩頭的事情,所以呢,就可以比較安全的工作啦!此外, SSH 同時也提供配合 PAM 的安全模組,與 TCP Wrappers 的封包限制(也就是 /etc/hosts.allow 與 /etc/hosts.deny 的機制),因此呢,安全性也就比較高一些囉!此外,最便利的一點是,你可以使用 root 的身份經由 ssh 登入你的主機喔!
    好了!底下我們就來說一說,要如何將你的 telnet 改成以 ssh 來連接呢?由於 Red Hat 7.x 以後,預設的 ssh 是『開啟』的狀態,所以你幾乎不需要任何設定就可以使用 ssh 囉,那如果是 Red Hat 6.x 以前的系統呢?那也很簡單的,你只要安裝底下兩個套件(假如您安裝 Red Hat 6.x 是以完全安裝為主)就可以囉!

主機系統的 SSH 建置:
  • Red Hat 7.x 系統:

  • 由於 Red Hat 7.x 系統本身就已經開啟了 sshd 了,所以你可以直接以 ssh 來連上你的主機囉!不過,如果沒有正常開啟 SSH 的話,那樣要如何啟動呢?也是很簡單的,你可以這樣:
    1. 以 『/usr/sbin/setup』 程式進入 setup 的話面中;
    2. 選擇 『System Services』這個項目;
    3. 然後向下移動到『 [*] sshd 』,將 [*] 勾選(按下空白鍵即可);
    4. 然後以 tab 按鍵移動到『 OK 』按下 enter;
    這樣就設定完開機啟動了!然後以底下的方式來啟動 ssh 服務:
      /etc/rc.d/init.d/sshd start
    來啟動 sshd 這個服務,要知道有沒有正常的啟動 ssh 呢?呵呵,只要輸入底下的指令:
      netstat -a | more
    如果一切正常的話,你將會看到類似底下的這一行:
      tcp   0      0 *:ssh         *:*         LISTEN
    那就表示 ssh 已經成功的啟動了!不過,如果萬一你的 Linux 系統並沒有安裝 ssh 這個服務呢?呵呵!那就安裝他吧!其實,ssh 這支服務的主要程式稱為 openSSH 囉!然後,如果您想要重先安裝 openssh 來提供 ssh 的服務,那麼 Red Hat 的網站上隨時更新的 Errata 您就不能不去看看!你可以按底下的連結上去 Red Hat 下載屬於您系統的最新的 openssh 這個套件!
    然後按下您的 Red Hat 版本,進入後,去尋找 openssh 字眼的套件,那個就是啦!然後按下連結之後,直接找到屬於您的系統版本,例如我都是直接捉 i386 的 RPM 檔案,然後回來以 root 身份執行:
      rpm -ivh openssh*
    如果您只是要升級 openssh 的話,那就使用:
      rpm -Uvh openssh*
    更有甚者,直接以 up2date 來升級,(不過會比較慢一些喔!)
      up2date -i openssh
    升級成功之後,就可以直接的以上面的方式來啟動 ssh 這個服務了!
     
    VBird 的經驗
    在上一次更新 openSSH 套件的時候,那是因為網路上發表了舊的 openssh 可能有些安全方面的問題,所以 VBird 就去更新了,但是沒想到更新完成之後 SSH 竟然不會動!當真是嚇了一大跳!後來,找了一些檔案之後,才發現,原來預設的 PAM 模組的屬性搞錯了!你可以到 /etc/pam.d 這個目錄下去看一下,會發現 sshd 的屬性竟然是 600,與其他的檔案屬性都不同,後來執行了:
    chmod 644 sshd
    就 OK 囉!如果你也更新之後發現有這個問題,可以參考看看囉!
  • Red Hat 6.x 以前版本的 Linux 啟動 ssh 服務:

  • 好了,那麼要如何的在 Red Hat 6.x 以前的版本上執行 ssh 這個服務呢?其實也是很簡單的,如前所說的, ssh 其實是 openssh 套件的一種,而 openssh 有使用到 openssl 這個資料保密的套件,(其實還有其他的套件需要安裝,不過,由於我這裡預設條件是您已經用『完整安裝』來安裝您的 Linux 系統,所以其他的套件應該都已經安裝完整了才對!) VBird 不是很建議使用 RPM 來安裝 openssh ,因為在 Red Hat 6.x 以前的版本上面安裝 openssh 的 RPM 實在是太麻煩了!所以,我們就使用 tarball 的方式來安裝吧
    下載 openssl 與 openssh:
    到哪裡下載呢?直接到他們的網站上去看看相關的訊息吧!到目前為止(2002/01/18),openssh 最新版本為 3.0.2 (2001/12/3 釋出),而 openssl 最新則是 0.9.6c (2001/12/21) 這個版本:
    或者您也可以在這裡下載 OpenSSHOpenSSL 這兩個檔案。
    安裝:
    由於 openssh 會使用到 openssl 的資料,所以當然需要先安裝 openssl 之後,在安裝 openssh 囉:
     
    [root @tsai root]# cd /usr/local/src
    [root @tsai src]# tar -zxvf /root/openssh-3.0.2p1.tar.gz
    [root @tsai src]# tar -zxvf /root/openssl-0.9.6c.tar.gz
    [root @tsai src]# cd openssl-0.9.6c
    [root @tsai openssl-0.9.6c]# ./config --prefix=./usr/local/openssl
    將資料安裝在 /usr/local/openssl 這個目錄,這樣安裝的好處是,
    往後在移除該套件較為容易!直接移除該目錄就好了!
    ......
    [root @tsai openssl-0.9.6c]# make
    開始編譯囉!

    [root @tsai openssl-0.9.6c]# make test
    測試一下是否正常,應該不會有問題才是!

    [root @tsai openssl-0.9.6c]# make install
    安裝到 /usr/local/openssl 中囉!安裝好 openssl 之後,他的函式庫
    馬上就自動啟動了!然後開始安裝 openssh 吧!

    [root @tsai openssl-0.9.6c]# cd ../openssh-3.0.2p1
    [root @tsai openssh-3.0.2p1]# ./configure --prefix=/usr/local/openssh --with-pam --with-tcp-wrappers
    注意喔!上面是同一行喔! --with-pam 在加入 PAM 模組的安全防護,
    而 --with-tcp-wrappers 則是加入 TCP Wrappers 的安全防護囉!
    ......

    [root @tsai openssh-3.0.2p1]# cd contrib/redhat
    [root @tsai redhat]# cp sshd.pam /etc/pam.d/sshd
    這個步驟在將 PAM 這個安全模組拷貝到 PAM 的預設路徑去,
    也就是 /etc/pam.d 這個目錄啦!另外,特別注意, sshd 
    這個檔案的屬性必須為 644 ,而所有人是 root 才行,
    否則 ssh 不會動!!

    [root @tsai redhat]# cd ../..
    [root @tsai openssh-3.0.2p1]# make  <==編譯
    [root @tsai openssh-3.0.2p1]# make install 

    上面這樣就安裝完畢啦!

    啟動:
    再來就是需要啟動 SSH 這個套件了,你應該可以到 /usr/local/openssh 去,進入 /usr/local/openssh/sbin 去執行 sshd 這個檔案,也就是:
      /usr/local/openssh/sbin/sshd
    就完成啟動的程序囉!如果不相信的話,那就執行 netstat -a | more 看看有沒有 ssh 這個服務吧!
    既然啟動了 ssh 那麼 telnet 自然就不需要繼續存在囉!沒錯,因為 ssh 可以完全取代 telnet 的功能的!所以呢,請:
      vi /etc/inetd.conf
    找到底下這一行:
      telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
    在前面加上一個註解符號『#』就可以啦!然後退出之後,執行:
      /etc/rc.d/init.d/inet restart
    重新啟動 inet 這個服務,然後以 netstat -a | more 看一下,嘿嘿嘿嘿! telnet 的服務就不見了!那我們就可以使用 ssh 來取代囉!

用戶端的 SSH 連線軟體
    Linux sysem:
    好了,現在我們知道主機可以使用 ssh 來進行連線的服務,但是怎樣在用戶端( Client )執行連線的軟體呢?哈哈!很簡單,如果你是以 Linux 系統來連線的話,那麼你應該可以在 /usr/bin 裡面找到一個 ssh 的軟體,(如果是使用 tarball 的話,那麼 ssh 就會在 /usr/local/openssh/bin 裡面囉!)你可以這樣來執行連線程式:
      ssh -l username host.name.domain
    假設我要以 vbird 這個帳號登入一個名為 testing.adsldns.org 的主機,那麼就以: ssh -l vbird testing.adsldns.org 來執行登入連線的程序!然後如果是第一次登入的話,你會發現到有一個訊息,告訴你要不要接受一個認證碼,直接選擇 yes 就可以連線囉!使用 ssh 最大的另一個好處,root 也可以登入喔
    Windows system:
    那萬一你是使用 Windows 為 Client 呢?那也沒問題,你可以到 PuTTy 的網站上下載 putty 這支程式:
    或者是在 這裡 下載。這支程式完全不需要安裝,直接以滑鼠雙擊他,就會自動的執行了!

安全性的設定
    好了!雖然 openssh 是比較安全沒錯,但是並不是一定安全的!所以,你仍然可以設定一些簡單的安全防護來防止一些問題的發生!其實,說穿了,就是將一些你不想要讓他登入的 IP 擋掉他就是了,然後只開放一些可以登入的 IP 就是了!
    防火牆:
    由於 ssh 這個服務是開啟在 port 22 ,所以你可以使用 ipchains 或 iptables 來開放一些你允許的 IP 以 port 22 進入!
    TCP Wrappers:
    如果不會設定 ipchains 或 iptables ,那也沒關係!剛剛我們在安裝的時候不是有選擇 --with-tcp-wrappers 嗎?呵呵,這個時候就派的上用場了!你可以到 /etc/hosts.allow 去設定你允許的 IP 連線到你的主機裡面,例如你允許 192.168.1.1-192.168.1.255 連線到你的主機,那麼你可以:
      sshd : 192.168.1.0/24: Allow
    而將其他的 IP 都擋掉在 /etc/hosts.deny 當中:
      sshd : ALL : Deny
    如此一來則 ssh 只會開放給 192.168.1.1-255 之間的電腦囉!以後要再開放的話,那就再將其他的 IP 加到 /etc/hosts.allow 當中去就好囉!
2002/01/01以來統計人數
其他連結
環境工程模式篇
鳥園討論區
鳥哥舊站

今日 人數統計
昨日 人數統計
本月 人數統計
上月 人數統計