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/17 07:50] – [DHCP Snooping] 192.168.10.1start:cursos:cisco [2026/03/31 14:43] (current) – [Niveles de acceso privilegiado] 192.168.10.1
Line 750: Line 750:
  
  
 +==== 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 1134: 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.1773733809.txt.gz · Last modified: 2026/03/17 07:50 by 192.168.10.1