这里以CentOS release 6.5 (Final)作为实验系统。
一、介绍:
所需安装包,其中xinetd为依赖包。也可以用yum安装。
安装telnet软件包(通常要两个)
检测安装包的命令:rpm -qa |grep telnet
1、 telnet (或 telnet-client),提供telnet 客户端程序;
2、 telnet-server 提供 telnet 服务器端程序;
二、server端配置
[root@node2 ~]# ls -l -r--r--r--. 1 root root 59164 Apr 15 09:16 telnet-0.17-47.el6_3.1.x86_64.rpm -r--r--r--. 1 root root 37788 Apr 15 09:16 telnet-server-0.17-47.el6_3.1.x86_64.rpm -r--r--r--. 1 root root 124328 Apr 15 09:17 xinetd-2.3.14-38.el6.x86_64.rpm
①安装依赖包
[root@node2 ~]# rpm -ivh xinetd-2.3.14-38.el6.x86_64.rpm warning: xinetd-2.3.14-38.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:xinetd ########################################### [100%]
②安装server
[root@node2 ~]# rpm -ivh telnet-server-0.17-47.el6_3.1.x86_64.rpm warning: telnet-server-0.17-47.el6_3.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:telnet-server ########################################### [100%]
③修改配置文件:
此时在/etc/xinetd.d/目录下有telnet的文件
[root@node2 ~]# vim /etc/xinetd.d/telnet service telnet { flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no instances = 5 }
三、设置telnet 端口
用vi编辑器打开/etc/services 文件
telnet的默认端口是23
telnet 23/tcp
telnet 23/udp
可以根据需要进行更改
四:启动和停止telnet
telnet服务被交给了xinetd来管理。所以系统要安装xinetd服务。
启动telnet服务
1、开启服务
方法一:使用ntsysv,在出现的窗口之中,将 telnet前面*加上,然后按下 OK 。
方法二:/etc/init.d/xinetd restart
客户端配置
在客户端安装telnet-client
[root@node1 ~]# rpm -ivh telnet-0.17-47.el6_3.1.x86_64.rpm warning: telnet-0.17-47.el6_3.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%] 1:telnet ########################################### [100%]
测试连接:这里root默认是不允许直接登录的。可以用普通用户su到root用户下。
[root@node1 ~]# telnet 172.16.210.152 Trying 172.16.210.152... Connected to 172.16.210.152. Escape character is '^]'. CentOS release 6.5 (Final) Kernel 2.6.32-431.el6.x86_64 on an x86_64 login: rain Password: Last login: Thu Apr 16 01:11:39 from node2
防火墙和selinux关掉或者设置一下防火墙:
如果系统开了防火墙。那么要放开23端口。
iptables -I INPUT -p tcp --dport 23 -j ACCEPT iptables -I INPUT -p udp --dport 23 -j ACCEPT
如果是在windows下连接server端,则
开始菜单->控制面板->打开或关闭Windows功能,稍等一会,然后选中telnet客户端
然后在开始菜单中敲cmd命令行,敲:telnet 172.16.210.152
键入用户名和密码
1、临时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
2、永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
chkconfig --list可以查看linux里服务是否开启
比如:
[root@node2 ~]# chkconfig --list |grep iptables iptables 0:off1:off2:off3:off4:off5:off6:off
五、Telnet服务限制介绍
telnet是明文传送口令和数据的,如果server端是172.16.210.152,,为了安全起见就可以按如下方式设置了。
#vi /etc/xinetd.d/telnet
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = no #激活telnet 服务
instances = 10 #最大连接数是10
bind = 172.16.210.152 #telnet-server’s IP
only_from = 192.168.0.0/16 #只允许192.168.0.0~192.168.255.255这个网段登录
only_from = .edu.cn #只有教育网才能进入!
no_access = 192.168.1.{50,51} #这两个ip不可登陆
access_times= 9:00-18:00 20:00-23:59 # 每天允许登录的时间段
等等其他限制
}
六、Telnet-server允许 root用户的登入
Telnet 因为是明文传送口令和数据,所有不是很安全,默认是不允许 root 以 telnet 进入 Linux 主机 。若要允许root用户登入,可用下列方法:
①:
[root@node2 ~]# vi /etc/securetty pts/0 pts/1 pts/2 pts/3 pts/4 pts/5
编辑/etc/securetty 文件,在文件最后添加上面几行(pts是指从远程登录的终端号,tty是指linux本地终端,一般是6个)。
②:
[root@node2 ~]# mv /etc/securetty /etc/securetty.bak
一般生产不会这样做,基本都是以普通用户进入后,切换到root用户,拥有root的权限。
七、 FAQ:
1:出现外部主机连接错误
这是由于LINUX为了提高TELNET的安全性和防止未授权的用户利用TELNET登录的问题。
解决方法(在客户机上操作):
①固定IP:
在/etc/hosts文件内添加客户机名和对应的IP地址信息格式
172.16.210.152 node2
②:DHCP分配
允许:编辑/etc/hosts.allow文件 添加 ALL:ALL
阻止:编辑/etc/hosts.deny 文件 添加 ALL:ALL