有不明的问题的时候,都来博客园转转,总能找到答案或者灵感,开博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服务的配置就全部介绍完了。感谢!
第一次发表随笔博文有点捉襟见肘,写博文一是让自己学习的更扎实;二是希望能有路过看见的大神或者和我一样的小白切磋一二,相互学习指引;技术是用来共享造福人类的。而不是闭门造车,也不只是用来挣钱的工具,这不该是信息共享的本意;三是在网上看见很多的帖子要么叙述不完整,要么有坑,如果有需要的和我一样的小白可以搜索到,这样就能少走一点点弯路节约时间。
总结
以上所述是小编给大家介绍的CentOS 7.6 Telnet服务搭建过程(Openssh升级之战 第一任务备用运输线搭建),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!