linux oracle 网络安全 编程
分类: 网络与安全
2013-09-05 00:42:04
学网络和网络操作系统(Linux)这么久了对两个相似的东西总是认识的不够清楚,今天我把它们整理在这里,比较一下也方面记忆和理解。
一.什么是VTY?
Cisco的设备管理有很多种方式,如Console、HTTP、TTY、VTY或其它网管软件,但我们远程管理较为常用的一种方式肯定是VTY方式。
VTY在Cisco的不同系列产品中,都有一定数量的VTY线路可用,但具体数目则不尽相同。有些路由器交换机产品只有五条线路可用(line vty 0 4),有些交换机路由器设备则提供了十多条,甚至达一千多条,但默认情况下不一定全部启用。如果您想看一下自己的设备具体支持多少条线路,只需在全局模式下使用命令line vty 0 ?即可查看该设备支持多少条线路。
VTY线路的启用/关闭:
VTY线路的启用只能按顺序进行,你不可能启用line vty 10,而不启用line vty 9。如果想启用line vty 9,那么你可以在全局模式(或line模式)下输入命令line vty 9 ,如:
(config)#line vty 9 |
这样系统会自动启用前面的0-8线路。当然也可以直接输入line vty 0 9直接启用10条线路。
如果不想开启这么多条线路供用户使用,那么只须在全局模式下使用no line vty m [n]命令就可以关闭第m后的线路,此时n这个数值可有可无,因为系统只允许开启连续的线路号,取消第m号线路会自动取消其后的所有线路。
VTY线路的协议选用:
VTY线路支持多种协议:
acercon Remote console for ACE-based blade lat DEC LAT protocol mop DEC MOP Remote Console Protocol nasi NASI protocol pad X.3 PAD rlogin Unix rlogin protocol ssh TCP/IP SSH protocol telnet TCP/IP Telnet protocol udptn UDPTN async via UDP protocol |
在某一个接口上使用什么协议可以使用命令:transport {input|ouput}来进行定义:
(config)#line vty 0
(config-line)#transport ? //查看支持哪种方式的协议定义
input Define which protocols to use when connecting to the terminal server
output Define which protocols to use for outgoing connections
preferred Specify the preferred protocol to use
(config-line)#transport input ? //查看在输入方向上支持的协议
acercon Remote console for ACE-based blade
all All protocols
lat DEC LAT protocol
mop DEC MOP Remote Console Protocol
nasi NASI protocol
none No protocols
pad X.3 PAD
rlogin Unix rlogin protocol
ssh TCP/IP SSH protocol
telnet TCP/IP Telnet protocol
udptn UDPTN async via UDP protocol
(config-line)#transport output ? //查看在输出方向上支持的协议
acercon Remote console for ACE-based blade
all All protocols
lat DEC LAT protocol
mop DEC MOP Remote Console Protocol
nasi NASI protocol
none No protocols
pad X.3 PAD
rlogin Unix rlogin protocol
ssh TCP/IP SSH protocol
telnet TCP/IP Telnet protocol
udptn UDPTN async via UDP protocol
(config-line)#transport preferred //定义协议的优先次序
查看某一线路当前支持的协议可以使用命令show line vty number
#show line vty 9
Tty Typ Tx/Rx A Modem Roty AccO AccI Uses Noise Overruns Int
10 VTY - - - - - 0 0 0/0 -
Line 10, Location: "", Type: ""
Length: 24 lines, Width: 80 columns
Baud rate (TX/RX) is 9600/9600
Status: No Exit Banner
Capabilities: none
Modem state: Idle
Group codes: 0
Special Chars: Escape Hold Stop Start Disconnect Activation
^^x none - - none
Timeouts: Idle EXEC Idle Session Modem Answer Session Dispatch
00:10:00 never none not set
Idle Session Disconnect Warning
never
Login-sequence User Response
00:00:30
Autoselect Initial Wait
not set
Modem type is unknown.
Session limit is not set.
Time since activation: never
Editing is enabled.
History is enabled, history size is 10.
DNS resolution in show commands is enabled
Full user help is disabled
Allowed input transports are lat pad mop telnet rlogin ssh nasi.
Allowed output transports are lat pad mop telnet rlogin ssh nasi.
Preferred transport is lat.
No output characters are padded
No special data dispatching characters
VTY线路的使用:
VTY线路启用后,并不能直接使用,必须对其进行下面简单的配置才允许用户进行登录。
1、配置登录密码
如果想成功登录到设备,必须在line线路下使用命令password来定义登录密码,否则无法成功登录(注:如果全局已经启用了相关认证如AAA,则在此不必配置密码)
注意:在此你配置的密码是保存在配置文件中的,即使你启用service password-encryption功能,它加密的方式也是一种可逆的加密,很容易破解,所以在使用过程中尽可能配置一个不同于特权模式中的密码。
2、登录验证
默认情况下,在line vty线路中,默认情况下使用的是系统默认的登录方式(要看你是否在全局启用了AAA等),如果你需要在登录时指定认证模式,你可以使用login authentication命令进行指定。如果你想在登录时不需要用户输入密码,则可以使用no lgoin命令进行指定(当然这很危险)
特权模式的使用:
通过VTY线路登录后,会进入用户模式,如果你需要进行特权模式,那么你必须配置登录特权模式的认证。
使用案例:
不同的线路上,可以配置不同的协议,如在line vty 0上配置telnet,在line vty 1上配置ssh,这样当SSH用户登录时,系统会让line vty 0空闲,而使用line vty 1进行连接。
应用:在line vty 0-1上配置使用telnet协议,使用动态访问列表,在网络中进行严格的控制,以便只有网络管理人员才可以使用特殊通信;在2-10上配置SSH协议,用来进行设备管理。
二.什么事TTY?
终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。
tty是Teletype的缩写。Teletype是最早出现的一种终端设备,很象电传打字机(或者说就是?),是由Teletype公司生产的。在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:
1.串行端口终端(/dev/ttySn)
串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0)、/dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0)、(4,1)等,分别对应于DOS系统下的COM1、COM2等。若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。例如,在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。
2.伪终端(/dev/pty/)
伪终端(Pseudo Terminal)是成对的逻辑终端设备,例如/dev/ptyp3和/dev/ttyp3(或着在设备文件系统中分别是/dev/pty/m3和/dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ttyp3看作是一个串行端口设备,则它对该端口的读/写操作会反映在该逻辑终端设备对的另一个上面(ptyp3)。而ptyp3则是另一个程序用于读写操作的逻辑设备。这样,两个程序就可以通过这种逻辑设备进行互相交流,而其中一个使用ttyp3的程序则认为自己正在与一个串行端口进行通信。这很象是逻辑设备对之间的管道操作。`
对于ttyp3(s3),任何设计成使用一个串行端口设备的程序都可以使用该逻辑设备。但对于使用ptyp3的程序,则需要专门设计来使用ptyp3(m3)逻辑设备。
例如,如果某人在网上使用telnet程序连接到你的计算机上,则telnet程序就可能会开始连接到设备ptyp2(m2)上(一个伪终端端口上)。此时一个getty程序就应该运行在对应的ttyp2(s2)端口上。当telnet从远端获取了一个字符时,该字符就会通过m2、s2传递给getty程序,而getty程序就会通过s2、m2和telnet程序往网络上返回”login:”字符串信息。这样,登录程序与telnet程序就通过“伪终端”进行通信。通过使用适当的软件,就可以把两个甚至多个伪终端设备连接到同一个物理串行端口上。
在使用设备文件系统(device filesystem)之前,为了得到大量的伪终端设备特殊文件,使用了比较复杂的文件名命名方式。因为只存在16个ttyp(ttyp0—ttypf)的设备文件,为了得到更多的逻辑设备对,就使用了象q、r、s等字符来代替p。例如,ttys8和ptys8就是一个伪终端设备对。不过这种命名方式目前仍然在于RedHat等Linux系统中使用着。
但Linux系统上的Unix98并不使用上述方法,而使用了”pty master”方式,例如/dev/ptm3。它的对应端则会被自动地创建成/dev/pts/3。这样就可以在需要时提供一个pty伪终端。目录/dev/pts是一个类型为devpts的文件系统,并且可以在被加载文件系统列表中看到。虽然“文件”/dev/pts/3看上去是设备文件系统中的一项,但其实它完全是一种不同的文件系统。
3.控制终端(/dev/tty)
如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接或别名。
4.控制台(/dev/ttyn, /dev/console)`
在Linux系统中,计算机显示器通常被称为控制台终端或控制台(Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2等。当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。tty1 –tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,Linux系统所产生的信息都会发送到该终端上。因此不管当前我们正在使用哪个虚拟终端,系统信息都会发送到我们的屏幕上。C}$k]\
你可以登录到不同的虚拟终端上去,因而可以让系统同时有几个不同的会话存在。但只有系统或超级用户root可以向/dev/tty0进行写操作,而且有时/dev/console会连接至/dev/tty0或/dev/tty1上。Ry
5.其它类型WW
Linux系统中还针对很多不同的字符设备建有很多其它种类的终端设备特殊文件。例如针对ISDN设备的/dev/ttyIn终端设备等。这里不再赘述
三.补充。
访问路由器可以用终端控制台,TTY线路,VTY线路,基于SNMP网管和RMON等方法.
终端控制台(Console),用终端仿真到路由器里,对路由器作配置. Router# configure terminal(进入配置模式) Router# line con 0(进入对console的配置) 在line con配置模式下,可设定空闲多长时间退出console的超时时间timeout,口令等等. TTY线路,Cisco路由器异步口,远程PC, Macintosh或UNIX主机通过MODEM拨号访问. Router# configure terminal(进入配置模式) Router# line tty line-number [ending-line-number](进入对tty的配置) 在这里可以设定拨号进来的用户名,口令等安全访问控制. VTY线路,相应的同步口, |