Linux Telnet服務(wù)的替換
在一些設(shè)置中,我們常會遇到Telnet服務(wù)的問題。這里我們主要講解一下Linux下的Telnet的替換問題。那么首先讓我們了解一下系統(tǒng)環(huán)境。不知道您有沒有發(fā)現(xiàn),最近的Linux套件中,都將Telnet的功能自『預(yù)設(shè)啟動』的條件,改為需要由使用者開啟的狀態(tài)?也就是說,RedHat在7.x版本以后,如果您需要Telnet服務(wù),那么你就必須要自行啟動他,因為他已經(jīng)被排除在『預(yù)設(shè)啟動』的服務(wù)項目之外了!為什么呢?這是由于Telnet服務(wù)本身在傳送資料或者是在進行任何工作的時候,都是以『明碼』的狀態(tài)來傳送指令,這樣一來,當有心人士以listen的功能監(jiān)聽你的資料封包時,那么你所傳送的資料將會被擷取而遭到竊取了!所以,基本上,那是非常不安全的一種傳輸資料方式!因此,在最近所釋出的Linux版本中,例如RedHat7.x版本,他們的Telnet服務(wù)就已經(jīng)不再是『預(yù)設(shè)啟動』的功能了!
那如果我們要從遠端連線到主機的話,應(yīng)該怎么辦?既然使用Telnet這種明碼的方式行不通的話,那么我們要使用何種方式呢?呵呵,現(xiàn)在有更好的方式來提供喔!那就是使用openssh這個套件啦!這個SSH的服務(wù),最重要的是可以使用『非明碼』的方式來傳送你所鍵入的資料封包,也就是說,你的資料在網(wǎng)路上,即使被監(jiān)聽而遭竊取了,由于SSH是一種加密過后的封包,故而即使被竊取了,該資料要經(jīng)過解密也不是三天兩頭的事情,所以呢,就可以比較安全的工作啦!此外,SSH同時也提供配合PAM的安全模組,與TCPWrappers的封包限制(也就是/etc/hosts.allow與/etc/hosts.deny的機制),因此呢,安全性也就比較高一些啰!此外,最便利的一點是,你可以使用root的身份經(jīng)由ssh登入你的主機喔!
好了!底下我們就來說一說,要如何將你的Telnet改成以ssh來連接呢?由于RedHat7.x以后,預(yù)設(shè)的ssh是『開啟』的狀態(tài),所以你幾乎不需要任何設(shè)定就可以使用ssh啰,那如果是RedHat6.x以前的系統(tǒng)呢?那也很簡單的,你只要安裝底下兩個套件(假如您安裝RedHat6.x是以完全安裝為主)就可以啰!
主機系統(tǒng)的SSH建置:
◆RedHat7.x系統(tǒng):
由于RedHat7.x系統(tǒng)本身就已經(jīng)開啟了sshd了,所以你可以直接以ssh來連上你的主機啰!不過,如果沒有正常開啟SSH的話,那樣要如何啟動呢?也是很簡單的,你可以這樣:
1.以『/usr/sbin/setup』程式進入setup的話面中;
2.選擇『SystemServices』這個項目;
3.然后向下移動到『[*]sshd』,將[*]勾選(按下空白鍵即可);
4.然后以tab按鍵移動到『OK』按下enter;
這樣就設(shè)定完開機啟動了!然后以底下的方式來啟動ssh服務(wù):
/etc/rc.d/init.d/sshdstart
來啟動sshd這個服務(wù),要知道有沒有正常的啟動ssh呢?呵呵,只要輸入底下的指令:
netstat-a|more
如果一切正常的話,你將會看到類似底下的這一行:
tcp00*:ssh*:*LISTEN
那就表示ssh已經(jīng)成功的啟動了!不過,如果萬一你的Linux系統(tǒng)并沒有安裝ssh這個服務(wù)呢?呵呵!那就安裝他吧!其實,ssh這支服務(wù)的主要程式稱為openSSH啰!然后,如果您想要重先安裝openssh來提供ssh的服務(wù),那么RedHat的網(wǎng)站上隨時更新的Errata您就不能不去看看!你可以按底下的連結(jié)上去RedHat下載屬于您系統(tǒng)的***的openssh這個套件!
小紅帽的Errata網(wǎng)頁
然后按下您的RedHat版本,進入后,去尋找openssh字眼的套件,那個就是啦!然后按下連結(jié)之后,直接找到屬于您的系統(tǒng)版本,例如我都是直接捉i386的RPM檔案,然后回來以root身份執(zhí)行:
rpm-ivhopenssh*
如果您只是要升級openssh的話,那就使用:
rpm-Uvhopenssh*
更有甚者,直接以up2date來升級,(不過會比較慢一些喔!)
up2date-iopenssh
升級成功之后,就可以直接的以上面的方式來啟動ssh這個服務(wù)了!
VBird的經(jīng)驗在上一次更新openSSH套件的時候,那是因為網(wǎng)路上發(fā)表了舊的openssh可能有些安全方面的問題,所以VBird就去更新了,但是沒想到更新完成之后SSH竟然不會動!當真是嚇了一大跳!后來,找了一些檔案之后,才發(fā)現(xiàn),原來預(yù)設(shè)的PAM模組的屬性搞錯了!你可以到/etc/pam.d這個目錄下去看一下,會發(fā)現(xiàn)sshd的屬性竟然是600,與其他的檔案屬性都不同,后來執(zhí)行了:chmod644sshd就OK啰!如果你也更新之后發(fā)現(xiàn)有這個問題,可以參考看看啰!
◆RedHat6.x以前版本的Linux啟動ssh服務(wù):
好了,那么要如何的在RedHat6.x以前的版本上執(zhí)行ssh這個服務(wù)呢?其實也是很簡單的,如前所說的,ssh其實是openssh套件的一種,而openssh有使用到openssl這個資料保密的套件,(其實還有其他的套件需要安裝,不過,由于我這里預(yù)設(shè)條件是您已經(jīng)用『完整安裝』來安裝您的Linux系統(tǒng),所以其他的套件應(yīng)該都已經(jīng)安裝完整了才對!)VBird不是很建議使用RPM來安裝openssh,因為在RedHat6.x以前的版本上面安裝openssh的RPM實在是太麻煩了!所以,我們就使用tarball的方式來安裝吧!#p#
下載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的資料,所以當然需要先安裝openssl之后,在安裝openssh啰:
[root@tsairoot]#cd/usr/local/src[root@tsaisrc]#tar-zxvf/root/openssh-3.0.2p1.tar.gz[root@tsaisrc]#tar-zxvf/root/openssl-0.9.6c.tar.gz[root@tsaisrc]#cdopenssl-0.9.6c[root@tsaiopenssl-0.9.6c]#./config--prefix=./usr/local/openssl將資料安裝在/usr/local/openssl這個目錄,這樣安裝的好處是,往后在移除該套件較為容易!直接移除該目錄就好了!.[root@tsaiopenssl-0.9.6c]#make開始編譯啰![root@tsaiopenssl-0.9.6c]#maketest測試一下是否正常,應(yīng)該不會有問題才是![root@tsaiopenssl-0.9.6c]#makeinstall安裝到/usr/local/openssl中啰!安裝好openssl之后,他的函式庫馬上就自動啟動了!然后開始安裝openssh吧![root@tsaiopenssl-0.9.6c]#cd./openssh-3.0.2p1[root@tsaiopenssh-3.0.2p1]#./configure--prefix=/usr/local/openssh--with-pam--with-tcp-wrappers注意喔!上面是同一行喔!--with-pam在加入PAM模組的安全防護,而--with-tcp-wrappers則是加入TCPWrappers的安全防護啰!.[root@tsaiopenssh-3.0.2p1]#cdcontrib/redhat[root@tsairedhat]#cpsshd.pam/etc/pam.d/sshd這個步驟在將PAM這個安全模組拷貝到PAM的預(yù)設(shè)路徑去,也就是/etc/pam.d這個目錄啦!另外,特別注意,sshd這個檔案的屬性必須為644,而所有人是root才行,否則ssh不會動!![root@tsairedhat]#cd./.[root@tsaiopenssh-3.0.2p1]#make<==編譯[root@tsaiopenssh-3.0.2p1]#makeinstall
上面這樣就安裝完畢啦!
啟動:
再來就是需要啟動SSH這個套件了,你應(yīng)該可以到/usr/local/openssh去,進入/usr/local/openssh/sbin去執(zhí)行sshd這個檔案,也就是:
/usr/local/openssh/sbin/sshd
就完成啟動的程序啰!如果不相信的話,那就執(zhí)行netstat-a|more看看有沒有ssh這個服務(wù)吧!
既然啟動了ssh那么Telnet服務(wù)自然就不需要繼續(xù)存在啰!沒錯,因為ssh可以完全取代Telnet的功能的!所以呢,請:
vi/etc/inetd.conf
找到底下這一行:
Telnetstreamtcpnowaitroot/usr/sbin/tcpdin.Telnetd
在前面加上一個注解符號『#』就可以啦!然后退出之后,執(zhí)行:
/etc/rc.d/init.d/inetrestart
重新啟動inet這個服務(wù),然后以netstat-a|more看一下,Telnet服務(wù)就不見了,那我們就用ssh來取代。#p#
用戶端的SSH連線軟體
Linuxsysem:
好了,現(xiàn)在我們知道主機可以使用ssh來進行連線的服務(wù),但是怎樣在用戶端(Client)執(zhí)行連線的軟體呢?哈哈!很簡單,如果你是以Linux系統(tǒng)來連線的話,那么你應(yīng)該可以在/usr/bin里面找到一個ssh的軟體,(如果是使用tarball的話,那么ssh就會在/usr/local/openssh/bin里面啰!)你可以這樣來執(zhí)行連線程式:
ssh-lusernamehost.name.domain
假設(shè)我要以vbird這個帳號登入一個名為testing.adsldns.org的主機,那么就以:ssh-lvbirdtesting.adsldns.org來執(zhí)行登入連線的程序!然后如果是***次登入的話,你會發(fā)現(xiàn)到有一個訊息,告訴你要不要接受一個認證碼,直接選擇yes就可以連線啰!使用ssh***的另一個好處,root也可以登入喔!
Windowssystem:
那萬一你是使用Windows為Client呢?那也沒問題,你可以到PuTTy的網(wǎng)站上下載putty這支程式:
http://www.chiark.greenend.org.uk/~sgtatham/putty/
或者是在這里下載.這支程式完全不需要安裝,直接以滑鼠雙擊他,就會自動的執(zhí)行了!
安全性的設(shè)定
好了!雖然openssh是比較安全沒錯,但是并不是一定安全的!所以,你仍然可以設(shè)定一些簡單的安全防護來防止一些問題的發(fā)生!其實,說穿了,就是將一些你不想要讓他登入的IP擋掉他就是了,然后只開放一些可以登入的IP就是了!
防火墻:
由于ssh這個服務(wù)是開啟在port22,所以你可以使用ipchains或iptables來開放一些你允許的IP以port22進入!
TCPWrappers:
如果不會設(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當中:
sshd:ALL:Deny
如此一來則ssh只會開放給192.168.1.1-255之間的電腦啰!以后要再開放的話,那就再將其他的IP加到/etc/hosts.allow當中去就好啰!