Seguridad Wireless - Wifi

Equipos y materiales => Puntos de acceso, routers, switchs y bridges => Openwrt & LEDE => Mensaje iniciado por: raphik en 16-10-2018, 21:33 (Martes)

Título: Instalar Debian en un router OpenWrt
Publicado por: raphik en 16-10-2018, 21:33 (Martes)
La idea no es nueva. Hay algo publicado para el D-Link DIR-825 aquí: https://wiki.debian.org/InstallingDebianOn/D-Link/DIR-825

Después de varios días intentándolo, finalmente lo he podido instalar en un HG553. Presumiblemente, se puede instalar en cualquier router OpenWrt.
- jar229 lo ha instalado en un Xiaomi MiWiFi Mini.

En el PC,

1. Compilar una imagen OpenWRT específica con emulación FPU y soporte USB para sistemas de archivo ext4
Empezamos como siempre,
Código: [Seleccionar]
# Clonar repositorio
  git clone https://www.github.com/openwrt/openwrt -b openwrt-18.06
# Actualizar e instalar fuentes
  cd openwrt
  ./scripts/feeds update -a
  ./scripts/feeds install -a

Debian utiliza un coprocesador matemático hardware (FPU) del que carece el HG553. Afortunadamente, su presencia se puede emular por software. Es muy importante habilitar la emulación FPU tanto en menuconfig como en kernel_menuconfig.
Código: [Seleccionar]
# Entrar en el menú de configuración
make menuconfig
Citar
# Seleccionar Sistema
  Target System ---> (X) Broadcom BCM63xx

# Selecciona Perfil
  Target Profile ---> (X) Huawei EchoLife HG553

# MUY IMPORTANTE, habilitar la emulación FPU
  Global build settings  ---> Kernel build options  ---> (*) Compile the kernel with MIPS FPU Emulator

# Poner interfaz luci,
  LuCI ---> Collections ---> <*> LuCI

# Dar soporte WiFi
  Kernel modules ---> Wireless Drivers ---> <*> kmod-b43

# Dar soporte WPA-PSK
  Network ---> <*> wpad-mini

Hay algunos paquetes que se pueden incluir en la compilación o instalarlos más tarde
Citar
Base system  ---> <*> block-mount
Kernel modules ---> Filesystems ---> <*> kmod-fs-ext4
Kernel modules ---> USB Support ---> <*> kmod-usb-storage
Utilities  ---> Disc  ---> <*> cfdisk
Utilities  ---> Filesystem  ---> <*> e2fsprogs
Utilities  ---> Compression ---> <*> xz-utils  (si no se selecciona, no aparecerá deboostrap)
Administration  ---> <*> debootstrap

Como dije más arriba, también hay que habilitar la emulación FPU en kernel_menuconfig
Código: [Seleccionar]
# Entrar en el menú de configuración del Kernel
  make kernel_menuconfig
Citar
# Habilitar emulación FPU
  Kernel type ---> (*) MIPS FPU Emulator

Por último,
Código: [Seleccionar]
# Compilar
  make -j 3 V=cs

Y flashear el router.

En el router,

2. Configurar la red
Es imprescindible que el router tenga acceso a Internet.

3. Particionar y montar una memoria USB externa
Yo he utilizado un pendrive de 4GB que he particionado con la utilidad cfdisk en el propio router
Código: [Seleccionar]
# Particionar Disco
  cfdisk /dev/sda

(https://i.imgur.com/ukdUNKx.png)

Partición sda1, tipo Swap, de 512M. Partición sda2, tipo Linux, con el resto de espacio.

Formatear y montar
Código: [Seleccionar]
# Formatear /dev/sda2
  mke2fs -t ext4 /dev/sda2

# Montar
  mount /dev/sda2 /mnt

La partición Swap no es necesaria por ahora, pero también se puede montar si se quiere
Código: [Seleccionar]
# Formatear swap
  mkswap /dev/sda1

# Montar swap
  swapon /dev/sda1

4. Instalar la utilidad debootstrap
Si no se incluyó al compilar, instalar la utilidad debooststrap que se usará más adelante para descargar e instalar Debian.
Código: [Seleccionar]
  opkg update
  opkg install debootstrap

Junto con este paquete se descargan automáticamente otros paquetes que son necesarios.

5. Instalar Debian 8 («jessie») en el punto de montaje /mnt
Averiguar la arquitectura del router.
Código: [Seleccionar]
  uname -mEn teoría, este comando devuelve la arquitectura del router. Pero, según reporta jar229, este método no es fiable. Sugiero entonces consultar la toh de OpenWrt.

Establecer variable de entorno. Esto es importante, si no, no irá bien la instalación.
Código: [Seleccionar]
  LANG=C
Invocar el comando deboostrap con la opción --arch=<arquitectura_del_router>
Código: [Seleccionar]
  debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debian.org/debian
Tarda un buen rato en descargar e instalarse.

6. ¡Debian!
Para entrar en el entorno Debian, ejecutar el comando
Código: [Seleccionar]
  chroot /mnt /bin/bash
Puede parecer que no ha sucedido nada, pero se está ejecutando un SO Debian con un Kernel OpenWRT
(https://i.imgur.com/Y5Z4CYG.png)

QUEDA POR HACER:
- Montaje automático de Debian al arrancar el router.
- Establecer una IP propia para Debian distinta de OpenWRT
- Instalar soporte SSH para Debian.
- Etc.

Título: Re:Instalar Debian en un HG553
Publicado por: Tki2000 en 16-10-2018, 23:07 (Martes)
La idea no es nueva. Hay algo publicado para el D-Link DIR-825 aquí: https://wiki.debian.org/InstallingDebianOn/D-Link/DIR-825

Después de varios días intentándolo, finalmente lo he podido instalar en un HG553.

En el PC,
Compilar una imagen OpenWRT específica con emulación FPU y soporte USB para sistemas de archivo ext4.

En el router,
1. Configurar la red.
2. Particionar y montar una memoria USB externa.
3. Instalar la utilidad debootstrap.
4. Instalar en la memoria externa Debian 8 («jessie») para MIPS.
5. Lanzar Debian.

Sistema Operativo
Citar
root@OpenWrt:/# cat /etc/issue.net
Debian GNU/Linux 8
Kernel
Citar
root@OpenWrt:/# uname -a
Linux OpenWrt 4.9.133 #0 Mon Oct 15 14:54:30 2018 mips GNU/Linux

Si alguien está interesado en el tema, puedo hacer una pequeña guía paso a paso.

¡Por favor! ¡Eso ya sería para descubrirse el sombrero!
Adelante.
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 17-10-2018, 01:08 (Miércoles)
Si alguien está interesado en el tema, puedo hacer una pequeña guía paso a paso.

¡Por favor! ¡Eso ya sería para descubrirse el sombrero!
Adelante.

Hecho. He detallado los pasos en el primer post.
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 17-10-2018, 11:49 (Miércoles)
Una vez en Debian, se puede editar el fichero /root/.bashrc
Código: [Seleccionar]
echo
echo
echo "Bash v$BASH_VERSION"
echo " _____         __     ________        __   "
echo "|     \.-----.|  |--.|  |  |  |.----.|  |_ "
echo "|  --  |  -__||  _  ||  |  |  ||   _||   _|"
echo "|_____/|_____||_____||________||__|  |____|"
echo "   D e b i a n   o v e r   O p e n W r t   "
echo "-----------------------------------------------"
echo $(cat /etc/issue.net) "~ Kernel" $(uname -nr)
echo "-----------------------------------------------"
PS1='\[\033[01;32m\]\u@Debian:\[\033[01;34m\]\w\$ \[\033[00m\]'

Y la sesión adquiere este aspecto
(https://i.imgur.com/6grcacN.png)

Título: Re:Instalar Debian en un HG553
Publicado por: jar229 en 17-10-2018, 13:22 (Miércoles)
Muy interesante  >:( >:( >:( >:(
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 17-10-2018, 16:47 (Miércoles)
Muy interesante  >:( >:( >:( >:(

Y espero que finalmente también sea útil y permita instalar Java 8/10 en OpenWrt, aunque sea indirectamente.
https://foro.seguridadwireless.net/openwrt/blynk-openwrt/msg364606/#msg364606
Título: Re:Instalar Debian en un HG553
Publicado por: peperfus en 18-10-2018, 09:43 (Jueves)
Por curiosidad.... ¿en qué routers instaláis estas cosas?
Porque me imagino que el rendimiento no tirará bien para tanta cosa, no?
Yo probé a instalar mediawiki con php y mysql e iba lentísimo en un livebox con 128 mb ram y cpu 500 mhz..... así que me imagino que java.... será parecido el rendimiento, no?
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 18-10-2018, 15:09 (Jueves)
@peperfus

En un HG553 con una memoria USB, una veces de 4GB, otras de 16 y ocasionalmente un HDD-160GB. Las instalaciones van jod***mente lentas. Con todo, es mucho más rápido que instalar Windows 10 en un PC.

Al final, si todo sale bien el router formaría parte de un sistema IoT LoRa. El router hará justo lo contrario para lo que se suelen diseñar: poco tráfico IP y mucha CPU para manejar Java+Blync. Estoy valorando ponerle un pequeño ventilador a la CPU para que disipe bien.
Título: Re:Instalar Debian en un HG553
Publicado por: jar229 en 22-10-2018, 18:19 (Lunes)
Citar
root@OpenWrt:~# debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debi
an.org/debian
W: Cannot check Release signature; keyring file not available /usr/share/keyring                                                        s/debian-archive-keyring.gpg
I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
E: Couldn't download dists/jessie/main/binary-mips/Packages
root@OpenWrt:~# debootstrap --verbose --arch=mips jessie /mnt http://ftp.de.debian.org/debian
W: Cannot check Release signature; keyring file not available /usr/share/keyrings/debian-archive-keyring.gpg
I: Retrieving InRelease
I: Retrieving Release
I: Retrieving Packages
I: Retrieving Packages
I: Retrieving Packages
E: Couldn't download dists/jessie/main/binary-mips/Packages
root@OpenWrt:~#

Lo he intentado probar en un Xiaomi MiWiFi Mini (con FPU habilitado) pero no termina de bajar e instalar  >:D

Al menos me ha servido para volver a compilar un firmware que hace muuuucho que no lo hacía  ;D
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 23-10-2018, 07:36 (Martes)
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!
Título: Re:Instalar Debian en un HG553
Publicado por: jar229 en 23-10-2018, 20:49 (Martes)
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!

Lo probaré cuando vuelva a sacar un poco de tiempo, gracias  :D
Título: Re:Instalar Debian en un HG553
Publicado por: jar229 en 01-11-2018, 20:02 (Jueves)
@ jar229

Según https://openwrt.org/toh/hwdata/xiaomi/xiaomi_mini_v1 el Xiaomi MiWiFi Mini tiene arquitectura mipsel. Prueba esto:
Código: [Seleccionar]
debootstrap --verbose --arch=mipsel jessie /mnt http://ftp.de.debian.org/debian
¡Saludos!

Lo probaré cuando vuelva a sacar un poco de tiempo, gracias  :D

Efectivamente, era eso la arquitectura  >:(

Pero la forma de verificarlo con uname no es correcta ya que me devuelve

Código: [Seleccionar]
root@OpenWrt:~# uname -m
mips

Voy a seguir trasteando un rato con el cacharro  ;D
Título: Re:Instalar Debian en un HG553
Publicado por: Garcad en 02-11-2018, 15:38 (Viernes)
 >:( >:( >:( >:( >:( >:(

Impresionante.

Tengo que intentarlo con uno de los 556a que tengo por aqui.

Salu2
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Garcad en 06-11-2018, 02:32 (Martes)
@raphik

openwrt # find . | grep menuconfig
./package/utils/busybox/convert_menuconfig.pl
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: raphik en 06-11-2018, 12:47 (Martes)
@Garcad

¿Has compilado OpenWrt para tu HG556?
https://foro.seguridadwireless.net/openwrt/(tutorial)-como-compilar-openwrt-a-nuestro-gusto/
Título: Re:Instalar Debian en un HG553
Publicado por: raphik en 07-11-2018, 13:56 (Miércoles)
Efectivamente, era eso la arquitectura  >:(

Pero la forma de verificarlo con uname no es correcta ya que me devuelve
Código: [Seleccionar]
root@OpenWrt:~# uname -m
mips

El error no es por la arquitectura, sino por el "endianness". En principio puede parece que el parámetro --arch del comando debootstrap se refiere a la arquitectura. El problema es que también se refiere a otras cosas.

mips-->arquitectura mips, modo big endian
mipsel-->arquitectura mips, modo little endian
armel-->arquitectura arm, modo little endian
armhf-->arquitectura arm, modo little endian, con FPU por hardware (hard float)
(FUENTE: https://www.debian.org/ports/index.es.html)

El comando uname -n devuelve la arquitectura. El endianness hay que averiguarlo de otra manera.

En una máquina Big Endian,
Código: [Seleccionar]
printf "01%s" | hexdump
0000000 3031                                   
0000002

En una máquina Little Endian,
Código: [Seleccionar]
printf "01%s" | hexdump
0000000 3130                                   
0000002

Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Garcad en 08-11-2018, 01:14 (Jueves)
@raphik

Me puse con la compilación pero me quede a medias.

# git clone https://www.github.com/openwrt/openwrt -b openwrt-18.06
# cd openwrt/
# ./scripts/feeds update -a
# ./scripts/feeds install -a


wifislax64 ~ # find . | grep menuconfig
./openwrt/package/utils/busybox/convert_menuconfig.pl


# uname -a
Linux wifislax64 4.14.74-wifislax64 #1 SMP Fri Oct 5 10:18:46 CEST 2018 x86_64 Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz GenuineIntel GNU/Linux

# cat /etc/*-release
NAME=Wifislax64
VERSION="1.2"
ID=wifislax64
VERSION_ID=1.2
PRETTY_NAME="Wifislax64 1.2"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:wifislax64:wifislax64_linux:1.2"
HOME_URL="http://www.wifislax.com/"
SUPPORT_URL="https://foro.seguridadwireless.net/"
BUG_REPORT_URL="https://foro.seguridadwireless.net/"

# cat  /etc/issue

Welcome to \s \r (\l)


Salu2
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Garcad en 09-11-2018, 23:40 (Viernes)
Alguien que me ilumine.

openwrt # cd config/
wifislax64 config # ls
Config-build.in  Config-devel.in  Config-images.in  Config-kernel.in

Error Instalar Debian en un router OpenWrt (https://pastebin.com/CgKmEiFm)

Salu2
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Ficht en 10-11-2018, 00:21 (Sábado)
Alguien que me ilumine.

openwrt # cd config/
wifislax64 config # ls
Config-build.in  Config-devel.in  Config-images.in  Config-kernel.in

Error Instalar Debian en un router OpenWrt (https://pastebin.com/CgKmEiFm)

Salu2

Hola Garcad, que es lo que intentas hacer exactamente?

tu has seguido este tuto que te cita raphik ?
@Garcad

¿Has compilado OpenWrt para tu HG556?
https://foro.seguridadwireless.net/openwrt/(tutorial)-como-compilar-openwrt-a-nuestro-gusto/

No entiendo lo que listas de tu máquina.......

los comando para compilar openwrt.
Código: [Seleccionar]
cd openwrt
make menuconfig
make kernel_menuconfig
make        # o =>  make -j 3 V=cs
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Garcad en 10-11-2018, 02:24 (Sábado)
@Ficht si he seguido el tuto de @raphik y no existe el archivo para compilar.

Y si he compilado varios firmwares a mi gusto para mis hg566a. Tengo 3 con chip atheros.

Salu2
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Flashed en 03-12-2018, 22:28 (Lunes)
¡Hola!

¿Qué ventajas nos da correr Debain bajo un router?
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: fullspam en 24-02-2020, 13:23 (Lunes)
buenas!

He intentado compilarlo para un ac56u y no ha habido manera (este modelo no tiene lo de Compile the kernel with MIPS FPU Emulator)

No obstante, he seguido el manual de https://hqt.ro/how-to-install-debian-jessie-arm/ y tengo jessie funcionando. Lo he conseguido tanto con openwrt 15 con ñapas a la guia y exroot ( https://openwrt.org/docs/guide-user/additional-software/extroot_configuration) como con merlin y entware.

La cuestión es que he intentado meterle freepbx (https://wiki.freepbx.org/display/FOP/Installing+FreePBX+13+on+Debian+8.1)y no ha habido manera. Asterisk por apt-get se instala sin problema, pero me da rabia no poder compilar la última versión.

Con openwrt el apt-get install linux-headers-`uname -r`me funciona, pero la compilacionde asterisk se bloquea; me sorprende porque el extroot me parece mas limpio que entware a la hora de utilizar el usb como punto de montaje para instalar paquetes.
En merlin, con uname me saca el 2.6...brcm, y claro con linux-headers me dice que naranjas de la china,y no veo las sources en ningún lado (me estoy dando de golpes en el git de merlin y tomato) para intentar una make KDIR.

Hay alguna manera de "engañar" al kernel dentro de esa instalación de jessie para utilizar el 2.6 genérico y poder así compilar e instalar asterisk 13?

Gracias... y disculpas si son preguntas muy básicas; soy nivel inicial ;)
Tambien siento poner tanto la cuestión con openwrt como merlin, pero es que donde más cerca he estado de hacerlo funcionar ha sido merlín, y creo que lo de linux-headers me puede funcionar para ambos

Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Tki2000 en 26-02-2020, 08:29 (Miércoles)
[...]
Con openwrt el apt-get install linux-headers-`uname -r`me funciona, pero la compilacionde asterisk se bloquea;
[...]
¿No será porque hace falta parchear/configurar para que compile con la bibliotecas de openwrt (musl) en lugar de con glibc?
¿Optimizar por tamaño en lugar de velocidad?
Lo digo desde una total ignorancia en este aspecto, pero es lo primero que se me ocurre.
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: raphik en 29-03-2020, 17:53 (Domingo)
Debian deja de ser compatible con mips. En teoría, jessie, stretch y buster son las últimas versiones compatibles con mips.
FUENTE: https://lists.debian.org/debian-release/2019/08/msg00582.html

En la práctica, a día de hoy la jessie no está.
(https://i.imgur.com/vtTTZo4.jpg)

La stretch está y se puede descargar. La estoy intentado instalar.
(https://i.imgur.com/0CqUGuP.jpg)

La buster está, la descargo pero no la puedo instalar.
(https://i.imgur.com/EfZxT8m.jpg)
Título: Re:Instalar Debian en un router OpenWrt
Publicado por: Tki2000 en 29-03-2020, 20:11 (Domingo)
Debian deja de ser compatible con mips. En teoría, jessie, stretch y buster son las últimas versiones compatibles con mips.
FUENTE: https://lists.debian.org/debian-release/2019/08/msg00582.html

Una gran pérdida a mi parecer. Lo grande no está en hacer cosas grandes con grandes recursos, sino hacer cosas grandes con los mínimos recursos.
Para mi, es la misma filosofía que tiene Windows, que en procesadores capaces de ejecutar millones de operaciones por segundo tiene la facultad de ralentizar hasta la apertura de una miserable ventana, por la dejadez acumulada en sus interminables algoritmos que nunca funcionan bien y que interactúan con miles de otros algoritmos que nunca se usarán para las acciones más generales de uso de un ordenador, pero que por lo visto son obligatorias para el 99% de esos usuarios que no las usan, y que además no se puede optar por quitar. Para ejecutar un navegador o un programa de ofimática por lo visto ahora es necesario un procesador 10 veces más potente, aunque las tareas a ejecutar sigan siendo las mismas.
Si a Windows se le queda corto un procesador para ejecutarse con soltura, te pide uno más gordo con más "características".
Si a Debian se le queda corto un procesador se lo quita de enmedio.

Una gran pérdida por la filosofía que esto implica.

Esto es tan sólo la opinión de un servidor... la de los demás puede ser diametralmente opuesta...