This guide provides comprehensive instructions for integrating INN2 with Tor hidden services, enabling anonymous Usenet access with network-layer privacy protection.
# Verify INN is running and listening sudo systemctl status innd sudo netstat -tulpn | grep :119 # Check INN accepts localhost connections telnet 127.0.0.1 119
200 InterNetNews server INN ready, proceed to Tor installation.
sudo apt update sudo apt install tor -y
Verify Tor installation:
tor --version sudo systemctl status tor
Edit Tor configuration file:
sudo nano /etc/tor/torrc
# INN2 Hidden Service HiddenServiceDir /var/lib/tor/inn_hidden_service/ HiddenServicePort 119 127.0.0.1:119
HiddenServiceDir: Directory where Tor stores hidden service keys and hostnameHiddenServicePort: External port 119 (NNTP) maps to localhost:119 (INN)Add these hardening options to torrc:
# Security hardening HiddenServiceVersion 3 HiddenServiceMaxStreams 100 HiddenServiceMaxStreamsCloseCircuit 1 # Performance tuning NumCPUs 2 MaxMemInQueues 4096 MB # Logging (minimal for privacy) Log notice file /var/log/tor/notices.log SafeLogging 1
sudo systemctl restart tor sudo systemctl status tor
Retrieve your hidden service address:
sudo cat /var/lib/tor/inn_hidden_service/hostname
abc123...xyz.onion). This is your server's anonymous NNTP address.
Ensure INN accepts connections from localhost (Tor daemon):
sudo nano /etc/news/inn.conf
# Critical: bind to all interfaces including localhost bindaddress: 0.0.0.0 port: 119
sudo nano /etc/news/readers.conf
# Localhost access (for Tor hidden service)
auth "localhost" {
hosts: "localhost, 127.0.0.1, ::1"
default: "<localhost>"
}
access "localhost" {
users: "<localhost>"
newsgroups: "*"
access: RPA
}
Reload INN configuration:
sudo systemctl reload innd
# Install torsocks sudo apt install torsocks -y # Test connection through Tor torsocks telnet YOUR_ONION_ADDRESS.onion 119
Configure newsreader with Tor SOCKS5 proxy:
Server: YOUR_ONION_ADDRESS.onion Port: 119 Proxy: SOCKS5 Proxy Host: 127.0.0.1 Proxy Port: 9050
# Check Tor is running sudo systemctl status tor # Verify hidden service directory exists ls -la /var/lib/tor/inn_hidden_service/ # Check Tor logs sudo tail -f /var/log/tor/notices.log # Verify INN listens on localhost sudo netstat -tulpn | grep 127.0.0.1:119
# Test INN directly on localhost telnet 127.0.0.1 119 # Check INN configuration sudo /usr/lib/news/bin/inncheck # Verify bindaddress in inn.conf grep bindaddress /etc/news/inn.conf # Check firewall allows localhost sudo iptables -L INPUT -v -n | grep lo
# Fix Tor hidden service permissions sudo chown -R debian-tor:debian-tor /var/lib/tor/inn_hidden_service/ sudo chmod 700 /var/lib/tor/inn_hidden_service/
If you want ONLY Tor access, block external port 119:
# Block external NNTP, allow only localhost sudo iptables -A INPUT -p tcp --dport 119 ! -s 127.0.0.1 -j DROP sudo netfilter-persistent save
Prevent abuse via Tor:
sudo nano /etc/tor/torrc
# Add rate limiting HiddenServiceMaxStreams 50 HiddenServiceMaxStreamsCloseCircuit 1 # Connection throttling HiddenServiceNumIntroductionPoints 3
# View Tor status sudo systemctl status tor # Monitor Tor logs sudo journalctl -u tor -f # Check hidden service statistics sudo cat /var/lib/tor/inn_hidden_service/hostname sudo ls -la /var/lib/tor/inn_hidden_service/
# View active NNTP connections sudo netstat -an | grep :119 # Check INN logs for localhost connections sudo tail -f /var/log/news/news.notice | grep 127.0.0.1
sudo nano /etc/tor/torrc
# Performance tuning NumEntryGuards 8 NumCPUs 4 MaxMemInQueues 8192 MB CircuitBuildTimeout 60 # Hidden service optimization HiddenServiceNumIntroductionPoints 5
sudo nano /etc/news/inn.conf
# Increase connection timeout for Tor latency peertimeout: 1800 readtimeout: 600 # Optimize for slower Tor connections maxconnections: 100
# Backup hidden service directory (CRITICAL) sudo tar -czf inn_hs_backup_$(date +%Y%m%d).tar.gz -C /var/lib/tor inn_hidden_service/ # Store backup securely (encrypted) gpg -c inn_hs_backup_*.tar.gz
/var/lib/tor/inn_hidden_service/.
# Stop Tor sudo systemctl stop tor # Restore backup sudo tar -xzf inn_hs_backup_*.tar.gz -C /var/lib/tor/ # Fix permissions sudo chown -R debian-tor:debian-tor /var/lib/tor/inn_hidden_service/ sudo chmod 700 /var/lib/tor/inn_hidden_service/ # Restart Tor sudo systemctl start tor
torsocks telnet YOUR_ONION.onion 119
torsocks tin -r -g YOUR_ONION.onion
# Add to ~/.slrnrc server YOUR_ONION.onion port 119 # Use torsocks torsocks slrn
/var/lib/tor/inn_hidden_service/ secureRun multiple hidden services on same server:
sudo nano /etc/tor/torrc
# INN Hidden Service HiddenServiceDir /var/lib/tor/inn_hidden_service/ HiddenServicePort 119 127.0.0.1:119 # Web Interface Hidden Service HiddenServiceDir /var/lib/tor/web_hidden_service/ HiddenServicePort 80 127.0.0.1:80 HiddenServicePort 443 127.0.0.1:443