Arreglando el script de hacer backup con mikrotik

Actualizo éste script/post para que si por algún motivo no pueda conectar con el router mikrotik haga timeout y siga con el Backup.

root@xava-ftp:~/scripts# cat /root/scripts/backup_mikrotiks_SN.sh 
#!/bin/bash

############################################
# SCRIPT CREATED BY: Laura Mora i Aubert   #
# SCRIPT DATE: 2019-11-27                  #
# WEBSITE: https://blackhold.nusepas.com    #
# INFO: Script that allows remote backup   #
#       of Mikrotik Routers.               #
#       tested on 5.x & 6.x routers        #
# LICENSE: creative commons (by:sa)        #
############################################

############################################
#             INSTRUCTIONS                 #
############################################
#                                          #
# 1. Generate ssh-keys on your server      #
#      cd ~/.ssh                           #
#      sh-keygen -t dsa                    #
#                                          #
# 2. Rename pubkey                         #
#      cp .ssh/id_dsa.pub backupkey        #
#                                          #
# 3. Put the file on MKT Router            #
#      ftp x.x.x.x                         #
#      ftpbin                            #
#      ftpput backupkey                  #
#      ftpbye                            #
#                                          #
# 4. Import pubkey in MKT Router           #
#      telnet x.x.x.x                      #
#      [admin@mikrotik] /user ssh-keys\    #
#       import user=admin\                 #
#       public-key-file=backupkey          #
#                                          #
# 5. Access with ssh to the MKT Router     #
#                                          #
# 6. [SCRIPT] Change USER  and ID values   #
#                                          #
# 7. Run the script!                       #
#                                          #
############################################

############################################
#               OTHERS                     #
############################################
#                                          #
# If you have bruteforce login rules,      #
# add your backup server IP in the last    #
# rule: src-address=!SERVERIP              #
#                                          #
############################################ 

# Change username
USER=blackhold
BACKUP_DIR="/root/backups/capa8"


if [ ! -d "${BACKUP_DIR}" ]; then
	mkdir -p ${BACKUP_DIR}
fi

cd ${BACKUP_DIR}

# delete 

Proteger un router Mikrotik expuesto a internet

Cuidadín con la regla que apliqué el otro día, que lo hace demasiado bien y no deja pasar absolutamente ninguna petición de DNS :P

Aquí os dejo 3 protecciones interesantes.

Protección del login ssh

/ip firewall filter
add action=drop chain=input comment="BLOQUEJA DURANT 24 hores qui fa 5 intents seguits de login SSH!" dst-port=22 protocol=tcp src-address-list=black_list_ssh
add action=add-src-to-address-list address-list=black_list_ssh address-list-timeout=1d chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=
    ssh_stage4
add action=add-src-to-address-list address-list=ssh_stage4 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=
    ssh_stage3
add action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=
    ssh_stage2
add action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp src-address-list=
    ssh_stage1
add action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m chain=input connection-state=new dst-port=22 protocol=tcp

Protege los intentos de login al 8291 (winbox)

/ip firewall filter
add action=drop chain=input comment="BLOQUEJA DURANT 24 hores qui fa 5 intents seguits de login winbox!" dst-port=8291 protocol=tcp src-address-list=
    black_list_winbox
add action=add-src-to-address-list address-list=black_list_winbox address-list-timeout=1d chain=input connection-state=new dst-port=8291 protocol=tcp 
    src-address-list=winbox_stage4
add action=add-src-to-address-list address-list=winbox_stage4 address-list-timeout=3m chain=input connection-state=new dst-port=8291 protocol=tcp src-address-list=
    winbox_stage3
add action=add-src-to-address-list address-list=winbox_stage3 address-list-timeout=3m chain=input connection-state=new dst-port=8291 protocol=tcp src-address-list=
    winbox_stage2
add action=add-src-to-address-list address-list=winbox_stage2 address-list-timeout=3m chain=input connection-state=new dst-port=8291 protocol=tcp src-address-list=
    winbox_stage1
add action=add-src-to-address-list address-list=winbox_stage1 address-list-timeout=3m chain=input connection-state=new dst-port=8291 protocol=tcp

Proteger de ataques de DoS (denegación de servicio)

add action=jump chain=forward connection-state=new jump-target=detect-ddos
add action=return chain=detect-ddos dst-limit=32,32,src-and-dst-addresses/10s
add action=return chain=detect-ddos src-address=192.168.0.0/16
add action=add-dst-to-address-list address-list=ddosed address-list-timeout=10m chain=detect-ddos
add action=add-src-to-address-list address-list=ddoser address-list-timeout=10m chain=detect-ddos
add action=drop chain=forward connection-state=new dst-address-list=ddosed src-address-list=ddoser

Mitigar ataque de DNS con mikrotik

/ip firewall filter
add action=drop chain=forward comment="drop from all in dns-flood address list" dst-port=53 protocol=udp src-address-list=dns-flood
add chain=forward comment="add src IP to dns-flood address list" dst-limit=1,10,src-address/20s dst-port=53 protocol=udp           
add action=add-src-to-address-list address-list=dns-flood address-list-timeout=23h59m59s chain=forward dst-port=53 protocol=udp    

Script para hacer backups de los router mikrotik

Pues aquí una pequeña ayuda :)

#!/bin/bash

############################################
# SCRIPT CREATED BY: Laura Mora i Aubert   #
# SCRIPT DATE: 2015-07-05                  #
# WEBSITE: https://blackhold.nusepas.com    #
# INFO: Script that allows remote backup   #
#       of Mikrotik Routers.               #
#       tested on 5.x & 6.x routers        #
# LICENSE: creative commons (by:sa)        #
############################################

############################################
#             INSTRUCTIONS                 #
############################################
#                                          #
# 1. Generate ssh-keys on your server      #
#      cd ~/.ssh                           #
#      sh-keygen -t dsa                    #
#                                          #
# 2. Rename pubkey                         #
#      cp .ssh/id_dsa.pub backupkey        #
#                                          #
# 3. Put the file on MKT Router            #
#      ftp x.x.x.x                         #
#      ftp> bin                            #
#      ftp> put backupkey                  #
#      ftp> bye                            #
#                                          #
# 4. Import pubkey in MKT Router           #
#      telnet x.x.x.x                      #
#      [admin@mikrotik] /user ssh-keys    #
#       import user=admin                 #
#       public-key-file=backupkey          #
#                                          #
# 5. Access with ssh to the MKT Router     #
#                                          #
# 6. [SCRIPT] Change USER  and ID values   #
#                                          #
# 7. Run the script!                       #
#                                          #
############################################

############################################
#               OTHERS                     #
############################################
#                                          #
# If you have bruteforce login rules,      #
# add your backup server IP in the last    #
# rule: src-address=!SERVERIP              #
#                                          #
############################################ 

# Change username
USER=admin
BACKUP_DIR="/root/backups/"


if [ ! -d "${BACKUP_DIR}" ]; then
        mkdir -p ${BACKUP_DIR}
fi

cd ${BACKUP_DIR}

############################################
# Keep this structure, take care of the :  #
# Increment the "n" with a number          #
# ID[n]="RouterName:IPAddress:Port"        #

Bonding + VLAN + Mikrotik

Esta semana se me ha presentado un pequeño reto, así que tras recibir el material nos hemos puesto a probar el entorno.

El escenario es que tenemos una ubicación en la que queremos poner varias antenas y sólo podemos bajar un sólo cable de red y uno de alimentación. Algunos enlaces se van a administrar desde un router y otros desde otro. Así que la solución escogida ha sido la de alimentar cada una de las antenas por separado y definir vlan para el tráfico de cada una.

Para ponerle mas emoción a la cosa, las antenas que vamos a poner van a estar en bonding, para poder tener mas ancho de banda.

En la ubicación 1 tenemos:
– 1 Router Mikrotik x86 virtualizado en un vmware
– 2 enlaces en bonding (4 antenas)

En la ubicación 2 tenemos:
– 1 Router Mikrotik RB1100AHx2
– 1 enlace en bonding (2 antenas)

La ubicación 3 es idéntica a la ubicación 2.…

MAC Telnet desde Linux

Cuando administras routers mikrotik una de las cosas que te salvan cuando has perdido una mikrotik o no sabes qué ip tiene es poder descubrir las MAC de los routers mikrotik y poder acceder a ellos por MAC.

Si tienes entorno gráfico todo de maravilla, ejecutas winbox y listos, pero si no dispones de él tienes la opción de instalar un fake-x o bien usar MAC-Telnet de haakonnessjoen.…

Tuneles EoIP + Servidor PPPoE + Servidor Radius remoto (en Debian)

Lo de hoy es un reto, al mismo momento que un gran hit para la optimización del hardware del cual disponemos. Somos un ISP pequeñito y no nos da para grandes y caros Cisco y tiramos con hardware bueno, bonito y barato, pero tiene sus cosillas, así que vamos a linux para que nos haga el trabajo duro :)

Nos interesa conectar el cliente con un tunel EoIP para dentro pasar el PPPoE, pero EoIP es un tipo de túnel exclusivo de Mikrotik, pero los chicos de linux-eoip se lo han currado y han desarrollado una aplicación para que nuestro sistema linux pueda comunicarse con routers mikrotik con éste tipo de túneles.…

Priorizando paquetes en mikrotik – Queues

Un scriptillo para tenerlo a mano :P

# CAPA8.NET
# SCRIPT CREATION: 2014-06-26
# AUTHORS: CRAEM + BLACKHOLD
#
## MANGLE SIP # PRIORITY 1
/ip firewall mangle add action=mark-connection chain=prerouting comment=RTP dst-port=10000-20000 new-connection-mark=SIP protocol=udp
/ip firewall mangle add action=mark-connection chain=postrouting comment=RTP dst-port=10000-20000 new-connection-mark=SIP protocol=udp
/ip firewall mangle add action=mark-connection chain=prerouting comment=SIP dst-port=5060 new-connection-mark=SIP protocol=udp
/ip firewall mangle add action=mark-connection chain=postrouting comment=SIP dst-port=5060 new-connection-mark=SIP protocol=udp
/ip firewall mangle add action=mark-connection chain=prerouting comment=VTUN dst-port=5004 new-connection-mark=SIP protocol=udp
/ip firewall mangle add action=mark-connection chain=postrouting comment=VTUN dst-port=5004 new-connection-mark=SIP protocol=udp
#
# MANGLE DNS SSH WINBOX ICMP IGMP SNP SNMP TELNET IRC GRE # PRIORITY 2
/ip firewall mangle add action=mark-connection chain=prerouting comment=DNS dst-port=53 new-connection-mark=DNS protocol=udp
/ip firewall mangle add action=mark-connection chain=postrouting comment=DNS dst-port=53 new-connection-mark=DNS protocol=udp
/ip firewall mangle add action=mark-connection chain=prerouting comment=DNS dst-port=53 new-connection-mark=DNS protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=DNS dst-port=53 new-connection-mark=DNS protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=BGP dst-port=179 new-connection-mark=BGP protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=BGP dst-port=179 new-connection-mark=BGP protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=WINBOX dst-port=8291 new-connection-mark=WINBOX protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=WINBOX dst-port=8291 new-connection-mark=WINBOX protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=SSH dst-port=22 new-connection-mark=SSH protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=SSH dst-port=22 new-connection-mark=SSH protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=ICMP dst-port=1 new-connection-mark=ICMP protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=ICMP dst-port=1 new-connection-mark=ICMP protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=ICMP dst-port=58 new-connection-mark=ICMP protocol=tcp
/ip firewall mangle add action=mark-connection chain=postrouting comment=ICMP dst-port=58 new-connection-mark=ICMP protocol=tcp
/ip firewall mangle add action=mark-connection chain=prerouting comment=IGMP dst-port=2 new-connection-mark=IGMP 

Configuración de la red de una escuela

Pues la fiesta de esta noche ha tratado en configurar la pequeña red de una escuela.

El esquema consiste en 3 tipos de redes, la 192.168.1.0/24 que es la que tiene la salida a internet, la 192.168.0.0/24 que es la red de profesores y las 192.168.10.0/24, 192.168.11.0/24, 192.168.12.0/24, 192.168.13.0/24, 192.168.14.0/24 y 192.168.15.0/24, que es la de los alumnos. La 192.168.10.0/24 será la red cableada y donde se encontrará el servidor proxy transparente de los alumnos, el resto de redes 192.168.1x.0/24 se accederá mediante wifi pero con la posibilidad de conectar 4 ordenadores por ethernet.
Los AP wifi disponen de una interfaz virtual vinculada a una VLAN para que los profesores se puedan conectar a ella y acceder a los recursos y a la red de profesores.

Los Alumnos no podrán acceder a la red de profesores ni a la red que tiene la salida a internet, pero los profesores si.

Cada uno de los AP wifi se encarga de gestionar las subredes de los alumnos y los conectamos entre ellos usando BGP, de esta forma fragmentamos la red permitiendo un mayor número de usuarios además de controlar el exceso de paquetes ARP en la red.

Éste es el esquema de la red que está previsto montar:

Diagrama1

Comento que está previsto porqué ahora mismo la red está configurada para salir directamente a internet, pero es tan simple como en el enrutador que junta todas las redes indicar que el gateway es la IP del servidor Proxy. Si sólo queremos que salgan …

PPTP túnel con mikrotik

El otro día vimos la creación de un túnel 6to4 o sit, ahora vamos a por un túnel PPTP.

Por fin saco un poco de tiempo para hacer este post, ya que ha habido un par de personas que me iban preguntando como hacer esto pero todo lo que pude ofrecerles es un par de fotos de unos apuntes que tomé un día y claro, con anotaciones que sólo yo podía interpretar :P

Pues al lío :)

Lo primero es activar el servicio de PPTP en la RB que va a estar conectada a internet (o a la red que queramos ofrecer la conectividad), para ello vamos a PPP > Interface: