User Tools

Site Tools


start:cursos:cisco

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
start:cursos:cisco [2026/03/15 13:20] – Añadir VTP 192.168.10.1start:cursos:cisco [2026/03/31 14:43] (current) – [Niveles de acceso privilegiado] 192.168.10.1
Line 417: Line 417:
  
  
 +
 +==== Redundancia (HSRP) ====
 +
 +Se pueden configurar varios routers para tener una IP virtual que haga de failover en caso de problemas. Esto se hace por HSRP (Host Standby Router Protocol), y se configura en la interfaz correspondiente de la siguiente forma. En el router 1, que se comporta como activo:
 +
 +```
 +interface GigabitEthernet0/1
 + ip address 10.10.10.2 255.255.255.0
 + standby 1 ip 10.10.10.1
 + standby 1 priority 110
 + standby 1 preempt
 +```
 +
 +y en el otro que se queda en espera (standby), por ejemplo:
 +
 +```
 +interface GigabitEthernet0/1
 + ip address 10.10.10.2 255.255.255.0
 + standby 1 ip 10.10.10.1
 +```
 +
 +Esto hace que, además de que cada router tenga su ip correspondiente (`10.10.10.2` para el activo y `10.10.10.3` para el pasivo), haya una ip virtual compartida por ambos (`10.10.10.1`) para tener redundancia en caso de fallo. Tras casi 1 minuto de espera, saldrán los siguientes mensajes:
 +
 +```
 +%HSRP-6-STATECHANGE: GigabitEthernet0/1 Grp 1 state Speak -> Standby
 +
 +%HSRP-6-STATECHANGE: GigabitEthernet0/1 Grp 1 state Standby -> Active
 +```
 +
 +indicando que un nodo está activo y otro en espera.
 +
 +El comando `standby` va seguido de un número de grupo (usamos el grupo `1` para simplificar), y luego tenemos dos opciones básicas:
 +
 +  * Se puede modificar la prioridad con `priority`, que por defecto es 100, para forzar ser activo o no. El número mayor se convierte en activo. Como se ha visto en el ejemplo, se hace en la interfaz.
 +  * Para acelerar el relevo en caso de caída del interfaz activo, se puede especificar `preempt`, que sirve para acelerar el proceso y hacerlo más coordinado después de restablecerse el servicio.
  
  
Line 448: Line 483:
   - Averiguar la dirección IP del servidor DHCP para cada red a la que esté conectada el router.   - Averiguar la dirección IP del servidor DHCP para cada red a la que esté conectada el router.
   - En la interfaz o subinterfaz que tiene la ip de gateway y que sirve a la red, poner una línea `ip helper-address <ipservidor>`, poniendo la ip del servidor dhcp.   - En la interfaz o subinterfaz que tiene la ip de gateway y que sirve a la red, poner una línea `ip helper-address <ipservidor>`, poniendo la ip del servidor dhcp.
 +
 +También podemos ver las ips asignadas a los clientes:
 +
 +```
 +Router#show ip dhcp binding 
 +IP address       Client-ID/              Lease expiration        Type
 +                 Hardware address
 +10.10.10.11      0000.0CA0.A359           --                     Automatic
 +10.10.10.12      0002.164E.D116           --                     Automatic
 +
 +```
  
 <note>**IMPORTANTE:** Por defecto, una ACL impide que funcione el servicio DHCP, que funciona por udp y los puertos 67 y 68. Para evitar esto, hay que poner dos líneas: <note>**IMPORTANTE:** Por defecto, una ACL impide que funcione el servicio DHCP, que funciona por udp y los puertos 67 y 68. Para evitar esto, hay que poner dos líneas:
Line 678: Line 724:
 De esta forma, le llega todo el tráfico. Si no tiene etiqueta, se asigna a la vlan 20. De esta forma, le llega todo el tráfico. Si no tiene etiqueta, se asigna a la vlan 20.
  
 +==== DHCP Snooping ====
  
 +Para prevenir que se pueda usar un servidor DHCP que no sea el correcto (a veces se conecta un servidor DHCP en una red y puede provocar confusión y errores diversos), se usa el SHCP snooping a nivel de switch.
 +
 +
 +```
 +Switch(config)# ip dhcp snooping
 +Switch(config)# ip dhcp snooping vlan 10
 +Switch(config)# interface fa0/24
 +Switch(config-if)# ip dhcp snooping trust
 +```
 +
 +Los pasos son:
 +  1) Configurar el dhcp snooping globalmente
 +  2) Configurar las vlan que van a protegerse
 +  3) Entrar en la interfaz donde está el servidor DHCP correcto
 +  4) Marcarlo como de confianza
 +
 +Con esta configuración, cualquier DHCPOFFER que no provenga de la interfaz marcada como de confianza, será rechazado por el switch. Se puede comprobar el estado de DHCP snooping:
 +
 +```
 +Switch# show ip dhcp snooping
 +DHCP snooping is configured on following VLANs: 10
 +```
 +
 +
 +==== Port security ====
 +
 +En un switch, podemos forzar la seguridad a nivel de puerto para que sólo los dispositivos identificados por su MAC puedan conectarse, y así impedir que otros dispositivos puedan conectarse en lugares no deseados, quitando un cable a un dispositivo legítimo. Esto se hace con `port-security`.
 +
 +Por defecto, port-security está desactivado, lo que permite que cualquier dispositivo se pueda conectar en cualquier puerto. Para activarlo en el puerto f0/1:
 +
 +```
 +Switch(config)#int f0/1
 +Switch(config-if)#switchport mode access
 +Switch(config-if)#switchport port-security
 +```
 +
 +Con esto, ya tenemos activado port-security. Podemos ver su estado:
 +
 +```
 +Switch(config-if)#do sh port-security int f0/1
 +Port Security              : Enabled
 +Port Status                : Secure-up
 +Violation Mode             : Shutdown
 +Aging Time                 : 0 mins
 +Aging Type                 : Absolute
 +SecureStatic Address Aging : Disabled
 +Maximum MAC Addresses      : 1
 +Total MAC Addresses        : 1
 +Configured MAC Addresses   : 1
 +Sticky MAC Addresses       : 0
 +Last Source Address:Vlan   : 0000.1111.1111:1
 +Security Violation Count   : 0
 +```
 +
 +Como vemos, ha aprendido la MAC del dispositivo, pero mientras establecemos port-security, lo mejor es desactivar el puerto, ya que mientras tanto puede haber tráfico no deseado para el objetivo.
 +
 +Todos los comandos a nivel de interfaz empiezan por `switchport port-security`. Vamos a ver otras posibilidades:
 +  * Limitar el número máximo de dispositivos. Con `maximum <X>`, que por defecto es 1. En el caso de un puerto que comparta un teléfono y un PC se podría poner en 2.
 +  * Establecer direcciones mac específicas. Se pueden añadir con `mac-address XXXX.YYYY.ZZZZ`. *IMPORTANTE*: si por algún motivo ya ha aprendido alguna de las MAC, saldrá un error de que la mac está duplicada, y es posible que packet tracer dé problemas para quitar ese duplicado.
 +  * Acción a realizar. A través de `violation`, se establece la acción a realizar en caso de violación de la política de seguridad. Por defecto es `shutdown`, lo que quiere decir que cierra el puerto. También está `protect`, donde no deja salir tráfico, pero sí entrar. Y con `restrict`, es como `protect`, pero registra los mensajes en el log.
 +
 +<note>En caso de que un puerto se cierre por una violación, después de restablecer físicamente los dispositivos legítimos, para que se restablezca el servicio hay que realizar primero un `shutdown` y luego `no shutdown`.</note>
 ==== VTP ==== ==== VTP ====
  
Line 716: Line 825:
  
 === VLAN en L3 === === VLAN en L3 ===
- 
  
 Aunque la primera parte es igual que en L2 (es decir, tener todas las VLAN definidas en la base de datos del switch), hay diferencias en la gestión de VLAN. Si queremos asignar un ip al switch para que gestione la VLAN 10, se la asignamos al SVI: Aunque la primera parte es igual que en L2 (es decir, tener todas las VLAN definidas en la base de datos del switch), hay diferencias en la gestión de VLAN. Si queremos asignar un ip al switch para que gestione la VLAN 10, se la asignamos al SVI:
Line 726: Line 834:
 ... ...
 ``` ```
 +
 +=== Modo trunk ===
 +
 +En un switch L3, el modo trunk, aunque el concepto es el mismo, hay que realizarlo de manera diferente. Si lo hacemos como un switch normal, tendremos este error:
 +
 +```
 +SW3(config-if)#switchport mode trunk
 +Command rejected: An interface whose trunk encapsulation is "Auto" can not be configured to "trunk" mode.
 +```
 +
 +Para ello, tenemos que forzar el encapsulado al estándar `dot1Q` primero:
 +
 +```
 +SW3(config-if)#switchport trunk encapsulation dot1q 
 +SW3(config-if)#switchport mode trunk
 +SW3(config-if)#
 +```
 +
  
 Aquí podemos definir un enrutado `ospf` o cualquier otra cosa relacionada con el enrutamiento que se hace en el interfaz de un router. Aquí podemos definir un enrutado `ospf` o cualquier otra cosa relacionada con el enrutamiento que se hace en el interfaz de un router.
Line 1045: Line 1171:
  
  
 +===== IPv6 =====
  
 +IPv6 tiene varios tipos de direcciones.
  
 +|Tipo de Dirección |Prefijo / Rango |Enrutable|Alcance |Uso principal|
 +|Global Unicast |2000::/3 - 3FFF::/3 |Sí|Internet global |Comunicación pública en Internet|
 +|Unique Local |FC00::/7 (FD00::/8 común) |Sólo red privada|Organización privada |Similar a IPv4  (192.168.x.x) con /64|
 +|Link-Local |FE80::/10 - FEB0::/10 |No |Un segmento red|Comunicación local, vecinos, routing con /64|
 +|Multicast |FF00::/8 |NO (depende)|Variable (global, local, etc.) |Envío a múltiples destinos|
 +|Anycast |(asignado del rango unicast) | |Variable |Múltiples nodos comparten misma IP, responde el más cercano|
 +
 +  * Al habilitar IPv6 en una interfaz de un router Cisco, además de la que pueda tener de otro tipo (normalmente Global Unicast), se genera automáticamente una dirección Link-Local con base EUI-64 (Extended Unique Identifier-64). Las direcciones EUI-64 generan automáticamente una dirección IPv6 única basándose en los 48 bits de la mac de la interfaz, produciendo un resultado parecido al de usar DHCP. También se puede configurar manualmente una dirección Link-Local diferente. Es obligatorio tener una IPv6 de tipo Link-Local en una interfaz con IPv6, mientras que el resto son opcionales.
 +  * Se pueden tener múltiples direcciones IPv6 en un mismo interfaz (IPv4 sólo admite 2).
 +  * Para generar la dirección Link-Local con EUI-64 en una interfaz con una dirección MAC `00:1A:2B:3C:4D:5E`, el proceso sería:
 +    * Se divide en dos mitades, `00:1A:28` y `3C:4D:5E`.
 +    * Se inserta `FF:FE` en medio: `00:1A:2B:FF:FE:3C:4D:5E`
 +    * Se invierte el séptimo bit del primer byte (de universal a local): `00000000`=> `00000010` = `02` en hexadecimal.
 +    * Tras insertar el prefijo, la dirección final es `FE80::021A:2BFF:FE3C:4D5E`.
 +  * Se puede usar la misma ip Link-Local en varias interfaces del mismo dispositivo.
 +
 +
 +===== Seguridad =====
 +
 +Por defecto, los switches y routers vienen sin seguridad. Esto quiere decir que se puede conectar a través de la consola sin una contraseña. 
 +
 +==== Acceso por consola ====
 +
 +
 +Tenemos varias "líneas" (`line`), y para la consola usamos `console`. Como sólo hay una línea física, el número es 0.
 +
 +
 +
 +```
 +R1(config)#line console 0
 +R1(config-line)#password secretpass
 +R1(config-line)#login
 +```
 +
 +Es importante tener en cuenta que hay que poner `login` después, porque si no, no surtirá efecto. Podemos probarlo usando `exit`:
 +
 +```
 +User Access Verification
 +
 +Password: 
 +
 +R1>
 +
 +```
 +
 +==== Acceso via telnet ====
 +El acceso via telnet no está activado por defecto. Además, hay que configurar una dirección ip para el dispositivo. Para usar telnet usamos la línea `vty`. Hay 16 líneas, de 0 a 15. Por defecto, configuramos todas, de forma similar a como hicimos con la consola.
 +
 +En un switch capa 2, que no tiene ip, tenemos que poner una ip de gestión en la vlan 1. Después, configuramos la contraseña en las líneas.
 +
 +```
 +
 +Switch>enable
 +Switch#conf t
 +Enter configuration commands, one per line.  End with CNTL/Z.
 +Switch(config)#int vlan 1
 +Switch(config-if)#ip address 192.168.0.10 255.255.255.0
 +Switch(config-if)#no shutdown 
 +
 +
 +Switch(config)#line vty 0 15
 +Switch(config-line)#password 1234
 +Switch(config-line)#login
 +
 +```
 +
 +Luego, desde un pc de la misma red, podemos conectarnos por telnet usando esa contraseña:
 +
 +
 +```
 +C:\>telnet 192.168.0.10
 +Trying 192.168.0.10 ...Open
 +
 +
 +User Access Verification
 +
 +Password: 
 +Switch>
 +
 +```
 +
 +==== Logout automático ====
 +
 +Por defecto, hay un tiempo de 10 minutos de inactividad (timeout) tras el cual la sesión expirará. Esto se puede cambiar con `exec-timeout`, y se puede hacer de forma independiente para el tipo de línea:
 +
 +```
 +R1(config)#line con 0
 +R1(config-line)#exec-timeout 15
 +R1(config)#line vty 0 15
 +R1(config-line)#exec-timeout 5 30
 +
 +```
 +
 +Hemos puesto que para la consola, el timeout sea de 15 minutos, y para telnet, de 5 minutos y 30 segundos.
 +
 +Si se pone `0` como parámetro, será tiempo indefinido. Esto tiene el problema de que si no se finaliza correctamente una sesión, nadie podrá usar esa línea.
 +
 +
 +==== Listas de acceso ====
 +
 +Se pueden crear listas de acceso para limitar quién puede acceder remotamente.
 +
 +```
 +R1(config)#access-list 1 permit host 10.0.0.10
 +R1(config)#line vty 0 15
 +R1(config-line)#login
 +R1(config-line)#password 1234
 +R1(config-line)#access-class 1 in
 +
 +```
 +
 +Esto hace que sólo la ip `10.0.0.10` pueda acceder remotamente por telnet.
 +
 +```
 +C:\> telnet 10.0.0.1
 +Trying 10.0.0.1 …
 +% Connection refused by remote host
 +```
 +
 +==== Cifrado de contraseñas ====
 +
 +Hasta el momento, hemos limitado el acceso al dispositivo, pero una vez puesta esa contraseña, se accede desde el modo de usuario al modo de administrador sin contraseña. Esto se puede modificar estableciendo una contraseña desde el modo de configuración del administrador:
 +
 +```
 +R1(config)#enable password secretpass
 +```
 +
 +De esta forma, es necesario introducir esta contraseña para pasar de usuario a administrador. Sin embargo, esta contraseña es visible al mostrar la configuración:
 +
 +```
 +R1#show run
 +Building configuration...
 +!
 +enable password secretpass
 +!
 +
 +```
 +
 +La primer forma de evitar esto es usando `enable secret` en lugar de `enable password` al crear las contraseñas. En caso de haber puesto una, si se usa después `enable secret`, se usará ésta en lugar de la anterior a la hora de acceder como administrador. Al mostrar la configuración, se muestran ambas:
 +
 +```
 +!
 +!
 +enable secret 5 $1$mERr$/Q/mbs3O9oHsKR7rNG4e81
 +enable password secretpass
 +!
 +```
 +
 +Sin embargo, otras contraseñas se siguen viendo en claro. Para evitar esto del todo, se utiliza `service password-encryption` en modo de configuración.
 +
 +```
 +R1(config)#service password-encryption
 +```
 +
 +De esta forma, ya no se muestra ninguna contraseña en claro.
 +
 +==== Usuarios ====
 +
 +Lo visto hasta ahora era seguridad a nivel de línea, donde todos los administradores usan la misma contraseña, pero también se puede usar seguridad basada en usuarios.
 +
 +```
 +R1(config)#username admin1 secret pass1
 +R1(config)#username admin2 secret pass2
 +R1(config)#line console 0
 +R1(config-line)#login local
 +R1(config)#line vty 0 15
 +R1(config-line)#login local
 +```
 +
 +De eesta forma, usando `login local` en las líneas, ahora forzamos a que se usen usuarios
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin1
 +Password: <pass1>
 +R1>
 +```
 +
 +==== Niveles de acceso privilegiado ====
 +
 +Hay 16 niveles de acceso privilegiado, del 0 al 15. Por defecto, se accede al nivel 1, que es el nivel de usuario. Se pueden asignar niveles de acceso a los usuarios, y también se pueden definir qué comandos se pueden usar según el nivel de acceso.
 +
 +Por defecto, hay 3 niveles: 0 (que apenas tiene 5 comandos: `logout`, `enable`, `disable`,
 +`help`, y `exit`); el 1, que es el de usuario, y el 15, que es el de administrador.
 +
 +
 +```
 +R1(config)#username admin1 secret secret1
 +R1(config)#username admin2 privilege 15 secret secret2
 +R1(config)#username admin3 privilege 5 secret secret3
 +R1(config)#line console 0
 +R1(config-line)#login local
 +R1(config)#line vty 0 15
 +R1(config-line)#login local
 +```
 +
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin1
 +Password: <secret1>
 +R1>
 +R1>show privilege
 +Current privilege level is 1
 +
 +R1>show ip interface brief
 +Interface IP-Address OK? Method Status Protocol
 +GigabitEthernet0/0 10.0.0.1 YES manual up up
 +GigabitEthernet0/1 10.0.1.1 YES manual up up
 +GigabitEthernet0/2 unassigned YES unset administratively down down
 +Vlan1 unassigned YES unset administratively down down
 +R1>show run
 +^
 +% Invalid input detected at '^' marker.
 +
 +```
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin3
 +Password: <secret3>
 +R1>show ip interface brief
 +Interface IP-Address OK? Method Status Protocol
 +GigabitEthernet0/0 10.0.0.1 YES manual up up
 +GigabitEthernet0/1 10.0.1.1 YES manual up up
 +GigabitEthernet0/2 unassigned YES unset administratively down down
 +Vlan1 unassigned YES unset administratively down down
 +R1>show run
 +^
 +% Invalid input detected at '^' marker.
 +
 +```
 +
 +
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin2
 +Password: <secret2>
 +R1#
 +R1#show privilege
 +Current privilege level is 15
 +
 +R1#sh run
 +Building configuration...
 +Current configuration : 1380 bytes
 +version 15.1
 +!
 +R1#configure terminal
 +R1(config)#
 +```
 +
 +Si añadimos un privilegio al nivel 5:
 +
 +```
 +R1(config)#privilege exec level 5 show running-config
 +```
 +
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin3
 +Password: <secret3>
 +R1#sh run
 +Building configuration...
 +Current configuration : 1380 bytes
 +version 15.1
 +!
 +R1#configure terminal
 +^
 +% Invalid input detected at '^' marker.
 +```
 +
 +También se pueden establecer contraseñas para los niveles. Si no se especifica nivel, es el 15:
 +
 +```
 +R1(config)#enable secret secret1
 +R1(config)#enable secret level 5 secret2
 +```
 +
 +```
 +C:\>telnet 10.0.0.1
 +Trying 10.0.0.1 ...Open
 +User Access Verification
 +Username: admin1
 +Password: <secret1>
 +R1>show run
 +^
 +% Invalid input detected at '^' marker.
 +R1>enable 5
 +Password: <secret2>
 +R1#show run
 +Building configuration...
 +Current configuration : 1380 bytes
 +!
 +version 15.1
 +no service timestamps log datetime msec
 +no service timestamps debug datetime msec
 +no service password-encryption
 +!
 +hostname R1
 +```
 +
 +==== Acceso SSH ====
 +
 +Para configurar el acceso por SSH, primero hay que generar una clave RSA en el servidor de al menos 768 bits. Esto se hace con `ip domain-name <dominio>` y `crypto key generate rsa`, donde se nos pregunta por la longitud:
 +
 +
 +```
 +R1(config)#ip domain-name flackbox.com
 +R1(config)#crypto key generate rsa
 +The name for the keys will be: R1.flackbox.com
 +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]: 768
 +% Generating 768 bit RSA keys, keys will be non-
 +exportable...[OK]
 +```
 +
 +SSh usa la misma línea que Telnet, pero con la directiva `transport input <protocolo>`, se puede elegir `ssh`, `telnet`, `all` o `none`. También conviene especificar que se use la versión 2.
 +
 +
 +```
 +R1(config)#username admin secret secret1
 +R1(config)#line vty 0 15
 +R1(config-line)#transport input ssh
 +R1(config-line)#login local
 +R1(config-line)#exit
 +R1(config)#ip ssh version 2
 +
 +```
 +
 +Luego, desde cualquier cliente ssh:
 +
 +```
 +C:\> ssh –l admin 10.0.0.1
 +Open
 +Password: <secret1>
 +R1>
 +```
start/cursos/cisco.1773580844.txt.gz · Last modified: 2026/03/15 13:20 by 192.168.10.1