CISCO komandu nosūtīšana, izmantojot SSH / Telnet

Galvenā informācija

  • Skripta nosaukums: publip.sh (publi (point) sh ... publipSH.
  • Elastīgums: pilnībā pielāgojama.
  • Ierobežojumi: pieprasa, lai parole būtu vienāda visām ierīcēm, vai jums būs jāpievieno dažas koda rindas ...
  • Riska līmenis: augsts. Esiet ļoti uzmanīgi ar ierakstiem, nepareiza manipulācija var iesaldēt visu jūsu tīklu.
  • Nepieciešamās Linux zināšanas: Atveriet / rediģējiet failu (vi file_name) un saglabājiet modifikācijas (Esc, tad: wq?. Izpildiet skriptu, izmantojot komandas ./Scriptname komandu.

Kas ir publip.sh skripts?

Šis skripts ļauj tīkla administratoram nosūtīt Cisco komandas uz vairākām izvēlētajām tālvadības ierīcēm (maršrutētāju, ugunsmūri, slēdzi, bezvadu piekļuves punktus ...), izmantojot SSH vai Telnet (skripts automātiski apstrādā abus savienojuma veidus).

  • Šīs komandrindas sākotnēji tiks ievadītas secībā, viena komanda katrā rindā (kā partija vai konfigurācijas fails) mazā failā, ko sauc par commandes.txt (nav ierobežojuma lieluma)
  • Ievadiet visus IP (vai DNS alias) dažādām tīkla ierīcēm (ierīču skaitam nav ierobežojumu).
  • Visbeidzot, palaižot skriptu, jums tiks prasīts ievadīt paroli, kas mūsu gadījumā ir vienāda visām ierīcēm.

Skripts iet daudz tālāk!

Patiešām, tas ir pilnīgi autonoms un var piekārt savienojuma kļūdas, datu ievadi un reģistrēt izmaiņas žurnāla failā. Šis skripts arī identificē aprīkojumu, kuram tas var pieslēgties, izmantojot SSH vai Telnet, un tad saglabā arhīvu par procedūrām, kas rada kritiskas kļūdas (avāriju skripts, nepareiza komutenta interpretācija ar iekārtu). Dažādu veidu kļūdas ir:

  • 1 - Savienojuma taimauts
  • 2 - Pieteikšanās kļūda, nepareiza parole
  • 3 - DNS alias vai IP nav
  • 4 - Paredzamā skripta atteici (izveidojiet iekārtas žurnāla failu)
  • 5 - attālais savienojums ir atspējots
  • 6 - Labot DNS alias, bet neeksistē IP
  • 7 - Iekārtas, kas nav Cisco (HP Procurve)
  • 8 - Cisco iekārtas (X1000)
  • 9 - Cisco iekārtas (Alcatel)
  • 10 - Nosūtīta komanda nav atpazīta ar iekārtu
  • 11 - Kļūda nav norādīta iepriekš ($? = 1)

Vienlaikus varēsiet darboties ar visu savu aprīkojumu un savākt vērtīgu informāciju savā tīklā!

Papildu failu saturs

commandes.txt

Jums būs jāievada komandas ... Failam ir jābūt par jebkurām izmaiņām maršrutētāja konfigurācijā, sākot ar "conf t" un "end". Modifikācijas jāveic hierarhiski un neaizmirstiet saglabāt izmaiņas! Neliels piemērs:

 # commandes.txt conf t router ospf 100 tīkls 50.50.100.0 0.0.0.255 laukums 0 izejas interfeiss fa0 / 0 ip ospf hello-intervāls 5 ip ospf beigu intervāls 20 izejas apgabals 0 autentifikācijas ziņojuma apkopojums beigas 

rakstīt mem

liste.txt

Ievadiet visu iesaistīto iekārtu IP vai DNS alias:

 # liste.txt 10.25.85.46 routeur-marseille switch-assemblee-generale 80.54.136.105 

Script neņem vērā tukšas vietas.

Scenārijs

Skripts tiks apzīmēts ar mazu # [1], kas tiks apspriests skripta apakšā

 #! / bin / bash # script.sh echo "veuillez donner le mot de passe" stty -echo # [1] lasīt paroli stty echo export ssh = "./ ssh.sh" # [2] eksporta telnet = "./ "telnet.sh" eksportētur = "./ rapport_erreurs.log" eksportēt temp = "./ tmp_routeur.log" eksportēt cmdcisco = "./ commandes.txt" eksporta liste = "./ liste.txt" eksporta paroli eksportēt maršrutētāju eksporta komandu rm -f $ erreur # [3] rm -f $ ssh rm -f $ telnet cat $ liste | lasot maršruta maršrutu; darīt, ja ["$ routeur"! = ""], tad, ja [! -f $ ssh] # [4], tad atbalss "sagaida 2> & 1 <> $ ssh echo" nārstot ssh [e-pasta aizsargāts] $ routeur '>> $ ssh echo' sagaidīt {'>> $ ssh echo' "Parole:" {send "$ password r"} '>> $ ssh echo' timeout {exit} '>> $ ssh echo'} '>> $ ssh echo "sagaidīt" # "' >> $ ssh cat $ cmdcisco | lasot commande do echo "sūtīt" $ commande r "" atbalss "sagaida" # "'pabeigts >> $ ssh echo' sūtīt" izeju r "'>> $ ssh echo" sagaidīt "slēgts"' >> $ ssh echo 'exit' >> $ ssh echo 'EOF' >> $ ssh chmod + x $ ssh # [5] fi laiks -p $ ssh> $ temp 2> & 1 # [6] COD_RET = $? auth = "cat $ temp | grep -c" parole: "" # [7], ja ["$ auth" -gt "1"] pēc tam atbalss "Problème d'authentification sur $ routeur!" echo "$ routeur: nepareiza pieteikšanās / parole" >> $ erreur turpināt fi temps = "grep" reālā "$ temp | sed 's / real / § /' cut -d'§ '-f2 | cut -d '' -f1 | cut -d '.' -f1 'ja [$ temps -ge 10 -a! "'grep' aizvērts '$ temp'"] # [8], tad atbalss "L'equipement $ routeur ne réponds pas!"; echo "$ routeur: savienojums beidzās" >> $ erreur turpina fi, ja ["$ COD_RET"! = "0"] # [9], tad #Erreur de connexion a l'équipement en SSH, ja [! -f $ telnet], tad atbalss "sagaidīt 2> & 1 <> $ telnet echo" spawn telnet $ routeur ">> $ telnet echo" sūtīt "admin r" '>> $ telnet echo "sagaidīt" parole: "" >> $ telnet echo "sūtīt" $ parole r "'>> $ telnet echo" sagaidīt "#"' >> $ telnet cat $ cmdcisco | lasot commande do echo "sūtīt" $ commande r "" atbalss "sagaida" # "" pabeigts >> $ telnet echo "sūtīt" izeju r "'>> $ telnet echo" sagaida "slēgts" ">> $ telnet echo 'exit' >> $ telnet echo 'EOF' >> $ telnet chmod + x $ telnet fi $ telnet> $ temp 2> & 1 fi COD_RET = $? auth = "cat $ temp | grep -c" parole: "" # [10], ja ["$ auth" -gt "1"] pēc tam atbalss "Problème d'authentification sur $ routeur!" echo "$ routeur: nepareizi pieteikšanās / parole" >> $ erreur elif ["'grep' Host name lookup neveiksme '$ temp'"], tad atbalss "l'equipement $ routeur n'existe pas!" echo "$ routeur: neeksistē" >> $ erreur elif ["'grep' Nezināms saimnieks '$ temp'"], tad atbalss "la saisie de l'ip ou du nom $ routeur est wronge!" echo "$ routeur: nepareiza pareizrakstība" >> $ erreur elif ["'grep' send: spawn id exp4 nav atvērts '$ temp'"], tad echo "/! ERREUR dans la procédure. Consultez le fichier log de $ routeur! !! " echo "$ routeur: gaidīt skripta izpildi neizdevās!" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' autentifikācija neizdevās '$ temp'"], tad atbalss "Mot de passe erroné pour $ routeur!" echo "$ routeur: nepareizi pieteikšanās / parole" >> $ erreur elif ["'grep' Connection atteicās '$ temp'"], tad atbalss "Connexion à distance sur $ routeur désactivé!" echo "$ routeur: vty savienojums ir atspējots" >> $ erreur elif ["'grep' Nav maršruta, lai uzņemtu '$ temp'"], tad atbalss "Alias ​​DNS $ routeur olemassa IP IPLide!" echo "$ routeur: Nav maršruta uz uzņēmēju" >> $ erreur elif ["'grep' ProCurve '$ temp'"] tad atbalss "routeur $ routeur HP et non Cisco!" echo "$ routeur: nav Cisco maršrutētājs (HP ProCurve)" >> $ tadur elif ["'grep' Alcatel '$ temp'"] tad atbalss "routeur $ routeur Alcatel et non Cisco!" echo "$ routeur: nav Cisco maršrutētājs (Alcatel)" >> $ tadur elif ["'grep' Laipni lūdzam X1000 '$ temp'"], tad atbalss "routeur $ routeur X1000 et non Cisco!" echo "$ routeur: nav Cisco iekārtas (X1000)" >> $ erreur elif ["'grep'% Nezināms komandas '$ temp'" -o "'grep'% Nederīgs '$ temp'"], tad echo "/! \ t Komandas Cisco nav reconnues par l'equipement. Consultez le fichier log de $ routeur !!! " echo "$ routeur: atrastas neatpazītas komandas" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' Savienots ar '$ temp'" -o "'grep' Savienojums aizvērts ārvalstu uzņēmējā. ' $ temp '"] tad atbalss" $ routeur Telnet OK! " elif ["'grep' Connexion enregistree sur le terminal '$ temp'" -o "'grep' Savienojums ar '$ temp'"], tad echo "$ routeur SSH OK!" elif ["$ COD_RET"! = "0"], tad atbalss "Problème de connexion a l'equipement $ routeur!" echo "$ routeur: savienojuma problēma" >> $ programur fi fi pabeigts rm -f $ temp # [11] iziet 

Komentāri

  • 1 : Slēpt paroli
  • 2 : Visi faili tiek saglabāti mainīgajos lielumos (relatīvais ceļš), kas ļauj jums palaist skriptu no jebkuras vietas.
  • 3 : noņem esošos failus, kas ģenerēti, ja skripts jau ir izpildīts.
  • 4 : Izveidojiet Expect skriptu
  • 5 : iestatiet atļaujas sagaida skriptu
  • 6. Izpildiet Expect skriptu, apkopojot izejas kļūdu ar standarta izeju, aprēķinot izpildes laiku, lai apstrādātu taimautu.
  • 7 : pārbaudiet autentifikācijas problēmas, skaitot "Password" notikumu skaitu temp failā.
  • 8 : pārbaudiet izpildes laiku un pārbaudiet, vai tas nav lielāks par 10 (paredzamā taimauta vērtība)
  • 9 : SSH savienojuma kļūdai atkārtojiet procedūru, izmantojot Telnet.
  • 10 : pārbaudiet visus skripta radītos kļūdas gadījumus. (Cf II).
  • 11 : dzēsiet temp failu.

Iepriekšējais Raksts Nākamais Raksts

Top Padomi