首先说明,telnet登录服务器是一种不安全的远程登录方式。先森之所以会需要telnet登录服务器,是因为有时候需要对OpenSSH进行配置修改、漏洞修复、升级等操作时,需要telnet作为保险,以免误操作导致无法登录服务器。
基础
先科普一点基础。
telnet:是telnet的客户端,除了Linux可以安装外,Windows默认也是安装了的(先森是win7系统,win7以下的不知道是否自带)。telnet通常还可以检测服务器端口是否开启。
telnet-server:这才是可以开启远程登录的服务端软件。
部署
系统:CentOS 6.8 x64
1.直接yum安装telnet-server:
yum install -y telnet-server
2.守护进程。telnet需要依赖超级守护进程xinetd启动,若为安装还需要先安装。
yum install -y xinetd
3.启动telnet:
chkconfig telnet on service xinetd restart
4.允许登录:
echo 'pts/0' >>/etc/securetty echo 'pts/1' >>/etc/securetty
“/etc/securetty”文件允许你规定“root”用户可以从那个TTY设备登录。
pts是pesudo tty slave,是伪终端的slave端。
5.开启防火墙端口。请先确保已经关闭SElinux。
在防火墙配置文件/etc/sysconfig/iptables中,复制22端口那行粘贴在其下面,开启23端口,保存并重启iptables。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT service iptables restart
登录
telnet登录有很多方式:
方式一:Xshell不登录服务器,直接打开一个标签,输入telnet + IP即可。
Xshell直接登录
方式二:服务器安装telnet,也通过telnet + IP登录。
yum install -y telnet telnet 127.0.0.1 #技巧,可以本机测试
方式三:通过Windows的CMD命令行登录。
WIN+R键输入cmd,回车进入cmd命令行终端。也是输入telnet + IP即可登录。
Windows登录
问题
有时候登录时,即使密码输入正确,也提醒login incorrect(登录错误),如上图。
这种问题可能是telnet登录的伪终端pts正好不在你写的/etc/securetty里面。这时候可以在服务器端通过查看日志,确定使用的是哪个pts。
tail -f /var/log/secure
查看日志
上图可以看到,红框中显示“tty 'pts/2' is not secure(tty的'pts/2'是不安全的)”,所以只需要将'pts/2'加入到/etc/securetty即可。
echo 'pts/2' >>/etc/securetty
关闭
论安全,还是OpenSSH更为安全,所以在对OpenSSH操作完后,一定记得关闭telnet与防火墙23端口。
chkconfig telnet off service xinetd restart sed -i '/23/ s/^/#/' /etc/sysconfig/iptables service iptables restart
偷懒
如果不想一步一步的操作安装telnet-server的话,可以把下面的命令复制,到服务器上粘贴等待完成即可。也可以写成脚本。
yum install -y telnet-server chkconfig telnet on echo 'pts/0' >>/etc/securetty echo 'pts/1' >>/etc/securetty service xinetd restart sed -i 's/^-A\(.*\)22 \(.*\)/&\n-A\123 \2/' /etc/sysconfig/iptables service iptables restart iptables -L -n
转载请注明出处来自https://www.capjsj.cn/linux_telnet.html