不知道您有沒有發(fā)現(xiàn),最近的 Linux 套件中,都將 telnet 的功能自『預(yù)設(shè)啟動』的條件,改為需要由使用者開啟的狀態(tài)?也就是說, Red Hat 在 7.x 版本以后,如果您需要 telnet 的服務(wù),那么你就必須要自行啟動他,因為他已經(jīng)被排除在『預(yù)設(shè)啟動』的服務(wù)項目之外了!為什么呢?這是由于 telnet 本身在傳送資料或者是在進(jìn)行任何工作的時候,都是以『明碼』的狀態(tài)來傳送指令,這樣一來,當(dāng)有心人士以 listen 的功能監(jiān)聽你的資料封包時,那么你所傳送的資料將會被擷取而遭到竊取了!所以,基本上,那是非常不安全的一種傳輸資料方式!因此,在最近所釋出的 Linux 版本中,例如 Red Hat 7.x 版本,他們的 telnet 服務(wù)就已經(jīng)不再是『預(yù)設(shè)啟動』的功能了!
那如果我們要從遠(yuǎn)端連線到主機的話,應(yīng)該怎么辦?既然使用 telnet 這種明碼的方式行不通的話,那么我們要使用何種方式呢?呵呵,現(xiàn)在有更好的方式來提供喔!那就是使用 openssh 這個套件啦!這個 SSH 的服務(wù),最重要的是可以使用『非明碼』的方式來傳送你所鍵入的資料封包,也就是說,你的資料在網(wǎng)路上,即使被監(jiān)聽而遭竊取了,由于 SSH 是一種加密過后的封包,故而即使被竊取了,該資料要經(jīng)過解密也不是三天兩頭的事情,所以呢,就可以比較安全的工作啦!此外, SSH 同時也提供配合 PAM 的安全模組,與 TCP Wrappers 的封包限制(也就是 /etc/hosts.allow 與 /etc/hosts.deny 的機制),因此呢,安全性也就比較高一些啰!此外,最便利的一點是,你可以使用 root 的身份經(jīng)由 ssh 登入你的主機喔!
好了!底下我們就來說一說,要如何將你的 telnet 改成以 ssh 來連接呢?由于 Red Hat 7.x 以后,預(yù)設(shè)的 ssh 是『開啟』的狀態(tài),所以你幾乎不需要任何設(shè)定就可以使用 ssh 啰,那如果是 Red Hat 6.x 以前的系統(tǒng)呢?那也很簡單的,你只要安裝底下兩個套件(假如您安裝 Red Hat 6.x 是以完全安裝為主)就可以啰!
主機系統(tǒng)的 SSH 建置:
· Red Hat 7.x 系統(tǒng):
由于 Red Hat 7.x 系統(tǒng)本身就已經(jīng)開啟了 sshd 了,所以你可以直接以 ssh 來連上你的主機啰!不過,如果沒有正常開啟 SSH 的話,那樣要如何啟動呢?也是很簡單的,你可以這樣:
1. 以 『/usr/sbin/setup』程式進(jìn)入 setup 的話面中;
2. 選擇 『System Services』這個項目;
3. 然后向下移動到『 [*] sshd 』,將 [*] 勾選(按下空白鍵即可);
4. 然后以 tab 按鍵移動到『 OK 』按下 enter;
這樣就設(shè)定完開機啟動了!然后以底下的方式來啟動 ssh 服務(wù):
/etc/rc.d/init.d/sshd start
來啟動 sshd 這個服務(wù),要知道有沒有正常的啟動 ssh 呢?呵呵,只要輸入底下的指令:
netstat -a | more
如果一切正常的話,你將會看到類似底下的這一行:
tcp 0 0 *:ssh *:* LISTEN
那就表示 ssh 已經(jīng)成功的啟動了!不過,如果萬一你的 Linux 系統(tǒng)并沒有安裝 ssh 這個服務(wù)呢?呵呵!那就安裝他吧!其實,ssh 這支服務(wù)的主要程式稱為 openSSH 啰!然后,如果您想要重先安裝 openssh 來提供 ssh 的服務(wù),那么 Red Hat 的網(wǎng)站上隨時更新的 Errata 您就不能不去看看!你可以按底下的連結(jié)上去 Red Hat 下載屬于您系統(tǒng)的最新的 openssh 這個套件!
小紅帽的 Errata 網(wǎng)頁
然后按下您的 Red Hat 版本,進(jìn)入后,去尋找 openssh 字眼的套件,那個就是啦!然后按下連結(jié)之后,直接找到屬于您的系統(tǒng)版本,例如我都是直接捉 i386 的 RPM 檔案,然后回來以 root 身份執(zhí)行:
rpm -ivh openssh*
如果您只是要升級 openssh 的話,那就使用:
rpm -Uvh openssh*
更有甚者,直接以 up2date 來升級,(不過會比較慢一些喔?。?br>up2date -i openssh
升級成功之后,就可以直接的以上面的方式來啟動 ssh 這個服務(wù)了!
VBird 的經(jīng)驗在上一次更新 openSSH 套件的時候,那是因為網(wǎng)路上發(fā)表了舊的 openssh 可能有些安全方面的問題,所以 VBird 就去更新了,但是沒想到更新完成之后 SSH 竟然不會動!當(dāng)真是嚇了一大跳!后來,找了一些檔案之后,才發(fā)現(xiàn),原來預(yù)設(shè)的 PAM 模組的屬性搞錯了!你可以到 /etc/pam.d 這個目錄下去看一下,會發(fā)現(xiàn) sshd 的屬性竟然是 600,與其他的檔案屬性都不同,后來執(zhí)行了:chmod 644 sshd就 OK 啰!如果你也更新之后發(fā)現(xiàn)有這個問題,可以參考看看啰!
· Red Hat 6.x 以前版本的 Linux 啟動 ssh 服務(wù):
好了,那么要如何的在 Red Hat 6.x 以前的版本上執(zhí)行 ssh 這個服務(wù)呢?其實也是很簡單的,如前所說的, ssh 其實是 openssh 套件的一種,而 openssh 有使用到 openssl 這個資料保密的套件,(其實還有其他的套件需要安裝,不過,由于我這里預(yù)設(shè)條件是您已經(jīng)用『完整安裝』來安裝您的 Linux 系統(tǒng),所以其他的套件應(yīng)該都已經(jīng)安裝完整了才對?。?VBird 不是很建議使用 RPM 來安裝 openssh ,因為在 Red Hat 6.x 以前的版本上面安裝 openssh 的 RPM 實在是太麻煩了!所以,我們就使用 tarball 的方式來安裝吧!
下載 openssl 與 openssh:
到哪里下載呢?直接到他們的網(wǎng)站上去看看相關(guān)的訊息吧!到目前為止(2002/01/18),openssh 最新版本為 3.0.2 (2001/12/3 釋出),而 openssl 最新則是 0.9.6c (2001/12/21) 這個版本:
openSSH 網(wǎng)站
openSSL 網(wǎng)站
或者您也可以在這里下載 OpenSSH 與 OpenSSL 這兩個檔案。
安裝:
由于 openssh 會使用到 openssl 的資料,所以當(dāng)然需要先安裝 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 測試一下是否正常,應(yīng)該不會有問題才是! [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 的預(yù)設(shè)路徑去, 也就是 /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 這個套件了,你應(yīng)該可以到 /usr/local/openssh 去,進(jìn)入 /usr/local/openssh/sbin 去執(zhí)行 sshd 這個檔案,也就是:
/usr/local/openssh/sbin/sshd
就完成啟動的程序啰!如果不相信的話,那就執(zhí)行 netstat -a | more 看看有沒有 ssh 這個服務(wù)吧!
既然啟動了 ssh 那么 telnet 自然就不需要繼續(xù)存在啰!沒錯,因為 ssh 可以完全取代 telnet 的功能的!所以呢,請:
vi /etc/inetd.conf
找到底下這一行:
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
在前面加上一個注解符號『#』就可以啦!然后退出之后,執(zhí)行:
/etc/rc.d/init.d/inet restart
重新啟動 inet 這個服務(wù),然后以 netstat -a | more 看一下,嘿嘿嘿嘿! telnet 的服務(wù)就不見了!那我們就可以使用 ssh 來取代啰!
用戶端的 SSH 連線軟體
Linux sysem:
好了,現(xiàn)在我們知道主機可以使用 ssh 來進(jìn)行連線的服務(wù),但是怎樣在用戶端( Client )執(zhí)行連線的軟體呢?哈哈!很簡單,如果你是以 Linux 系統(tǒng)來連線的話,那么你應(yīng)該可以在 /usr/bin 里面找到一個 ssh 的軟體,(如果是使用 tarball 的話,那么 ssh 就會在 /usr/local/openssh/bin 里面啰!)你可以這樣來執(zhí)行連線程式:
ssh -l username host.name.domain
假設(shè)我要以 vbird 這個帳號登入一個名為 testing.adsldns.org 的主機,那么就以: ssh -l vbird testing.adsldns.org 來執(zhí)行登入連線的程序!然后如果是第一次登入的話,你會發(fā)現(xiàn)到有一個訊息,告訴你要不要接受一個認(rèn)證碼,直接選擇 yes 就可以連線啰!使用 ssh 最大的另一個好處,root 也可以登入喔!
Windows system:
那萬一你是使用 Windows 為 Client 呢?那也沒問題,你可以到 PuTTy 的網(wǎng)站上下載 putty 這支程式:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
或者是在 這里 下載。這支程式完全不需要安裝,直接以滑鼠雙擊他,就會自動的執(zhí)行了!
安全性的設(shè)定
好了!雖然 openssh 是比較安全沒錯,但是并不是一定安全的!所以,你仍然可以設(shè)定一些簡單的安全防護來防止一些問題的發(fā)生!其實,說穿了,就是將一些你不想要讓他登入的 IP 擋掉他就是了,然后只開放一些可以登入的 IP 就是了!
防火墻:
由于 ssh 這個服務(wù)是開啟在 port 22 ,所以你可以使用 ipchains 或 iptables 來開放一些你允許的 IP 以 port 22 進(jìn)入!
TCP Wrappers:
如果不會設(shè)定 ipchains 或 iptables ,那也沒關(guān)系!剛剛我們在安裝的時候不是有選擇 --with-tcp-wrappers 嗎?呵呵,這個時候就派的上用場了!你可以到 /etc/hosts.allow 去設(shè)定你允許的 IP 連線到你的主機里面,例如你允許 192.168.1.1-192.168.1.255 連線到你的主機,那么你可以:
sshd : 192.168.1.0/24: Allow
而將其他的 IP 都擋掉在 /etc/hosts.deny 當(dāng)中:
sshd : ALL : Deny
如此一來則 ssh 只會開放給 192.168.1.1-255 之間的電腦啰!以后要再開放的話,那就再將其他的 IP 加到 /etc/hosts.allow 當(dāng)中去就好啰!


