言 :
不知道您有沒有發現,最近的 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 系統:
-
- 以 『 /usr/sbin/setup 』 程式進入 setup 的話面中;
- 選擇 『 System Services 』這個項目;
- 然後向下移動到『 [*] sshd 』,將 [*] 勾選(按下空白鍵即可);
- 然後以 tab 按鍵移動到『 OK 』按下 enter;
- /etc/rc.d/init.d/sshd start
- netstat -a | more
- tcp 0 0 *:ssh *:* LISTEN
- rpm -ivh openssh*
- rpm -Uvh openssh*
- up2date -i openssh
VBird 的經驗
在上一次更新 openSSH 套件的時候,那是因為網路上發表了舊的 openssh 可能有些安全方面的問題,所以 VBird 就去更新了,但是沒想到更新完成之後 SSH 竟然不會動!當真是嚇了一大跳!後來,找了一些檔案之後,才發現,原來預設的 PAM 模組的屬性搞錯了!你可以到 /etc/pam.d 這個目錄下去看一下,會發現 sshd 的屬性竟然是 600,與其他的檔案屬性都不同,後來執行了: chmod 644 sshd 就 OK 囉!如果你也更新之後發現有這個問題,可以參考看看囉! |
- Red Hat 6.x 以前版本的 Linux 啟動 ssh 服務:
到哪裡下載呢?直接到他們的網站上去看看相關的訊息吧!到目前為止(2002/01/18),openssh 最新版本為 3.0.2 (2001/12/3 釋出),而 openssl 最新則是 0.9.6c (2001/12/21) 這個版本: 或者您也可以在這裡下載 OpenSSH 與 OpenSSL 這兩個檔案。 安裝:
由於 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 [root @tsai openssl-0.9.6c]# cd ../openssh-3.0.2p1 [root @tsai openssh-3.0.2p1]# cd contrib/redhat [root @tsai redhat]# cd ../.. |
上面這樣就安裝完畢啦!
啟動:再來就是需要啟動 SSH 這個套件了,你應該可以到 /usr/local/openssh 去,進入 /usr/local/openssh/sbin 去執行 sshd 這個檔案,也就是:
- /usr/local/openssh/sbin/sshd
- vi /etc/inetd.conf
- telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
- /etc/rc.d/init.d/inet restart
Linux sysem:
好了,現在我們知道主機可以使用 ssh 來進行連線的服務,但是怎樣在用戶端( Client )執行連線的軟體呢?哈哈!很簡單,如果你是以 Linux 系統來連線的話,那麼你應該可以在 /usr/bin 裡面找到一個 ssh 的軟體,(如果是使用 tarball 的話,那麼 ssh 就會在 /usr/local/openssh/bin 裡面囉!)你可以這樣來執行連線程式:
- ssh -l username host.name.domain
那萬一你是使用 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
- sshd : ALL : Deny