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"        #

Instalar debian en una pcengines APU1d4

Hoy me han regalado una rosa y me han traído la placa PCEngines APU1d4, como una buena friki al momento que me han regalado la rosa he estado mas pendiente de la caja blanca que traía el portador que de la propia rosa :P lo admito, me pierde la tecnología xD

AjG_ANsHTjjF011HMcnmKEwljKh0ggWEBTXBMYl-LsJ6

En la caja venía la placa y un disco mSATA de 16Gb, pero faltaban las tarjetas, pero al estar desmontando un portátil me he percatado que las tarjetas de portátil también me sirven, así que vamos a hacer la prueba con unas intel, que necesitan firmware privativo y no tengo claro que las pueda poner en modo de punto de acceso. La elección es una tarjeta atheros, pero aún estoy investigando cuál es la que mas que conviene para lo que quiero hacer!

photo32009721698429475

Actualización post instalación debian por puerto serie: Debian 8 Jessie

El post del otro día, si éste que os váis a cansar de él hasta que no consiga hacer funcionar esto! :P instalé una debian a partir de una imagen que había creado alguien, pero esta imagen era una debian 6 y las versiones de los programas que necesito para hacer funcionar el sistema (basicamente hostapd) en debian 6 tienen muchos problemas, así que tenía 2 posibilidades, ponerme con el marrón de hacer que debian 6 se comiese una versión mas nueva de hostapd con patatas (SO viejo & dependencias & co = dolor) o fabricar un instalador modificado (hasta que no he encontrado como hacerlo, ha sido doloroso también, pero al menos he aprendido algo nuevo y parece que la cosa va por buen camino xD).

Una de las curiosidades de la instalación es que estamos usando la compact flash como disco de arranque para la instalación, normalmente usamos un CD o un lápiz de memoria USB.

Lo primero que se me ha ocurrido ha sido meter tal cual una iso en la compact flash, pero claro, el interfaz es por puerto serie, así que tenemos que modificar la iso… descomprime, monta, dale la vuelta, tablas de particiones guerreras, etc. todo fallido, hasta cuando he encontrado éste link en debian y no sé como he llegado a éste otro link: Ficheros de la instalación de debian jessie. A partir de aquí aunque ya caía la noche, se ha empezado a iluminar el día :)…

Convertir una debian en un punto de acceso wifi

Ayer hice un post sobre como instalar debian en una placa Alix 2d2 por puerto COM, ahora vamos a convertir esta preciosidad en un punto de acceso wifi :)

Como disponemos de dos tarjetas wifi de fabricantes que respetan el software libre y liberan sus drivers, no será necesario instalar el paquete firmware-iwlwifi o firmware-linux-nonfree, así que un pasito mas para un punto de acceso totalmente libre! :D

root@alix2d2:/home/blackhold# lspci |grep Atheros
00:0c.0 Ethernet controller: Atheros Communications Inc. AR5413 802.11abg NIC (rev 01)
00:0e.0 Ethernet controller: Atheros Communications Inc. AR5413 802.11abg NIC (rev 01)

Si nos fijamos, las dos tarjetas minipci ya aparecen en el sistema sin tener que instalar nada adicional :)…

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 

Debian 8: Bonding + VLANs

Tenemos una maquina con 2 tarjetas de red que va a realizar tareas de backup, así que vamos a hacer un bonding y en este bonding asignar vlans.

Necesitamos instalar 2 paquetes, vlan y ifenslave

# apt-get install vlan ifenslave

Y la configuración para un host sería esta:

auto lo
iface lo inet loopback

auto eth0
auto eth1

auto bond0
iface bond0 inet manual
        slaves eth0 eth1
        bond_miimon 100
        bond_mode active-backup

auto vlan10
auto vlan138

# VLAN 10
iface vlan10 inet static
        address 10.90.226.69
        netmask 255.255.255.224
        up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.90.226.65
        mtu 1500
        vlan-raw-device bond0

# VLAN 138
iface vlan138 inet6 static
        address 2a00:1508:6001::69
        netmask 64
        up ip r add default via 2a00:1508:6001::1 dev bond0
        mtu 1500
        vlan-raw-device bond0

Ahora mismo tenemos el bonding en active backup, pero si queremos sumar ambas interfaces podemos poner el modo balance-rr, así tendremos virtualmente una tarjeta de 2Gb y la interfaz de red no será un cuello de botella :)…