Thursday, April 7, 2011
Sauvegarde équipements réseaux via pexpect
import pexpect
IPa = raw_input('Entrer l adresse IP du composant:')
IP = 'ssh admin@'+IPa
child = pexpect.spawn (IP)
child.expect ('Password: ')
pwd = raw_input('Entrer le password du composant:')
print pwd
child.sendline (pwd)
child.expect ('#')
child.sendline ('copy running-config tftp:')
child.expect ('\? ')
child.sendline ('10.10.10.20')
child.expect ('\? ')
host = IPa+'.cfg'
child.sendline (host)
child.expect ('#')
child.sendline ('exit')
print child.before
Idem pour un Altéon:
import pexpect
child = pexpect.spawn ('ssh admin@10.10.10.10')
child.expect ('password: ')
child.sendline ('admin')
child.expect (['Main#','[y]'])
i = child.expect (['Main#','[y]'])
if i == 0:
print 'Connexion Ok'
elif i == 1:
child.sendline ('y')
else:
p.expect(pexpect.EOF)
print 'Timeout connexion'
child.expect ('Main#')
child.sendline ('/cfg/ptcfg')
child.expect ('server: ')
child.sendline ('10.10.10.20')
child.expect ('server: ')
child.sendline ('hostname.cfg')
child.expect ('server: ')
child.sendline ('')
print child.before
Idem pour un ISG1000:
import pexpect
child = pexpect.spawn ('ssh admin@10.10.10.10')
child.expect ('password: ')
child.sendline ('admin')
child.expect ('>')
child.sendline ('exec save config to tftp 10.10.10.20 hostname.cfg')
child.expect ('>')
print child.before
N'étant pas familié du scripting, je suis preneur de toute amélioration à apporter.
Friday, March 18, 2011
Debug firewall ISG
Faire un snoop sur un firewall juniper et récupérer les traces au format pcap est plutôt sympa. Cependant quand seulement le premier paquet (d'une session, càd le SYN) est récupéré dans le buffer du debug car les autres sont traités en ASICs, c'est moins facile pour investiguer. Par chance quelques commandes permettent d'éviter le passage en ASICs.
Il est conseillé d'activer des filtres si vous ne voulez pas être pollué ou pire (crash cpu)! Je ne détail les différents filtres, ils sont disponible dans le menu:snoop filter XXXXX
Lancement du snoop en mode détail:snoop detail
snoop
La commande magique qui permet de faire transiter les paquets dans la CPU a été appliquée au préalable sur une policy:set policy id 3
set no-hw-sess
surtout ne pas oublier de désactiver cette commande une fois les traces prises.
Pour visualiser les flux il existe deux possibilités:
En direct sur la console par la commande: get db stream
Ou après transformation au format pcap
et une lecture via un client wireshark sur votre poste. Pour se faire il faut récupérer les traces via TFTP:get db stream > tftp XXX.XXX.XXX.XXX traces.pcap