Monday, July 21, 2014
TCN received from stackport1 on 3750
Thursday, August 9, 2012
VPN connexion and Internet Access
However, it's also possible to have access (in the same time) to Internet.
To do this on ASA, you have to configure some NAT rule.
All traffic that will go to Internet have to use the Internet facing interface like source IP address.
The configuration below is an example that can be applied:
All traffic with VPN IP Pool source address and with Internet destination will match this NAT rule.
Source address will be modified with the outside interface.
Thursday, February 9, 2012
Archive configuration on a Cisco Switch
There is another method to backup this configuration. Used the archive command. By this way, it's possible to backup the configuration on a remote FTP server. Below, you will find an example:
ip ftp username user1
ip ftp password password1
!
archive
path ftp://10.10.10.10/folder/My-switch.cfg
write-memory
time-period 1440
The write memory command trigger an automatic backup on the ftp server.
1440 means one backup generate every day.
If you make a mistake and you decide to come back on an old version, it's possible to restore the configuration. The better way is using this command:
configure replace path ftp://10.10.10.10/folder/My-switch.cfg--9-09-00-23-0
To see the state of the archive you can use the 'show archive' command:
SWITCH#show archive
The maximum archive configurations allowed is 14.
The next archive file will be named ftp://10.10.10.10/folder/My-switch.cfg-%3Ctimestamp%3E-2
Archive # Name
1 ftp://10.10.10.10/folder/My-switch.cfgFeb--9-09-00-23-0
2 ftp:// 10.10.10.10/folder/My-switch.cfgFeb--9-09-00-37-1 <- Most Recent
3
4
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.
Wednesday, April 6, 2011
NAT sur Catalyst 6500
Exemple de configuration:
Voici la configuration à appliquer pour reproduire le schéma ci-dessus:
ip nat pool testNAT 201.200.200.200 201.200.200.200 netmask 255.255.255.0
ip nat inside source list 150 pool testNAT overload
access-list 150 permit ip 192.168.20.0 0.0.0.255 200.200.200.0 0.0.0.255
!
interface Vlan100
ip address 192.168.20.1 255.255.255.0
ip nat inside
!
interface Vlan200
ip address 201.200.200.1 255.255.255.0
ip nat outside
La commande suivante permet de valider l'état du NAT:
show ip nat translations
Afin de pousser un peu plus le diagnostique, il est nécessaire
d'activer le mode debug avec la commande:
debug ip nat
Monday, April 4, 2011
Sécurisation SNMP sur Catalyst Cisco
Ci-dessous la configuration à appliquer pour du SNMPv3 sur un catalyst Cisco (configuration en lecture avec du filtrage sur l'IP source):
access-list <Numero_ACL> permit
access-list <Numero_ACL> deny any
snmp-server group <Nom_groupe> v3 priv snmp-server user <Nom_user> <Nom_groupe> v3 auth md5 <password> priv des <password> access <Numero_ACL>
Exemple de configuration:
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 deny any
snmp-server group ReadOnly v3 priv snmp-server user admin ReadOnly v3 auth md5 password priv des password access 1
Thursday, March 31, 2011
Sécuriser l'authentification sur les switchs
Pas toujours simple de comprendre le fonctionnement et la configuration de l'authentification sur les switchs, pour cela voici un petit récapitulatif
Cisco:
Chez Cisco il y a trois types de connexion bien distinct:
- en telnet ou ssh: line vty
- par le port console: line con, petit conseil utiliser la commande logging synchronous
- et le dernier que je n'ai que rarement vu fonctionner sert aux connexions type modem à distance: line aux
Je ne vais traiter que le premier qui me semble le plus intéressant
La première protection est de créer un couple username password soit directement dans la configuration line vty:Switch(config)#line vty 0 4
Switch(config-line)#login
Switch(config-line)#password vty-password
soit en utilisant une liste locale dans la conf du switch:Switch(config)#username enrico password enrico-password
Switch(config)#username rodrigo password rodrigo-password
Switch(config)#line vty 0 4
Switch(config-line)#login local
Rmq: bien faire attention qu'il existe des users dans la conf avant d'utiliser la commande login local
, car lors de la prochaine connexion en telnet il est impossible de se connecter (pas de login local alors que le switch en cherche un pour vous authentifier).
authentification pour le mode priviligier (enable):enable secret enable-secret
enable password enable-password
Si l'authentification par password et secret sont tous les 2 configurés, par défaut le secret sera utilisé.
Le secret est crypté dans la conf contrairement au password
Il est donc fortement conseillé de ne pas mettre le même password et secret afin de ne pas mettre en clair dans la con l'enable secret.
restriction de connexion par adresse réseaux:
pour cela il faut créer une ACL:access-list 1 permit 192.168.1.12
access-list 1 permit 192.168.1.15
access-list 1 permit 192.168.10.15
puis entrer la commande:line vty 0 4
access-class 1 in
Switch(config)#hostname SwitchA
SwitchA(config)#ip domain-name mydomain.com
SwitchA(config)#crypto key generate rsa
The name for the keys will be: SwitchA
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minutes.
How many bits in the modulus 512: 1024
Generating RSA keys ...
OK
SwitchA(config)#ip ssh time-out 60
SwitchA(config)#ip ssh authentication-retries 2
SwitchA(config)#line vty 0 4
SwitchA(config-line)#transport input ssh
Vista et DHCPv6
Vista implante le protocole DHCPv6 or après avoir implanté un serveur DHCPv6, je n'arrivais pas à obtenir une adresse via le DHCP.
Après plusieurs essais, je me suis rendu compte qu'il fallait modifier un champ des paquets Router advertisement : Avant modification du RA distribué par le routeur
0000 33 33 00 00 00 01 00 19 06 2f e9 fc 86 dd 6e 00 33...... ./....n.
0010 00 00 00 40 3a ff fe 80 00 00 00 00 00 00 02 19 ...@:... ........
0020 06 ff fe 2f e9 fc ff 02 00 00 00 00 00 00 00 00 .../.... ........
0030 00 00 00 00 00 01 86 00 2e db 40 "20"
07 08 00 00 ........ ..@ ....
0040 00 00 00 00 0b b8 01 01 00 19 06 2f e9 fc 05 01 ........ .../....
0050 00 00 00 00 05 dc 03 04 40 e0 00 27 8d 00 00 09 ........ @..'....
0060 3a 80 00 00 00 00 20 00 12 34 45 67 89 ac 00 00 :..... . .4Eg....
0070 00 00 00 00 00 00 ......
Quand vista reçoit cet RA, il ne produit pas de DHCPv6 solicitation
Après la commande ipv6 nd managed-config-flag
sur l'interface réseau d'un routeur cisco. Nouvel RA :
0000 33 33 00 00 00 01 00 19 06 2f e9 fc 86 dd 6e 00 33...... ./....n.
0010 00 00 00 40 3a ff fe 80 00 00 00 00 00 00 02 19 ...@:... ........
0020 06 ff fe 2f e9 fc ff 02 00 00 00 00 00 00 00 00 .../.... ........
0030 00 00 00 00 00 01 86 00 2e 5b 40 "a0"
07 08 00 00 ........ .[@.....
0040 00 00 00 00 0b b8 01 01 00 19 06 2f e9 fc 05 01 ........ .../....
0050 00 00 00 00 05 dc 03 04 40 e0 00 27 8d 00 00 09 ........ @..'....
0060 3a 80 00 00 00 00 20 00 12 34 45 67 89 ac 00 00 :..... . .4Eg....
0070 00 00 00 00 00 00
Maintenant Vista envoie un DHCPv6 solicitation et reçoit une adresse du serveur DHCP.
Rendre anonyme les traces PCAP avec pktanon
Il arrive régulièrement de déposer des traces d'un trafic réseau sur un forum ou un blog. Pour garder l'anonymat des traces, on est obligé de camoufler les IPs ou autre champ des paquets. L'outil pktanon permet l'automatisation de cette démarche.
Allez hop, je l'installe :
- Décompression de pktanon :
wget http://www.tm.uka.de/software/pktanon/download/pktanon-1.2.3-dev.tar.gz
tar xfz pktanon-1.2.3-dev.tar.gz
- Installation des dépendances :
su
apt-get install libxerces-c2-dev libboost-dev
- Installation :
./configure
make
su
make install
Au préalable j'ai récupéré une trace pcap avec wireshark. ensuite je modifie le fichier ''settings_identity.xml situé dans le répertoire profile. Dans l'exemple ci-dessous, mon fichier source de se nomme trace.pcap et je le modifie en trace_new.pcap. Je valorise donc de la manière suivante le fichiersettings_identity.xml '':name="Input">trace.pcap
name="Output">trace_new.pcap
Dans ma trace, je souhaite modifier l'adresse IP source (celle de mon poste par exemple):anon="AnonBytewiseHashSha1" name="IpSourceip"
, par défaut le champ anon est à AnonIdentity
Ensuite, il suffit de lancer l'outil pktanon:pktanon settings_identity.xml
Paquet d'origine:
tcpdump -neXv -c 1 -r trace.pcap
reading from file trace.pcap, link-type EN10MB (Ethernet)
21:15:30.665242 00:23:54:1c:4c:a6 > 00:07:cb:21:1e:27, ethertype IPv4 (0x0800),
length 71: (tos 0x0, ttl 64, id 7617, offset 0, flags DF, proto TCP (6), length 57). 53135 > 65.54.172.110.1863: P, cksum 0xae82
192.168.0.10
(incorrect (-> 0xbe20), 1181321880:1181321885(5) ack 1801540939 win 594
0x0000: 4500 0039 1dc1 4000 4006 6ea7 c0a8 000a E..9..@.@.n.....
0x0010: 4136 ac6e cf8f 0747 4669 8a98 6b61 554b A6.n...GFi..kaUK
0x0020: 8018 0252 ae82 0000 0101 080a 0010 45b7 ...R..........E.
0x0030: 002e b810 504e 470d 0a ....PNG..
Paquet formaté: tcpdump -neXv -c 1 -r trace_new.pcap
reading from file trace_new.pcap, link-type EN10MB
(Ethernet) 21:15:30.665242 da:d5:44:a7:12:59 > 00:07:cb:21:1e:27,
ethertype IPv4 (0x0800), length 71: (tos 0x0, ttl 64, id 7617, offset 0,
flags DF, proto TCP (6), length 57)246.142.218.253
.53135 >
65.54.172.110.1863: P, cksum 0x6745 (incorrect (-> 0xad46),
1181321880:1181321885(5) ack 1801540939 win 594
0x0000: 4500 0039 1dc1 4000 4006 5dcd f68e dafd E..9..@.@.].....
0x0010: 4136 ac6e cf8f 0747 4669 8a98 6b61 554b A6.n...GFi..kaUK
0x0020: 8018 0252 6745 0000 0101 080a 0010 45b7 ...RgE........E.
0x0030: 002e b810 504e 470d 0a ....PNG..
Friday, March 18, 2011
Accès de secours au module FWSM
Pour accèder à la configuration d'une carte FWSM sur un châssis Cisco 6500 on utilise généralement une connexion SSH. Or si la carte n'est plus accessible en SSH (se couper l'herbe sous le pied est si vite arrivé:)) et la carte n'ayant pas de port console, la seule solution est de se connecter au châssis puis de simuler l'accès console. Cet accès est un pseudo-accès en telnet comme on peut le voir dans l'exemple ci-dessous:CAT#session switch 1 slot 3 processor 1
The default escape character is Ctrl-^, then x.
You can also type 'exit' at the remote prompt to end the session
Trying 127.0.0.31 ... Open
Cependant, l'accès en telnet depuis un châssis est souvent refusé par l'administrateur afin d'éviter les rebonds. La solution est donc de créer des ACLs qui autorisent la connexion au module FWSM, pour se faire il suffit de suivre la configuration ci-dessous (remarque: cet exemple s'applique à un cluster VSS):access-list 1 permit 127.0.0.0 0.0.0.255
access-list 1 permit 127.0.1.0 0.0.0.255
! Accès au module dans le switch 2line vty 0 15
access-class 1 out
transport input telnet ssh
transport output telnet
session switch 1 slot 3 processor 1
CAT#session switch 1 slot 3 processor 1
The default escape character is Ctrl-^, then x.
You can also type 'exit' at the remote prompt to end the session
Trying 127.0.0.31 ... Open
User Access Verification
Password:
CAT#session switch 2 slot 3 processor 1
The default escape character is Ctrl-^, then x.
You can also type 'exit' at the remote prompt to end the session
Trying 127.0.1.31 ... Open
User Access Verification
Password:
Evite les rebonds:
CAT#telnet 192.168.10.61
Trying 192.168.10.61 ...
% Connections to that host not permitted from this terminal