一、 实验题目:
linux配置telnet服务器,并基于命令行访问控制远程计算机。

二、 理论分析
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

三、 方法和步骤

先安装telnet

linux服务器安装Android sdk linux服务器安装telnet_运维


sudo vi /etc/inetd.conf并加入以下一行

linux服务器安装Android sdk linux服务器安装telnet_运维_02


telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd

linux服务器安装Android sdk linux服务器安装telnet_ip地址_03


sudo vi /etc/xinetd.conf并加入以下内容:

linux服务器安装Android sdk linux服务器安装telnet_运维_04


该设置可同时运行的最大进程数

表示使用syslog进行服务登记

表示该设置成功后登记客户机的ip地址和进程pid

表示该设置失败后登记客户机的ip地址

表示每秒25个入站连接,如果超过限制,则等待30秒

linux服务器安装Android sdk linux服务器安装telnet_重启_05


linux服务器安装Android sdk linux服务器安装telnet_服务器_06


加入后,保存。

linux服务器安装Android sdk linux服务器安装telnet_重启_07


sudo vi /etc/xinetd.d/telnet

linux服务器安装Android sdk linux服务器安装telnet_重启_08


并加入以下内容:

linux服务器安装Android sdk linux服务器安装telnet_运维_09


表示当前允许这项服务

表示中断或重启xinetd时,tcp/ip socket可重用

使用的tcp的socket 类型

表示提供多线程功能

表示设置进程的uid

服务程序的完整路径

将失败的uid 添加到系统登记表中

linux服务器安装Android sdk linux服务器安装telnet_服务器_10


重启机器或重启网络服务sudo /etc/init.d/xinetd restart

linux服务器安装Android sdk linux服务器安装telnet_linux_11


使用root登录:

mv /etc/securetty /etc/securetty.bak 这样root可以登录了.

也可这样:

修改/etc/pam.d/login这个文件.只需将下面一行注释掉即可.

 #auth required lib/security/pam_securetty.so

linux服务器安装Android sdk linux服务器安装telnet_运维_12


我们用win7来作为主机,连接linux进行测试。

我们先在linux上打开telnet服务,查看ip地址:192.168.40.104

linux服务器安装Android sdk linux服务器安装telnet_重启_13


我们用win7的主机连接,在dos命令框中输入 telnet 192.168.40.104

linux服务器安装Android sdk linux服务器安装telnet_运维_14


用root登陆即可

linux服务器安装Android sdk linux服务器安装telnet_运维_15


连接成功

其他详细配制/etc/xinetd.d/telnet
 service telnet
 {
 disable =no
 bind =192.168.1.2
 only_from=192.168.1.0/24
 #上面这两行说明仅提供内部网段!
 Instance =UNLIMITED
 Nice =0
 Flags =REUSE
 socket_type=stream
 wait =no
 user =root
 #server =/usr/sbin/telnetd
 server =/usr/sbin/in.telnetd
 server_args =-a none
 log_on_failure +=USERID
 }service telnet
 {
 disable =no
 bind =140.116.142.196
 only_from=140.116.0.0/16
 no_access=140.116.32.{10,26}
 #上面三行设置外部较为严格的限制
 instance =10
 umask =022
 nice =10
 flags =REUSE
 socket_type=stream
 wait =no
 user =root
 #server =/usr/sbin/telnetd
 server =/usr/sbin/in.telnetd
 log_on_failure +=USERID
 }
 加设防火墙iptables:
 如果想要针对192.168.0.0/24这个网段及61.xxx.xxx.xxx这个IP进行telnet开放,可以增加下面几行规则:
 /sbin/iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 23 -j ACCEPT
 /sbin/iptables -A INPUT -p tcp -i eth0 -s 61.xxx.xxx.xxx --dport 23 -j ACCEPT
 /sbin/iptables -A INPUT -p tcp -i eth0 --dport 23 -j DROP加设防火墙/etc/hosts.allow(deny)机制:
 上面开放了192.168.0.0/24这个网段,但是如果您只想让其中的192.168.0.1~192.168.0.5进入,可以设置如下 :
 vi /etc/hosts.allow
 in.telnetd:192.168.0.1,192.168.0.2,192.168.0.3,192.168.0.4,192.168.0.5:allow