Packet Tracer

Command Line Interface

Adrián L. G. P.


Formato

prompt>comando argumentos

prompt>: Indica el hostname del equipo que estamos configurando, a parte de si tenemos permisos: #, o no: >.

comando: Comando a ejecutar.

argumentos: Antes de especificarlos una palabra clave o argumentos, se añade un espacio despúes del comando.

Hostnames válidos

Reglas: Comenzar con una letra. No contener espacios. Finalizar con letra o dígito. Utilizar únicamente letras, dígitos y guiones. Tener menos de 64 caracteres de longitud. Ejemplo:

Sw-Floor-1

Para poder cambiar el hostname de un equipo Cisco se usa:

# hostname <Nombre>

Contraseñas válidas

Reglas: Tener más de 8 caracteres de longitud. Combinaciones de letras, números y símbolos. Evitar el uso de la misma en varios dispositivos. No usar palabras comunes.

Generador de contraseñas: letpass.com


Básico

Si escribimos un comando no válido intentará resolver ese texto como DNS. Este proceso lleva tiempo y se puede saltar mediante las teclas:

CTRL + BLOQ MAYUS + 6

Habilitar permisos de EXEC privilegiado en el equipo. El prompt se modificará de > a #:

> enable

Muestra todos los comandos disponibles según donde te encuentres:

# ?

Se puede poner un comando seguido de ? para enseñar sus palabras claves y atributos disponibles. Además puedes buscar una palabra completa poniendo la(s) letra(s) por la(s) que empieza seguido de ?.

Para configurar la fecha y hora del equipo:

# clock set hora:min:seg día mes año

Mes: Debe ser el nombre con letras y en inglés.

Luego podemos ver que hora tiene configurado el equipo con:

# show clock

ICMP y acceso remoto

Enviar un paquete ICMP a un host de destino para verificar si responde:

ping <IpDestino>

Conectarmos mediante Secure Shell a un host remoto:

ssh -l <Usuario> <IpDestino>

Conectarmos mediante Telnet a un host remoto:

telnet (-l <Usuario>) <IpDestino>

Nota - TELNET y SSH:

Si en el router o switch que queremos conectarnos no tiene en las líneas vty 0 15 un password y login, el destino rechazará la conexión automáticamente.

⚠️ Nota - Problema de seguridad en TELNET:

El tráfico de Telnet se envía en texto plano, incluyendo usuario y contraseña, lo que lo hace vulnerable a ataques man-in-the-middle. Demostración en Packet Tracer:

1. Entra en el Command Prompt de un PC e inicia una conexión:

C:\> telnet (-l <Usuario>) <IpDestino>

2. Antes de ingresar la contraseña, cambia Packet Tracer de Realtime a Simulation.

3. Se puede apreciar que por cada letra que tenga la contraseña se crea un paquete de parte del cliente. Abre a uno desde la sección Event List.

4. En la nueva ventana pasa al modo Outbund PDU Details y baja hasta el apartado TELNET. Se puede ver que en cada paquete se enseña la letra enviada:

TELNET DATA:C

Gestionar la memoria

Para ver las configuraciones del dispositivo debemos estar en la raíz del dispositivo y en modo EXEC privilegiado.


El siguiente comando nos permite ver configuraciones (interfaces, login y contraseñas) que están guardadas temporalmente y se eliminan al reiniciar el equipo:

# show running-config

Para ver la configuración que persiste en NVRAM incluso al reiniciar el equipo:

# show startup-config

Para guardar la memoria temporal en NVRAM se utiliza wr o:

# copy running-config startup-config

Para eliminar la memoria temporal se utiliza:

# reload

Por último, para eliminar la memoria NVRAM se utiliza:

# erase startup-config

Configuraciones

Podemos entrar en modo de configuración global del dispositivo de 2 formas:

# configure terminal
# config t

Podemos configurar un puerto de switch o una interfaz de red de router (solo si entramos en config anteriormente):

(config)# interface <Interfaz><Número>

Interfaz y Número: Podemos especificar un nombre completo como FastEthernet0/1 o su abreviatura como fa0/3. 0/3 Significa que de la interfaz 0, se elige el puerto 3.

Podemos asignar una descripción a cada interfaz:

(config-if)# description <Descripción>

Para configurar parámetros de consola co, SSH y Telnet vty o acceso auxiliar:

(config)# line <co/vty> <Número/Rango>

Número: El número empieza desde 0 e identifica el puerto a configurar. Rango: Si se quiere configurar varias líneas a la vez, como las 16 líneas de vty se usa un rango como: 0 15, con un espacio entre ambos números.

Habilitar una interfaz después de realizar un cambio:

(config-if)# no shutdown

O deshabilitarla:

(config-if)# shutdown

Podemos salir de cualquier modo de configuración al anterior. Ej. Si nos encontramos en (config-if) y enviamos este comando pasamos a (config):

(config-if)# exit
(config)# exit
# exit
> <Comandos>

O podemos salir de cualquier modo de configuración al modo inicial:

(config-if)# end
# <Comandos>

Ver información

Para ver todas las configuraciones de las interfaces del dispositivo en IPv4:

show ip interface brief
show ipv6 interface brief

Enseña de cada interfaz el nombre, IP, Si está reconocida por el sistema (OK?), estado y protocolo. Ejemplo:

Router# show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
FastEthernet0/0        192.168.1.1     YES manual up                    up
FastEthernet0/1        unassigned      YES unset  administratively down down
Vlan1                  unassigned      YES unset  administratively down down

Para ver todas las estadísticas de todas las interfaces del equipo:

show interfaces

Los siguientes muestran información de IPv4 o IPv6:

show ip interfaces
show ipv6 interfaces

Para ver la tabla de rutas IPv4 o IPv6:

show ip route
show ipv6 route

Para ver la tabla ARP IPv4 o de vecinos IPv6:

show ip arp
show ipv6 neighbors

Asignación de IP

Si es un switch hay que configurar IPs mediante VLANs se usa: (la VLAN por defecto es 1)

(config)# interface vlan NumVlan

Podemos asignar a una interfaz una IPv4 mediante:

(config)# interface <Interfaz><Número>
(config-if)# ip address <IPv4> <Máscara>
(config-if)# no shutdown

O además una IPv6:

(config)# interface <Interfaz><Número>
(config-if)# ipv6 address <IPv6/Máscara>
(config-if)# no shutdown

Si se trata de una dirección IPv6 LLA fe80::/10 se modifica el comando a:

(config-if)# ipv6 address <LLA_IPv6> link-local

Asignación del Default Gateway

Poner la IP de la puerta de enlace predeterminada a una interfaz:

(config)# interface <Interfaz><Número>
(config-if)# ip default-gateway <IpGateway>
(config-if)# no shutdown

Permitir métodos de acceso remoto

Podemos permitir ciertos protocolos de acceso remoto con:

(config)# line vty 0 15
(config-line)# transport input <ssh telnet>

Podemos permitir tanto ssh y telnet o solo uno de los dos. Se separan mediante espacios.

Router - Enrutamiento estático

Para añadir una ruta a la que un router pueda acceder de manera manual:

(config)# ip route <IP_RedRemota> <Máscara_RedRemota> <IP_PróximoRouter>

Nota: Si la dirección de red o una IP cambia, debe modificarse la ruta manualmente.

Seguridad

Poner una contraseña en líneas de acceso:

(config)# line <console/vty> <NumPuerto/Rango>
(config-line)# password <Contraseña>

Para poner una contraseña al comando enable (texto plano):

(config)# enable password <Contraseña>

Para ocultar la contraseña:

(config)# service password-encryption

Aunque oculta el contenido, se puede descifrar fácilmente debido a su débil cifrado con herramientas como firewall.cx.

Para poner una contraseña al comando enable (encriptando con MD5):

(config)# enable secret <Contraseña>

Si se tenía enable password anteriormente se ignorará y solo se usará enable secret.

Aplicar una política de usuario y contraseña: authentication, o solo contraseña: local:

(config-line)# login <authentication/local>

Poner un banner que se enseñara en la página de login:

(config)# banner motd <Carácter>

Carácter: Indicamos un carácter que no se vaya a repetir en el texto. Después de ejecutarlo pondrá un diálogo para poner un texto personalizado que verán al iniciar sesión. Acabaremos el comando con el carácter especificado y luego ENTER.

Bloquear un rango de puertos no usados:

(config)# interface range <Interfaz/Rango>, <Interfaz/Rango>, ...

Interfaz/Rango: Podemos seleccionar varios rangos de interfaces y aplicar los mismos cambios a todos. Ejemplo: F0/2-24, G0/2 (F0/2 a F0/24 y G0/2)

(config-if-range)# shutdown

Creación y gestión de usuarios

Para crear un usuario sin privilegios:

(config)# username <Nombre_Usuario> secret <Contraseña>

Para crear un usuario con privilegios:

(config)# username <Nombre_Usuario> privilege <TipoPrivilegio> secret <Contraseña>

TipoPrivilegio: Número del 0 al 15 que indica el nivel de privilegios que tendrá el usuario:

- Del 2 al 14 son usuarios con permisos parciales.
- El 15 equivale al comando enable.
- El 1 equivale a un usuario normal.
- El 0 equivale a un acceso muy restringido.

Para aplicar una directiva de autentificación por usuario y contraseña:

(config)# line vty 0 15
(config-if)# login local

Directivas de seguridad

Para aplicar una longitud mínima a cada contraseña que se cree desde este momento (no se aplica a contraseñas ya creadas):

(config)# security passwords min-length <NúmeroMínimo>

Para cerrar la sesión de un usuario después de x minutos:

(config)# line vty 0 15
(config-if)# exec-timeout <Minutos>

Bloquear a cualquier persona durante x minutos que no pueda iniciar sesión después de x intentos dentro de un período de x minutos:

(config)# login block-for <SegundosBloqueo> attempts <Intentos> within <PeriodoMinutos>

Permitir SSH

Pasos:

1. Poner un hostname único y diferente al de por defecto.

2. Asignar un nombre de dominio (ej. pargapondal.inf):

(config)# ip domain-name <Dominio>

3. Generar una clave de 4096 Bytes u otro tamaño con el algoritmo RSA:

(config)# crypto key generate rsa general-keys modulus 4096

Permitir solo el tráfico SSH en las líneas de acceso remoto:

(config)# line vty 0 15
(config-if)# transport input ssh

Desde el momento de poner el comando se denegará conexiones telnet, solo admitirá SSH. Si se tenía alguna conexión telnet existente no la cierra.

DNS

Asignar un nombre de dominio (ej. pargapondal.inf):

(config)# ip domain-name <Dominio>

Desactivar la búsqueda de DNS:

(config)# no ip domain-lookup

Adrián L. G. P.