(以下内容亲手完成,如果需要搬走记得把写博的小白的名字和邮箱一起搬走)
出来玩(学习),总是要还的!
有不明的问题的时候,都来博客园转转,总能找到答案或者灵感,开博3个月都没发一篇帖(不晓得管理员有何感想,不会封我的号吧),不能只是索取没有付出。小白一枚琢磨了半天才扒拉明白Telnet服务搭建(照葫芦画瓢,也要知道葫芦从哪里来的),去繁就简,简单整理一下,分享一下。
Linux上的ssh那么好用为什么还要用Telnet这么老旧的东东呢? 最近被SSH 暴力枚举漏洞弄得头疼,奈何CentOS7最后版本是7.7(里面只openssh7.4,想升级到openssh 8.0),用yum升级ssh是没戏了,rpm的依赖关系(擦汗)。。。。。。,所以只能学编译安装了,第一次使用编译安装这种神器,真怕失手把sshd整挂了,弄个备胎,Telnet是也!
正文:
Setup 1 系统信息 安装
贴下系统信息 [图1]
[[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
下面是已经安装完成的Telnet版本查询,如果还没有安装的是没有包信息显示的。[图2]
[[email protected] ~]# rpm -qa|grep telnet telnet-server-0.17-64.el7.x86_64 telnet-0.17-64.el7.x86_64 [[email protected] ~]# rpm -qa|grep xinetd xinetd-2.3.15-13.el7.x86_64
Telnet 远程登陆工具,Windows里面常常用来测试端口用(- .- !),Xinetd 第一次看见,百科里说是监视网络需求的守护进程(不晓得除了telnet以外还有什么网络服务会用这个?求教) ,等下有个叫telnet的配置文件要写在这里面。
安装
果断YUM哇!(呵呵,没有网?ISO,光驱这两样总得有一样吧,手工挂载制作CentOS-Media.repo源)[图3]
[[email protected] ~]# 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]
[[email protected] ~]# ll /etc/xinetd.d/telnet -rw-r--r--. 1 root root 342 Oct 21 21:21 /etc/xinetd.d/telnet [[email protected] ~]# 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 ]
[[email protected] ~]# systemctl enable xinetd.service [[email protected] ~]# systemctl start xinetd.service [[email protected] ~]# 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
[[email protected] ~]# systemctl enable telnet.socket [[email protected] ~]# systemctl start telnet.socket [[email protected] ~]# 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 ]
[[email protected] ~]# firewall-cmd --add-port=23/tcp --permanent success [[email protected] ~]# firewall-cmd --reload success
Setup 5 完成
完成以上步骤,基本实现了Telnet服务的搭建,快到CMD里面使用Telnet 连接一下试试看吧!请使用普通用户,root权限还没开 ,如果不行请按照步骤检查或reboot。[图 8]
[[email protected] ~]# 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 [[email protected] ~]$
Setup 6 Root权限登陆配置
(不建议开启root权限,以上使用普通用户登陆之后即可su切换root了,一省事,二安全,两全其美)如果需要使用root权限登陆Telnet,还需要配置 /etc/securetty,将root允许使用telnet登陆的pts字段添加进配置文件。[图 9 图10]
[[email protected] ~]# echo ‘pts/0‘ >>/etc/securetty [[email protected] ~]# echo ‘pts/1‘ >>/etc/securetty [[email protected] ~]# tail -f /etc/securetty hvc4 hvc5 hvc6 hvc7 hvsi0 hvsi1 hvsi2 xvc0 pts/0 pts/1
[[email protected] ~]# systemctl restart telnet.socket
以上关于CentOS7.6 系统Telnet服务的配置就全部介绍完了。感谢!
第一次发表随笔博文有点捉襟见肘,写博文一是让自己学习的更扎实;二是希望能有路过看见的大神或者和我一样的小白切磋一二,相互学习指引;技术是用来共享造福人类的。而不是闭门造车,也不只是用来挣钱的工具,这不该是信息共享的本意;三是在网上看见很多的帖子要么叙述不完整,要么有坑,如果有需要的和我一样的小白可以搜索到,这样就能少走一点点弯路节约时间。
—— ZhangXixi(原创) 2019-10-22 [email protected]
原文地址:https://www.cnblogs.com/StarsShine/p/11717316.html