Feasability check: things that I´d like to do with OpenWrt

Hi all,

and thanks for working on OpenWRT.

I´d like to experiment with wireless networks, possibly using some of the domestic routers I already own (netgears, Linksys, TPlink).

Specifically here something I'd like to do, would you mind have a look, and tell me if is possible or not (and if you have any pointers to useful material, even better).

  1. Setup a captive portal (I read about NoCatSplash, is that a good lead?)

  2. Setup a remote logging, as in, having all the logs, dump on a remote host (either via http or other options)

  3. Have a remote whitelist of Mac Addresses. When a device tries to connect, look up a remote resource (or a http rest api) to see if that mac address is whitelisted.

  1. Log low layers informations like CSI and RSSI measurements for multiple WiFi frequency bands

  2. Have some computational heavy algorithm running on the router cpu (ie the angle of arrival (AoA))

Thanks in advance!

Firstly, I think the first step in feasibility would be getting OpenWrt running on one, or more of your devices. This easily allows investigation of 1 and 2, partial look at 3, and some information, including basic graphs of signal strength, and area scans of other wifi networks for 4. 5 is not specific to OpenWrt.

There are captive portal packages available within the OpenWrt feeds.
https://openwrt.org/docs/guide-user/services/captive-portal/start

OpenWrt ships with the ability to send log messages to a syslog server over UDP, or TCP. Configuration for this is under "System" in the menu in Luci.

I have no practical experience with remote authentication/authorisation for wifi networks, do bear in mind that MAC addresses are nigh trivial to spoof.

This depends on hardware capabilities to an extent, and I think you'd definitely need to be prepared to write code/scripting to handle it to your desires.

Best I can say here is try it, and see if the device has the computational power to do what you want in a reasonable time.

PS: I am no expert, my day job is not at all related to any of this.

1 Like

I don't think there's any better platform for this kind of thing than OpenWrt. All of what you want to do is doable in one way or another.

I would definitely suggest running your "security-related" services on another host, which it does sound like you're planning already.

That's probably beyond the capabilities of consumer-grade wireless hardware, in general, as you typically can't get access to the digitized IF, so you won't have the data to be able to do the correlation between the waveforms needed.

Also, most all-in-one routers have challenges with complex calculations, between word size, limited RAM, and very often no FPU. These are mitigated on x86_64 / amd64 devices, as well as, to some extent, some of the newer ARM-based SoCs.

3 Likes

Thank you all for the good feedbacks/pointers.

@jeff, you are making very good points.

Part of my experiment is to find a way to triangulate users with commodity wireless.
I will try to implement one of the followings:
RSSI and CSI based triangulation
or Precise Power Delay Profiling with Commodity WiFi
Regarding the computation part, I'd be happy to move everything on a second host, as long as the throughput of sending the data doesn´t choke the router. (Right now I don't have an estimation of the volume of data)

Assuming I can write software for all of the above, I wouldn't mind putting together my own hardware setup. Trying to run this on commodity hardware is rather for bootstrapping the project. If I could simulate the physical layer well enough, I would use a virtual environment. All that being said, I have very little experience on hardware design and I don't know any virtual environment for those kind of things.

I wonder how modern features like multi-path and beamforming are going to complicate triangulation? I guess as long as the stations them selves do not use beamforming it should work well enough. Assuming stations are immobile would allow you to average your data over long time periods to average out spurious noise...

1 Like