/var/log $ cat "UNIT - Universal Network Interaction Thing - Design Idea"

2019-09-07 |
raspberry pi wifi network hacking 

Introduction

Recently I started working on a project I call UNIT - Universal Network Interaction Thing. The project is inspired on gadgets like mobile WiFi routers, WiFi Pineapple, network implants and so on. I could buy them but out-of-box but they might not do exactly what I want or function properly. So I decided I want to build my own which gives me full control over everything. Also I encountered situations in the past where an pre-build one would not work due to the circumstances.

In brief my use cases include:

Design Idea

The diagram below shows what I have in mind:

UNIT

Basically I want to have six network interfaces: three WiFi and three Ethernet. The idea is to have interfaces over which I can control UNIT to monitor and configure what is running, interfaces which face to an external network and provide internet access and two interfaces to build up my own (internal) network.

Depending on the use case I want UNIT to behave differently at least on a basic level. I call that modes.

Control Interfaces

In order to configure/monitor UNIT, eth0 and wlan0 will act as control interfaces:

Access Point Mode

In access point mode UNIT provides wired and wireless access to (a) trusted wired and/or wireless network(s) via NAT.

Access Point Mode

Implementation outline:

Privacy Mode

Bascially in privacy mode UNIT functions as in access point mode. But instead of routing client traffic directly into or through the network it is connected to, UNIT will tunnel all traffic through TOR/VPN. If no TOR/VPN connection can be established the clients will have no connection to the unstrusted network.

Privacy Mode

Evil Mode

Whatever you can think of if you have 2 WiFi and 2 Ethernet adapters available. I still need to define how an what I want. Just to name a few possibilities:

Evil Mode

Hardware

My requirements for hardware components are:

I decided to go for the following setup:

And this is what it looks like plugged together:

UNIT

Current Status

I am already a bit past the initial idea and buying some hardware. I will explain in another article what I did and which obstacles I had to overcome to get it working. But in short: