OpenWRT
What is OpenWRT?ΒΆ
In the ever-evolving landscape of networking technology, OpenWRT stands as a beacon of flexibility and empowerment for users seeking more from their routers. OpenWRT, short for Open Wireless Router, is an open-source firmware that replaces the standard firmware on many commercial routers. This transformation brings a wealth of advanced features, customization options, and enhanced control over your network.
With large fleets (or even small farms) of OpenWRT devices comes the challenge of managing them through their life cycle. The qbee-agent is designed to run on any Linux and is a perfect fit to achieve system management capabilities also for OpenWRT.
How to deploy the agent on OpenWRT?ΒΆ
The qbee-agent is part of the official OpenWRT packages repository and will be available in the feeds for OpenWRT releases 24.XX and later. However, the guide below shows how you can build your own packages for earlier versions of OpenWRT.
Qbee does not provide ready made packages for OpenWRT due to the vast number of targets and subtargets. However, building the agent for a particular device is quite straight forward using the SDK integration for qbee-agent.
Set up the build environment for OpenWRT as described here.
Install
golang
wget https://go.dev/dl/go1.21.9.linux-amd64.tar.gz tar -xz -f go1.21.9.linux-amd64.tar.gz -C /usr/local export PATH=$PATH:/usr/local/go/bin
Fetch the relevant OpenWRT SDK for the version of OpenWRT you intend to use and target/subtarget here
Eg. for version 23.05.3 of OpenWRT with
ramips
as target and subtargetmt7621
as subtarget.wget https://archive.openwrt.org/releases/23.05.3/targets/ramips/mt7621/openwrt-sdk-23.05.3-ramips-mt7621_gcc-12.3.0_musl.Linux-x86_64.tar.xz tar xJf openwrt-sdk-23.05.3-ramips-mt7621_gcc-12.3.0_musl.Linux-x86_64.tar.xz cd openwrt-sdk-23.05.3-ramips-mt7621_gcc-12.3.0_musl.Linux-x86_64
Build the
qbee-agent
for your target and subtarget by fetching the OpenWRT SDK integrationqbee-agent-openwrt
.git clone https://github.com/qbee-io/qbee-agent-openwrt package/qbee-agent ./scripts/feeds update packages make defconfig make package/qbee-agent/compile
Package is now built and ready to install onto the OpenWRT system.
find bin/packages/ -name "qbee-agent*.ipk" bin/packages/mipsel_24kc/base/qbee-agent_<agent_version>_mipsel_24kc.ipk
Transfer the package to the OpenWRT system, install and bootstrap
opkg install qbee-agent_<agent_version>_mipsel_24kc.ipk qbee-agent bootstrap -k <bootstrap_key> /etc/init.d/qbee-agent start
Configuring the OpenWRT device depends on the actual operational needs. You can either use the configuration options that the agent offers or use qbee-connect or qbee-cli to create a tunnel to the OpenWRT web based configuration interface.
Accessing the mapped port with a web browser will then display the following OpenWRT interface. Alternatively, it is possible to control the configuration file. This is an ideal use case for our key-value templating.
Setting initial administrative password
The OpenWRT clearly notifies that there are no administrative password set for this router. The password can easily be set (and rotated) as part of a qbee password configuration policy. Please note that your OpenWRT might not be configured with SHA hashing support and that you might need to generate passwords using legacy MD5 hashing to use for your qbee configuration.
openssl passwd -1 <your-password>