Privacy Tools Guide

OpenWRT is a Linux-based firmware distribution that replaces the proprietary software on routers, giving you complete control over your network. By flashing OpenWRT, you eliminate vendor backdoors, gain advanced networking features, and significantly improve your privacy posture. This guide walks you through the process for several commonly supported router models.

Why OpenWRT Matters for Privacy

Commercial routers typically ship with closed-source firmware that may include telemetry, remote management features, and limited security updates. OpenWRT addresses these concerns by providing:

Before proceeding, verify your router is supported by checking the OpenWRT hardware database.

Supported Router Models

These popular models have well-documented flashing processes and strong community support:

Model CPU Flash RAM Difficulty
TP-Link TL-WR841N Atheros AR7240 4MB 32MB Beginner
Linksys WRT1900AC Marvell MV88F6820 128MB 256MB Intermediate
Netgear R7800 Qualcomm IPQ8065 256MB 512MB Intermediate
Raspberry Pi 4 ARM Cortex-A72 MicroSD 1-8GB Beginner

Preparation Steps

1. Backup Current Configuration

Before flashing, document your current network settings:

# Access router web interface and export configuration
# Common IP: 192.168.0.1 or 192.168.1.1

# Record these settings:
# - WAN connection type (DHCP/PPPoE/static)
# - LAN IP range
# - Wireless SSID and password
# - ISP gateway IP

2. Download Correct Firmware

Navigate to the OpenWRT downloads page and select:

  1. Your router’s architecture
  2. The stable release version
  3. Factory firmware (not upgrade) for initial flash
  4. Sysupgrade firmware for subsequent updates

For example, for a TP-Link TL-WR841N v14:

wget https://downloads.openwrt.org/releases/23.05.5/targets/ar71xx/tiny/openwrt-23.05.5-ar71xx-tiny-tl-wr841n-v14-squashfs-factory.bin

3. Verify Firmware Integrity

Always verify the checksum before flashing:

# Download the SHA256 checksum file
wget https://downloads.openwrt.org/releases/23.05.5/targets/ar71xx/tiny/sha256sums

# Verify your firmware
sha256sum openwrt-23.05.5-ar71xx-tiny-tl-wr841n-v14-squashfs-factory.bin

Flashing Methods

Method 1: Web Interface Flash (Beginner)

This method works for most consumer routers:

  1. Connect your computer directly to a LAN port via Ethernet
  2. Disable wireless to prevent interruption
  3. Access the router’s stock firmware at 192.168.0.1 or 192.168.1.1
  4. Navigate to System Tools > Firmware Upgrade
  5. Select the OpenWRT factory firmware file
  6. Wait 3-5 minutes for flashing to complete

Do not power off the router during this process.

Method 2: TFTP Flash (Recovery)

If the web interface fails or you’re bricked, use TFTP:

# On Linux/macOS, set a static IP on your ethernet adapter
sudo ip addr add 192.168.0.66/24 dev eth0
sudo ip link set eth0 up

# Install a TFTP client
# macOS: brew install tftp
# Ubuntu: sudo apt install tftp

# Rename firmware to match vendor requirements
cp openwrt.bin tftp_recovery.bin

# Connect to router and power on while holding reset
# Use TFTP client to transfer
tftp 192.168.0.1
tftp> binary
tftp> put tftp_recovery.bin

Method 3: Command Line via SSH

For advanced control, flash directly from the stock firmware CLI:

# Connect via SSH to stock firmware
ssh admin@192.168.0.1

# On the router, transfer firmware via SCP or wget
cd /tmp
wget http://your-local-server/openwrt-factory.bin

# Backup current firmware (optional but recommended)
dd if=/dev/mtdblock0 of=backup_full.bin bs=1M count=4

# Flash the firmware
mtd -r write /tmp/openwrt-factory.bin firmware

# Router will reboot automatically

Post-Flash Configuration

Initial Access

After flashing, connect to the default OpenWRT network:

# Connect via Ethernet to LAN port
# Default IP: 192.168.1.1
# No password initially - set one via LuCI web interface

# Or connect via SSH
ssh root@192.168.11

Basic Security Hardening

Immediately configure these settings:

# Set a strong root password
passwd

# Update package lists
opkg update

# Install essential security packages
opkg install luci-app-firewall luci-proto-ipv6 luci-ssl

# Configure the firewall
uci set firewall.@defaults[0].input='ACCEPT'
uci set firewall.@defaults[0].output='ACCEPT'
uci set firewall.@defaults[0].forward='REJECT'
uci commit firewall
/etc/init.d/firewall restart

Wireless Configuration

# Set up your wireless network
uci set wireless.radio0='wifi-device'
uci set wireless.radio0.type='mac80211'
uci set wireless.radio0.channel='36'
uci set wireless.radio0.hwmode='11a'
uci set wireless.radio0.htmode='VHT80'
uci set wireless.radio0.disabled='0'

# Configure your SSID
uci set wireless.default_radio0='wifi-iface'
uci set wireless.default_radio0.device='radio0'
uci set wireless.default_radio0.mode='ap'
uci set wireless.default_radio0.ssid='YourNetworkName'
uci set wireless.default_radio0.encryption='psk2'
uci set wireless.default_radio0.key='YourStrongPassword'

# Apply wireless settings
uci commit wireless
wifi

Common Troubleshooting

Router Not Booting

If the router doesn’t respond after flashing:

  1. Wait 5-10 minutes - some routers have slow first boot
  2. Perform a hard reset: Hold the reset button for 30 seconds while powered on
  3. Try TFTP recovery with the correct vendor firmware
  4. Check console output if your router has a serial port

Cannot Access Web Interface

# Check network configuration
# Ensure your computer has a static IP in the 192.168.1.x range
sudo ip addr add 192.168.1.100/24 dev eth0

# Verify SSH is running
/etc/init.d/dropbear status

# Restart the network
/etc/init.d/network restart

Wireless Not Working

# Scan for available wireless networks
wifi status

# Check driver loading
lsmod | grep -E "mac80211|ath|rtl"

# Re-enable radio
uci set wireless.radio0.disabled='0'
uci commit wireless
wifi

Advanced Privacy Features

Once basic setup works, consider these enhancements:

VPN Server Configuration

# Install OpenVPN
opkg update
opkg install openvpn-openssl luci-app-openvpn

# Generate keys using EasyRSA
# Configure server in LuCI at Services > OpenVPN

DNS over HTTPS

# Install DNS over HTTPS package
opkg install luci-app-https-dns-proxy

# Configure at Services > HTTPS DNS Proxy
# Select providers like Cloudflare or Quad9

Network Isolation

# Create a guest network isolated from LAN
uci add network interface guest
uci set network.guest='interface'
uci set network.guest.type='bridge'
uci set network.guest.proto='static'
uci set network.guest.ipaddr='192.168.2.1'
uci set network.guest.netmask='255.255.255.0'
uci set network.guest.ip6assign='64'

# Add firewall zone for guest network
uci add firewall zone
uci set firewall.@zone[-1].name='guest'
uci set firewall.@zone[-1].input='REJECT'
uci set firewall.@zone[-1].forward='REJECT'
uci set firewall.@zone[-1].network='guest'

uci commit network firewall
/etc/init.d/network restart

Verifying Your Privacy Setup

After configuration, verify your setup:

# Check listening services
netstat -tulpn

# Verify firewall rules
iptables -L -n

# Test DNS leak
# Visit https://dnsleaktest.com

# Check for IPv6 leaks
# Visit https://ipv6leaktest.com

Maintaining Your OpenWRT Router

Keep your router secure with regular maintenance:

# Check for updates monthly
opkg update
opkg list-upgradable
opkg upgrade

# Monitor system logs
logread -f

# Set up automated backups
sysupgrade -b /tmp/backup.tar.gz
# Transfer backup to your computer
scp root@192.168.1.1:/tmp/backup.tar.gz ./

Built by theluckystrike — More at zovo.one