{"id":63,"date":"2006-03-28T14:47:40","date_gmt":"2006-03-28T13:47:40","guid":{"rendered":"http:\/\/security-planet.de\/?p=49"},"modified":"2006-03-28T14:47:40","modified_gmt":"2006-03-28T13:47:40","slug":"konfiguration-eines-cisco-terminal-servers-part-1","status":"publish","type":"post","link":"https:\/\/cyber-fi.net\/index.php\/2006\/03\/28\/konfiguration-eines-cisco-terminal-servers-part-1\/","title":{"rendered":"Konfiguration eines Cisco Terminal-Servers (Part 1)"},"content":{"rendered":"<p>In fast allen Cisco-Kursen kommen Terminalserver vor um den Teilnehmern die M\u00f6glichkeit zu geben auf die Konsole der Ger\u00e4te zu kommen, ohne ein extra Konsolen-Kabel zu den Ger\u00e4ten zu haben.<br \/>\nDiese Anleitung beschreibt wie so ein Terminalserver mit einem Cisco-Router aufgebaut und konfiguriert wird.<!--more--><\/p>\n<p><strong>Die ben\u00f6tigten Ger\u00e4te<\/strong><\/p>\n<ol>\n<li>Ein Router mit Async-Interfaces.<br \/>\nDas kann entweder ein 2511, 2512 sein, oder ein 26xx 36xx etc. mit einem NM-16A oder NM-32A. Die letzteren Module gibt es ab und an bei Ebay. F\u00fcr ein NM-16A wird man meist noch um die 500 EUR bezahlen, zusammen mit einem gebrauchten 26er ist das aber immer noch g\u00fcnstiger als ein &#8220;reinrassiger&#8221; Terminalserver mit 16 Ports.<\/li>\n<li>Kabel zur Verbindung der Terminal-Server-Lines mit den Consolen der Ger\u00e4te. Das sind entweder &#8220;normale&#8221; Konsolen-Kabel (wenn der Terminal-Server RJ-45-Buchsen hat oder wenn man den AUX-Port eines Routers verwenden m\u00f6chte) oder aber Octal-Kabel (auch Peitschen genannt), die pro Kabel acht RJ-45-Stecker zum Anschlu\u00df an die Konsolen haben.<\/li>\n<\/ol>\n<p>In diesem Beispiel kommt ein 2620 mit einem NM-16A mit zwei Octal-Kabeln zum Einsatz weil ich diese Kombination selbst in meinem Lab habe.<\/p>\n<p><strong>Die Konfiguration<\/strong><br \/>\nIn einem &#8220;show version&#8221; kann man sehen, da\u00df der hier beschriebene Terminal-Server ein 26er Router mit 16 &#8220;terminal lines&#8221; ist. Diese Lines werden von dem NM-16A bereitgestellt:<\/p>\n<pre class=\"code\"><code>\nRouter#sh ver\nCisco Internetwork Operating System Software\nIOS (tm) C2600 Software (C2600-IK9O3S3-M), Version 12.3(12e), RELEASE SOFTWARE (fc2)\nTechnical Support: http:\/\/www.cisco.com\/techsupport\nCopyright (c) 1986-2005 by cisco Systems, Inc.\nCompiled Wed 24-Aug-05 07:51 by ssearch\nImage text-base: 0x80008098, data-base: 0x819FB1EC\n\nROM: System Bootstrap, Version 12.1(3r)T2, RELEASE SOFTWARE (fc1)\nROM: C2600 Software (C2600-IK9O3S3-M), Version 12.3(12e), RELEASE SOFTWARE (fc2)\n\nTS uptime is 1 minute\nSystem returned to ROM by power-on\nSystem image file is \"flash:c2600-ik9o3s3-mz.123-12e.bin\"\n\n...\n\ncisco 2620 (MPC860) processor (revision 0x600) with 61440K\/4096K bytes of memory.\nProcessor board ID JAD05470819 (2043342174)\nM860 processor: part number 0, mask 49\nBridging software.\nX.25 software, Version 3.0.0.\n1 FastEthernet\/IEEE 802.3 interface(s)\n16 terminal line(s)\n32K bytes of non-volatile configuration memory.\n16384K bytes of processor board System flash (Read\/Write)\n\nConfiguration register is 0x2102<\/code><\/pre>\n<p>Dieser Router hat ein Feature-Set mit Crypto-Funktionen, damit er aus dem Internet heraus auch per SSH erreichbar sein kann. F\u00fcr die einfache Terminal-Server-Funktion reicht aber ein IP-only-IOS.<\/p>\n<p>F\u00fcr das sp\u00e4tere Ansprechen der jeweiligen Lines mu\u00df man wissen welche Nummern diese haben. Das bekommt man mit dem Befehl &#8220;show line&#8221; heraus:<\/p>\n<pre class=\"code\"><code>\nRouter#sh line\nTty Typ     Tx\/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int\n*    0 CTY              -    -      -    -    -      0       0     0\/0       -\n33 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n34 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n35 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n36 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n37 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n38 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n39 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n40 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n41 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n42 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n43 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n44 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n45 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n46 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n47 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n48 TTY   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n65 AUX   9600\/9600  -    -      -    -    -      0       0     0\/0       -\n66 VTY              -    -      -    -    -      0       0     0\/0       -\n67 VTY              -    -      -    -    -      0       0     0\/0       -\n68 VTY              -    -      -    -    -      0       0     0\/0       -\n69 VTY              -    -      -    -    -      0       0     0\/0       -\nTty Typ     Tx\/Rx    A Modem  Roty AccO AccI   Uses   Noise  Overruns   Int\n\n70 VTY              -    -      -    -    -      0       0     0\/0       -\n\nLine(s) not in async mode -or- with no hardware support:\n1-32, 49-64\n\nRouter#\n<\/code><\/pre>\n<p>Auf diesem Router haben die zu konfigurierenden TTY-Lines die Nummern 33 bis 48. Das liegt daran, dass pro Slot 32 Lines &#8220;vorgehalten&#8221; werden und das NM-16A im Slot1 steckt. Wenn ein NM-32A im Slot 2 eines 3640 stecken w\u00fcrde w\u00e4ren es entsprechend die Lines 65 bis 96.<br \/>\nBevor es an die Terminalserver-Konfiguration geht wird erstmal die IP-Connectivity und ein paar Basics konfiguriert:<\/p>\n<pre class=\"code\"><code>\nRouter#conf t\nEnter configuration commands, one per line.  End with CNTL\/Z.\nRouter(config)#hostname TS\nTS(config)#ip domain-name lab.iwen.local\nTS(config)#enable secret cisco\nTS(config)#int fastEthernet 0\/0\nTS(config-if)#ip address 10.255.10.6 255.255.255.0\nTS(config-if)#ip route 0.0.0.0 0.0.0.0 10.255.10.1\nTS(config)#\nTS(config)#line vty 0 4\nTS(config-line)#pass cisco\nTS(config-line)#^Z\nTS#\n<\/code><\/pre>\n<p>Nat\u00fcrlich k\u00f6nnte\/sollte man hier auch den SSH-Zugriff konfigurieren, aber das ist unabh\u00e4ngig von der Konfiguration des Terminal-Servers.<\/p>\n<p>Jetzt werden die Lines konfiguriert. Mit &#8220;show line&#8221; konnte man sehen, da\u00df die Lines die Nummern 33 bis 48 haben. Daher tauchen sie auch in der Konfiguration auf:<\/p>\n<pre class=\"code\"><code>\nTS#sh run | b line\nline con 0\nline 33 48\nline aux 0\nline vty 0 4\n password cisco\n login\n!\n!\nend\n<\/code><\/pre>\n<p>Die Lines m\u00fcssen Telnet-Verbindungen annehmen k\u00f6nnen:<\/p>\n<pre class=\"code\"><code>\nTS#conf t\nEnter configuration commands, one per line.  End with CNTL\/Z.\nTS(config)#line 33 48\nTS(config-line)#transport input telnet\n<\/code><\/pre>\n<p>Obwohl wir auf den Lines ausgehende Verbindungen zu den Ger\u00e4ten initiieren m\u00f6chten muss trotzdem &#8220;transport input&#8221; konfiguriert werden und nicht &#8220;transport output&#8221;<\/p>\n<p>Weiterhin sollte auf den Lines das Starten einer Shell abgeschaltet werden:<\/p>\n<pre class=\"code\"><code>\nTS(config-line)#no exec\nTS(config-line)#\n<\/code><\/pre>\n<p>Die notwendige Grundkonfiguration ist damit dann auch gemacht und der Terminalserver kann \u00fcber &#8220;reverse-Telnet&#8221; angesprochen werden. Daf\u00fcr wird einfach eine Telnet-Verbindug auf den Terminalserver aufgebaut und die Port-Nummer Line+2000 verwendet. Da ich meinen Frame-Relay-Switch an den f\u00fcnften Anschlu\u00df des zweiten Oktal-Kabels angeschlossen habe ist das die Line 45 (erstes Kabel, erster Anschlu\u00df ist 33, zweiter Anschlu\u00df 34 &#8230;) und wird \u00fcber die Portnummer 2045 angesprochen:<\/p>\n<pre class=\"code\"><code>\nC:Documents and SettingsKarsten&gt;telnet 10.255.10.6 2045\n\nFR-Switch&gt;exit\n<\/code><\/pre>\n<p>Optional kann die Session auch nach einer Inaktivit\u00e4tszeit (in Minuten) getrennt werden:<\/p>\n<pre class=\"code\"><code>\nTS(config-line)#session-timeout 10 output\nTS(config-line)#\n<\/code><\/pre>\n<p>Die Lines sehen jetzt folgenderma\u00dfen aus:<\/p>\n<pre class=\"code\"><code>\nTS(config-line)#do sh run | b line\nline con 0\nline 33 48\n session-timeout 10  output\n no exec\n transport input telnet\n transport output none\nline aux 0\nline vty 0 4\n password cisco\n login\n!\n!\nend\n\nTS(config-line)#\n<\/code><\/pre>\n<p>Als weitere Zugriffsart sollen jetzt vom Terminalserver selbst die Lines angesprochen werden k\u00f6nnen. Dabei wird von der Konsole des Routers ein Telnet auf sich selbst mit dem richtigen Port durchgef\u00fchrt. Um das zu vereinfachen sollte man Host-Eintr\u00e4ge konfigurieren:<\/p>\n<pre class=\"code\"><code>\nTS(config-line)#ip host FR 2045 10.255.10.6\nTS(config)#ip host c3750 2033 10.255.10.6\nTS(config)#^Z\nTS#\n<\/code><\/pre>\n<p>Jetzt kann einfach \u00fcber das (case-insensitive) K\u00fcrzel &#8220;FR&#8221; die Verbindung zum Terminalserver aufgerufen werden:<\/p>\n<pre class=\"code\"><code>\nTS#fr\nTrying FR (10.255.10.6, 2045)... Open\n\nFR-Switch&gt;\n<\/code><\/pre>\n<p>Evtl. w\u00e4re es besser nicht die Interface-Adresse in den Host-Befehlen zu nehmen, sondern eine Loopback-Adresse:<\/p>\n<pre class=\"code\"><code>\nTS#conf t\nEnter configuration commands, one per line.  End with CNTL\/Z.\nTS(config)#no ip host FR 2045 10.255.10.6\nTS(config)#no ip host c3750 2033 10.255.10.6\nTS(config)#\nTS(config)#int loopback 0\nTS(config-if)#ip address 10.10.10.10 255.255.255.255\nTS(config-if)#ip host c3750 2033 10.10.10.10\nTS(config)#ip host FR 2045 10.10.10.10\nTS(config)#^Z\nTS#\n<\/code><\/pre>\n<p>An der Funktionalit\u00e4t hat sich nat\u00fcrlich nichts ge\u00e4ndert:<\/p>\n<pre class=\"code\"><code>\nTS#fr\nTrying FR (10.10.10.10, 2045)... Open\n\nFR-Switch&gt;\n<\/code><\/pre>\n<p>Wie kommen wir jetzt aber von dem FR-Switch wieder zum Terminalserver zur\u00fcck? Das geht \u00fcber die Tastenkombination Shift\/STRG\/6 +x (also Shift, STRG und 6 dr\u00fccken &#8211; loslassen &#8211; &#8220;x&#8221; hinterherdr\u00fccken).<\/p>\n<pre class=\"code\"><code>\nFR-Switch&gt; (shift+strg+6+x)\nTS#\n<\/code><\/pre>\n<p>Im Hintergrund merkt sich der Terminalserver aber dass eine Session l\u00e4uft und das n\u00e4chste &#8220;Return&#8221; bringt einen wieder auf das zuvor benutzte Ger\u00e4t:<\/p>\n<pre class=\"code\"><code>\nTS# (Return)\n[Resuming connection 1 to fr ... ]\n\nFR-Switch&gt;\n\nFR-Switch&gt; (shift+strg+6+x)\nTS#\n<\/code><\/pre>\n<p>Wenn man die letzte Konsolensitzung trennen m\u00f6chte kann dies mit &#8220;disconnect&#8221; getan werden:<\/p>\n<pre class=\"code\"><code>\nTS#disconnect\nClosing connection to fr [confirm]\nTS#\n<\/code><\/pre>\n<p>Manchmal blockiert der Terminalserver eine Konsole wenn man diese schon l\u00e4ngst verlassen hat. Dann wird die Verbindung mit &#8220;clear line line&#8221; gel\u00f6scht:<\/p>\n<pre class=\"code\"><code>\nTS#clear line 45\n[confirm]\n[OK]\nTS#\n<\/code><\/pre>\n<p>Und so sieht die komplette Konfiguration getzt aus:<\/p>\n<pre class=\"code\"><code>\nTS#sh run\nBuilding configuration...\nCurrent configuration : 833 bytes\n!\nversion 12.3\nservice timestamps debug datetime msec\nservice timestamps log datetime msec\nno service password-encryption\n!\nhostname TS\n!\nboot-start-marker\nboot-end-marker\n!\nenable secret 5 $1$X13g$PLW\/KuqiWF8Fp.4QZbCHh1\n!\nno aaa new-model\nip subnet-zero\nip cef\n!\n!\nip domain name lab.iwen.local\nip host c3750 2033 10.10.10.10\nip host FR 2045 10.10.10.10\n!\nip audit po max-events 100\n!\n!\ninterface Loopback0\n ip address 10.10.10.10 255.255.255.255\n!\ninterface FastEthernet0\/0\n ip address 10.255.10.6 255.255.255.0\n duplex auto\n speed auto\n!\nip http server\nno ip http secure-server\nip classless\nip route 0.0.0.0 0.0.0.0 10.255.10.1\n!\n!\nline con 0\nline 33 48\n session-timeout 10  output\n no exec\n transport input telnet\n transport output none\nline aux 0\nline vty 0 4\n password cisco\n login\n!\n!\nend\nTS#\n<\/code><\/pre>\n<p>Im &#8220;Part 2&#8221; kommen dann noch ein paar Erweiterungen in unserer Terminalserver-Konfiguration dazu.  Bis dahin viel Spa\u00df mit dieser Grundkonfiguration!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In fast allen Cisco-Kursen kommen Terminalserver vor um den Teilnehmern die M\u00f6glichkeit zu geben auf die Konsole der Ger\u00e4te zu kommen, ohne ein extra Konsolen-Kabel zu den Ger\u00e4ten zu haben. Diese Anleitung beschreibt wie so ein Terminalserver mit einem Cisco-Router aufgebaut und konfiguriert wird.<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[5],"tags":[307,358,603],"class_list":["post-63","post","type-post","status-publish","format-standard","hentry","category-cisco","tag-ios","tag-konfiguration","tag-terminal-server"],"_links":{"self":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/63","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/comments?post=63"}],"version-history":[{"count":0,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/posts\/63\/revisions"}],"wp:attachment":[{"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/media?parent=63"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/categories?post=63"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyber-fi.net\/index.php\/wp-json\/wp\/v2\/tags?post=63"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}