Introduction
Introduction Statistics Contact Development Disclaimer Help
Title: OpenBSD mirror over Tor / I2P
Author: Solène
Date: 25 May 2024
Tags: privacy openbsd tor i2p
Description: In this article, you will learn how to reach an OpenBSD
mirror over Tor or I2P
# Introduction
For an upcoming privacy related article about OpenBSD I needed to setup
an access to an OpenBSD mirror both from a Tor hidden service and I2P.
The server does not contain any data, it only act as a proxy fetch
files from a random existing OpenBSD mirror, so it does not waste
bandwidth mirroring everything, the server does not have the storage
required anyway. There is a little cache to keep most requested files
locally.
Wikipedia page about I2P protocol
Wikipedia page about Tor
It is only useful if you can not reach OpenBSD mirrors, or if you
really need to hide your network activity. Tor or I2P will be much
slower than connecting to a mirror using HTTP(s).
However, as they exist now, let me explain how to start using them.
# Tor
Using a client with tor proxy enabled, you can reach the following
address to download installers or sets.
OpenBSD onion mirror over Tor
If you want to install or update your packages from tor, you can use
the onion address in `/etc/installurl`. However, it will not work for
sysupgrade and syspatch, and you need to export the variable
`FETCH_CMD="/usr/local/bin/curl -L -s -q -N -x
socks5h://127.0.0.1:9050"` in your environment to make `pkg_*` programs
able to use the mirror.
To make sysupgrade or syspatch able to use the onion address, you need
to have the program `torsocks` installed, and patch the script to use
torsocks:
* `sed -i 's,ftp -N,/usr/local/bin/torsocks &,' /usr/sbin/sysupgrade`
for sysupgrade
* `sed -i 's,ftp -N,/usr/local/bin/torsocks &,' /usr/sbin/syspatch` for
syspatch
These patches will have to be reapplied after each sysupgrade run.
# I2P
If you have a client with i2p proxy enabled, you can reach the
following address to download installers or sets.
OpenBSD mirror address over I2P
If you want to install or update your packages from i2p, install i2pd
with `pkg_add i2pd`, edit the file `/etc/i2pd/i2pd.conf` to set
`notransit = true` except if you want to act as an i2p relay (high
cpu/bandwidth consumption).
Replace the file `/etc/i2pd/tunnels.conf` by the following content (or
adapt your current tunnels.conf if you configured it earlier):
```
[MIRROR]
type = client
address = 127.0.0.1
port = 8080
destination = 2st32tfsqjnvnmnmy3e5o5y5hphtgt4b2letuebyv75ohn2w5umq.b32.i2p
destinationport = 8081
keys = mirror.dat
```
Now, enable and start i2pd with `rcctl enable i2pd && rcctl start
i2pd`.
After a few minutes to let i2pd establish tunnels, you should be able
to browse the mirror over i2p using the address
`http://127.0.0.1:8080/`. You can configure the port 8080 to another
you prefer by modifying the file `tunnels.conf`.
You can use the address `http://127.0.0.1:8080/pub/OpenBSD/` in
`/etc/installurl` to automatically use the I2P mirror for
installing/updating packages, or keeping your system up to date with
syspatch/sysupgrade.
Note: from experience the I2P mirror works fine to install packages,
but did not play well with fw_update, syspatch and sysupgrade, maybe
because they use ftp command that seems to easily drop the connection.
Downloading the files locally using a proper HTTP client supporting
transfer resume would be better. On the other hand, this issue may be
related to the current attack the I2P network is facing as of the time
of writing (May 2024).
# Firmware mirror
OpenBSD pulls firmware from a different server than the regular
mirrors, the address is `http://firmware.openbsd.org/firmware/`, the
files on this server are signed packages, they can be installed using
`fw_update $file`.
Both i2p and tor hidden service hostname can be reused, you only have
to change `/pub/OpenBSD/` by `/firmware/` to browse the files.
The proxy server does not cache any firmware, it directly proxy to the
genuine firmware web server. They are on a separate server for legal
matter, it seems to be a grey area.
## Disable firmware.openbsd.org
For maximum privacy, you need to neutralize `firmware.openbsd.org` DNS
lookup using a hosts entry. This is important because `fw_update` is
automatically used after a system upgrade (as of 2024).
In `/etc/hosts` add the line:
```
127.0.0.9 firmware.openbsd.org
```
The IP in the snippet above is not a mistake, it will avoid fw_update
to try to connect to a local web server if any.
## Tor access
If you use tor, it is complicated to patch `fw_update` to use torsocks,
the best method is to download the firmware manually.
Firmware onion address
## I2P access
If you use i2p, you can reuse the tunnel configuration described in the
I2P section, and pass the full url to `fw_update`:
```shell
# release users
fw_update -p http://127.0.0.1:8080/firmware/$(uname -r)/
# snapshot users
fw_update -p http://127.0.0.1:8080/firmware/snapshots/
```
Or you can browse the I2P url using an http client with the i2p proxy
to download the firmware manually.
Firmware i2p address
# Conclusion
There were no method to download OpenBSD files over Tor and I2P for
people really needing it, it is now a thing.
If you encounter issues with the service, please let me know.
You are viewing proxied material from dataswamp.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.