CentOS 7.6 Telnet服務搭建(Openssh升級之戰 第一任務備用運輸線搭建)
(以下內容親手完成,如果需要搬走記得把寫博的小白的名字和郵箱一起搬走)
出來玩(學習),總是要還的!
有不明的問題的時候,都來部落格園轉轉,總能找到答案或者靈感,開博3個月都沒發一篇帖(不曉得管理員有何感想,不會封我的號吧),不能只是索取沒有付出。小白一枚琢磨了半天才扒拉明白Telnet服務搭建(照葫蘆畫瓢,也要知道葫蘆從哪裡來的),去繁就簡,簡單整理一下,分享一下。
Linux上的ssh那麼好用為什麼還要用Telnet這麼老舊的東東呢? 最近被SSH 暴力列舉漏洞弄得頭疼,奈何CentOS7最後版本是7.7(裡面只openssh7.4,想升級到openssh 8.0),用yum升級ssh是沒戲了,rpm的依賴關係(擦汗)。。。。。。,所以只能學編譯安裝了,第一次使用編譯安裝這種神器,真怕失手把sshd整掛了,弄個備胎,Telnet是也!
正文:
Setup 1 系統資訊 安裝
貼下系統資訊 [圖1]
[root@azeroth ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
下面是已經安裝完成的Telnet版本查詢,如果還沒有安裝的是沒有包資訊顯示的。[圖2]
[root@azeroth ~]# rpm -qa|grep telnet telnet-server-0.17-64.el7.x86_64 telnet-0.17-64.el7.x86_64 [root@azeroth ~]# rpm -qa|grep xinetd xinetd-2.3.15-13.el7.x86_64
Telnet 遠端登陸工具,Windows裡面常常用來測試埠用(- .- !),Xinetd 第一次看見,百科裡說是監視網路需求的守護程序(不曉得除了telnet以外還有什麼網路服務會用這個?求教) ,等下有個叫telnet的配置檔案要寫在這裡面。
安裝
果斷YUM哇!(呵呵,沒有網?ISO,光碟機這兩樣總得有一樣吧,手工掛載製作CentOS-Media.repo源)[圖3]
[root@azeroth ~]# yum install telnet telnet-server xinetd -y Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * c7-media: ......
執行完就可以檢視到 [圖2] 的結果了 。
Setup 2 Telnet程序配置
配置 (重點來了)
安裝完以上會在 /etc/xinetd.d/ 目錄下生成很多配置檔案,ls 看是否有一個名為 telnet 的配置檔案,嘗試過兩臺裝置 一臺安裝完會出現 telnet的預設配置,一臺則沒有,具體原因不詳,暫時沒查明原因,不過這個不重要可以參看 百科 xinetd製作一個,也可以copy一個。[圖 4]
[root@azeroth ~]# ll /etc/xinetd.d/telnet -rw-r--r--. 1 root root 342 Oct 21 21:21 /etc/xinetd.d/telnet [root@azeroth ~]# cat /etc/xinetd.d/telnet # default: on # # description: The telnet server serves telnet sessions; it uses \ # # unencrypted username/password pairs for authentication. # service telnet # { # disable = yes # flags = REUSE # socket_type = stream # wait = no # user = root # server = /usr/sbin/in.telnetd # log_on_failure += USERID # }
配置解釋(解釋不對的地方,請大神指點):
存在此配置檔案的情況下, 無需修改,是可以正常使用普通使用者登陸Telnet伺服器的親測。
說明部分:預設情況下telnet服務為開啟, telnet 伺服器為 telnet 會話提供服務(廢話),它使用未加密的使用者名稱/密碼對進行身份驗證(試了一下建立一個沒有分配密碼的使用者也沒登陸上去)。
{ }部分
# disable = yes //我理解的意思大概是說 { } 內的欄位預設情況下是不被使用的(這個理解似乎有問題,原文:”用在預設的 {} 中 禁止服務“,希望有大神指引一下)
# flags = REUSE //沒有理解這裡的意思是什麼,請大神幫忙解答 “標識 = 可重複使用” ?
# socket_type = stream // 網路套接字型別
# user = root //使用root使用者執行服務
# server = /usr/sbin/in.telnetd //執行程序路徑
# log_on_failure += USERID //登陸失敗日誌
注:# disable = yes 此欄位為 yes 或者 no 都不是決定能否使用root登陸的條件(此處被度娘搜尋到的帖子誤導了)
其實,Setup3 說了這麼多,做了很多次實驗和測試,此配置檔案和是否能使用root登陸Telnet並沒有直接的關係(決定是否能使用root登陸和另外一個配置有關係下文 敘述Setup 6),此配置檔案理解的更多的是和Telnet的服務程序有關,哪麼問題來了,此配置檔案有存在的意義嗎?當然,Xinet是用來監視守護網路程序的,Telnet是被Xinetd監視守護的物件,類似於監聽的意思,但是比監聽功能更強,如上的配置就是用作如何監視,用什麼許可權監視的配置。
Setup3 可以啟動了
完成上面的安裝和Xinetd配置檢查,接下來就該新增自啟動和執行服務了 [圖 5 圖 6 ]
[root@azeroth ~]# systemctl enable xinetd.service [root@azeroth ~]# systemctl start xinetd.service [root@azeroth ~]# systemctl status xinetd.service ● xinetd.service - Xinetd A Powerful Replacement For Inetd Loaded: loaded (/usr/lib/systemd/system/xinetd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2019-10-22 22:07:22 CST; 4min 29s ago Main PID: 6883 (xinetd) CGroup: /system.slice/xinetd.service └─6883 /usr/sbin/xinetd -stayalive -pidfile /var/run/xinetd.pid Oct 22 22:07:22 azeroth systemd[1]: Started Xinetd A Powerful Replacement For Inetd. Oct 22 22:07:22 azeroth xinetd[6883]: removing discard Oct 22 22:07:22 azeroth xinetd[6883]: removing discard Oct 22 22:07:22 azeroth xinetd[6883]: removing echo Oct 22 22:07:22 azeroth xinetd[6883]: removing echo Oct 22 22:07:22 azeroth xinetd[6883]: removing tcpmux Oct 22 22:07:22 azeroth xinetd[6883]: removing time Oct 22 22:07:22 azeroth xinetd[6883]: removing time Oct 22 22:07:22 azeroth xinetd[6883]: xinetd Version 2.3.15 started with libwrap loadavg labeled-networking options compiled in. Oct 22 22:07:22 azeroth xinetd[6883]: Started working: 0 available services
[root@azeroth ~]# systemctl enable telnet.socket [root@azeroth ~]# systemctl start telnet.socket [root@azeroth ~]# systemctl status telnet.socket ● telnet.socket - Telnet Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; vendor preset: disabled) Active: active (listening) since Tue 2019-10-22 22:07:06 CST; 6min ago Docs: man:telnetd(8) Listen: [::]:23 (Stream) Accepted: 1; Connected: 0 Oct 22 22:07:06 azeroth systemd[1]: Listening on Telnet Server Activation Socket.
Setup 4 防火牆放行
最容易感覺到的卻也是最容易被遺忘的,搗鼓了半天咋還不能登陸,防火牆忘記放行啦!什麼 Selinux還沒關閉呢?(很多配置Telnet的帖子都提到需要關閉Selinux,不知道是何用意)不存在的,Firewall 放行了還需要關閉Selinux嘛?,親測是不需要關閉的,Selinux安全上下文畢竟是Redhat系列系統的安全防護重點,不論配置什麼應用建議都不要隨意關閉,畢竟安全問題不能忽略。[圖 7 ]
[root@azeroth ~]# firewall-cmd --add-port=23/tcp --permanent success [root@azeroth ~]# firewall-cmd --reload success
Setup 5 完成
完成以上步驟,基本實現了Telnet服務的搭建,快到CMD裡面使用Telnet 連線一下試試看吧!請使用普通使用者,root許可權還沒開 ,如果不行請按照步驟檢查或reboot。[圖 8]
[root@azeroth ~]# telnet 192.168.11.130 Trying 192.168.11.130... Connected to 192.168.11.130. Escape character is '^]'. Kernel 3.10.0-957.5.1.el7.x86_64 on an x86_64 azeroth login: zym Password: Last login: Tue Oct 22 20:09:08 from ::ffff:192.168.11.1 [zym@azeroth ~]$
Setup 6 Root許可權登陸配置
(不建議開啟root許可權,以上使用普通使用者登陸之後即可su切換root了,一省事,二安全,兩全其美)如果需要使用root許可權登陸Telnet,還需要配置 /etc/securetty,將root允許使用telnet登陸的pts欄位新增進配置檔案。[圖 9 圖10]
[root@azeroth ~]# echo 'pts/0' >>/etc/securetty [root@azeroth ~]# echo 'pts/1' >>/etc/securetty [root@azeroth ~]# tail -f /etc/securetty hvc4 hvc5 hvc6 hvc7 hvsi0 hvsi1 hvsi2 xvc0 pts/0 pts/1
[root@azeroth ~]# systemctl restart telnet.socket
以上關於CentOS7.6 系統Telnet服務的配置就全部介紹完了。感謝!
第一次發表隨筆博文有點捉襟見肘,寫博文一是讓自己學習的更紮實;二是希望能有路過看見的大神或者和我一樣的小白切磋一二,相互學習指引;技術是用來共享造福人類的。而不是閉門造車,也不只是用來掙錢的工具,這不該是資訊共享的本意;三是在網上看見很多的帖子要麼敘述不完整,要麼有坑,如果有需要的和我一樣的小白可以搜尋到,這樣就能少走一點點彎路節約時間。
—— ZhangXixi(原創) 2019-10-22 [email protected]
&n