每天一個linux命(ming)令(58):telnet命(ming)令
telnet命令(ling)通(tong)常用(yong)來遠程(cheng)(cheng)登錄(lu)。telnet程(cheng)(cheng)序(xu)是基于TELNET協(xie)議(yi)的遠程(cheng)(cheng)登錄(lu)客戶(hu)端程(cheng)(cheng)序(xu)。Telnet協(xie)議(yi)是TCP/IP協(xie)議(yi)族(zu)中的一(yi)員(yuan),是Internet遠程(cheng)(cheng)登陸(lu)服(fu)(fu)務(wu)(wu)(wu)的標準協(xie)議(yi)和主(zhu)要(yao)(yao)方式。它為(wei)用(yong)戶(hu)提供了在(zai)(zai)本(ben)地(di)計(ji)算(suan)機上(shang)完成遠程(cheng)(cheng)主(zhu)機工作的 能(neng)力。在(zai)(zai)終(zhong)端使(shi)用(yong)者(zhe)的電腦(nao)上(shang)使(shi)用(yong)telnet程(cheng)(cheng)序(xu),用(yong)它連接(jie)到服(fu)(fu)務(wu)(wu)(wu)器。終(zhong)端使(shi)用(yong)者(zhe)可(ke)以在(zai)(zai)telnet程(cheng)(cheng)序(xu)中輸入命令(ling),這些命令(ling)會(hui)在(zai)(zai)服(fu)(fu)務(wu)(wu)(wu)器上(shang)運(yun)行,就像直接(jie)在(zai)(zai)服(fu)(fu)務(wu)(wu)(wu)器的控制臺上(shang)輸入一(yi)樣。可(ke)以在(zai)(zai)本(ben)地(di)就能(neng)控制服(fu)(fu)務(wu)(wu)(wu)器。要(yao)(yao)開始(shi)一(yi)個 telnet會(hui)話,必須輸入用(yong)戶(hu)名(ming)和密碼來登錄(lu)服(fu)(fu)務(wu)(wu)(wu)器。Telnet是常用(yong)的遠程(cheng)(cheng)控制Web服(fu)(fu)務(wu)(wu)(wu)器的方法。
但(dan)是,telnet因為采用(yong)(yong)明文(wen)傳送報文(wen),安(an)全(quan)性不(bu)好,很(hen)多Linux服務器(qi)都不(bu)開(kai)放telnet服務,而改用(yong)(yong)更安(an)全(quan)的ssh方(fang)式(shi)了。但(dan)仍然(ran)有(you)很(hen)多別的系統可能采用(yong)(yong)了telnet方(fang)式(shi)來提供遠(yuan)程登錄,因此(ci)弄清楚telnet客戶(hu)端的使用(yong)(yong)方(fang)式(shi)仍是很(hen)有(you)必要的。
telnet命令還可做別的用途(tu),比如(ru)確(que)定遠(yuan)程服務的狀態(tai),比如(ru)確(que)定遠(yuan)程服務器的某個端口是否(fou)能訪問。
1.命令格式:
telnet[參(can)數(shu)][主機]
2.命令功能:
執行telnet指令(ling)開啟終端機階(jie)段作業(ye),并登入遠端主機。
3.命令參(can)數:
-8 允(yun)許(xu)使用8位(wei)字符資料,包括(kuo)輸入與(yu)輸出(chu)。
-a 嘗(chang)試自動登(deng)入遠端系(xi)統。
-b<主(zhu)機別(bie)名(ming)> 使用別(bie)名(ming)指(zhi)定遠端(duan)主(zhu)機名(ming)稱。
-c 不(bu)讀(du)取用戶專屬目錄里的.telnetrc文件。
-d 啟動排錯模(mo)式(shi)。
-e<脫離(li)字符> 設置脫離(li)字符。
-E 濾除(chu)脫(tuo)離字符。
-f 此參數(shu)的效(xiao)果和指定(ding)"-F"參數(shu)相(xiang)同。
-F 使(shi)用Kerberos V5認(ren)證時,加上(shang)此參數(shu)(shu)可(ke)把本地主機的(de)認(ren)證數(shu)(shu)據上(shang)傳到(dao)遠端主機。
-k<域(yu)名(ming)> 使用(yong)Kerberos認(ren)證時,加上此(ci)參數讓遠端主機采用(yong)指定的(de)領域(yu)名(ming),而非該主機的(de)域(yu)名(ming)。
-K 不(bu)自動(dong)登(deng)入遠端主(zhu)機。
-l<用戶名稱> 指定要登入(ru)遠端主(zhu)機的用戶名稱。
-L 允許輸出8位(wei)字(zi)符資料(liao)。
-n<記(ji)錄(lu)文件> 指定文件記(ji)錄(lu)相關信(xin)息。
-r 使(shi)用(yong)類(lei)似rlogin指令(ling)的用(yong)戶界(jie)面(mian)。
-S<服(fu)務類(lei)型> 設置telnet連線所需的(de)IP TOS信息。
-x 假設主機有(you)支持數據加密的功能,就使用它。
-X<認(ren)證形態> 關(guan)閉指定(ding)的認(ren)證形態。
4.使(shi)用(yong)實(shi)例:
實例1:遠程服務(wu)器無法訪(fang)問(wen)
命令:
telnet 192.168.120.206
輸(shu)出:
Trying 192.168.120.209...
telnet: connect to address 192.168.120.209: No route to host
telnet: Unable to connect to remote host: No route to host
[root@localhost ~]#
說明:
處(chu)理這種(zhong)情況方(fang)法:
(1)確認ip地(di)址是否(fou)正確?
(2)確認(ren)ip地址對應的主機是否已經開機?
(3)如果主機(ji)已經啟動,確認路由設置是否設置正確?(使用route命(ming)令查(cha)看)
(4)如果主機已經(jing)啟(qi)動,確認主機上是(shi)否(fou)開啟(qi)了(le)telnet服務(wu)?(使(shi)用netstat命令查看,TCP的(de)23端(duan)口是(shi)否(fou)有LISTEN狀態的(de)行)
(5)如果(guo)主機已經啟動telnet服(fu)務(wu),確認防火(huo)墻是否(fou)放開了23端口的訪問?(使用iptables-save查看)
實例(li)2:域(yu)名(ming)無法解析
命令:
telnet www.baidu.com
輸出:
www.baidu.com/telnet: Temporary failure in name resolution
[root@localhost ~]#
說明:
處理這(zhe)種情況方法:
(1)確(que)(que)認(ren)域名是否正確(que)(que)
(2)確認(ren)本機(ji)的(de)域(yu)名解析有(you)關的(de)設(she)置是(shi)否(fou)正(zheng)確(/etc/resolv.conf中(zhong)nameserver的(de)設(she)置是(shi)否(fou)正(zheng)確,如果沒有(you),可以(yi)使用nameserver 8.8.8.8)
(3)確認防火墻是否放開了UDP53端口的訪問(DNS使用(yong)(yong)UDP協議,端口53,使用(yong)(yong)iptables-save查(cha)看)
實例3:
命(ming)令:
輸出:
Trying 192.168.120.206...
telnet: connect to address 192.168.120.206: Connection refused
telnet: Unable to connect to remote host: Connection refused
[root@localhost ~]#
說明:
處(chu)理(li)這種情況:
(1)確(que)認ip地址或(huo)者主機名是(shi)否正確(que)?
(2)確認端口(kou)是(shi)否正確,是(shi)否默認的23端口(kou)
實例(li)4:啟動telnet服務
命(ming)令:
service xinetd restart
輸出:
[root@localhost xinetd.d]# ll
總計 124
-rw-r--r-- 1 root root 1157 2011-05-31 chargen-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 chargen-stream
-rw-r--r-- 1 root root 523 2009-09-04 cvs
-rw-r--r-- 1 root root 1157 2011-05-31 daytime-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 daytime-stream
-rw-r--r-- 1 root root 1157 2011-05-31 discard-dgram
-rw-r--r-- 1 root root 1159 2011-05-31 discard-stream
-rw-r--r-- 1 root root 1148 2011-05-31 echo-dgram
-rw-r--r-- 1 root root 1150 2011-05-31 echo-stream
-rw-r--r-- 1 root root 323 2004-09-09 eklogin
-rw-r--r-- 1 root root 347 2005-09-06 ekrb5-telnet
-rw-r--r-- 1 root root 326 2004-09-09 gssftp
-rw-r--r-- 1 root root 310 2004-09-09 klogin
-rw-r--r-- 1 root root 323 2004-09-09 krb5-telnet
-rw-r--r-- 1 root root 308 2004-09-09 kshell
-rw-r--r-- 1 root root 317 2004-09-09 rsync
-rw-r--r-- 1 root root 1212 2011-05-31 tcpmux-server
-rw-r--r-- 1 root root 1149 2011-05-31 time-dgram
-rw-r--r-- 1 root root 1150 2011-05-31 time-stream
[root@localhost xinetd.d]# cat krb5-telnet
# default: off
# description: The kerberized telnet server accepts normal telnet sessions, \
# but can also use Kerberos 5 authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/telnetd
log_on_failure += USERID
disable = yes
}
[root@localhost xinetd.d]#
說明:
配置(zhi)參數,通(tong)常的(de)配(pei)置如下:
service telnet
{
disable = no #啟用
flags = REUSE #socket可重用
socket_type = stream #連接方式為TCP
wait = no #為每個請求啟動一個進程
user = root #啟動服務的用戶為root
server = /usr/sbin/in.telnetd #要激活的進程
log_on_failure += USERID #登錄失敗時(shi)記錄登錄用(yong)戶名
}
如果要配置允許(xu)登錄的客戶端(duan)列表,加(jia)入(ru)
only_from = 192.168.0.2 #只(zhi)允(yun)許192.168.0.2登錄
如果要配置(zhi)禁止登錄(lu)的客(ke)戶端列表(biao),加入
no_access = 192.168.0.{2,3,4} #禁止192.168.0.2、192.168.0.3、192.168.0.4登錄(lu)
如果要(yao)設置(zhi)開放時段,加(jia)入(ru)
access_times = 9:00-12:00 13:00-17:00 # 每天只有這兩(liang)個時段開放服務(我們(men)的上班時間:P)
如果(guo)你(ni)有兩個(ge)IP地址(zhi),一個(ge)是私(si)網的(de)IP地址(zhi)如192.168.0.2,一個(ge)是公網的(de)IP地址(zhi)如218.75.74.83,如果(guo)你(ni)希望用(yong)戶只能從私(si)網來(lai)登錄telnet服務,那(nei)么加入(ru)
bind = 192.168.0.2
各(ge)配(pei)置(zhi)項具體的(de)含義(yi)和語法可參(can)考(kao)xined配(pei)置(zhi)文(wen)件屬性(xing)說明(man xinetd.conf)
配置端口,修改services文件:
# vi /etc/services
找到以(yi)下兩句
telnet 23/tcp
telnet 23/udp
如果前面(mian)有#字(zi)符(fu),就去掉它(ta)。telnet的(de)(de)默認端(duan)口(kou)(kou)是(shi)(shi)23,這(zhe)個端(duan)口(kou)(kou)也是(shi)(shi)黑客端(duan)口(kou)(kou)掃(sao)描的(de)(de)主要(yao)對(dui)象,因此(ci)最好將這(zhe)個端(duan)口(kou)(kou)修改掉,修改的(de)(de)方(fang)法(fa)很簡單(dan),就是(shi)(shi)將23這(zhe)個數字(zi)修改掉,改成大一(yi)點的(de)(de)數字(zi),比如61123。注意,1024以下(xia)的(de)(de)端(duan)口(kou)(kou)號是(shi)(shi)internet保(bao)留的(de)(de)端(duan)口(kou)(kou)號,因此(ci)最好不要(yao)用,還應該注意不要(yao)與其它(ta)服(fu)務的(de)(de)端(duan)口(kou)(kou)沖突。
啟動(dong)服(fu)務:
service xinetd restart
實(shi)例5:正常telnet
命令:
telnet 192.168.120.204
輸出(chu):
Trying 192.168.120.204...
Connected to 192.168.120.204 (192.168.120.204).
Escape character is '^]'.
localhost (Linux release 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012) (1)
login: root
Password:
Login incorrect
說明:
一(yi)般(ban)情況下不允許(xu)root從遠程(cheng)登(deng)錄(lu),可以先(xian)用普通賬(zhang)號(hao)登(deng)錄(lu),然(ran)后(hou)再用su -切到root用戶。
關注 熵減黑客 ,一起學習成長
