Odosielanie príkazov CISCO odoslaných cez SSH / Telnet

Všeobecné informácie

  • Názov skriptu: publip.sh (pub (point) sh ... publipSH.
  • Flexibilita: plne prispôsobiteľné.
  • Obmedzenia: vyžaduje, aby heslo bolo rovnaké pre všetky zariadenia, alebo budete musieť pridať niekoľko riadkov kódu ...
  • Úroveň rizika: Vysoká. Buďte veľmi opatrní so záznamami, nesprávna manipulácia môže zamrznúť celú sieť.
  • Potrebné znalosti Linuxu: Otvorte / upravte súbor (vi file_name) a uložte zmeny (Esc potom: wq?. Spustite skript pomocou príkazu ./Scriptname z cieľového priečinka.

Čo je skript publip.sh?

Tento skript umožňuje správcovi siete posielať príkazy Cisco na niekoľko vybraných vzdialených zariadení (router, firewall, switch, bezdrôtový prístupový bod ...) cez SSH alebo Telnet (skript automaticky spracúva oba typy pripojenia).

  • Tieto príkazové riadky budú spočiatku zadané v poradí, jeden príkaz na riadok (ako dávkový alebo konfiguračný súbor), v malom súbore s názvom commandes.txt (neexistuje žiadny limit veľkosti)
  • Zadajte všetky IP adresy (alebo alias DNS) pre rôzne zariadenia vo vašej sieti (počet zariadení nie je obmedzený).
  • Nakoniec, pri spustení skriptu budete vyzvaní na zadanie hesla, ktoré v našom prípade musí byť rovnaké pre všetky zariadenia.

Skript ide oveľa ďalej!

V skutočnosti je plne autonómny a môže zablokovať chyby pripojenia, zadávanie údajov a zmeny záznamov v protokolovom súbore. Tento skript tiež identifikuje zariadenie, pre ktoré je schopný sa pripojiť cez SSH alebo Telnet a potom uchováva archív postupov, ktoré generujú kritické chyby (havarijný skript, nesprávna interpretácia zariadenia). Rôzne typy chýb sú:

  • 1 - Časový limit pripojenia
  • 2 - Chyba pri prihlasovaní, nesprávne heslo
  • 3 - DNS Alias ​​alebo IP neexistuje
  • 4 - Zlyhanie skriptu Očakávajte (vytvorte protokolový súbor zariadenia)
  • 5 - Diaľkové pripojenie je vypnuté
  • 6 - Opravte alias DNS, ale neexistujúca adresa IP
  • 7 - Zariadenie, ktoré nie je Cisco (HP Procurve)
  • 8 - Zariadenie iné ako Cisco (X1000)
  • 9 - Zariadenie iné ako Cisco (Alcatel)
  • 10 -Sent príkaz nie je rozpoznaný zariadením
  • 11 - Chyba uvedená vyššie ($? = 1)

Budete môcť pracovať na všetkých svojich zariadeniach naraz a zbierať cenné informácie vo vašej sieti!

Obsah pomocných súborov

commandes.txt

Budete musieť zadať príkazy ... Súbor musí pre všetky zmeny konfigurácie routeru začínať "conf t" a "end". Úpravy musia byť vykonané hierarchicky a nezabudnite uložiť zmeny! Malý príklad:

 # commandes.txt conf t router ospf 100 sieť 50.50.100.0 0.0.0.255 oblasť 0 výstupné rozhranie fa0 / 0 ip ospf hello-interval 5 ip ospf dead-interval 20 výstupná oblasť 0 autentifikačná správa-digest end 

napíšte mem

liste.txt

Zadajte alias IP alebo DNS všetkých príslušných zariadení:

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

Sript nezohľadňuje prázdne miesta.

Scenár

Skript bude označený malým # [1], ktorý bude popísaný v spodnej časti skriptu

 #! / bin / bash # script.sh echo "veuillez donner le mot de passe" stty -echo # [1] čítať heslo stty echo export ssh = "./ ssh.sh" # [2] export telnet = "./ telnet.sh "export erreur =" ./ rapport_erreurs.log "export temp =" ./ tmp_routeur.log "export cmdcisco =" ./ commandes.txt "export liste =" ./ liste.txt "export heslo export príkaz export rm -f $ erreur # [3] rm -f $ ssh rm -f $ telnet cat $ liste | počas čítania routeur; robiť ak ["$ routeur"! = ""] potom ak [! -f $ ssh] # [4] potom echo 'očakávame 2> & 1 <> $ ssh echo' spawn ssh [chránené heslom] $ routeur '>> $ ssh echo' očakávame {'>> $ ssh echo' "Heslo:" {send "$ password r"} '>> $ ssh echo' timeout {exit} '>> $ ssh echo'} '>> $ ssh echo' očakávať "#" '>> $ ssh cat $ cmdcisco | zatiaľ čo read commande do echo "poslať" $ commande r "" echo 'očakávať "#"' hotovo >> $ ssh echo 'send "exit r' '>> $ ssh echo' očakávať 'zatvorené"' >> $ ssh echo 'exit' >> $ ssh echo 'EOF' >> $ ssh chmod + x $ ssh # [5] fi time -p $ ssh> $ temp 2> & 1 # [6] COD_RET = $? auth = "cat $ temp | grep -c" Heslo: "" # [7] ak ["$ auth" -gt "1"] potom echo "Problème d'authentification sur $ routeur!" echo "$ routeur: nesprávne prihlásenie / heslo" >> $ erreur pokračovať fi temps = "grep" real '$ temp | sed 's / real / § /' | cut -d'§ '-f2 | cut -d '' -f1 | cut -d '.' -f1 'ak [$ temps -ge 10 -a! "'grep' zatvorené '$ temp'"] # [8] potom echo "L'equipement $ routeur ne réponds pas!"; echo "$ routeur: vypršalo sa spojenie" >> $ erreur pokračovať fi, ak ["$ COD_RET"! = "0"] # [9] potom #Erreur de connectionxion l'équipement en SSH ak [! -f $ telnet] potom echo 'očakávať 2> & 1 <> $ telnet echo' spawn telnet $ routeur '>> $ telnet echo' poslať "admin" >> $ telnet echo 'očakávať "Heslo:"' >> $ telnet echo 'poslať "$ password r"' >> $ telnet echo 'očakávať "#"' >> $ telnet cat $ cmdcisco | zatiaľ čo read commande do echo "poslať" $ commande r "" echo 'očakávať "#"' hotovo >> $ telnet echo 'send "exit r"' >> $ telnet echo 'očakávať' zatvorené "'>> $ telnet echo 'exit' >> $ telnet echo 'EOF' >> $ telnet chmod + x $ telnet fi $ telnet> $ temp 2> & 1 fi COD_RET = $? auth = "cat $ temp | grep -c" Heslo: "" # [10] ak ["$ auth" -gt "1"] potom echo "Problème d'authentification sur $ routeur!" echo "$ routeur: nesprávne prihlásenie / heslo" >> $ erreur elif ["'grep' Zlyhanie vyhľadávania názvu hostiteľa '$ temp'"] potom echo "l'equipement $ routeur n'existe pas!" echo "$ routeur: neexistuje" >> $ erreur elif ["'grep' Neznámy hostiteľ '$ temp'"] potom echo "la saisie de l'ip ou du nom $ routeur est Nesprávne!" echo "$ routeur: nesprávny pravopis" >> $ erreur elif ["'grep' poslať: spawn id exp4 neotvoriť '$ temp'"] potom echo "/! \ t !! " echo "$ routeur: Očakávajte vykonanie skriptu zlyhalo!" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' Overenie zlyhalo '$ temp'"] a potom echo "Mot de passe erroné pour $ routeur!" echo "$ routeur: nesprávne prihlásenie / heslo" >> $ erreur elif ["'grep' Spojenie odmietlo '$ temp' '] a potom echo" Connexion à distance sur $ routeur désactivé! " echo "$ routeur: vty connection disabled" >> $ erreur elif ["'grep' Žiadna cesta k hostiteľovi '$ temp'"] potom echo "Alias ​​DNS $ routeur existant mais IP invalide!" echo "$ routeur: Žiadna cesta k hostiteľovi" >> $ erreur elif ["'grep' ProCurve '$ temp'"] potom echo "routeur $ routeur HP et non Cisco!" echo "$ routeur: bez smerovača Cisco (HP ProCurve)" >> $ erreur elif ["'grep' Alcatel '$ temp'"] potom echo "routeur $ routeur Alcatel et non Cisco!" echo "$ routeur: bez smerovača Cisco (Alcatel)" >> $ erreur elif ["'grep' Vitajte na X1000 '$ temp'"] potom echo "routeur $ routeur X1000 et non Cisco!" echo "$ routeur: nie zariadenie Cisco (X1000)" >> $ erreur elif ["'grep'% Neznámy príkaz '$ temp'" -o "'grep'% Neplatný '$ temp'"] potom echo "/! Príkazy Cisco non reconnues par l'equipement. Consultez le fichier log de $ routeur !!! " echo "$ routeur: nenájdené nájdené príkazy" >> $ erreur cp $ temp $ routeur.error.log elif ["'grep' Pripojené k '$ temp'" -o "'grep' Spojenie uzavreté cudzím hostiteľom. ' $ temp '"] potom echo" $ routeur Telnet OK! " elif ["'grep' Connexion enregistree sur le terminal '$ temp'" -o "'grep' Pripojenie k '$ temp' '] potom echo" $ routeur SSH OK! " elif ["$ COD_RET"! = "0"] potom echo "Problème de connectionxion l'equipement $ routeur!" echo "$ routeur: problém s pripojením" >> $ erreur fi fi hot rm -f $ temp # [11] exit 

Komentáre

  • 1 : Skrytie zadávania hesla
  • 2 : Všetky súbory sú uložené v premenných (relatívna cesta), čo vám umožňuje spúšťať skript odkiaľkoľvek.
  • 3 : Odstráni existujúce súbory vygenerované, ak už bol skript spustený.
  • 4 : Vytvorenie očakávaného skriptu
  • 5 : Nastavte povolenia pre skript Očakávajte
  • 6 : Spustenie skriptu Očakávajte, agregácia výstupnej chyby so štandardným výstupom, výpočet času vykonania na spracovanie časového limitu.
  • 7 : Skontrolujte, či problémy s overovaním nie sú zapísané počítaním počtu výskytov "Password" v dočasnom súbore.
  • 8 : Skontrolujte čas vykonávania a overte, či nie je vyššia ako 10 (očakávaná hodnota časového limitu)
  • 9 : Pri chybe pripojenia SSH postup zopakujte cez Telnet.
  • 10 : Skontrolujte všetky prípady chýb generované skriptom. (Cf II).
  • 11 : Odstráňte dočasný súbor.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy