📄 0310telnetssh.htm
字号:
root]# </font><font color="#ffff00">vi /etc/xinetd.d/telnet</font></font><br><font size="-1" color="#ffffff" face="SimSun"># This filehad been modified by VBird 2002/11/04</font><br><font size="-1" color="#ffffff" face="SimSun"># First isabout inside the network</font><br><font size="-1" color="#ffffff" face="SimSun">service telnet</font><br><font size="-1" color="#ffffff" face="SimSun">{</font><br><font size="-1" color="#ffffff" face="SimSun">       disable         = no</font><br><font size="-1" color="#ffff00" face="SimSun">       bind           = 192.168.1.2</font><br><font size="-1" color="#ffff00" face="SimSun">       only_from       = 192.168.1.0/24 </font><br><font size="-1" color="#ff6666" face="SimSun">       # 上面这两行说明仅提供内部网域!</font><br><font size="-1" color="#ffffff" face="SimSun">       instance        = UNLIMITED</font><br><font size="-1" color="#ffffff" face="SimSun">       nice           = 0</font><br><font size="-1" color="#ffffff" face="SimSun">       flags           = REUSE</font><br><font size="-1" color="#ffffff" face="SimSun">       socket_type     = stream</font><br><font size="-1" color="#ffffff" face="SimSun">       wait           = no</font><br><font size="-1" color="#ffffff" face="SimSun">       user           = root</font><br><font size="-1" color="#ffffff" face="SimSun">       server          = /usr/sbin/telnetd</font><br><font size="-1" color="#ffffff" face="SimSun">       server_args     = -a none</font><br><font size="-1" color="#ffffff" face="SimSun">       log_on_failure  += USERID</font><br><font size="-1" color="#ffffff" face="SimSun">}</font><p><font size="-1" color="#ffffff" face="SimSun"># Second isabout the outside domain's settings</font><br><font size="-1" color="#ffffff" face="SimSun">service telnet</font><br><font size="-1" color="#ffffff" face="SimSun">{</font><br><font size="-1" color="#ffffff" face="SimSun">       disable         = no</font><br><font size="-1" face="SimSun"><font color="#ffffff"> </font><font color="#ffff00">      bind           = 140.116.142.196</font></font><br><font size="-1" color="#ffff00" face="SimSun">       only_from       = 140.116.0.0/16</font><br><font size="-1" color="#ffff00" face="SimSun">       no_access       = 140.116.32.{10,26} </font><br><font size="-1" color="#ff6666" face="SimSun">       # 上面这三行设定外部较为严格的限制</font><br><font size="-1" color="#ffffff" face="SimSun">       instance        = 10</font><br><font size="-1" color="#ffffff" face="SimSun">       umask           = 022</font><br><font size="-1" color="#ffffff" face="SimSun">       nice           = 10</font><br><font size="-1" color="#ffffff" face="SimSun">       flags           = REUSE</font><br><font size="-1" color="#ffffff" face="SimSun">       socket_type     = stream</font><br><font size="-1" color="#ffffff" face="SimSun">       wait           = no</font><br><font size="-1" color="#ffffff" face="SimSun">       user           = root</font><br><font size="-1" color="#ffffff" face="SimSun">       server          = /usr/sbin/telnetd</font><br><font size="-1" color="#ffffff" face="SimSun">       server_args     = -a none</font><br><font size="-1" color="#ffffff" face="SimSun">       log_on_failure  += USERID</font><br><font size="-1" color="#ffffff" face="SimSun">}</font></p></td></tr></tbody></table> <li><font color="#000099">root 不能直接以 telnet 连接上主机:</font></li><br><font color="#000066">既然 telnet 不是很安全,自然预设的情况之下就是无法允许root 以 telnet 登入 Linux 主机的</font>!但是,事实上, telnet 只是利用一些较为安全的机制来防止root 登入而已~所以啰,假如您确定您的环境够安全(例如您的主机并没有连上Internet ),并且想要开放 root 以 telnet 登入 Linux 主机的话,请直接将 /etc/securetty更改檔名即可!<table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">mv /etc/securetty /etc/securetty.bak</font></font></td></tr></tbody></table>这样一来,root 就可以登入啦!不过,相当的不建议这样做喔!毕竟不是很安全啦!此外,您也可以藉由修改pam 模块来达成同样的功能!修改 /etc/pam.d/login 这个档案的第二行设定即可:<table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root @test/root]# </font><font color="#ffff00">vi /etc/pam.d/login</font></font><br><font size="-1" color="#ffffff" face="SimSun">#%PAM-1.0</font><br><font size="-1" color="#ffff00" face="SimSun">#auth      required     /lib/security/pam_securetty.so </font><br><font size="-1" color="#ff6666" face="SimSun"># 将上面这一行加上# 批注掉!</font><br><font size="-1" color="#ffffff" face="SimSun">auth      required     /lib/security/pam_stack.so service=system-auth</font><br><font size="-1" color="#ffffff" face="SimSun">auth      required     /lib/security/pam_nologin.so</font><br><font size="-1" color="#ffffff" face="SimSun">account   required     /lib/security/pam_stack.so service=system-auth</font><br><font size="-1" color="#ffffff" face="SimSun">password  required     /lib/security/pam_stack.so service=system-auth</font><br><font size="-1" color="#ffffff" face="SimSun">session   required     /lib/security/pam_stack.so service=system-auth</font><br><font size="-1" color="#ffffff" face="SimSun">session   optional     /lib/security/pam_console.so</font></td></tr></tbody></table>如此一来, root 将可以直接进入 Linux 主机了!不过,<b><font color="#000066">还是不建议如此做的</font></b>!<br> <li><font color="#000099">加上防火墙 iptables:</font></li><br>针对 telnet 加设防火墙 iptables 是一个好主意!如果您已经参考了前面章节提到的『<a href="http://linux.vbird.org/linux_server/0250simple_firewall.php">简易防火墙架设</a>』一文,并且使用里面的scripts 的话,那么不用担心 telnet 啦!基本上,他原本就仅对内部开放 telnet,外部是无法连上您的 telnet 的!但是,若是您自己设定了自己的防火墙机制之后,那么想要针对192.168.0.0/24 这个网域,及 61.xxx.xxx.xxx 这个 IP 进行 telnet 的开放呢?可以增加这几行在您的iptables 规则之内(请注意:防火墙的规则顺序是很重要的!所以再回头看看 <a href="http://linux.vbird.org/linux_server/0250simple_firewall.php">简易防火墙架设</a>一文是有必要的!)<table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" color="#ffff00" face="SimSun">/sbin/iptables-A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 23 -j ACCEPT</font><br><font size="-1" color="#ffff00" face="SimSun">/sbin/iptables-A INPUT -p tcp -i eth0 -s 61.xxx.xxx.xxx --dport 23 -j ACCEPT</font><br><font size="-1" color="#ffff00" face="SimSun">/sbin/iptables-A INPUT -p tcp -i eth0                  --dport 23 -j DROP</font></td></tr></tbody></table>上面的规则中,第一、二行是针对来源的 IP 来开放 port 23 亦即是 telnet 的协议啦!而最后一行则是将其它的所有来源的,想要连上telnet 的联机封包都丢掉的意思!怎么样!很简单吧!<br> <li><font color="#000099">加上防火墙 /etc/hosts.allow(deny) 机制:</font></li><br>防火墙的机制是越多越好!永远也不嫌多的啦!这里也可以使用 TCP_Wrappers的机制呢!刚刚是开放了 192.168.0.0/24 这个网段,但是如果您只想要其中的192.168.0.1 ~ 192.168.0.5 进入呢?而其它的 IP 只要一经联机,就会被记录该IP ,以提供 root 查询呢?可以这样做:<table bgcolor="#000000" border="1" cols="1" width="600"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">vi /etc/hosts.allow</font></font><br><font size="-1" color="#ffffff" face="SimSun">in.telnetd:192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4, 192.168.0.5: allow</font><p><font size="-1" face="SimSun"><font color="#ffffff">[root@test root]#</font><font color="#ffff00">vi/etc/hosts.deny</font></font><br><font size="-1" color="#ffffff" face="SimSun">in.telnetd: ALL : spawn (/bin/echo Security notice from host `/bin/hostname`; \ </font><br><font size="-1" color="#ffffff" face="SimSun">/bin/echo;/usr/sbin/safe_finger @%h ) | \ </font><br><font size="-1" color="#ffffff" face="SimSun">/bin/mail -s"%d -%h security" root@localhost & \ </font><br><font size="-1" color="#ffffff" face="SimSun">: twist ( /bin/echo-e "\n\nWARNING connectin not allowed. Your attempt has been logged. \n\n\n警告您尚未允许登入,您的联机将会被纪录,并且作为以后的参考\n\n". ) </font></p></td></tr></tbody></table>更详细的 TCP_Wrappers 用法请参考 <a href="http://linux.vbird.org/linux_server/0250simple_firewall.php">简易防火墙架设</a>一文啰!<br> <li><font color="#000099">建议事项:</font></li><br>说真的, telnet 真的不是很安全的!简直应该说为『危险』等级的服务,所以尽量不要启动他啦:<ol><li><font color="#000066">非必要时,不要启动 telnet ,如果真的需要启动 telnet,那么也请在启动并且使用完毕之后,立即将他关掉!</font></li><li><font color="#000066">如果确定真的要启动 telnet 时,请确定好限制的联机范围,使用iptables 来设定联机的限制区域;</font></li><li><font color="#000066">加上 TCP_Wrappers 的辅助,加强防火墙的功能!</font></li><li><font color="#000066">随时注意登录档案里面关于 login 的事项!并且不要让root 能以 telnet 登入 Linux 主机!</font></li></ol></ul></ol><hr width="100%"><a name="ssh"></a><font size="+1" color="#000099">SSH服务器:</font><ol>既然 telnet 不是很安全,那么我又需要以远程联机服务来操控我的 Linux主机,那么应该怎么办呀!?最好的方法当然就是以较为安全的联机机制的方案来解决联机的问题啰!那么该如何解决这样的问题呢?这也不难啦,使用SSH 即可。那么 SSH 是什么呢?他有什么特异功能?简单的来说,<font color="#000066"><b>SSH是 Secure SHell protocol 的简写</b>,</font>他可以经由将联机的封包加密的技术,来进行数据的传递,因此,数据当然就比较安全啰!这个SSH 可以用来取代 Internet 上面较不安全的 finger, R Shell (rcp, rlogin,rsh 等指令), talk 及 telnet 等联机模式。底下我们将先简介一下 SSH 的联机模式,来说明为什么SSH 会比较安全呢!<br> <br>特别注意:这个 SSH 协议,在预设的状态中,本身就提供两个服务器功能:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -