Sarrera automatizatzea SecureCRT-n scriptak erabiliz
Sareko ingeniariek sarritan koaderno batetik kontsolara zati batzuk kopiatu/itsatsi egin behar dituzte. Normalean hainbat parametro kopiatu behar dituzu: Erabiltzaile izena/Pasahitza eta beste zerbait. Scripten erabilerak prozesu hau azkartzeko aukera ematen du. BAINA scripta idazteko eta gidoia exekutatzeko zereginek eskuzko konfigurazioa baino denbora gutxiago behar dute guztira, bestela scriptek ez dute ezertarako balio.
Zertarako da artikulu hau? Artikulu hau Fast Start seriekoa da eta sareko ingeniariei denbora aurreztea du helburu ekipoak (zeregin bakarra) hainbat gailutan konfiguratzean. SecureCRT softwarea eta script-a exekutatzeko funtzio integratua erabiltzen ditu. Edukia
SecureCRT programak script-a exekutatzeko mekanismo bat dauka. Zertarako dira terminaleko script-ak?
I/O automatizatua eta gutxieneko I/O baliozkotzea.
Bizkortu ohiko zereginen exekuzioa - ekipoen ezarpenen arteko etenaldiak murriztuz. (Hardware berean kopiatzeko/iraganeko ekintzak egiteko denborak eragindako etenen de facto murriztea, hardwareari 3 komando zati edo gehiago aplikatu behar zaizkiola).
Dokumentu honek zereginak biltzen ditu:
Script sinpleak sortzea.
SecureCRT-n scriptak exekutatzen.
Script sinple eta aurreratuak erabiltzeko adibideak. (Landu bizitza errealetik.)
Script sinpleak sortzea.
Script errazenek bi komando baino ez dituzte erabiltzen, Send eta WaitForString. Funtzionalitate hau nahikoa da egindako zereginen %90erako (edo gehiago).
Scriptek Python, JS, VBS (Visual Basic), Perl, etab.
# $language = "VBScript"
# $interface = "1.0"
Sub Main
crt.Screen.Synchronous = True
crt.Screen.Send vbcr
crt.Screen.WaitForString "name"
crt.Screen.Send "cisco" & vbcr
crt.Screen.WaitForString "assword"
crt.Screen.Send "cisco" & vbcr
crt.Screen.Synchronous = False
End Sub
Normalean "*.vbs" luzapena duen fitxategia
Sortu script bat script sarrera bat erabiliz.
Script bat idazteko prozesua automatizatzeko aukera ematen du. Gidoia idazten hasten zara. SecureCRT-k komandoak eta ondorengo hardware-erantzuna erregistratzen ditu eta amaitutako script-a erakusten dizu.
A. Hasi gidoia idazten:
SecureCRT Menu => Script => Hasi Grabatzen Script
b. Egin ekintzak kontsolarekin (egin konfigurazio-urratsak CLIan).
V. Amaitu gidoia idazten:
SecureCRT Menu => Script => Gelditu Script-a grabatzea...
Gorde script fitxategia.
Exekutaturiko komandoen eta gordetako scripten adibidea:
SecureCRT-n scriptak exekutatzen.
Gidoia sortu/editatu ondoren, galdera logiko bat sortzen da: Nola aplikatu gidoia?
Hainbat modu daude:
Eskuz exekutatzen Script menutik
Konexioaren ondoren abiarazte automatikoa (saioa hasteko script-a)
Saioa automatikoki scriptik erabili gabe
SecureCRT-ko botoi batekin eskuz abiarazten (botoi bat sortu eta gehitu behar da SecureCRT-n)
Eskuz exekutatzen Script menutik
SecureCRT Menu => Script => Exekutatu...
- Azken 10 scriptak gogoratzen dira eta abiarazteko eskuragarri daude:
SecureCRT menu => Script => 1 "Script fitxategiaren izena"
SecureCRT menu => Script => 2 "Script fitxategiaren izena"
SecureCRT menu => Script => 3 "Script fitxategiaren izena"
SecureCRT menu => Script => 4 "Script fitxategiaren izena"
SecureCRT menu => Script => 5 "Script fitxategiaren izena"
Konexioaren ondoren abiarazte automatikoa (saioa hasteko script-a)
Posible da pasahitzaren erabiltzaile-izena automatikoki sartzea scriptik idatzi gabe, SecureCRT-en integratutako funtzionaltasuna soilik erabiliz. Konexio-ezarpenetan "Konexioa" => Saioa hasteko ekintzak => Saio-hasiera automatizatu - hainbat sorta bete behar dituzu - hau da, bikoteak esan nahi du: "Esperotako testua" + "Caraktereak bidalitako testu honetara" bikote asko egon daitezke. (Adibidea: 1. bikotea erabiltzaile-izenaren zain, bigarrena pasahitzaren zain, hirugarrena modu pribilegiatuaren gonbitaren zain, laugarren bikotea modu pribilegiatuaren pasahitza).
Saio-hasiera automatikoaren adibidea Cisco ASA-n:
SecureCRT-ko botoi batekin eskuz abiarazten (botoi bat sortu eta gehitu behar da SecureCRT-n)
SecureCRT-n, botoi bati script bat esleitu diezaiokezu. Botoia horretarako bereziki sortutako panel bati gehitzen zaio.
A. Interfazeari panel bat gehitzea: SecureCRT Menu => Ikusi => Botoien barra
b. Gehitu botoi bat panelean eta gehitu script bat. - Egin klik eskuineko botoiarekin botoi-barran eta hautatu "Botoi berria..." laster-menuan.
V. "Mapa botoia" elkarrizketa-koadroan, "Ekintza" eremuan, hautatu "Exekutatu scripta" ekintza (funtzioa).
Zehaztu epigrafe bat botoiarentzat. Botoiaren ikonoaren kolorea. Amaitu ezarpenak Ados sakatuz.
Oharra:
Botoiak dituen panela funtzionaltasun oso erabilgarria da.
1. Posible da saio zehatz batean saioa hasten denean, lehenespenez fitxa honetara zein panel ireki behar den zehaztea.
2. Ekipamenduekin ekintza estandaretarako aurrez zehaztutako ekintzak ezar daitezke: erakutsi bertsioa erakutsi, martxan-konfigurazioa erakutsi, konfigurazioa gorde.
Ez dago scriptik botoi horiei erantsita. Ekintza-lerroa soilik:
Ezarpena - saio batera aldatzean, botoiekin beharrezko panela irekiko da saioaren ezarpenetan:
Zentzuzkoa da bezeroak saioa hasteko script indibidualak konfiguratzea eta panelera joatea saltzaileak maiz komandoekin.
Joan Cisco botoia sakatzen duzunean, panela Cisco botoien barrara aldatzen da.
Script sinple eta aurreratuak erabiltzeko adibideak. (Landu bizitza errealetik.)
Script sinpleak nahikoak dira ia kasu guztietarako. Baina behin gidoia pixka bat zaildu behar nuen, lana bizkortzeko. Konplikazio honek datu gehigarriak eskatu dizkio erabiltzaileari elkarrizketa-koadro batean.
Erabiltzaileari datuak eskatzea elkarrizketa-koadro bat erabiliz
Datuak eskatzeko gidoian 2 nuen. Hau Ostalari-izena eta IP helbidearen laugarren zortzikotea da. Ekintza hau egiteko - Googlen bilatu nuen nola egin eta SecureCRT-ren (vandyke) webgune ofizialean aurkitu nuen. - funtzionalitateari gonbita deitzen zaio.
Scriptaren zati honek Ostalari izena eta azken zortzikoteko zenbakiak eskatu zituen. 15 ekipamendu zeudenez. Eta datuak taula batean aurkeztu ziren, ondoren balioak taulatik kopiatu eta elkarrizketa-koadroetan itsatsi nituen. Gainera, gidoiak modu independentean funtzionatu zuen.
FTP sareko ekipoetara kopiatzea.
Script honek nire komando-leihoa (shell) abiarazi zuen eta datuak kopiatu zituen FTP bidez. Amaieran, itxi saioa. Ezinezkoa da koadernoa erabiltzea horretarako, kopiatzeak oso denbora luzea hartzen duelako eta FTP buffer-eko datuak ez direlako denbora horretan gordeko:
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("ftp 192.168.1.1r")
crt.Screen.WaitForString("Name")
crt.Screen.Send("adminr")
crt.Screen.WaitForString("Password:")
crt.Screen.Send("Passwordr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("binaryr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("put S5720LI-V200R011SPH016.patr")
crt.Screen.WaitForString("ftp")
crt.Screen.Send("quitr")
crt.Screen.Synchronous = False
main()
Erabiltzaile-izena/pasahitza script baten bidez sartzea
Bezero batean sareko ekipamenduetarako sarbidea zuzenean itxi zen. Lehenik eta behin Default Gatewayra konektatuz ekipamenduan sartzea posible zen, eta handik aurrera hari konektatutako ekipora. IOS/hardware softwarean integratutako ssh bezeroa erabili zen konektatzeko. Horren arabera, erabiltzaile-izena eta pasahitza eskatu ziren kontsolan. Beheko scriptarekin, erabiltzaile-izena eta pasahitza automatikoki sartu ziren:
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("snmpadminr")
crt.Screen.WaitForString("assword:")
crt.Screen.Send("Passwordr")
crt.Screen.Synchronous = False
main()
Oharra: 2 script zeuden. Bata administratzaile konturako, bigarrena eSIGHT konturako.
Scripta exekutatzen ari den bitartean datuak zuzenean eransteko gaitasuna duena.
Sareko ekipo guztietan ibilbide estatiko bat gehitzea zen zeregina. Baina ekipo bakoitzean Interneterako atea desberdina zen (eta atebide lehenetsitik desberdina zen). Hurrengo script-ak bideratze-taula bistaratu zuen, konfigurazio moduan sartu zen, ez zuen komandoa amaieraraino idatzi (Interneterako atearen IP helbidea) - zati hau gehitu nuen. Sartu sakatu ondoren, scriptak komandoa exekutatzen jarraitu zuen.
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("Zdes-mogla-bit-vasha-reklamar")
crt.Screen.WaitForString("#")
crt.Screen.Send("show run | inc ip router")
crt.Screen.WaitForString("#")
crt.Screen.Send("conf tr")
crt.Screen.WaitForString("(config)#")
crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ")
crt.Screen.WaitForString("(config)#")
crt.Screen.Send("endr")
crt.Screen.WaitForString("#")
crt.Screen.Send("copy run star")
crt.Screen.WaitForString("[startup-config]?")
crt.Screen.Send("r")
crt.Screen.WaitForString("#")
crt.Screen.Send("exitr")
crt.Screen.Synchronous = False
main()
Script honetan, lerroan: crt.Screen.Send("ip route 10.10.10.8 255.255.255.252 ") ez da atebidearen IP helbidea gehitzen eta ez dago karaktere-itzulerarik. Scripta hurrengo lerroaren zain dago "(config) #" karaktereekin Karaktere hauek ip helbidea sartu eta sartu ondoren agertu ziren.
ondorioa:
Script bat idaztean eta exekutatzen denean, araua bete behar da: Script bat idazteko eta gidoia exekutatzeko denbora ez da inoiz teorikoki lan bera eskuz egiteko (koaderno batetik kopiatu/itsatsi, idazteko eta arazketa) emandako denbora baino gehiago izan behar. ansible, python script idazteko eta arazketarako jolas-liburua). Hau da, script-a erabiltzeak denbora aurreztu behar du, eta ez denbora galdu prozesuen automatizazioan (hau da, scripta bakarra denean eta errepikapen gehiago ez denean). Baina scripta bakarra bada eta scriptarekin automatizazioa eta scripta idazteko/arazteak beste modu batean egiteak baino denbora gutxiago behar badu (ansible, komando-leihoa), orduan scripta da irtenbiderik onena.
Script bat araztea. Scripta apurka-apurka hazten da, arazketa lehen, bigarren, hirugarren gailuetan gertatzen da, eta laugarrenerako scripta guztiz operatiboa izango da ziurrenik.
Script bat (erabiltzaile-izena+pasahitza sartuz) saguarekin exekutatzen bizkorragoa da normalean Erabiltzaile-izena eta pasahitza koaderno batetik kopiatzea baino. Baina ez da segurua segurtasunaren ikuspuntutik.
Beste adibide (benetako) script bat erabiltzean: Ez duzu sareko ekipoetarako sarbide zuzenik. Baina sareko ekipo guztiak konfiguratu beharra dago (jarri monitorizazio sistemara, konfiguratu Erabiltzaile-izena/pasahitza/snmpv3erabiltzaile/pasahitza gehigarri bat). Core etengailura zoazenean sarbidea dago, bertatik SSH beste ekipoetara irekitzen duzu. Zergatik ezin duzu Ansible erabili. - Sareko ekipoetan baimendutako aldibereko saio kopuruaren mugarekin topo egiten dugulako (linea vty 0 4, user-interfaze vty 0 4) (beste galdera bat da Ansible-n ekipo desberdinak nola abiarazi SSH lehen salto berdinarekin).
Scriptak denbora murrizten du eragiketa luzeetan - adibidez, fitxategiak FTP bidez kopiatzen. Kopiatu ondoren, script-a berehala hasiko da lanean. Pertsona batek kopiaketaren amaiera ikusi beharko du, ondoren kopiatzearen amaieraz konturatu eta komando egokiak sartu. Gidoiak objektiboki azkarrago egiten du.
Script-ak aplikagarriak dira datu masiboa emateko tresnak erabiltzea ezinezkoa den lekuetan: Kontsola. Edo ekipoaren datu batzuk bakarrak direnean: ostalari izena, kudeaketa ip helbidea. Edo programa bat idaztean eta arazketan zailagoa da ekipotik jasotako datuak gehitzea baino zailagoa da scripta exekutatzen ari den bitartean. - Ibilbide bat preskribatzeko script batekin adibide bat, ekipo bakoitzak Interneteko hornitzailearen IP helbidea duenean. (Nire lankideek halako gidoiak idatzi zituzten - DMVPNk hitz egiten zuenean 3etik gorakoak ziren. DMVPNren ezarpenak aldatzea beharrezkoa zen).
Kasu praktikoa: Hasierako ezarpenak konfiguratzea etengailu berri batean kontsolaren atakak erabiliz:
A. Kontsolaren kablea gailuan konektatu.
B. Exekutatu gidoia
B. Gidoia gauzatzeko itxaron
D. Kontsolaren kablea hurrengo gailura konektatu.
E. Etengailua ez bada azkena, joan B urratsera.
Gidoiaren lanaren ondorioz:
hasierako pasahitza ekipoan ezartzen da.
Erabiltzaile izena sartu da
gailuaren IP helbide bakarra sartzen da.
PS operazioa errepikatu behar izan zen. Ssh lehenetsia ez zelako konfiguratu/desgaitu. (Bai, hau da nire akatsa.)
Script luze baten adibidea, bi kontsultarekin: Ostalariaren izena eta IP helbidea. Kontsolaren bidez ekipoak aurrez ezartzeko sortu zen (9600 baud). Eta ekipoen sarerako konexioa prestatzeko ere.
Horrelako script-ak normalean ez dira behar, baina ekipamendu kopurua 15 pcs da. Konfigurazio azkarragoa onartzen da. Azkarragoa izan zen ekipamendua SecureCRT Command leihoa erabiliz konfiguratzea.
Ssh-rako kontu bat konfiguratzen.
Beste adibide bat. Konfigurazioa kontsolaren bidez ere egiten da.
# $language = "Python"
# $interface = "1.0"
# Connect to a telnet server and automate the initial login sequence.
# Note that synchronous mode is enabled to prevent server output from
# potentially being missed.
def main():
crt.Screen.Synchronous = True
crt.Screen.Send("r")
crt.Screen.WaitForString("name")
crt.Screen.Send("adminr")
crt.Screen.WaitForString("Password:")
crt.Screen.Send("Passwordr")
crt.Screen.WaitForString(">")
crt.Screen.Send("sysr")
crt.Screen.Send("stelnet server enabler")
crt.Screen.Send("aaar")
crt.Screen.Send("local-user admin service-type terminal ftp http sshr")
crt.Screen.Send("quitr")
crt.Screen.Send("user-interface vty 0 4r")
crt.Screen.Send("authentication-mode aaar")
crt.Screen.Send("quitr")
crt.Screen.Send("quitr")
crt.Screen.Synchronous = False
main()
SecureCRT-i buruz:Ordaindutako softwarea: 99 $-tik aurrera (prezio txikiena SecureCRTrentzat bakarrik da urtebetez) Webgune ofiziala
Software-lizentzia behin erosten da, laguntzarekin (eguneratzeko), gero softwarea lizentzia honekin denbora mugagabean erabiltzen da.
Mac OS X eta Windows sistema eragileetan funtzionatzen du.
Script-en euskarria dago (artikulu hau)
Ez dago Komando-leihoa
Serial/Telnet/SSH1/SSH2/Shell Sistema Eragilea