📄 0310telnetssh.htm
字号:
<span class=term_write># disable = yes
disable = no</span>
<span class=term_say># 基本上,改上面这两行就够了!将 disable 设定成 no 表示要启动!</span>
}
</pre></td></tr></table>
</ol>
设定完开启之后,自然就是要启动啦,刚刚提到 <span class=text_import2>telnet
是挂在 xinetd 底下的,所以自然只要重新启动 xinetd 就能够将 /etc/xinetd.d/ 里头的设定重新读进来</span>,
所以刚刚设定启动的
telnet 自然也就可以被启动啦!而启动的方式也有两种方式,其中 service 这个指令仅支援在
CentOS 与 Mandriva 底下,所以通常鸟哥还是以 /etc/init.d 底下的 scripts
为启动的主要方法啦!<br />
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>仅适合 Red Hat 系列 / Mandriva 系列的主机启动方式</span>
[root@linux ~]# <span class=term_command>service xinetd restart</span>
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
<span class=term_hd>适合各版本的主机启动方式</span>
[root@linux ~]# <span class=term_command>/etc/init.d/xinetd restart</span>
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
<span class=term_say># 某些版本并没有 restart 的选项,这个时候就需要∶stop 再 start 棉!</span>
</pre></td></tr></table>
那么要看有没有启动服务呢?怎么看?其实也很简单啦,还记得我们在前几章提到的『
<a href="0210port_limit.php">限制 Linux port 的连线</a> 』那一章吗?使用
<a href="0140networkcommand.php#netstat">netstat</a>
就可以啦!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>netstat -tlup</span>
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:telnet *:* LISTEN 23817/xinetd
</pre></td></tr></table>
看到了吗?没错,那个 telnet 就是启动的项目啦!那么要如何关闭呢?呵呵!
那就真的是太简单啦!就将刚刚的步骤再做一次,而将设定值转变一下即可!步骤如下啦!<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 这里考一个问题,那个 port 对应的服务名称在哪一个档案里面查询到的呢?
在每一个 Linux 系统都有的档案呦!忘记了呀!?再回到前面看看
<a href="0210port_limit.php">限制 Linux port 的连线</a> ,
然后用 <a href="../linux_basic/0310vi.php">vi</a> 去看看那一个档案的内容吧! ^_^
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
<table class="term"><tr><td class="term"><pre>
<span class=term_hd>Step 1: 修改设定档</span>
[root@linux ~]# <span class=term_command>vi /etc/xinetd.d/telnet</span>
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes <span class=term_say><== 就是这里啦!将他改成 yes 就是关闭!</span>
}
<span class=term_hd>Step 2: 重新启动 xinetd 这个 super daemon</span>
[root@linux ~]# <span class=term_command>/etc/init.d/xinetd restart</span>
</pre></td></tr></table>
</div>
</div>
<hr /><a name="telnet_client"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>好用的连线软体</span><br />
<div class=block2>
刚刚上面提到的都是在伺服器端的设定而已!那么在客户端有什么好用的软体可以连上
Server 的呢?最常见到的应该就是 netterm 这个鼎鼎大名的连线软体了吧!
我想,只要玩过 BBS 的大概都晓得这个软体才对!所以这里就不提了!
另外,目前几乎所有的作业系统都提供了 telnet 这个程式,这个程式可以直接轻易的就连上
telnet server 呢!例如您要在 Linux 上面连上自己的 telnet 伺服器,可以这样做∶<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>telnet localhost</span>
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
CentOS release 4.4 (Final)
Kernel 2.6.9-42.0.2.EL on an i686
login: <span class=term_command>dmtsai</span> <span class=term_say><== 就是这里啦!请输入『一般』帐号,不能用 root 喔!</span>
Password: <span class=term_say><== 这里输入该帐号的密码!请注意,输入时,萤幕不会有任何资讯!</span>
Last login: Fri Jul 1 09:31:21 from 127.0.0.1 <span class=term_say><== 上次登入的资讯为何?</span>
[dmtsai@linux ~]$ <span class=term_say><== 这里就是已经登入的地方!亦即远端主机了!</span>
[dmtsai@linux ~]$ <span class=term_command>exit</span> <span class=term_say><== 这样就能够离开 telnet 与远端主机咯!</span>
</pre></td></tr></table>
这样就连线进来啦!很简单吧!那么在 Windows 的环境底下呢?同样的,也是可以使用
telnet 的程式连线到 Linux 的 telnet server 里面来!没有问题的啦!可以依序这样做∶
<ol><span class=text_import2>
<li>按下 Windows 内的 『开始』
<li>选择 『执行』
<li>在出现的视窗中输入 『telnet your.IP.or.hostname』</ol></span>
这样就可以进入 Linux 的环境中了!很方便吧!当然啦!您也可以使用类似
netterm 这个很棒的连线软体来连线的,这里我们就不示范啦!<br />
<div style="padding: 10 0 10 0 ;" align="right"><table width="90%"><tr><td><b>Tips:</b><br /><span style="font-style: italic; color : darkgreen"> 在 Linux tty1 ~ tty6 的终端机预设模式下,我们是没有办法看到中文的!
除非安装某些特殊的中文介面才行!比如 JMCCE 之类的咚咚!
因为不是很重要,所以鸟哥这里就不加介绍了。 ^_^
</span></td><td><img src="../images/vbird_face.gif" /></td></tr></table></div>
另外,需要先留意的是,为了系统安全的考量,<span class=text_import2>预设的 telnet
是『不允许』使用 root 这个帐号登入的~</span>
这个很重要喔!您不要使用 root 尝试登入 telnet 啊! ^_^
</div>
<hr /><a name="telnet_safe"></a><img src="../images/penguin-s.gif" alt="小标题的图示" height="23" width="16" align="middle" /><span class=text_h2>iptables, TCP_Wrappers, 纯建议</span><br />
<div class=block2>
telnet 这个伺服器方便归方便,但<span class=text_import2>总是一个不太好的连线解决方案</span>,
因为毕竟他是一个以『明码』传输的协定,所以很不适合在 Internet 上面使用啦!
你总不希望你的帐号密码在 Internet 上面被窃取吧?不过,如果 telnet 是启动在内部环境当中那就还好啦!
尤其有些朋友因为旧软体的关系,还是需要使用到 telnet 来连线。那么我们就提一些基本的注意事项好了!<br /><br />
<li><span class=text_import1>以比较限制的设定档来规范连线的 IP ∶</span></li>
<div class=block2>
事实上, xinetd 就已经提供些许的保护措施了,
您可以针对您主机的多重介面(有对内以及对外喔!)来提供不同保护等级的措施!
底下列出一个范例,不过,更多的资讯请再回到『<a href="../linux_basic/">鸟哥的
Linux 私房菜 -- 基础学习篇</a>』当中去查阅一下
『<a href="../linux_basic/0560daemons.php">认识服务</a>
』那一章里面的详细设定说明,或者直接 man xinetd.conf 吧!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/xinetd.d/telnet</span>
<span class=term_say># This file had been modified by VBird 2002/11/04
# 首先为内部网路的参数设定</span>
service telnet
{
disable = no
<span class=term_write> bind = 192.168.1.2
only_from = 192.168.1.0/24</span>
<span class=term_say># 上面这两行说明仅提供内部网域!</span>
instance = UNLIMITED
nice = 0
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
server_args = -a none
log_on_failure += USERID
}
<span class=term_say># 再来则是针对外部网域的设定</span>
service telnet
{
disable = no
<span class=term_write> bind = 140.116.142.196
only_from = 140.116.0.0/16
no_access = 140.116.32.{10,26}</span>
<span class=term_say># 上面这三行设定外部较为严格的限制</span>
instance = 10 <span class=term_say><==最多允许同时 10 个连线</span>
umask = 022
nice = 10
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
server_args = -a none
log_on_failure += USERID
}
</pre></td></tr></table>
</div>
<li><span class=text_import1>root 不能直接以 telnet 连接上主机∶</span></li>
<div class=block2>
<span class=text_import2>既然 telnet 不是很安全,自然预设的情况之下就是无法允许
root 以 telnet 登入 Linux 主机的</span>!但事实上, telnet
只是利用一些较为安全的机制 (其实就是 PAM 模组啦) 来防止
root 登入而已~所以棉,假如您确定您的环境够安全(例如您的主机并没有连上
Internet ),并且想要开放 root 以 telnet 登入 Linux 主机的话,请直接将 /etc/securetty
更改档名即可!<br />
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>mv /etc/securetty /etc/securetty.bak</span>
</pre></td></tr></table>
这样一来,root 就可以登入啦!不过,相当的不建议这样做喔!毕竟不是很安全啦!此外,您也可以藉由修改
pam 模组来达成同样的功能!修改 /etc/pam.d/login 这个档案的第二行设定即可∶
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>vi /etc/pam.d/login</span>
#%PAM-1.0
<span class=term_write>#auth required pam_securetty.so</span> <span class=term_say><== 就是这样一行,将他注解即可!</span>
auth required pam_stack.so service=system-auth
auth required pam_nologin.so
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_stack.so service=system-auth
session required pam_loginuid.so
session optional pam_console.so
# pam_selinux.so open should be the last session rule
session required pam_selinux.so multiple open
</pre></td></tr></table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -