2021-05-10 13:36:30 +05:30
|
|
|
# naxalnet
|
|
|
|
|
2021-05-10 15:15:42 +05:30
|
|
|
Naxalnet is an experiment to create an intranet and use it for
|
2021-05-11 13:10:31 +05:30
|
|
|
communicating with each other during an internet shutdown. It tries to use
|
2021-05-10 15:15:42 +05:30
|
|
|
existing software and tech as much as possible. Currently
|
|
|
|
you can only communicate with other peers running the same software.
|
|
|
|
|
|
|
|
The name naxal comes from Naxalbari, a village in Darjeeling,
|
|
|
|
West Bengal.
|
|
|
|
|
|
|
|
<!-- UNCOMMENT WHEN NECESSARY
|
|
|
|
|
|
|
|
**Disclaimer**:
|
2021-05-11 12:16:32 +05:30
|
|
|
In case you are either 1) a complete idiot; or 2) a member of parliament in
|
|
|
|
India; or 3) both, please be aware that this project is not affiliated with
|
2021-05-10 15:15:42 +05:30
|
|
|
any groups designated as terrorist groups in India.
|
|
|
|
|
|
|
|
Using the name Naxal does not imply any form of connection
|
|
|
|
with anyone the government collectively calles Urban Naxals (human rights
|
|
|
|
activists, lawyers, poets, writers, journalists or anyone else
|
2021-05-11 12:16:32 +05:30
|
|
|
advocating the constitutional rights).
|
2021-05-10 15:15:42 +05:30
|
|
|
|
|
|
|
-->
|
|
|
|
|
2021-05-11 13:10:31 +05:30
|
|
|
## How it works
|
|
|
|
|
|
|
|
The program naxalnet copies predefined systemd-networkd configuration
|
|
|
|
into networkd's runtime configuration directory. It uses iwctl to start
|
|
|
|
an ad-hoc network named "Hello World". The wireless interface is linked to
|
|
|
|
`bat0`, the batman interface. A bridge `bridge0` is created so that other
|
|
|
|
devices such as wired connections and wireless ap can be bridged. `bat0` is
|
|
|
|
added to the bridge, and the bridge gets an ip address (link-local, or DHCP if
|
|
|
|
any of the computers have a DHCP server configured. If these were successful,
|
|
|
|
an intranet is created. You can now use services like [IPFS](https://ipfs.io),
|
|
|
|
[Jami](https://jami.net), [Secure Scuttlebutt](https://scuttlebutt.nz)
|
|
|
|
and others which can work without internet access.
|
|
|
|
|
2021-05-10 15:15:42 +05:30
|
|
|
## Requirements
|
|
|
|
|
2021-05-11 12:16:32 +05:30
|
|
|
* systemd v248 or more (for batman support)
|
|
|
|
* Linux kernel with batman-adv module (if `modinfo batman-adv` shows no error
|
|
|
|
then you already have it)
|
|
|
|
* iwd (for starting ad-hoc network)
|
2021-05-10 15:15:42 +05:30
|
|
|
* wifi adapter with ad-hoc support
|
2021-05-11 12:16:32 +05:30
|
|
|
* two or more computers with wifi adapter
|
2021-05-10 15:15:42 +05:30
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
## Installing
|
|
|
|
|
|
|
|
### Manually
|
|
|
|
|
2021-05-11 13:10:31 +05:30
|
|
|
Clone the repo and cd into it.
|
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
Run `sudo make install` to install naxalnet. This will install naxalnet in
|
|
|
|
`/usr/{bin/naxalnet,share/naxalnet/,lib/systemd/system/naxalnet@.service}`.
|
2021-05-10 15:15:42 +05:30
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
To install in /usr/local instead, use `sudo make install PREFIX=/usr/local`.
|
|
|
|
|
|
|
|
After installing, reload systemd so that you can enable `naxalnet@.service`
|
|
|
|
without rebooting:
|
2021-05-10 15:15:42 +05:30
|
|
|
```
|
2021-05-11 12:27:58 +05:30
|
|
|
sudo systemctl daemon-reload
|
2021-05-10 15:15:42 +05:30
|
|
|
```
|
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
## Running the program
|
2021-05-10 15:15:42 +05:30
|
|
|
|
2021-05-11 13:10:31 +05:30
|
|
|
You need more than one computer running for the connection to work.
|
2021-05-11 12:27:58 +05:30
|
|
|
Any network managers such as NetworkManager and wifi daemons like
|
|
|
|
wpa_supplicant should be disabled:
|
2021-05-10 15:15:42 +05:30
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
```
|
|
|
|
sudo systemctl disable --now NetworkManager wpa_supplicant
|
|
|
|
```
|
2021-05-10 15:15:42 +05:30
|
|
|
|
2021-05-11 12:27:58 +05:30
|
|
|
Enable the naxalnet service on the device `wlan0` (iwd replaces interface
|
2021-05-11 12:16:32 +05:30
|
|
|
names like wlp1s0 with wlan0):
|
2021-05-10 15:15:42 +05:30
|
|
|
```
|
2021-05-11 12:27:58 +05:30
|
|
|
sudo systemctl enable --now naxalnet@wlan0.service
|
2021-05-10 15:15:42 +05:30
|
|
|
```
|
|
|
|
Now naxalnet will configure a batman interface on every boot.
|
|
|
|
|
2021-05-11 12:16:32 +05:30
|
|
|
## Uninstalling
|
|
|
|
|
|
|
|
Currently there is now way to uninstall naxalnet than to manually removing
|
2021-05-11 12:27:58 +05:30
|
|
|
the files:
|
|
|
|
```
|
2021-05-11 13:10:31 +05:30
|
|
|
sudo rm -r /usr/{bin/naxalnet,share/naxalnet/,lib/systemd/system/naxalnet@.service}
|
2021-05-11 12:27:58 +05:30
|
|
|
```
|
|
|
|
Or if you installed naxalnet in /usr/local:
|
|
|
|
```
|
2021-05-11 13:10:31 +05:30
|
|
|
sudo rm -r /usr/local/{bin/naxalnet,share/naxalnet/,lib/systemd/system/naxalnet@.service}
|
2021-05-11 12:27:58 +05:30
|
|
|
```
|
2021-05-11 12:16:32 +05:30
|
|
|
|
2021-05-10 15:15:42 +05:30
|
|
|
## TODO
|
|
|
|
|
|
|
|
- add support for wireless ap (WiFi hotspot)
|
|
|
|
|
|
|
|
Add list of things here.
|
|
|
|
|
|
|
|
This project is in pre-alpha stage. Documentation is incomplete.
|