Linux(RedHat或CentOS)下實現(xiàn)開啟telnet服務方式
一、Telnet服務介紹
Telnet協(xié)議是TCP/IP協(xié)議族中的一員,是Internet遠程登錄服務的標準協(xié)議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。
在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制臺上輸入一樣。
可以在本地就能控制服務器。要開始一個telnet會話,必須輸入用戶名和密碼來登錄服務器。Telnet是常用的遠程控制Web服務器的方法。
二、開啟Telnet服務的安全隱患
雖然Telnet較為簡單實用也很方便,但是在格外注重安全的現(xiàn)代網絡技術中,Telnet并不被重用。
原因在于Telnet是一個明文傳送協(xié)議,它將用戶的所有內容,包括用戶名和密碼都明文在互聯(lián)網上傳送,具有一定的安全隱患,因此許多服務器都會選擇禁用Telnet服務。
如果我們要使用Telnet的遠程登錄,使用前應在遠端服務器上檢查并設置允許Telnet服務的功能。
三、開始Telnet服務操作方法
如果確實想用Telnet來連接服務的話,首先需要在服務器上確定是否安裝了telnet-server和xinetd(telnet服務需要依賴它來完成)。
3.1、檢查服務端telnet情況
[root@app ~]# rpm -qa|grep telnet-server [root@app ~]# rpm -qa|grep xinetd
執(zhí)行完以上命令,如果沒有輸出內容說明沒有安裝telnet-server和xinetd。
3.2、安裝telnet-server和xinetd的準備工作
telnet-server和xinetd一般都在操作系統(tǒng)的鏡像中,可以先檢查一下,主機上是否配置好了鏡像源或是yum源。
[root@app ~]# cd /etc/yum.repos.d/ [root@app yum.repos.d]# ls CentOS76.repo repo [root@app yum.repos.d]# cat CentOS76.repo [CentOS7.6_x64] name=CentOS7.6_x64.iso baseurl=file:///mnt/iso enabled=1 gpgcheck=0 [root@app yum.repos.d]#
以上操作是對yum源的配置,如果在安裝過程中有其它的依賴包的話,可以通過yum源的配置擺脫依賴包的煩惱。
3.3、檢查yum源中的telnet-server和xinetd安裝文件是否存在
3.3.1、檢查telnet-server和xinetd
[root@app yum.repos.d]# yum list telnet-server 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 可安裝的軟件包 telnet-server.x86_64 1:0.17-64.el7 CentOS7.6_x64 [root@app yum.repos.d]# yum list xinetd 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 可安裝的軟件包 xinetd.x86_64 2:2.3.15-13.el7 CentOS7.6_x64
出現(xiàn)以上結果,說明操作系統(tǒng)的鏡像中存在telnet-server和xinetd安裝文件,接下來就可以使用yum命令進行安裝了。
3.4、安裝telnet-server和xinetd
安裝telnet-server:
[root@app yum.repos.d]# yum install -y telnet-server 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 telnet-server.x86_64.1.0.17-64.el7 將被 安裝 --> 解決依賴關系完成 依賴關系解決 ================================================================================================================================================================= Package 架構 版本 源 大小 ================================================================================================================================================================= 正在安裝: telnet-server x86_64 1:0.17-64.el7 CentOS7.6_x64 41 k 事務概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:41 k 安裝大小:55 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:telnet-server-0.17-64.el7.x86_64 1/1 驗證中 : 1:telnet-server-0.17-64.el7.x86_64 1/1 已安裝: telnet-server.x86_64 1:0.17-64.el7 完畢! [root@app yum.repos.d]#
安裝xinetd:
[root@app yum.repos.d]# yum install -y xinetd 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 xinetd.x86_64.2.2.3.15-13.el7 將被 安裝 --> 解決依賴關系完成 依賴關系解決 ================================================================================================================================================================= Package 架構 版本 源 大小 ================================================================================================================================================================= 正在安裝: xinetd x86_64 2:2.3.15-13.el7 CentOS7.6_x64 128 k 事務概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:128 k 安裝大小:261 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 2:xinetd-2.3.15-13.el7.x86_64 1/1 驗證中 : 2:xinetd-2.3.15-13.el7.x86_64 1/1 已安裝: xinetd.x86_64 2:2.3.15-13.el7 完畢! [root@app yum.repos.d]#
3.4.1、檢查telnet-server和xinetd是否安裝成功
[root@app yum.repos.d]# rpm -qa|grep telnet-server telnet-server-0.17-64.el7.x86_64 [root@app yum.repos.d]# rpm -qa|grep xinetd xinetd-2.3.15-13.el7.x86_64
出現(xiàn)以上結果,說明telnet-server和xinetd已安裝成功。
3.4.2、安裝telnet客戶端
這一步可以不用操作,安裝telnet客戶端主要的作用,是為了測試telnet服務是否可以正常使用,大家也可以用windows的telnet客戶端進行測試,或是ssh終端工具進行測試。
[root@app xinetd.d]# yum install -y telnet 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile 正在解決依賴關系 --> 正在檢查事務 ---> 軟件包 telnet.x86_64.1.0.17-64.el7 將被 安裝 --> 解決依賴關系完成 依賴關系解決 ================================================================================================================================================================= Package 架構 版本 源 大小 ================================================================================================================================================================= 正在安裝: telnet x86_64 1:0.17-64.el7 CentOS7.6_x64 64 k 事務概要 ================================================================================================================================================================= 安裝 1 軟件包 總下載量:64 k 安裝大?。?13 k Downloading packages: Running transaction check Running transaction test Transaction test succeeded Running transaction 正在安裝 : 1:telnet-0.17-64.el7.x86_64 1/1 驗證中 : 1:telnet-0.17-64.el7.x86_64 1/1 已安裝: telnet.x86_64 1:0.17-64.el7 完畢! [root@app xinetd.d]#
3.4.3、啟動telnet-server和xinetd服務
啟動telnet-server,并設為開機啟動:
[root@app xinetd.d]# systemctl start telnet.socket //啟動telnet-server [root@app xinetd.d]# systemctl status telnet.socket //查看telnet-server啟動狀態(tài) ● telnet.socket - Telnet Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; vendor preset: disabled) Active: active (listening) since 日 2024-09-08 15:57:46 CST; 15s ago Docs: man:telnetd(8) Listen: [::]:23 (Stream) Accepted: 0; Connected: 0 9月 08 15:57:46 app systemd[1]: Listening on Telnet Server Activation Socket. [root@app xinetd.d]# systemctl enable telnet.socket //把telnet-server設為開機啟動 [root@app xinetd.d]# systemctl list-unit-files telnet.socket //查看telnet-server設為開機啟動是否成功 UNIT FILE STATE telnet.socket enabled 1 unit files listed.
這里需要注意的是啟動telnet-server服務的文件是telnet.socket。有些同學會認為應該是telnet.service這個文件,telnet-server和其它服務不太一樣,它是以超級服務進行啟動的。
具體介紹大家可以參考一下xinetd的介紹:xinetd_百度百科 (baidu.com)
啟動xinetd,并設為開機啟動:
[root@app xinetd.d]# systemctl start xinetd.service //啟動xinetd服務 [root@app xinetd.d]# systemctl status xinetd.service //查看xinetd服務啟動狀態(tài) ● xinetd.service - Xinetd A Powerful Replacement For Inetd Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled) Active: active (running) since 日 2024-09-08 16:03:55 CST; 9s ago Process: 22314 ExecStart=/usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid $EXTRAOPTIONS (code=exited, status=0/SUCCESS) Main PID: 22315 (xinetd) Tasks: 1 CGroup: /system.slice/xinetd.service └─22315 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid 9月 08 16:03:55 app xinetd[22315]: removing discard 9月 08 16:03:55 app xinetd[22315]: removing discard 9月 08 16:03:55 app xinetd[22315]: removing echo 9月 08 16:03:55 app xinetd[22315]: removing echo 9月 08 16:03:55 app xinetd[22315]: removing tcpmux 9月 08 16:03:55 app xinetd[22315]: removing time 9月 08 16:03:55 app xinetd[22315]: removing time 9月 08 16:03:55 app xinetd[22315]: xinetd Version 2.3.15 started with libwrap loadavg labeled-networking options compiled in. 9月 08 16:03:55 app xinetd[22315]: Started working: 0 available services 9月 08 16:03:55 app systemd[1]: Started Xinetd A Powerful Replacement For Inetd. [root@app xinetd.d]# systemctl enable xinetd.service //把xinetd服務設為開機啟動 [root@app xinetd.d]# systemctl list-unit-files xinetd.service //查看xinetd服務設為開機啟動是否成功 UNIT FILE STATE xinetd.service enabled 1 unit files listed.
3.5、telnet-server服務測試
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login:
當看到以上連接結果,說明telnet-server和xinetd服務已經正常工作了。下面試著輸入用戶名和密碼看是否能正常連接進入。
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login: root Password: Login incorrect app login:
root用戶登錄被拒絕登錄了。
這是因為telnet-server服務默認情況下,RedHat和CentOS系統(tǒng)是不允許root用戶通過telnet的方式遠程登陸系統(tǒng)的(這是為了安全起見做的默認設定)。
如果要使用root用戶登錄系統(tǒng),需要修改/etc/securetty文件內容,把以下內容添加到該文件的最下方,保存即可。
pts/0 pts/1 pts/2 pts/3 pts/4
如下,這里把以上內容添加到 /etc/securetty文件內容的結果:
[root@app xinetd.d]# tail -5 /etc/securetty pts/0 pts/1 pts/2 pts/3 pts/4 [root@app xinetd.d]#
重啟telnet-server和xinetd服務:
[root@app xinetd.d]# systemctl restart telnet.socket [root@app xinetd.d]# systemctl restart xinetd.service
再次嘗試連接telnet-server:
[root@app xinetd.d]# telnet 192.168.10.2 23 Trying 192.168.10.2... Connected to 192.168.10.2. Escape character is '^]'. Kernel 3.10.0-957.el7.x86_64 on an x86_64 app login: root Password: Last failed login: Sun Sep 8 16:11:58 CST 2024 from ::ffff:192.168.10.2 on pts/2 There was 1 failed login attempt since the last successful login. Last login: Sun Sep 8 15:23:58 from 192.168.10.1 [root@app ~]#
輸入root用戶的密碼,已經正常連接進來了。說明telnet-server已經可以正常連接使用了。
大家也可以用ssh終端工具進行測試,以下是使用Xshell工具進行連接的測試。
ssh工具也可以正常連接了。
知識擴展
如果大家使用的是RedHat或CentOS操作系統(tǒng)的版本是7.0以下的,安裝完xinetd和telnet-server后,后面的操作稍微有點不一樣,7.0以下的版本是通過修改/etc/xinetd.d/telnet配置文件來實現(xiàn)的。
如下:
# vi /etc/xinetd.d/telnet // 把disable中的yes改成no service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = yes } service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no } # /etc/init.d/xinetd reload //重新加載xinetd服務。
其中是否能讓root用戶登錄的方法和3.5小節(jié)點中,給/etc/securetty配置文件中添加內容的操作一樣,添加完成之后執(zhí)行 /etc/init.d/xinetd reload,讓其重新加載xinetd服務即可。
注:以上方法操作都沒有問題,但是在連接telnet-server的23端口時,一直連接不上,有可能是主機的防火墻阻止了23端口的連接,大家可以把防火墻關閉,或是放開23端口即可。
大家可以參照下面方法通過防火墻放開23端口。
RedHat和CentOS 系統(tǒng)版本是7.0的,默認采用 firewalld 防火墻。6.0采用iptables防火墻,下面分別簡單的介紹一下操作方法。
以下是7.0版本的操作方法:
查詢防火墻是否開啟了 23 端口:
[root@app xinetd.d]# firewall-cmd --query-port=23/tcp no
執(zhí)行結果為“no” 表示未開啟,通過以下命令開啟 23 端口:
[root@app xinetd.d]# firewall-cmd --zone=public --add-port=23/tcp --permanent //永久(--permanent)開啟23端口 success //開啟成功 [root@app xinetd.d]# firewall-cmd --complete-reload // 重載防火墻配置,使變更生效 success //重載成功 [root@app xinetd.d]# firewall-cmd --query-port=23/tcp // 查詢開啟狀態(tài) yes //開啟
或是直接使用以下命令關閉防火墻:
[root@app ~]# systemctl stop firewalld.service //停止防火墻 [root@app ~]# systemctl status firewalld.service //查看防火墻運行狀態(tài) ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) 9月 08 16:48:18 app systemd[1]: Starting firewalld - dynamic firewall daemon... 9月 08 16:48:18 app systemd[1]: Started firewalld - dynamic firewall daemon. 9月 08 16:48:23 app systemd[1]: Stopping firewalld - dynamic firewall daemon... 9月 08 16:48:24 app systemd[1]: Stopped firewalld - dynamic firewall daemon. [root@app ~]# systemctl disable firewalld.service //關閉防火墻開始啟動
6.0版本的操作如下:
- 停止防火墻:service iptables stop
- 查看防火墻狀態(tài):service iptables status
- 禁止開機啟動:chkconfig iptables off
- 查看開機啟動狀態(tài):chkconfig --list iptables
- 放開訪問端口:iptables -I INPUT -p tcp --dport 23 -j ACCEPT
注:使用iptables這種方式放開端口的操作,不會寫入配置文件 /etc/sysconfig/iptables 中,重啟系統(tǒng)會失效(重啟防火墻服務也會失效)
可以再執(zhí)行一次保存命令,將通過命令添加的開放端口保存到配置中:service iptables save
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決make: *** [Makefile:719: ext/openssl/openss
在Ubuntu系統(tǒng)上編譯安裝PHP7.4.33時遇到OpenSSL庫文件缺失的錯誤,因為Ubuntu22.04的默認OpenSSL版本與PHP不兼容,解決方法是安裝低版本的openssl包,并在編譯PHP時指定openssl路徑2024-12-12