Mikrotik¶
El dispositivo físico¶
En el aula contaremos con un Mikrotik hAP lite por alumna/o:

Diagrama¶
El mismo sigue el siguiente diagrama de bloques:

Primer acceso¶
Para acceder por primera vez al mismo tendremos que utilizar la aplicación WinBox que podéis descargar aquí.

La primera vez nos conectaremos por MAC.
Por defecto, el usuario es admin y el password está en blanco.
La interfaz de nuestro equipo caerá, por lo que tendremos que ponerla en modo estático con cualquier IP válida del rango privado.
El motivo de caer la interfaz es que el dispositivo no tiene ningún servidor DHCP.
Securizando¶
Comenzaremos creando un nuevo usuario y desactivando el admin.

SSH¶
SSH (o Secure SHell) es el nombre de un protocolo y del programa que lo implementa cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar programas gráficos remotamente. El puerto TCP asignado es el 22.
SSH trabaja de forma similar a como se hace con telnet.
Fuente: Wikipedia
Versión 6.x¶
Dadas las limitaciones de la versión 6, relajaremos la seguridad permitiendo el acceso con password desde la terminal de winbox con el comando [usuario@MikroTik] > /ip ssh set always-allow-password-login=yes
Después, podermos entrar desde la terminal de powershell en Windows, o cualquier otra en GNU/Linux o Mac con ssh -oHostKeyAlgorithms=+ssh-rsa usuario@192.168.88.1.
Si hemos podido acceder, podremos salir con el comando [usuario@MikroTik] > /quit
Versión 7.x¶
Para activarlo en el equipo deberemos:
1. Crear un par de llaves público-privadas RSA (ver vídeo)
2. Copiar llave pública al dispositivo File-Upload
3. Asociar a un usuario en menú UserList-SSH Keys
4. Acceso desde terminal ssh usuario@ip_del_mikrotik
Problemas típicos¶
A veces podemos encontrarnos con el siguiente mensaje:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:/I62FFxfkrDjW5DxENiNGgBhCNoyslHO+89tAmwUonI.
Please contact your system administrator.
Add correct host key in /home/usuario/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/usuario/.ssh/known_hosts:159
remove with:
ssh-keygen -f "/home/usuario/.ssh/known_hosts" -R "192.168.88.1"
Host key for 192.168.88.1 has changed and you have requested strict checking.
Host key verification failed.
El cliente SSH nos está informando que el fingerprint (huella dactilar) del equipo al que nos queremos conectar NO coincide con el que tenemos almacenado para dicha ip por lo podríamos estar ante un caso de ataque de man-in-the-middle.
Si hemos cambiado de equipo al que nos estamos conectando o lo hemos devuelto a valores de fábrica es normal que cambie el fingerprint por lo que simplemente borraremos el fingerprint almacenado previamente y podremos acceder.
Para borrarlo, sólo tenemos que seguir las indicaciones que nos ofrecen ssh-keygen -f "/home/usuario/.ssh/known_hosts" -R "192.168.88.1"
Exportación de configuración¶
Para exportar la configuración como backup o para evaluación de las actividades emplearemos el comando ssh -oHostKeyAlgorithms=+ssh-rsa usuario@192.168.88.1 "/export hide-sensitive terse" > configuracion.rsc
Podemos obtener una versión más completa con ssh -oHostKeyAlgorithms=+ssh-rsa usuario@192.168.88.1 "/export verbose terse" > configuracion.rsc
Como tarda y podemos ponernos nerviosos si no vemos el avance, podemos añadir el argumento -v para que el comando ssh nos indique el progreso, esto es ssh -v -o....
Nota: Recuerda que las contraseñas están en el archivo por lo que custodialo adecuadamente.
Servicios básicos¶
Desabilitando servicios¶
Ya que no usaremos los servicios telnet, ftp, api y api-ssl los desabilitaremos en el menú IP-servicios o con los comandos:
/ip service set telnet disabled=yes
/ip service set ftp disabled=yes
/ip service set api disabled=yes
/ip service set api-ssl disabled=yes
NTP¶
Pongamos en hora el equipo con System-NTP Client o los comandos:
/system ntp client set enabled=yes
/system ntp client servers add address=0.debian.pool.ntp.org
/system ntp client servers add address=1.debian.pool.ntp.org
/system ntp client servers add address=2.debian.pool.ntp.org
/system ntp client servers add address=3.debian.pool.ntp.org
Direcciones¶
Estáticas¶
DHCP Client¶
DHCP Server¶
Switch y bridges¶
... atheros...
Wifi¶
Perfil de seguridad:
Interfaz Wifi:

Compartir internet¶
En GNU/Linux podemos compartir la conexión de la interfaz NAT de nuestra MV hacia la interfaz bridge, con lo que podríamos dar enrutamiento hacia internet al router MT y con ello probar nuestro access point -AP- que hemos generado con nuestra nueva conexión Wifi.
Para ello:
1. Habilitar el reenvío de IP (IP Forwarding): Ejecuta sudo sysctl -w net.ipv4.ip_forward=1 para permitir que el núcleo reenvíe tráfico entre interfaces.
2. Configurar Masquerade con Iptables: Sustituye eth0 por tu interfaz de internet (salida) y ejecuta: sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Wifi invitados¶
Portal cautivo¶
Repetidor¶
- Vídeo modo
station
Wifi mesh¶
Servicios avanzados¶
NAT¶
Realizaremos una NAT de nuestra red privada a la ip pública.
/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe-lowi
Otros tips¶
Alias de interfaz¶
A veces no queremos perder la conexión a internet por lo que podemos crear un alias a una interfaz y asignarle una IP que nos permita modificar la configuración sin desconectarnos de internet:
En GNU/Linux:
# Suponemos que la interfaz es eth0 (podría ser enp3s0 o cualquier otra)
DEV='eth0'
IP='192.168.88.10/24'
ALIAS_DEV='elAlias'
# Añadimos alias de interfaz
sudo ip link add $ALIAS_DEV link "$DEV" type macvlan mode bridge
# Asignamos IP a la nueva interfaz
sudo ip a add "$IP" dev $ALIAS_DEV
# La levantamos
sudo ip link set $ALIAS_DEV up
# Mostramos el resultado
ip a show $ALIAS_DEV