mirror of
https://github.com/r3bo0tbx1/tor-guard-relay.git
synced 2026-04-06 00:32:04 +02:00
📝 docs: add Tor resources and reorganize deployment files
- 🧅 Add Tor Exit Router notice template for abuse handling - ☁️ Add recommended hosting providers documentation - ⚖️ Update LEGAL.md with the latest laws and policy changes - 🚚 Move Docker and Cosmos compose files to their dedicated directories
This commit is contained in:
@@ -376,19 +376,19 @@ STATUS=$(echo "$HEALTH" | jq -r '.status')
|
||||
- **[FAQ](docs/FAQ.md)** - ⭐ **NEW!** Frequently asked questions with factual answers
|
||||
- **[Quick Start Script](scripts/utilities/quick-start.sh)** - ⭐ **NEW!** Interactive relay deployment wizard
|
||||
- **[Migration Assistant](scripts/migration/migrate-from-official.sh)** - ⭐ **NEW!** Automated migration from thetorproject/obfs4-bridge
|
||||
- **[Deployment Guide](docs/DEPLOYMENT.md)** - Complete installation for Docker CLI, Compose, Cosmos Cloud, and Portainer
|
||||
- **[Deployment Guide](docs/DEPLOYMENT.md)** - ✨ **UPDATED!** Complete installation for Docker CLI, Compose, Cosmos Cloud, and Portainer
|
||||
- **[Migration Guide](docs/MIGRATION-V1.1.X.md)** - Upgrade to >=v1.1.1 or migrate from other Tor setups
|
||||
|
||||
### Technical Reference
|
||||
- **[Architecture](docs/ARCHITECTURE.md)** - ⭐ **NEW!** Technical architecture with Mermaid diagrams
|
||||
- **[Tools Reference](docs/TOOLS.md)** - Complete guide to all 4 diagnostic tools
|
||||
- **[Monitoring Guide](docs/MONITORING.md)** - External monitoring integration, JSON health API, alerts, and observability
|
||||
- **[Tools Reference](docs/TOOLS.md)** - ✨ **UPDATED!** Complete guide to all 5 diagnostic tools
|
||||
- **[Monitoring Guide](docs/MONITORING.md)** - ✨ **UPDATED!** External monitoring integration, JSON health API, alerts, and observability
|
||||
- **[Control Port Guide](docs/CONTROL-PORT.md)** - ⭐ **NEW!** Authentication setup and Nyx integration
|
||||
- **[Backup Guide](docs/BACKUP.md)** - Data persistence, recovery, and disaster planning
|
||||
- **[Performance Guide](docs/PERFORMANCE.md)** - Optimization, tuning, and resource management
|
||||
|
||||
### Legal & Community
|
||||
- **[Legal Considerations](docs/LEGAL.md)** - Legal aspects of running a Tor relay
|
||||
- **[Legal Considerations](docs/LEGAL.md)** - ✨ **UPDATED!** Legal aspects of running a Tor relay
|
||||
- **[Documentation Index](docs/README.md)** - Complete documentation navigation
|
||||
|
||||
### Project Info
|
||||
|
||||
@@ -633,48 +633,185 @@ sudo iptables-save > /etc/iptables/rules.v4
|
||||
```
|
||||
|
||||
### Cloud Provider Firewalls
|
||||
|
||||
Don't forget to open ports in your cloud provider's firewall:
|
||||
|
||||
- **AWS**: Security Groups
|
||||
- **Google Cloud**: Firewall Rules
|
||||
- **Azure**: Network Security Groups
|
||||
- **DigitalOcean**: Cloud Firewalls
|
||||
- **Hetzner**: Firewall section
|
||||
- **Linode**: Cloud Firewalls
|
||||
- **Vultr**: Firewall Management
|
||||
- **Netcup**: Firewall Rules
|
||||
|
||||
---
|
||||
|
||||
## Hosting Provider Recommendations
|
||||
|
||||
### ✅ Tor-Friendly Providers
|
||||
### 🏆 BEST for Exit Nodes
|
||||
|
||||
| Provider | Notes | Starting Price |
|
||||
|----------|-------|----------------|
|
||||
| **Hetzner** | Tor-friendly, excellent bandwidth | €4.15/mo |
|
||||
| **OVH** | Good for high-bandwidth relays | €3.50/mo |
|
||||
| **Linode** | Reliable, easy to use | $5/mo |
|
||||
| **DigitalOcean** | Simple setup, good docs | $4/mo |
|
||||
| **Vultr** | Many locations, fair pricing | $2.50/mo |
|
||||
| Provider | Exit | Guard/Middle | Bridges | Starting Price | Locations | Notes |
|
||||
|----------|------|--------------|---------|----------------|-----------|-------|
|
||||
| **BuyVM** | ✅ | ✅ | ✅ | $2/mo | US, LU | Best value, unmetered bandwidth, often sold out |
|
||||
| **MAXKO Hosting** | ✅ | ✅ | ✅ | ~$10/mo | HR, HU, BG, ZA | Code: TOR10, crypto accepted, underrepresented regions |
|
||||
| **Privex** | ✅ (SE only) | ✅ | ✅ | €15/mo | SE, DE, FI, US, AU | Purpose-built for privacy, runs own relays, crypto required |
|
||||
| **IncogNET** | ✅ | ✅ | ✅ | ~$10/mo | NL, US | Clear exit policy, requires port 80 notice page |
|
||||
| **Linode** | ✅ (reduced) | ✅ | ✅ | $5/mo | 12+ locations | $100 free credits, reduced exit policy required |
|
||||
| **1337 Services (RDP.sh)** | ✅ | ✅ | ✅ | ~€5/mo | DE | ⚠️ Overrepresented (4.33%) - avoid for diversity |
|
||||
|
||||
### ✅ Good for Exit Nodes (with caveats)
|
||||
|
||||
| Provider | Exit | Guard/Middle | Bridges | Starting Price | Locations | Caveat |
|
||||
|----------|------|--------------|---------|----------------|-----------|--------|
|
||||
| **Hetzner** | ✅ | ✅ | ✅ | €4.15/mo | DE, FI, US | ⚠️ Overrepresented (8.26%), good bandwidth |
|
||||
| **Netcup** | ✅ | ✅ | ✅ | €2.50/mo | DE, AT, NL, US | ⚠️ Aggressive abuse handling (4.56%), best for relays |
|
||||
| **LiteServer** | ✅ | ✅ | ✅ | ~€5/mo | NL | Reduced policy + notify support, 3.1% consensus weight |
|
||||
| **Trabia** | ✅ | ✅ | ✅ | ~$5/mo | MD | Good for network diversity |
|
||||
| **i3D** | ✅ | ✅ | ✅ | €10-30/mo | NL | If abuse handled properly, 0.02% consensus |
|
||||
| **KoDDoS** | ✅ | ✅ | ✅ | ~$10/mo | NL | DDoS protection, Bitcoin accepted, 0.0% consensus |
|
||||
| **PulseServers** | ✅ | ✅ | ✅ | ~$5/mo | US, FR, CA | ⚠️ Uses OVH network (11.14% overrepresented) |
|
||||
|
||||
### ✅ Excellent for Guard/Middle Relays (No Exits)
|
||||
|
||||
| Provider | Exit | Guard/Middle | Bridges | Starting Price | Locations | Notes |
|
||||
|----------|------|--------------|---------|----------------|-----------|-------|
|
||||
| **myLoc** | ❌ | ✅ | ✅ | €5/mo | DE | Reliable, good support, 0.76% consensus |
|
||||
| **Worldstream** | ❌ | ✅ | ✅ | €10/mo | NL | Solid uptime, 0.34% consensus |
|
||||
| **Creanova** | ❌ | ✅ | ✅ | €5/mo | FI | Good for diversity, 0.07% consensus |
|
||||
| **DreamHost** | ❓ | ✅ | ✅ | $5/mo | US | Unconfirmed for exits, 0.01% consensus |
|
||||
| **MilesWeb** | ❌ | ✅ | ✅ | $3/mo | RO, US, UK | Budget-friendly, multiple locations |
|
||||
|
||||
### 🌟 Privacy-Focused Providers
|
||||
|
||||
| Provider | Exit | Guard/Middle | Bridges | Starting Price | Locations | Notes |
|
||||
|----------|------|--------------|---------|----------------|-----------|-------|
|
||||
| **1984Hosting** | ✅ | ✅ | ✅ | ~$10/mo | IS | Free speech hoster, Iceland, 0.08% consensus |
|
||||
| **FlokiNET** | ✅ | ✅ | ✅ | ~$10/mo | IS, RO, NL, FI | Sponsors Tor exits, 0.67% consensus |
|
||||
| **NiceVPS** | ✅ | ✅ | ✅ | ~$5/mo | CH, NL | Crypto accepted, has onion site |
|
||||
| **Ukrainian Data Network** | ✅ | ✅ | ✅ | ~$5/mo | UA | Free speech, crypto, 20TB fair use |
|
||||
|
||||
### 💰 Budget Champions
|
||||
|
||||
| Provider | Exit | Guard/Middle | Bridges | Starting Price | Locations | Notes |
|
||||
|----------|------|--------------|---------|----------------|-----------|-------|
|
||||
| **BuyVM** | ✅ | ✅ | ✅ | $2/mo | US, LU | Best value overall if in stock |
|
||||
| **Netcup** | ✅ | ✅ | ✅ | €2.50/mo | DE, AT, NL, US | 40-120TB bandwidth, aggressive abuse handling |
|
||||
| **VPSslim** | ✅ | ✅ | ✅ | ~$3/mo | NL | 2TB/day fair use, 0.08% consensus |
|
||||
| **iHostArt** | ✅ | ✅ | ✅ | ~$5/mo | RO | Good diversity, Romania underrepresented |
|
||||
| **Linode** | ✅ | ✅ | ✅ | $5/mo | Global | $100 free = ~20 months free |
|
||||
|
||||
### ⚠️ Providers with Restrictions
|
||||
|
||||
- **AWS**: No explicit ban, but expensive bandwidth
|
||||
- **Google Cloud**: May flag relay traffic
|
||||
- **Azure**: Check ToS carefully
|
||||
| Provider | Status | Notes |
|
||||
|----------|--------|-------|
|
||||
| **OVH/OVHcloud** | ❌ Exits | Middle/bridges OK. **Overrepresented (11.14%)** - avoid for diversity |
|
||||
| **DigitalOcean** | ❌ Exits | Middle/bridges OK. May suspend without warning, 0.41% consensus |
|
||||
| **Vultr** | ❌ Exits | Middle/bridges OK as of Oct 2024. Check current AUP, 0.08% consensus |
|
||||
| **AWS** | ❌ Exits | Expensive bandwidth, middle relays possible but costly |
|
||||
| **Google Cloud** | ⚠️ | May flag relay traffic, not recommended |
|
||||
| **Azure** | ❌ Exits | Expensive, middle relays uncertain, 0.0% consensus |
|
||||
|
||||
### ❌ AVOID - Banned or Problematic
|
||||
|
||||
| Provider | Reason |
|
||||
|----------|--------|
|
||||
| **Contabo** | Explicitly bans all Tor nodes in Section 2.9 of TOS |
|
||||
| **HitMe.pl** | Blocks accounts on first abuse report |
|
||||
| **Slask DataCenter** | No longer allows Tor traffic (Poland) |
|
||||
| **ColoCrossing/HostPapa** | All Tor nodes banned |
|
||||
| **GreenCloud** | Explicitly bans Tor in TOS |
|
||||
| **Spectrum** | Residential ISP - TOS violation |
|
||||
| **Astound Broadband** | Disallows servers/proxies |
|
||||
| **Time4VPS** | Lithuania - explicitly prohibits Tor in TOS |
|
||||
|
||||
### 💡 Quick Selection Guide
|
||||
|
||||
**For Exit Nodes:**
|
||||
- **Best Value**: BuyVM ($2/mo) if available
|
||||
- **Best Support**: MAXKO Hosting (~$10/mo) - use code TOR10
|
||||
- **Best Testing**: Linode ($5/mo + $100 credits)
|
||||
- **Budget + High Maintenance OK**: Netcup (€2.50/mo)
|
||||
- **Privacy-Focused**: Privex (€15/mo) or 1984Hosting (~$10/mo)
|
||||
|
||||
**For Guard/Middle Relays:**
|
||||
- **Best Overall**: Netcup (€2.50/mo) or Hetzner (€4.15/mo)
|
||||
- **Best Reliability**: myLoc (€5/mo)
|
||||
- **Good Diversity**: Creanova (€5/mo) or MilesWeb ($3/mo)
|
||||
|
||||
**For Bridges:**
|
||||
- **Best Privacy**: 1984Hosting (~$10/mo)
|
||||
- **Best Value**: Netcup (€2.50/mo) or BuyVM ($2/mo)
|
||||
- **Multiple Locations**: FlokiNET (~$10/mo)
|
||||
|
||||
**For Network Diversity (Underrepresented Regions):**
|
||||
- MAXKO Hosting (Croatia, Hungary, Bulgaria, South Africa)
|
||||
- Trabia (Moldova) - 0.09% consensus
|
||||
- Ukrainian Data Network (Ukraine)
|
||||
- iHostArt (Romania)
|
||||
- i3D (Netherlands) - 0.02% consensus
|
||||
- KoDDoS (Netherlands) - 0.0% consensus
|
||||
|
||||
### ⚠️ Network Diversity Warning
|
||||
|
||||
**Avoid these for NEW relays** (already overrepresented):
|
||||
- OVH/OVHcloud: 11.14% ❌
|
||||
- Hetzner: 8.26% ❌
|
||||
- Netcup: 4.56% ⚠️
|
||||
- 1337 Services/RDP.sh: 4.33% ⚠️
|
||||
- LiteServer: 3.1% ⚠️
|
||||
- BuyVM/Frantech: 2.22% ⚠️
|
||||
|
||||
**Ideal providers** (under 1% consensus weight):
|
||||
- i3D: 0.02%
|
||||
- KoDDoS: 0.0%
|
||||
- Trabia: 0.09%
|
||||
- MAXKO: 0.27%
|
||||
- Creanova: 0.07%
|
||||
- VPSslim: 0.08%
|
||||
|
||||
Choose providers with <1% consensus weight for better network health.
|
||||
|
||||
---
|
||||
|
||||
### 🏠 Home Hosting Considerations
|
||||
|
||||
**Pros:**
|
||||
- Free bandwidth (usually)
|
||||
- Full control
|
||||
- Full control over hardware
|
||||
- Can run 24/7 on low-power devices (Raspberry Pi, old laptop)
|
||||
- No monthly VPS costs
|
||||
|
||||
**Cons:**
|
||||
- ISP may have ToS restrictions
|
||||
- Residential IP might be less trusted
|
||||
- Dynamic IP issues
|
||||
- Home network security risks
|
||||
- ISP may have ToS restrictions (check first!)
|
||||
- Residential IP might be less trusted by Tor network
|
||||
- Dynamic IP issues (use DynDNS or similar)
|
||||
- Home network security risks (isolate on separate VLAN)
|
||||
- Slower upload speeds on consumer connections
|
||||
- Your home IP will be public in Tor directory
|
||||
- Can attract unwanted attention to your home address
|
||||
|
||||
**Recommendation**: Use VPS for guard/exit relays, home for bridges only.
|
||||
**ISP Considerations:**
|
||||
- **Comcast**: Exits require commercial plan + prior contact; middle relays generally OK
|
||||
- **Spectrum**: Prohibited by TOS
|
||||
- **CenturyLink/Lumen**: Home TOS doesn't explicitly ban servers
|
||||
- **Most cable ISPs**: Check TOS - many prohibit "servers"
|
||||
- **TekSavvy** (Canada): Server-friendly, supports Tor
|
||||
- **MonkeyBrains** (US): Allows Tor but colocation only
|
||||
|
||||
**Recommendation**:
|
||||
- ✅ **Bridges**: Safe for home networks (won't be publicly listed)
|
||||
- ⚠️ **Guard/Middle relays**: Check ISP TOS first, use VPS if uncertain
|
||||
- ❌ **Exit nodes**: Never on residential - use VPS with clear exit policy
|
||||
|
||||
**If running at home:**
|
||||
1. Verify ISP TOS allows servers/relays
|
||||
2. Use static IP or dynamic DNS (DuckDNS, No-IP)
|
||||
3. Isolate relay on separate VLAN/network segment
|
||||
4. Set bandwidth limits with AccountingMax (e.g., 80% of your upload speed)
|
||||
5. Monitor for abuse complaints (shouldn't get any for bridges/middle)
|
||||
6. Only run bridges or middle relays, never exits
|
||||
7. Consider power consumption (Raspberry Pi uses ~5W)
|
||||
|
||||
**Best home setup**: Raspberry Pi 4 (4GB+ RAM) running Debian, dedicated to Tor bridge only.
|
||||
|
||||
---
|
||||
|
||||
@@ -682,7 +819,7 @@ Don't forget to open ports in your cloud provider's firewall:
|
||||
|
||||
### Option 1: JSON Health API
|
||||
|
||||
v1.1.1 provides a `health` tool that outputs JSON for monitoring integration:
|
||||
>=v1.1.1 provides a `health` tool that outputs JSON for monitoring integration:
|
||||
|
||||
```bash
|
||||
# Get health status (raw JSON)
|
||||
@@ -837,3 +974,13 @@ After successful deployment:
|
||||
- 🐛 [Report Issues](https://github.com/r3bo0tbx1/tor-guard-relay/issues)
|
||||
- 💬 [Tor Project Forum](https://forum.torproject.net/)
|
||||
- 📧 [Relay Operators List](https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-relays)
|
||||
|
||||
---
|
||||
|
||||
## 📚 Additional Resources
|
||||
|
||||
- **Tor Project Good/Bad ISPs List**: https://community.torproject.org/relay/community-resources/good-bad-isps/
|
||||
- **Tor Metrics**: https://metrics.torproject.org/ (check AS/country distribution)
|
||||
- **Reduced Exit Policy**: https://trac.torproject.org/projects/tor/wiki/doc/ReducedExitPolicy
|
||||
- **Exit Guidelines**: https://community.torproject.org/relay/community-resources/tor-exit-guidelines/
|
||||
- **Abuse Templates**: https://community.torproject.org/relay/community-resources/tor-abuse-templates/
|
||||
413
docs/LEGAL.md
413
docs/LEGAL.md
@@ -46,6 +46,16 @@ Tor relay operation is generally legal, but specific laws vary:
|
||||
|
||||
---
|
||||
|
||||
### 🚨 2024-2025 Global Trends
|
||||
|
||||
Recent legislative shifts have increased risks in several regions:
|
||||
|
||||
- **The "Duty of Care" Shift:** New laws in the UK and EU are shifting focus from "passive infrastructure" to requiring operators to prevent harm, increasing administrative burdens.
|
||||
- **Mandatory Registration:** Countries in Southeast Asia and Africa (Indonesia, Nigeria) are enforcing strict "service provider" registration that volunteer relays cannot meet.
|
||||
- **Anti-Scam Crackdowns:** Broad "anti-fraud" laws in Thailand and Philippines are effectively criminalizing anonymity tools used by scammers, catching Tor relays in the crossfire.
|
||||
|
||||
---
|
||||
|
||||
## Legal Frameworks
|
||||
|
||||
### International Standards
|
||||
@@ -81,7 +91,7 @@ The EU has strong privacy protections:
|
||||
|
||||
### 🟢 Generally Safe (Explicit Protection)
|
||||
|
||||
#### United States
|
||||
#### United States 🇺🇸
|
||||
|
||||
**Status:** Legal to run relay
|
||||
**Legal basis:** First Amendment protections, ECPA Safe Harbor provisions
|
||||
@@ -98,7 +108,7 @@ The EU has strong privacy protections:
|
||||
|
||||
---
|
||||
|
||||
#### European Union (General)
|
||||
#### European Union (General) 🇪🇺
|
||||
|
||||
**Status:** Legal to run relay
|
||||
**Legal basis:** GDPR, Article 8, E-Privacy Directive
|
||||
@@ -120,7 +130,21 @@ The EU has strong privacy protections:
|
||||
|
||||
---
|
||||
|
||||
#### Canada
|
||||
#### Norway 🇳🇴
|
||||
|
||||
**Status:** Safe / Regulated
|
||||
**Legal basis:** Electronic Communications Act (Ekom Act) 2025; E-Commerce Act Section 16-18
|
||||
|
||||
**Key points:**
|
||||
- **2025 Update:** The new Ekom Act implements the EU Electronic Communications Code. While it increases registration duties for commercial providers, volunteer relays generally retain "mere conduit" liability protection.
|
||||
- **Liability:** Section 16-18 of the E-Commerce Act exempts service providers from liability for transmitted content if they do not modify it.
|
||||
- **Risk:** High-bandwidth exit nodes on dedicated servers might be scrutinized as "commercial" undertakings, triggering registration.
|
||||
|
||||
**Recommendation:** ✅ **Safe for Guard Relay; Use non-commercial status**
|
||||
|
||||
---
|
||||
|
||||
#### Canada 🇨🇦
|
||||
|
||||
**Status:** Legal to run relay
|
||||
**Legal basis:** Canadian Charter of Rights and Freedoms (Section 7 - privacy)
|
||||
@@ -135,7 +159,7 @@ The EU has strong privacy protections:
|
||||
|
||||
---
|
||||
|
||||
#### Australia
|
||||
#### Australia 🇦🇺
|
||||
|
||||
**Status:** Legal to run relay
|
||||
**Legal basis:** Implied constitutional right to privacy
|
||||
@@ -143,8 +167,7 @@ The EU has strong privacy protections:
|
||||
**Key points:**
|
||||
- No law explicitly prohibits relay operation
|
||||
- Australian communications privacy protected
|
||||
- Courts have upheld privacy rights
|
||||
- Assistance and Access Act doesn't criminalize tools
|
||||
- Assistance and Access Act (TOLA) allows authorities to request technical help, but rarely targets individual relays.
|
||||
|
||||
**Note:** Government may investigate unusual network activity; cooperation may be required, but operation itself isn't illegal.
|
||||
|
||||
@@ -152,7 +175,7 @@ The EU has strong privacy protections:
|
||||
|
||||
---
|
||||
|
||||
#### Japan
|
||||
#### Japan 🇯🇵
|
||||
|
||||
**Status:** Legal to run relay
|
||||
**Legal basis:** Article 21 (freedom of expression), privacy laws
|
||||
@@ -161,7 +184,61 @@ The EU has strong privacy protections:
|
||||
- Japan has strong privacy laws
|
||||
- No law criminalizes relay operation
|
||||
- Generally supportive of privacy tools
|
||||
- Anime industry even jokes about Tor in official materials
|
||||
|
||||
**Recommendation:** ✅ **Safe to operate guard relay**
|
||||
|
||||
---
|
||||
|
||||
#### New Zealand 🇳🇿
|
||||
|
||||
**Status:** Safe
|
||||
**Legal basis:** Telecommunications (Interception Capability and Security) Act 2013 (TICSA)
|
||||
|
||||
**Key points:**
|
||||
- **Network Operator Definition:** TICSA obligations generally apply to large operators (ISPs). Individual volunteer relays rarely meet the threshold to be classified as a "public telecommunications network" requiring interception capability.
|
||||
- **Intelligence:** As a "Five Eyes" member, traffic is monitored, but operation itself is legal.
|
||||
- **ISP Terms:** The main barrier is usually ISP Terms of Service for residential connections rather than criminal law.
|
||||
|
||||
**Recommendation:** ✅ **Safe to operate guard relay**
|
||||
|
||||
---
|
||||
|
||||
#### Chile 🇨🇱
|
||||
|
||||
**Status:** Very Safe (Net Neutrality Pioneer)
|
||||
**Legal basis:** Law 20.453 (Net Neutrality), Cybersecurity Framework Law 2024
|
||||
|
||||
**Key points:**
|
||||
- **Strong Neutrality:** Chile was the first nation to mandate Net Neutrality. ISPs are legally prohibited from arbitrarily blocking or interfering with protocols like Tor.
|
||||
- **2024 Update:** The new Cybersecurity Framework Law creates a National Agency (ANCI) but focuses on "essential services" (power, water, telecom companies), leaving volunteer operators largely unregulated.
|
||||
|
||||
**Recommendation:** ✅ **Excellent location; Strong legal protections**
|
||||
|
||||
---
|
||||
|
||||
#### Argentina 🇦🇷
|
||||
|
||||
**Status:** Safe
|
||||
**Legal basis:** Supreme Court Case Law (Rodriguez v. Google)
|
||||
|
||||
**Key points:**
|
||||
- **"Rodriguez" Doctrine:** Intermediaries are not liable for third-party content unless they have actual knowledge of a specific illegality and fail to act.
|
||||
- **Tor Compatibility:** Since Guard/Exit operators cannot see content (due to encryption/onion routing), they cannot have "actual knowledge," providing a strong legal defense.
|
||||
- **2025 Reform:** New data protection reforms are aligning with GDPR, further formalizing privacy rights.
|
||||
|
||||
**Recommendation:** ✅ **Safe to operate guard relay**
|
||||
|
||||
---
|
||||
|
||||
#### South Africa 🇿🇦
|
||||
|
||||
**Status:** Safe
|
||||
**Legal basis:** Electronic Communications and Transactions Act (ECTA); Cybercrimes Act 2020
|
||||
|
||||
**Key points:**
|
||||
- **Mere Conduit:** Section 73 of ECTA provides a limited liability shield for service providers acting as "mere conduits".
|
||||
- **Cybercrimes Act:** While it criminalizes hacking, it places reporting obligations primarily on large Electronic Communications Service Providers (ECSPs), not typically individual volunteers.
|
||||
- **Privacy:** POPIA (Protection of Personal Information Act) encourages data minimization, which aligns with Tor's no-logs design.
|
||||
|
||||
**Recommendation:** ✅ **Safe to operate guard relay**
|
||||
|
||||
@@ -169,7 +246,35 @@ The EU has strong privacy protections:
|
||||
|
||||
### 🟡 Gray Area (Legal but Cautious)
|
||||
|
||||
#### Brazil
|
||||
#### United Kingdom 🇬🇧
|
||||
|
||||
**Status:** Legal but Bureaucratic Risk
|
||||
**Legal basis:** Online Safety Act 2023 (OSA); Investigatory Powers Act 2016
|
||||
|
||||
**Key points:**
|
||||
- **Online Safety Act 2023:** Imposes a "duty of care" on providers. While relays don't "host" content, exit nodes facilitating access to illegal sites face increased scrutiny and "collateral blocking" by ISPs.
|
||||
- **Investigatory Powers:** The government has broad powers to issue "technical capability notices" or "equipment interference" warrants. While usually targeted at large Telcos, the legal scope is wide.
|
||||
- **ISP Hostility:** UK ISPs actively filter "anomalous" traffic to comply with safety duties; expect account suspensions.
|
||||
|
||||
**Recommendation:** ⚠️ **Gray Area; Guard Relay OK on commercial hosting (not home)**
|
||||
|
||||
---
|
||||
|
||||
#### Poland 🇵🇱
|
||||
|
||||
**Status:** Legal but Procedural Risk
|
||||
**Legal basis:** Electronic Communications Law (ECL) 2024
|
||||
|
||||
**Key points:**
|
||||
- **Hardware Seizure:** Police have broad powers to seize "evidence" (servers) during investigations. Operators often lose hardware for months even if innocent.
|
||||
- **2024 ECL:** Distinguishes between "business activity" and volunteers. Non-commercial relays avoid data retention duties, but "commercial" definitions can be blurry.
|
||||
- **Anti-Abuse:** New laws (CAEC) allow ISPs to block "abusive" traffic patterns, which often misflags Tor.
|
||||
|
||||
**Recommendation:** ⚠️ **Guard Relay Safe; Exit Relay High Risk (Hardware Loss)**
|
||||
|
||||
---
|
||||
|
||||
#### Brazil 🇧🇷
|
||||
|
||||
**Status:** Unclear; legally risky but not explicit ban
|
||||
**Legal basis:** Brazilian Civil Constitution (Article 5 - privacy rights)
|
||||
@@ -179,13 +284,26 @@ The EU has strong privacy protections:
|
||||
- Government is taking stronger internet surveillance stance
|
||||
- May face pressure from authorities
|
||||
- Some local hostility to anonymity tools
|
||||
- Best practice: contact lawyer first
|
||||
|
||||
**Recommendation:** ⚠️ **Consult local lawyer; moderate risk for guard relay**
|
||||
|
||||
---
|
||||
|
||||
#### Mexico
|
||||
#### Colombia 🇨🇴
|
||||
|
||||
**Status:** Gray Area
|
||||
**Legal basis:** Habeas Data (Constitutional) vs. Police Powers
|
||||
|
||||
**Key points:**
|
||||
- **No Safe Harbor:** Unlike Chile, Colombia lacks a specific law shielding intermediaries from liability, relying on court interpretation.
|
||||
- **Enforcement:** The DIJIN (cybercrime unit) is active. Equipment seizure during investigations is a real risk if an IP is linked to a crime.
|
||||
- **Data Reform 2025:** Upcoming amendments to Statutory Law 1581 may impose stricter processing definitions.
|
||||
|
||||
**Recommendation:** ⚠️ **Moderate Risk; Guard relay safer than Exit**
|
||||
|
||||
---
|
||||
|
||||
#### Mexico 🇲🇽
|
||||
|
||||
**Status:** Unclear; politically sensitive
|
||||
**Legal basis:** Constitution Article 6 (free speech, though weak)
|
||||
@@ -201,60 +319,166 @@ The EU has strong privacy protections:
|
||||
|
||||
---
|
||||
|
||||
#### India
|
||||
#### Philippines 🇵🇭
|
||||
|
||||
**Status:** Unclear; politically sensitive
|
||||
**Legal basis:** Constitution Article 19 (free speech, though restricted)
|
||||
**Status:** Gray / High Risk
|
||||
**Legal basis:** Cybercrime Prevention Act of 2012; SIM Registration Act
|
||||
|
||||
**Key points:**
|
||||
- Tor isn't specifically banned
|
||||
- Government increasingly hostile to encryption
|
||||
- Telecom Regulatory Authority may investigate
|
||||
- Operating relay could trigger surveillance
|
||||
- Citizenship Amendment Act and other laws increasing restrictions
|
||||
- Best practice: know local laws; be careful
|
||||
- **Aiding & Abetting:** The law punishes "aiding" cybercrimes. Without a "safe harbor" clause, exit node operators could theoretically be charged as accomplices.
|
||||
- **Cyber-Libel:** Intense focus on criminal libel makes anonymity tools politically sensitive.
|
||||
- **De-anonymization:** Mandatory SIM registration removes anonymity for mobile-based connections.
|
||||
|
||||
**Recommendation:** ⚠️ **Risky; consult local lawyer; consider risks carefully**
|
||||
**Recommendation:** ⚠️ **High Risk for Exits; Guard Relay likely okay**
|
||||
|
||||
---
|
||||
|
||||
#### Russia
|
||||
#### India 🇮🇳
|
||||
|
||||
**Status:** Risky; government hostile to Tor
|
||||
**Legal basis:** Russian law is authoritarian; Tor operations frowned upon
|
||||
**Status:** Unclear; politically sensitive
|
||||
**Legal basis:** IT Rules (2021), CERT-In Directions
|
||||
|
||||
**Key points:**
|
||||
- Tor isn't explicitly illegal
|
||||
- **CERT-In Rules:** VPN/Cloud providers must log user data for 5 years. Tor relays cannot comply.
|
||||
- Tor is not banned, but the government is increasingly hostile to encryption.
|
||||
- Citizenship Amendment Act and other laws increasing restrictions
|
||||
|
||||
**Recommendation:** ⚠️ **High Risk; consider hosting outside India**
|
||||
|
||||
---
|
||||
|
||||
#### Russia 🇷🇺
|
||||
|
||||
**Status:** Dangerous; Government Hostile
|
||||
**Legal basis:** "Sovereign Internet" laws; Roskomnadzor regulations
|
||||
|
||||
**Key points:**
|
||||
- Public Tor relays are actively blocked by DPI (Deep Packet Inspection).
|
||||
- Operating a public relay makes you a target for investigation.
|
||||
- Roskomnadzor (communications regulator) actively blocks Tor
|
||||
- Operating relay could trigger investigation
|
||||
- Government takes dim view of anonymity tools
|
||||
- Best practice: don't attract attention
|
||||
- VPN and proxy services are targeted
|
||||
|
||||
**Recommendation:** 🔴 **High risk; not recommended without security awareness**
|
||||
**Recommendation:** 🔴 **High risk; not recommended**
|
||||
|
||||
---
|
||||
|
||||
### 🔴 Dangerous (Legal Risk, Authoritarian Context)
|
||||
|
||||
#### China
|
||||
#### Thailand 🇹🇭
|
||||
|
||||
**Status:** Dangerous; effectively illegal
|
||||
**Legal basis:** Chinese law effectively criminalizes unauthorized networks
|
||||
**Status:** Dangerous; Functionally Illegal
|
||||
**Legal basis:** Computer Crime Act (CCA); Anti-Online Scam Decrees (2024)
|
||||
|
||||
**Key points:**
|
||||
- Tor network is routinely blocked
|
||||
- **Anti-Scam Decrees:** New laws empower the "Anti-Online Scam Operation Center" (AOC) to suspend services and freeze accounts without notice for suspicious activity.
|
||||
- **Liability:** Section 14 of the CCA criminalizes "inputting false data." Operators can be held liable for "consenting" to the transmission of illegal content.
|
||||
- **Risk:** High probability of immediate internet termination and police investigation.
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; Do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Indonesia 🇮🇩
|
||||
|
||||
**Status:** Dangerous / Illegal
|
||||
**Legal basis:** Ministerial Regulation 5/2020 (PSE)
|
||||
|
||||
**Key points:**
|
||||
- **Mandatory Registration:** All "Electronic System Providers" (PSE) must register with the Ministry (Kominfo). This requires a Tax ID and business license, making it impossible for anonymous/volunteer operators.
|
||||
- **Blocking:** Unregistered services are routinely blocked (e.g., PayPal, Steam were temporarily blocked).
|
||||
- **Surveillance:** Registered PSEs must provide law enforcement access, which Tor protocols cannot technically fulfill.
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; Do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Nigeria 🇳🇬
|
||||
|
||||
**Status:** Dangerous / High Risk
|
||||
**Legal basis:** Cybercrimes (Amendment) Act 2024
|
||||
|
||||
**Key points:**
|
||||
- **Mandatory Retention:** The 2024 Amendment requires "service providers" to retain traffic data and subscriber info for two years.
|
||||
- **Incompatibility:** Operating a Tor node (which deletes logs by design) is a direct violation of this mandatory retention law.
|
||||
- **Broad Definition:** The term "service provider" is interpreted broadly to include anyone facilitating internet traffic.
|
||||
|
||||
**Recommendation:** 🔴 **High risk; Do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Ukraine 🇺🇦 (Martial Law Context)
|
||||
|
||||
**Status:** High Risk / Special Context
|
||||
**Legal basis:** Martial Law Decrees; National Security Council (NSDC)
|
||||
|
||||
**Key points:**
|
||||
- **Dual-Use Paradox:** While Tor is used for freedom (accessing news in occupied areas), operating a relay inside government-controlled territory is risky.
|
||||
- **Hostile Node:** High-bandwidth encrypted nodes may be flagged by the SBU (Security Service) as Russian sabotage/botnet infrastructure.
|
||||
- **Rights Suspended:** Derogations from ECHR privacy rights are in effect due to the war.
|
||||
|
||||
**Recommendation:** 🔴 **High Operational Risk; Not recommended inside country**
|
||||
|
||||
---
|
||||
|
||||
#### Egypt 🇪🇬
|
||||
|
||||
**Status:** Illegal
|
||||
**Legal basis:** Anti-Cyber and Information Technology Crimes Law (No. 175 of 2018)
|
||||
|
||||
**Key points:**
|
||||
- **Criminalization of Evasion:** Article 22 penalizes facilitating access to blocked websites. Running a relay is viewed as aiding censorship circumvention.
|
||||
- **Active Blocking:** The government uses DPI to block OpenVPN and Tor protocols.
|
||||
- **Arrest Risk:** High risk of arrest for "misuse of telecommunications."
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; Do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Turkey 🇹🇷
|
||||
|
||||
**Status:** Dangerous; Active Blocking
|
||||
**Legal basis:** Cybersecurity Law No. 7545 (March 2025)
|
||||
|
||||
**Key points:**
|
||||
- **2025 Update:** New laws introduce strict penalties for "unauthorized networks."
|
||||
- ISPs use DPI to throttle or block Tor and VPNs.
|
||||
|
||||
**Recommendation:** 🔴 **High risk; do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Vietnam 🇻🇳
|
||||
|
||||
**Status:** Dangerous; Data Localization
|
||||
**Legal basis:** Law on Cybersecurity (Decree 53/2022)
|
||||
|
||||
**Key points:**
|
||||
- Requires foreign and domestic tech services to store data locally.
|
||||
- Encrypted traffic is viewed with extreme suspicion.
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### China 🇨🇳
|
||||
|
||||
**Status:** Dangerous; Effectively Illegal
|
||||
**Legal basis:** CSCL and "unauthorized network" regulations
|
||||
|
||||
**Key points:**
|
||||
- The "Great Firewall" actively hunts Tor relays.
|
||||
- Operating relay would use circumvention (also illegal)
|
||||
- Government actively prosecutes "unauthorized internet services"
|
||||
- Operating a relay is viewed as providing "tools for circumvention."
|
||||
- Human rights lawyers have faced prosecution for similar tools
|
||||
- Best practice: don't operate Tor relay in China
|
||||
- Even bridge operation is risky
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Iran
|
||||
#### Iran 🇮🇷
|
||||
|
||||
**Status:** Dangerous; hostile to circumvention
|
||||
**Legal basis:** Islamic Revolutionary Court rulings on "hostile networks"
|
||||
@@ -264,13 +488,12 @@ The EU has strong privacy protections:
|
||||
- Operating relay would violate cybercrimes laws
|
||||
- Government prosecutes for helping people circumvent censorship
|
||||
- Political prisoners have been detained for tech-related offenses
|
||||
- Best practice: avoid entirely
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Saudi Arabia
|
||||
#### Saudi Arabia 🇸🇦
|
||||
|
||||
**Status:** Dangerous; cybercrime laws applied aggressively
|
||||
**Legal basis:** Saudi Cybercrime Law (2007)
|
||||
@@ -280,13 +503,12 @@ The EU has strong privacy protections:
|
||||
- Cybercrime law penalties include imprisonment
|
||||
- Operating relay could be prosecuted as "assisting crime"
|
||||
- Government aggressively monitors networks
|
||||
- Best practice: don't operate
|
||||
|
||||
**Recommendation:** 🔴 **NOT SAFE; do not operate**
|
||||
|
||||
---
|
||||
|
||||
#### Pakistan
|
||||
#### Pakistan 🇵🇰
|
||||
|
||||
**Status:** Dangerous; government hostile
|
||||
**Legal basis:** Pakistan Telecom Authority (PTA) regulations
|
||||
@@ -296,7 +518,6 @@ The EU has strong privacy protections:
|
||||
- Operating circumvention tools is risky
|
||||
- Cybercrime Ordinance broadly interpreted
|
||||
- Government has prosecuted for tech activism
|
||||
- Best practice: consult lawyer; very careful
|
||||
|
||||
**Recommendation:** 🔴 **High risk; not recommended**
|
||||
|
||||
@@ -308,14 +529,33 @@ The EU has strong privacy protections:
|
||||
|--------|------------|-----------|-------|
|
||||
| 🇺🇸 USA | ✅ Safe | ⚠️ Risky | DMCA claims possible |
|
||||
| 🇪🇺 EU | ✅ Safe | ✅ Safe | GDPR protection |
|
||||
| 🇳🇴 Norway | ✅ Safe | ⚠️ Gray | 2025 Ekom Act |
|
||||
| 🇨🇦 Canada | ✅ Safe | ✅ Safe | Charter protection |
|
||||
| 🇦🇺 Australia | ✅ Safe | ⚠️ Gray | May require support |
|
||||
| 🇯🇵 Japan | ✅ Safe | ✅ Safe | Privacy protections |
|
||||
| 🇳🇿 New Zealand | ✅ Safe | ⚠️ Gray | TICSA obligations rare |
|
||||
| 🇨🇱 Chile | ✅ Safe | ✅ Safe | Net neutrality pioneer |
|
||||
| 🇦🇷 Argentina | ✅ Safe | ✅ Safe | Rodriguez doctrine |
|
||||
| 🇿🇦 South Africa | ✅ Safe | ⚠️ Gray | ECTA protection |
|
||||
| 🇬🇧 UK | ⚠️ Gray | 🔴 High | Online Safety Act |
|
||||
| 🇵🇱 Poland | ⚠️ Gray | 🔴 High | Hardware seizure risk |
|
||||
| 🇧🇷 Brazil | ⚠️ Gray | 🔴 High | Consult lawyer |
|
||||
| 🇨🇴 Colombia | ⚠️ Gray | 🔴 High | No safe harbor |
|
||||
| 🇲🇽 Mexico | ⚠️ Gray | 🔴 High | Weak rule of law |
|
||||
| 🇵🇭 Philippines | ⚠️ Gray | 🔴 High | Aiding & abetting risk |
|
||||
| 🇮🇳 India | ⚠️ Gray | 🔴 High | Growing hostility |
|
||||
| 🇷🇺 Russia | ⚠️ Gray | 🔴 Very High | Blocked network |
|
||||
| 🇹🇭 Thailand | 🔴 No | 🔴 No | Anti-scam decrees |
|
||||
| 🇮🇩 Indonesia | 🔴 No | 🔴 No | Mandatory registration |
|
||||
| 🇳🇬 Nigeria | 🔴 No | 🔴 No | Data retention law |
|
||||
| 🇺🇦 Ukraine | 🔴 No | 🔴 No | Martial law context |
|
||||
| 🇪🇬 Egypt | 🔴 No | 🔴 No | Criminalized |
|
||||
| 🇹🇷 Turkey | 🔴 No | 🔴 No | Active blocking |
|
||||
| 🇻🇳 Vietnam | 🔴 No | 🔴 No | Data localization |
|
||||
| 🇨🇳 China | 🔴 No | 🔴 No | Criminalized |
|
||||
| 🇮🇷 Iran | 🔴 No | 🔴 No | Blocked + hostile |
|
||||
| 🇸🇦 Saudi Arabia | 🔴 No | 🔴 No | Aggressive enforcement |
|
||||
| 🇵🇰 Pakistan | 🔴 No | 🔴 No | PTA blocking |
|
||||
|
||||
---
|
||||
|
||||
@@ -458,6 +698,25 @@ ExitPolicy reject *:*
|
||||
Log notice file /var/log/tor/notices.log
|
||||
```
|
||||
|
||||
### 📢 Transparency & Exit Notices
|
||||
|
||||
If you choose to run an **Exit Relay** (high risk), it is **critical** to run a web server on your relay's IP address (Port 80) that serves an "Exit Notice."
|
||||
|
||||
**Why this helps legally:**
|
||||
1. **Immediate Context:** When a sysadmin sees "attacking" traffic from your IP, their first step is often to type your IP into a browser.
|
||||
2. **Reduces Abuse Reports:** If they see a professional notice explaining that this is a Tor Exit Node (and not a hacker's machine), they often discard the complaint immediately.
|
||||
3. **Safe Harbor:** It explicitly states your status as a common carrier/infrastructure provider.
|
||||
|
||||
**Implementation:**
|
||||
Add this to your `torrc`:
|
||||
```conf
|
||||
DirPort 80
|
||||
DirPortFrontPage /etc/tor/index.html
|
||||
```
|
||||
|
||||
> Privacy-friendly Exit Notice Template that you can use can be found in [`templates/tor-exit-notice`](/templates/tor-exit-notice/).
|
||||
> Make sure to change your exit node's IP/contact info.
|
||||
|
||||
---
|
||||
|
||||
## Abuse Handling
|
||||
@@ -570,78 +829,4 @@ cannot identify users or their activity."
|
||||
|
||||
- **Freedom of the Press Foundation** - https://freedom.press
|
||||
- Legal resources for activists
|
||||
- Supports at-risk operators
|
||||
|
||||
### Reading
|
||||
|
||||
- **EFF's "Tor Legal FAQ"** - Comprehensive Q&A
|
||||
- **Tor Project's "Relay Guide"** - Operator best practices
|
||||
- **UN Resolution 68/167** - International privacy rights
|
||||
|
||||
### If You Need Help
|
||||
|
||||
1. **EFF Threat Lab** - https://www.eff.org/contact
|
||||
2. **Access Now Helpline** - https://www.accessnow.org/help
|
||||
3. **Local ACLU chapter** (USA) - https://www.aclu.org
|
||||
4. **Privacy International** (International) - https://privacy.international
|
||||
|
||||
---
|
||||
|
||||
## Quick Decision Tree
|
||||
|
||||
```
|
||||
Do you want to run a Tor relay?
|
||||
|
||||
├─ Are you in a democracy with strong rule of law?
|
||||
│ ├─ YES → Continue to next question
|
||||
│ └─ NO → Research your country's laws carefully; consult lawyer
|
||||
│
|
||||
├─ Will you run a guard relay (not exit)?
|
||||
│ ├─ YES → Likely legal; check ISP terms
|
||||
│ └─ NO (exit relay planned) → High risk; understand liability
|
||||
│
|
||||
├─ Do you understand Tor's purpose?
|
||||
│ ├─ YES → Proceed
|
||||
│ └─ NO → Read Tor Project documentation first
|
||||
│
|
||||
├─ Have you checked your ISP's terms?
|
||||
│ ├─ YES, allowed → Deploy relay
|
||||
│ ├─ YES, prohibited → Choose different ISP or don't operate
|
||||
│ └─ UNCLEAR → Contact ISP first
|
||||
│
|
||||
└─ Deploy responsibly ✅
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
**Operating a Tor guard relay is generally legal in:**
|
||||
- ✅ All democracies with rule of law
|
||||
- ✅ EU countries
|
||||
- ✅ Most developed nations
|
||||
|
||||
**Operating is risky or illegal in:**
|
||||
- ⚠️ Countries with government censorship
|
||||
- ⚠️ Authoritarian regimes
|
||||
- 🔴 Countries actively blocking Tor
|
||||
|
||||
**This project's stance:**
|
||||
- We recommend guard relays (not exit relays) to minimize legal risk
|
||||
- We encourage consulting local laws and lawyers
|
||||
- We believe internet privacy is a human right
|
||||
- We support operators in safe jurisdictions
|
||||
|
||||
---
|
||||
|
||||
**Remember:** This is informational guidance, not legal advice. Consult a local attorney if you have specific legal concerns.
|
||||
|
||||
---
|
||||
|
||||
## Support
|
||||
|
||||
- 📖 [Main README](../README.md)
|
||||
- 🚀 [Deployment Guide](./DEPLOYMENT.md)
|
||||
- 🐛 [Report Issues](https://github.com/r3bo0tbx1/tor-guard-relay/issues)
|
||||
- 🌐 [Tor Project](https://www.torproject.org)
|
||||
- ⚖️ [EFF Legal Resources](https://www.eff.org/tor-legal)
|
||||
- Supports at-risk
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
This directory contains deployment templates for running Tor relays in **3 modes**: Guard/Middle, Exit, and Bridge (obfs4).
|
||||
|
||||
## 📁 Template Files Overview
|
||||
## 📁 Template Files Overview
|
||||
|
||||
### Cosmos Cloud Templates (JSON)
|
||||
### [Cosmos Cloud Templates (JSON)](/templates/cosmos-compose/)
|
||||
|
||||
| File | Mode | ENV Naming | Use Case |
|
||||
|------|------|------------|----------|
|
||||
@@ -13,8 +13,10 @@ This directory contains deployment templates for running Tor relays in **3 modes
|
||||
| `cosmos-compose-bridge.json` | Bridge (obfs4) | TOR_* | Bridge relay, ENV-based config |
|
||||
| `cosmos-compose-bridge-official.json` | Bridge (obfs4) | OR_PORT, PT_PORT, EMAIL | **Drop-in replacement for thetorproject/obfs4-bridge** |
|
||||
| `cosmos-compose-multi-relay.json` | All 3 modes | TOR_* | Run guard, exit, and bridge simultaneously |
|
||||
| `cosmos-bind-config-guard-relay.json` | Guard/Middle | TOR_* | Standard guard relay, mounted config |
|
||||
| `cosmos-bind-config-bridge.json` | Bridge (obfs4) | TOR_* | Bridge relay, mounted config |
|
||||
|
||||
### Docker Compose Templates (YAML)
|
||||
### [Docker Compose Templates (YAML)](/templates/docker-compose/)
|
||||
|
||||
| File | Mode | ENV Naming | Use Case |
|
||||
|------|------|------------|----------|
|
||||
@@ -90,6 +92,7 @@ TOR_EXIT_POLICY=accept *:80,accept *:443,reject *:*
|
||||
docker run -d \
|
||||
--name tor-bridge \
|
||||
--network host \
|
||||
--security-opt no-new-privileges:true \
|
||||
-v /path/to/relay-bridge.conf:/etc/tor/torrc:ro \
|
||||
-v tor-data:/var/lib/tor \
|
||||
r3bo0tbx1/onion-relay:latest
|
||||
@@ -295,5 +298,5 @@ If you still see this error after updating to v1.1.1:
|
||||
---
|
||||
|
||||
**Version:** 1.1.3
|
||||
**Last Updated:** 2025-12-05
|
||||
**Last Updated:** 2025-12-06
|
||||
**Maintainer:** rE-Bo0t.bx1 <r3bo0tbx1@brokenbotnet.com>
|
||||
|
||||
58
templates/tor-exit-notice/tor-exit-notice (official v1).html
Normal file
58
templates/tor-exit-notice/tor-exit-notice (official v1).html
Normal file
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>This is a Tor Exit Router</title>
|
||||
<!--
|
||||
|
||||
This notice is intended to be placed on a virtual host for a domain that
|
||||
your Tor exit node IP reverse resolves to so that people who may be about
|
||||
to file an abuse complaint would check it first before bothering you or
|
||||
your ISP. Ex:
|
||||
http://tor-exit.yourdomain.org or http://tor-readme.yourdomain.org.
|
||||
|
||||
This type of setup has proven very effective at reducing abuse complaints
|
||||
for exit node operators.
|
||||
|
||||
There are a few places in this document that you may want to customize.
|
||||
They are marked with FIXME.
|
||||
|
||||
-->
|
||||
</head>
|
||||
<body>
|
||||
<p style="text-align:center; font-size:xx-large; font-weight:bold">This is a Tor Exit Router</p>
|
||||
<p> Most likely you are accessing this website because you had some issue with the traffic coming from this IP. This router is part of the <a href="https://www.torproject.org/">Tor Anonymity Network</a>, which is dedicated to <a href="https://www.torproject.org/about/overview">providing privacy</a> to people who need it most: average computer users. This router IP should be generating no other traffic, unless it has been compromised. </p>
|
||||
<!-- FIXME: you should probably grab your own copy of how_tor_works_thumb.png
|
||||
and serve it locally -->
|
||||
<p style="text-align:center">
|
||||
<a href="https://www.torproject.org/about/overview">
|
||||
<img src="https://www.torproject.org/images/how_tor_works_thumb.png" alt="How Tor works" style="border-style:none" />
|
||||
</a>
|
||||
</p>
|
||||
<p> Tor sees use by <a href="https://www.torproject.org/about/torusers">many important segments of the population</a>, including whistle blowers, journalists, Chinese dissidents skirting the Great Firewall and oppressive censorship, abuse victims, stalker targets, the US military, and law enforcement, just to name a few. While Tor is not designed for malicious computer users, it is true that they can use the network for malicious ends. In reality however, the actual amount of <a href="https://www.torproject.org/docs/faq-abuse">abuse</a> is quite low. This is largely because criminals and hackers have significantly better access to privacy and anonymity than do the regular users whom they prey upon. Criminals can and do <a href="http://voices.washingtonpost.com/securityfix/2008/08/web_fraud_20_tools.html">build, sell, and trade</a> far larger and <a href="http://voices.washingtonpost.com/securityfix/2008/08/web_fraud_20_distributing_your.html">more powerful networks</a> than Tor on a daily basis. Thus, in the mind of this operator, the social need for easily accessible censorship-resistant private, anonymous communication trumps the risk of unskilled bad actors, who are almost always more easily uncovered by traditional police work than by extensive monitoring and surveillance anyway. </p>
|
||||
<p> In terms of applicable law, the best way to understand Tor is to consider it a network of routers operating as common carriers, much like the Internet backbone. However, unlike the Internet backbone routers, Tor routers explicitly do not contain identifiable routing information about the source of a packet, and no single Tor node can determine both the origin and destination of a given transmission.</p>
|
||||
<p> As such, there is little the operator of this router can do to help you track the connection further. This router maintains no logs of any of the Tor traffic, so there is little that can be done to trace either legitimate or illegitimate traffic (or to filter one from the other). Attempts to seize this router will accomplish nothing.</p>
|
||||
<!-- FIXME: US-Only section. Remove if you are a non-US operator -->
|
||||
<p> Furthermore, this machine also serves as a carrier of email, which means that its contents are further protected under the ECPA. <a href="http://www.law.cornell.edu/uscode/text/18/2707">18 USC 2707</a> explicitly allows for civil remedies ($1000/account <i>
|
||||
<b>plus</b>
|
||||
</i> legal fees) in the event of a seizure executed without good faith or probable cause (it should be clear at this point that traffic with an originating IP address of FIXME_DNS_NAME should not constitute probable cause to seize the machine). Similar considerations exist for 1st amendment content on this machine. </p>
|
||||
<!-- FIXME: May or may not be US-only. Some non-US tor nodes have in
|
||||
fact reported DMCA harassment... -->
|
||||
<p> If you are a representative of a company who feels that this router is being used to violate the DMCA, please be aware that this machine does not host or contain any illegal content. Also be aware that network infrastructure maintainers are not liable for the type of content that passes over their equipment, in accordance with <a href="http://www.law.cornell.edu/uscode/text/17/512">DMCA "safe harbor" provisions</a>. In other words, you will have just as much luck sending a takedown notice to the Internet backbone providers. Please consult <a href="https://www.torproject.org/eff/tor-dmca-response">EFF's prepared response</a> for more information on this matter. </p>
|
||||
<p>For more information, please consult the following documentation:</p>
|
||||
<ol>
|
||||
<li>
|
||||
<a href="https://www.torproject.org/about/overview">Tor Overview</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.torproject.org/docs/faq-abuse">Tor Abuse FAQ</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.torproject.org/eff/tor-legal-faq">Tor Legal FAQ</a>
|
||||
</li>
|
||||
</ol>
|
||||
<p> That being said, if you still have a complaint about the router, you may email the <a href="mailto:FIXME_YOUR_EMAIL_ADDRESS">maintainer</a>. If complaints are related to a particular service that is being abused, I will consider removing that service from my exit policy, which would prevent my router from allowing that traffic to exit through it. I can only do this on an IP+destination port basis, however. Common P2P ports are already blocked. </p>
|
||||
<p> You also have the option of blocking this IP address and others on the Tor network if you so desire. The Tor project provides a <a href="https://check.torproject.org/cgi-bin/TorBulkExitList.py">web service</a> to fetch a list of all IP addresses of Tor exit nodes that allow exiting to a specified IP:port combination, and an official <a href="https://www.torproject.org/tordnsel/dist/">DNSRBL</a> is also available to determine if a given IP address is actually a Tor exit server. Please be considerate when using these options. It would be unfortunate to deny all Tor users access to your site indefinitely simply because of a few bad apples. </p>
|
||||
</body>
|
||||
</html>
|
||||
346
templates/tor-exit-notice/tor-exit-notice (official v2).html
Normal file
346
templates/tor-exit-notice/tor-exit-notice (official v2).html
Normal file
@@ -0,0 +1,346 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>This is a Tor Exit Router</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAAXNSR0IArs4c6QAAAMxQTFRFAAAAcK9AAAAAaK9IAAAAaq9FAAAAaK9EAAAAaa9DAAAAaK9FAAAAaa9EAAAAaK9EAgICZ7FEAgICaLBDAgICZ7BEAQEBaLBEAQEBZ7BEAQEBaLBDAQEBZ7BEHDATAQEB9fje5unQ19nCx8q1uLqnqauZmpuLaLBEiox9e31wbG1iSHkvfkeYXV5UdkOPbj6FZzp8TU5GXzZyVzFpPj84Ty1fRyhWQCRNLy8qLykwJyQmMBs6ICAdKBcwIBMnGA4dEBAPEQoUCQUKAQEBYGuyKwAAACB0Uk5TABAQICAwMEBAUFBgYHBwgICPj5+fr6+/v8/P39/v7+9rEnzIAAABbUlEQVR42n2SbVuCMBSG8TXzpUzN1DTOBoyNmIZOpUJS9///U0f7EFzIno+77z3b2TXrZmo1y5i7oZl3ppXOsFKKHzuL3uu0nDeeF1PfwK3hwjfyiu/7C9MM9yg0ynG7/uT7PcP+vn57f7EMqUduPG+aDA0ibRl4VUNw6Bv4WNJ4p0sr2rYijKWb86B6e/uRA/U8sVke7HaRN+cxBZBEkM8wxJLCgLYkQCIGzGXbMPwoGDMJ4CkHqKPIIbwY+at2EwCBDnCXsa8Qs5/nC7BbIPfcAKRaobA8515UExIh5wwrpFyHmNyDtRIEQJSDkuTqKuzHWUEBFkTIPSaY2l+FSXbIBAWPA9BAuDL5E0ZWJjYVjiDYTwKi9PWI9CErjIQTCAqUg3D0VVjpelZoHWnEObguCKH1EoXviZXLIHbihLgMBNc/yLc2FuQyioMkAgkq0jvkul38sEedRAFL9Gm5Tm9+zPrI1pekp1n3f/UXYAE8WMMDnnoAAAAASUVORK5CYII=">
|
||||
<style>
|
||||
:root {
|
||||
--background-color: white;
|
||||
--text-color: rgb(33, 37, 41);
|
||||
--link-color: rgb(116, 42, 152);
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background-color: rgb(34, 34, 34);
|
||||
--text-color: rgb(221, 221, 221);
|
||||
--link-color: rgb(219, 142, 255);
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: Arial;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
background: var(--background-color);
|
||||
}
|
||||
|
||||
body {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-left: 5vw;
|
||||
padding-right: 5vw;
|
||||
max-width: 1000px;
|
||||
}
|
||||
|
||||
h1,
|
||||
p {
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 55px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p,
|
||||
a {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--link-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
filter: brightness(.8);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.links {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
.links>a {
|
||||
margin: 10px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<h1>This is a Tor Exit Router</h1>
|
||||
<p style="text-align:center">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" viewBox="0 0 274.3 159.9" style="width:100%;max-width:500px">
|
||||
<desc></desc>
|
||||
<defs>
|
||||
<style>
|
||||
.a {
|
||||
fill: none
|
||||
}
|
||||
|
||||
.b,
|
||||
.e {
|
||||
fill: #895ba5
|
||||
}
|
||||
|
||||
.b {
|
||||
stroke: #895ba5
|
||||
}
|
||||
|
||||
.j,
|
||||
.l,
|
||||
.m,
|
||||
.o,
|
||||
.b,
|
||||
.d {
|
||||
stroke-miterlimit: 10
|
||||
}
|
||||
|
||||
.l,
|
||||
.b {
|
||||
stroke-width: .75px
|
||||
}
|
||||
|
||||
.k,
|
||||
.c,
|
||||
.f {
|
||||
fill: #24093b
|
||||
}
|
||||
|
||||
.a,
|
||||
.c,
|
||||
.f {
|
||||
stroke: #24093b;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round
|
||||
}
|
||||
|
||||
.m,
|
||||
.o,
|
||||
.c,
|
||||
.d {
|
||||
stroke-width: .5px
|
||||
}
|
||||
|
||||
.i,
|
||||
.j,
|
||||
.d {
|
||||
fill: #6fc8b7
|
||||
}
|
||||
|
||||
.j,
|
||||
.d {
|
||||
stroke: #6fc8b7
|
||||
}
|
||||
|
||||
.l,
|
||||
.m,
|
||||
.g {
|
||||
fill: #fed916
|
||||
}
|
||||
|
||||
.h {
|
||||
fill: #fff
|
||||
}
|
||||
|
||||
.a {
|
||||
stroke-width: 1.6px
|
||||
}
|
||||
|
||||
.j {
|
||||
stroke-width: .68px
|
||||
}
|
||||
|
||||
.l,
|
||||
.m {
|
||||
stroke: #fed916
|
||||
}
|
||||
|
||||
.n,
|
||||
.o {
|
||||
fill: #cf63a6
|
||||
}
|
||||
|
||||
.o {
|
||||
stroke: #cf63a6
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<path d="M153.6 27.5s6.2 13.1 18.1 3c-8-5.7-10.9-7.6-10.9-7.6z" class="c" />
|
||||
<path d="M212.9 96.2c3.2 6.5 5.2 13.8 9 20 2.3 3.8 4 4.5 8.3 3.3 8.2-2.3 17.4-6.3 25.6-9.7l-1.2-7.6a7.5 7.5 0 0 1-3.2 1.2c-2 0-4-1-5.8-1.6-1.4-.4-3.9.4-4.6.8-3.5 1.9-4.8 4-7 7-.6-7.8-1.2-15.6-1.5-23.4-6.6 3.4-12.9 7-19.6 10z" class="d" />
|
||||
<path d="M217.2 108.6c.6 1.3 1.7 2 1.5 2.8 1.7 1.9 1.8 5.2 3 6.6 2.3-4 5.5-7.4 7.9-11.2.5-1.5 1.8-2.3 2.4-3.3.7-1.8 2.8-4.4 2.4-7.1.6-3.7.4-7.4 1-11-4-5-19.5 18.8-19.5 19.2-.4.5 1.4 2.6 1.3 4zm3.4 6.8c-.4-.3.3-.5 0 0z" class="e" />
|
||||
<path d="M221 115.4c-1.2-3.3-.3-9.3 1.4-11.6 2.3-3 5.3-3.6 7.4-5.5 1.7-1.4 3.3-4.8 3.6-5.9 6.3-23.1-13.8 5.3-17.2 11.2 1.6 4 3.1 8 4.9 11.8z" class="f" />
|
||||
<path d="M220.6 97c2.5-2.7 5.3-5.1 7.7-8-5-.4-10-.8-14.8-1.5-4.1 5.4-8 11.1-11.9 16.7-8 13.6-14.5 28.2-21.6 42.3a9.1 9.1 0 0 0 5 2c.3.1.8.4 1.2.2.4-.3.4 0 .9-.6.4-.6 0 .4.8-.9 3-4.7 5.4-10.1 9-15.1.6-.9 2.7-2.8 4-4.5a16.8 16.8 0 0 0 2.3-3.2c2.7-4.9 5.5-11.3 9.2-16.8a119.3 119.3 0 0 1 8.2-10.6z" class="d" />
|
||||
<path d="M233.4 75.7c0-.1-.2-.1-.2 0v.2zm-3.6 2.3c-2.5 1.1-4.2 2.1-6.5 2.7-2.5 1-5.7.5-7.7 2.8-2.6 2.8-4 6.5-6.7 9.2-2.6 3.5-4.3 7.6-7.4 10.5 0 2.2 2.3 3.3 4 4 1.5.3 2.4 1.8 3.9 2.2 1.5.7 3.3.1 4.3-1.2 2-2 3.4-4.6 5.8-6.1 5.3-4 11.6-6.9 16.1-12 2.6-2.6 4.5-6.7 2.7-10.2-.8-1.4-1.8-3-3.4-3.3-2.1.2-1.1-.1-5.1 1.4z" class="e" />
|
||||
<path d="m185.4 133 7 6.2c-2 3.9-4.2 7.6-6.5 11.2-1.8-2.2-3.6-4.3-5.3-6.6a82.4 82.4 0 0 0 4.8-10.9z" class="g" />
|
||||
<path d="M182.5 141.4c-1.3 0-1.2 1.3-2.2 2.2a13.9 13.9 0 0 0-1.8 2.3c-.3-2.6 0-4.4-1.4-7-.3-.6-1.8-2.3-3-2.2-.6 0-2.4-.4-3.2.1a12.4 12.4 0 0 0-2.2 1.2c2.6 4 5.2 7.9 7.7 12a24 24 0 0 0 3 3.5l2.8 2.5a103.3 103.3 0 0 0 6-8.8 24.5 24.5 0 0 0-2.6-3.4c-1.1-1.3-1.7-2.5-3-2.4z" class="f" />
|
||||
<path d="m168.3 138-.8.6c-.6 1-1 2 0 3 4 4.7 8.1 9.4 12.3 14 1.1 1.3 2 .5 3.3-.1-5-5.9-9.8-11.7-14.8-17.4z" class="e" />
|
||||
<path d="m248 113 .1-10.8 12.6-4v10L248 113z" class="g" />
|
||||
<path d="M257.4 109.2c1.3.7 2-.6 3.4-1a13.6 13.6 0 0 0 2.8-1.1c-.9 2.7-1.8 4.2-1.5 7.5 0 .7.7 3 1.8 3.7.4.3 1.8 1.7 2.5 1.8a9.4 9.4 0 0 0 2.3.2c-.4-5.3-.9-10.6-1.5-15.8a37.3 37.3 0 0 0-1-5l-1.3-4c-3.2 1.7-6.4 3-9.5 4.9a26.3 26.3 0 0 0 .3 4.7c.4 1.9.3 3.4 1.7 4.1z" class="f" />
|
||||
<path d="M269 120.3c.3 0 .7.2.9 0a2.5 2.5 0 0 0 1.3-2.8c-1.4-6.8-2.9-13.7-4.5-20.4-.4-1.7-1.4-1.6-2.7-1.7l5 25z" class="e" />
|
||||
<path d="m185.2 134.6 6.5 6.4m58-39.4.1 10.8" class="a" />
|
||||
<path d="M188.5 86.7c.4.6.7 1.3.8 2 0 1.2-.4 2-1.4 2.3-2.8.6-5.8 0-8.1-1.7-1.6-1-3-2.4-2.8-4.5" class="d" />
|
||||
<path d="M213.8 50.2a55.2 55.2 0 0 0-8.7 14.6 61.4 61.4 0 0 0-4.3 17.4 13.5 13.5 0 0 0-6.8-.7 14.2 14.2 0 0 0-5.5 2.2l-1 4.5-.7 3.2c4.6-.5 9.2.2 14-.2 2.2-.2 3-.5 4.6-3.1 3.6-6.4 7-14 11.2-20.2-1.8-5.8-1.5-11.7-2.8-17.7z" class="d" />
|
||||
<path d="m186.7 91.3 1.4-8.5 6-1.1-1.4 9.7-6-.1z" class="b" />
|
||||
<path d="M249 83.2a3.5 3.5 0 0 0 2.4-2.3 2.1 2.1 0 0 0-1-2.7c-.9-.3-3.4 1.4-1.8 1.8 1.6.4 2.2-2.2 1.9-3.6-.8-3-2.7-4-5.2-3a5.4 5.4 0 0 0-3.8 5.8c.8 4.5 4.2 4.8 7.6 4z" class="d" />
|
||||
<path d="M235.1 82.3a33.1 33.1 0 0 1-.4-16.9c1.8-5.8 4.6-7.7 6.4-12.2a6.3 6.3 0 0 0 .2-2.6c.7-4.3-3.3-6.3-5.7-6.4A46.6 46.6 0 0 0 218 48c-4.5 1.9-5 4.2-7.1 7-2.1 3-1.5 6-1.3 8.2.5 5 2.3 7 3.8 11.1a84 84 0 0 1 4 15.4c5.9-2.8 12-4.5 17.8-7.4z" class="b" />
|
||||
<path d="m234.4 58.2.2-.5a15.3 15.3 0 0 1 4.3.7l4 .8 1.9.3a6.3 6.3 0 0 0 3-.3c1.7-.5 3.6-.5 5.2-1.2m-35.8 26.8c2.8-2.9 6.5-4.4 9.9-6a67.1 67.1 0 0 1 6.4-2.8" class="a" />
|
||||
<path fill="#6fc8b7" stroke="#6fc8b7" stroke-miterlimit="10" stroke-width=".6" d="M220.3 46.4c-1.4 1.5-5 6.6-.8 6.2 4.3-.4 7.4-4.4 10.5-7.6a77.4 77.4 0 0 0-9.7 1.4z" />
|
||||
<path d="M238.3 48.2a2.8 2.8 0 0 0-5.2-1.6c-2.7 3.8-8.9 13.7-3.7 17 5.6 3.5 9.1-10.3 8.9-15.4z" class="f" />
|
||||
<path d="M242.6 46c5.8 2.2 12.6 3.7 18.3 6.4 3.3 1.6 3.5 3.9 1.2 7.3-3.3 5-8.3 10.3-12 15.5-1.8-1-3.5-2-5.3-2.8 2.7-4.5 5.3-8.9 8.1-13.2-5.6-.4-10.5-.5-16.4-1.3-.6 0-3.9-1.1-3.6-3.4.2-1.3 0-3.7 1-5.3.3-.3.3-1.2 1.3-1.7 2.3-1.2 4.4-2.7 7.4-1.5z" class="d" />
|
||||
<path d="m247.5 67.2 1.5.4 5 1.6c-1.1 2.3-2.6 4.6-4 7q-2.5-2-5.2-3.8" class="b" />
|
||||
<path d="M224.6 37a117.1 117.1 0 0 0-5.9 10.2 65.3 65.3 0 0 1 13-2.9q.6-5.7 1.5-11.4l-8.6 4z" class="f" />
|
||||
<path d="M218.3 29.7c2.1-6.6 7.7-10 13.8-10.6 4.2 1 7.3 2.6 7 7.6 0 .6 0 .6-.4 1.3-2.1 2.6-6 6-9 8.7-2.4 2.1-4 2.4-6.7 3h-.5c-3.5-2.6-6-4.3-4.2-10z" class="i" />
|
||||
<path d="M233.6 29.7c1.2.2 3 .4 3.9 1.2.9.8.2 1.2.3 2.2a3.7 3.7 0 0 1 0 .8 3.5 3.5 0 0 1-.5 1 4.3 4.3 0 0 1-4.1 2.3c-1.6-.1-2-.5-2.2-2.1" class="i" />
|
||||
<path d="M235.4 31.5a6.4 6.4 0 0 0 1-.7c3.5-6-3-3.8-1 .7z" class="j" />
|
||||
<path d="M224.7 23c-2-4.7.8-8.1 4-11.3 1.6-1.5 5-3.5 7.3-3.2 2.3.2 3 1.5 2 3.8s-3.5 3.8-5.2 5.4c2.2-.2 6-1.8 7.3 1.4 1.4 4-2.4 6.4-5.5 6.8-3.1.3-8.1 1.2-9.9-2.9z" class="f" />
|
||||
<path d="m233.7 27.9.6.9m1.9-1 .2.1m-2.6 1.9.7.2m-13.3-4.2c-2.1 1.4-4.3 2.7-6.4 4.2 1.4-.1 2.8.5 4.3.4l.6.1m-2.5 3c4.2.3 8.5-.8 12-3.1" class="a" />
|
||||
<path d="M65.3 25.6c-1.9-2-.8-6 2-6.5.7-.2 1.7 0 .7.6-1.7 1.7-3.9 3.4-6.4 3.1a5.2 5.2 0 0 1-5-4c-.6-2.3.2-5 2-6.5 1.7-1.8 3.5-4 6.1-4 6.7-.1-1.8 5.7-.4 2.4.6-1.5 1.3-3 2.3-4.2 2.2-3.2 5.7-5.9 9.7-6 2.7 0 5.9 1.6 6.3 4.5 1.2 9.3-9.6 27-17.3 20.6Z" class="k" />
|
||||
<path d="M11.9 82.2c1.3 1.3 2.3 1 4.5.6 2.1-.4 4.4-2.1 6.2-3.9 0 2.4-.8 5-1.3 7.1.5 1.7 2.5-.3 2.8-.8 1.1-2 2.4-3.7 3.9-5.4 1.6-1.4 4-1.2 5.4-2.5 1.9-1.8 2.2-2.8-.6-3.6-2.7-.7-2.8-3-7.2-.1-2.8 1.8-9.6 8.8-13.7 8.6z" class="e" />
|
||||
<path d="M55.8 93.4c2.8 7 4.9 15 8.2 21.4 2 4 3.7 5 8 4.3 7.7-1.2 16-4 23.8-4.9l-.2-8.2c-1 .2-2.2.7-3.1.4a23.6 23.6 0 0 1-5-3 5.7 5.7 0 0 0-4.1-.3c-3.5 1.4-4.8 3.5-7.2 6.3l.6-24.6c-7 3-14 5.8-21 8.6z" class="b" />
|
||||
<path d="M58.3 99.4c1.3 4.2.8 7 4.8 14.8.4 1 .8 1.4 2.1-.2l10.9-14c1-1.1 1-1.2 1-2 .2-6.5 1.1-10.7 2-16.5-6.7 6.3-13.9 12-20.8 18z" class="k" />
|
||||
<path d="M63.5 95c2.8-2.6 5.6-5 8.4-7.4a140.2 140.2 0 0 1-15.8-3.7c-4 5.9-7.5 11.9-11.6 17.8-9.9 14-20.3 28-30.2 42A13.4 13.4 0 0 0 20 146c.4 0 .9.3 1.4.1.5-.2.5 0 1.1-.6.6-.6 0 .3 1.2-1 4-4.6 8-10 13-14.6a51.6 51.6 0 0 0 4.8-4 12.3 12.3 0 0 0 2.8-3c3.2-5 7-11.3 10.9-17.1a134.4 134.4 0 0 1 8.4-10.9z" class="b" />
|
||||
<path d="M63.3 78.6c-5-.4-7 4.8-9.5 7.8-2.7 4-5.1 8-7.6 11.9-4.6 4.5 2.9 6.5 5.3 8.9 5 2.7 6.6-5.2 10.3-7.1 3.9-3.9 9.2-5.4 14.3-6.6 3.3-.8 5.1-3.2 6.5-6.5 1.4-4 .8-9.3-2.5-12.1a46.7 46.7 0 0 0-16.8 3.7z" class="k" />
|
||||
<path d="m24.3 129.5 5.6 7.2-9.1 11.3c-1.9-2.4-3.7-4.8-5.6-7z" class="l" />
|
||||
<path d="M17.9 138.4c-1.6 0-1.8 1.4-3 2.4a15.7 15.7 0 0 0-2.2 2.4c-.4-2.9-.3-4.7-2-7.2-.3-.6-1.7-2.3-3.1-2.3-.5 0-2.4-.4-3.2 0a15.7 15.7 0 0 0-2.4 1.1c2.7 4.2 5.3 8.4 8.2 12.5a27.5 27.5 0 0 0 3.3 3.6c1 1 2 1.8 3 2.6 2.3-3 4.9-5.8 7.1-9a21.8 21.8 0 0 0-2.3-3.5c-1.2-1.4-1.9-2.5-3.4-2.5z" class="f" />
|
||||
<path d="m1.6 135-.8.4c-.6 1.3-.9 2 0 3.1 4.2 4.9 8.6 10 13 14.6 1.2 1.2 2.1.5 3.5 0 0 0 0-.1.1 0L1.6 135Z" class="m" />
|
||||
<path d="m88.7 115.2 1-11 12-.4-1.5 10.3-11.5 1.1z" class="l" />
|
||||
<path d="M97.2 114c1 1.2 1.8.2 3.1.3a9.6 9.6 0 0 0 2.7-.5c-1.2 2.8-2.2 4.4-2.5 7.8-.1.7 0 3.4 1 4.4.3.3 1.3 2 2 2.2a10 10 0 0 0 2.2.6l1.1-16.8a43.8 43.8 0 0 0-.3-5.6l-.6-4.4c-3.1 1-6.3 1.4-9.4 2.5a33.5 33.5 0 0 0-.2 4.7c0 2.1-.1 3.6.9 4.8z" class="f" />
|
||||
<path d="M106 129c.2 0 .5.3.8.1 1-.7 1.7-1.1 1.6-2.7-.3-7.2-.5-14.9-1-22-.1-2-1-2-2.3-2.6h-.1l1 27.2z" class="m" />
|
||||
<path d="m22.7 131.3 6.1 7.1M91.1 104l-.8 11.1" class="a" />
|
||||
<path d="M59.9 50.2c-2.6 2.1-4.8 3.6-6.9 6.2a53.5 53.5 0 0 0-8.2 15.3c-2.1-.3-3.5-.8-5.8-1-2.7-.2-5.4 0-8 .6l.5 6.6v2.6c3.9-.3 9.4 1.6 12.5 2.5 3.1 1 3.8 1 5.9-1.2 5.6-5.5 9.7-12 14.9-17.8-1.8-4.8-3.4-8.8-5-13.8Z" class="b" />
|
||||
<path d="M79 75.3a17 17 0 0 1-1.6-10.9c1-5 3.2-8.1 4.4-12.3a7 7 0 0 0 .1-2.5c.3-4-3.8-5-5.9-4.6-5 .8-10.7 3-14.7 4-3.9.8-4.3 2.6-6.6 4.8-2.3 2.2-1.7 4.8-1.7 6.8 0 4.3 1.8 6.8 2.6 10.3 1 4 1.2 7.2 1.4 11.3 7.6-2 14.8-3.5 22.1-6.9Z" class="m" />
|
||||
<path d="M63.2 48.1c-1.7 1.7-3.7 4.7-.2 4.8 3.4.1 6.3-3.3 8.7-6.4L63.2 48z" class="b" />
|
||||
<path d="M81.3 47.7c-.4-2.8-5-2.9-6.6 0-2.6 4.3-7.6 13-2 15.5 6 2.7 9.6-9.9 8.6-15.5z" class="f" />
|
||||
<path d="m66.8 37.6-4 11c3.8-1.2 7.6-1.8 11.4-3.2l1.5-9.6-9 1.8z" class="k" />
|
||||
<path d="m30 80.1-.3-8.1a62.1 62.1 0 0 1 9.4-1.5 6.5 6.5 0 0 1 .9 4 19.4 19.4 0 0 1-2.6 6.3 55.3 55.3 0 0 0-7.3-.7z" class="f" />
|
||||
<path d="M84.2 52.5c2.1 6 3.9 12.3 6.1 18.2 2.5 0 5.5-.6 7.8-.5a54.5 54.5 0 0 1 14.2 1.8 1.6 1.6 0 0 1 0 3c-7 2.4-15.4 4.2-22.3 5.8a6.5 6.5 0 0 1-5.7-1.5 43 43 0 0 1-10-19c-1-3.8 0-8.7 2.3-12 .5-.8 1.6-.7 2.4-.8h.1c2.2 1.2 4 2.1 5 5z" class="b" />
|
||||
<path d="M95.6 70.1c.8.9 3.6 8 10.2 6.7 6.6-1.3 6.9-10.7-10.2-6.7z" class="c" />
|
||||
<path d="M56 81.7c3 .4 6 1.1 9 .3a42.4 42.4 0 0 0 15.1-7.2" class="a" />
|
||||
<path d="M60.7 34.3c2.2-5.9 7.3-8.1 12.4-8.7a9.4 9.4 0 0 1 3.2 1.7 5.7 5.7 0 0 1 2.5 3.7c0 .6-.4.8-.6 1.1l-5.3 6.7a32.9 32.9 0 0 1-5.1 3.2 12.8 12.8 0 0 1-3.2 1h-.4c-2.6-2.5-5.5-3.6-3.5-8.7z" class="e" />
|
||||
<path d="M75.6 32.6c1.3.2 2.7.6 3.7 1.5.3.3.2.7.1 1v1.1c0 .8-.6 1.3-1 1.9a4 4 0 0 1-4.4.8c-.5-.2-.7-.8-.8-1.3l-.1-.4" class="e" />
|
||||
<path d="m62.9 31.2-1.6 1.5-1.8 1.5c0 .2-.5.4-.5.5l3.1.4.6.2" class="a" />
|
||||
<path d="M79.7 28.6c-4.6-1.5-11-5.8-15.1-4.9-.6.7-.6 1.7-1.2 2.3-.4 1-.2 2.3.8 2.7 3.8 0 12.2 4.9 14.6 4.3.5-2.4 1.4-1.7.9-4.4z" class="n" />
|
||||
<path d="M83.4 29.3c-2.1 1.5-5.4 2-7.5.2-2-2-.9-6 2-6.5.7-.3 1.8 0 .6.7-1.7 1.8-4 3.5-6.7 3A5.3 5.3 0 0 1 67 22c5-6 11.8-17.7 18.8-17.8 2.9-.4 6.3 1 7 4 .9 3.5-1.5 7.3-5 7.7-4-.3 2.9-4 4.1-4 2.2-.1 4 1.4 4.8 3.3 1.3 3.4-.3 7.1-2.5 9.7a13 13 0 0 1-7.7 4.5c-2.2 0-4.4-2.3-3.3-4.5 2.2-1.2 4.6.5 1.3 3.7l-1 .6z" class="k" />
|
||||
<path d="M63.9 27.6c5.6 2.5 10.4 4.3 15.4 6.4" class="a" />
|
||||
<path fill="#fff" stroke="#24093b" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" d="M14.5 84.1c1.4-1.7 3.3-2.7 5-3.9 1-.7 1.8-1.6 2.8-2.2m29.4 32.6a26 26 0 0 0 7.2-7.2l3.5-3" />
|
||||
<path d="M65.7 34.6c-.2 2-2 4.8 1 5.7M37.4 80.8c4.4 0 8.8 6.8 12.4-.2l4.6-3.3v0" class="a" />
|
||||
<path d="M155.4 28.1c-.9 4.1-3.8 7.2-7.5 6.6-3.7-.6-5.4-4.2-4.5-8.3 1-4.2 4-7.1 7.8-6.5 3.8.6 5.2 4.2 4.3 8.3z" class="k" />
|
||||
<path d="M142.8 36.6c1.2-2.9 2.6-4.2 5.2-4.8" class="a" />
|
||||
<path d="M136.3 93.5c2.3 7.6 3.4 16 6.8 23 2.1 4.3 3.6 5.4 8.2 4.8 8.6-1 17.9-4.6 26.3-7.8l-1.1-8a7.9 7.9 0 0 1-3.4 1.2c-2 0-4-1.1-5.8-1.7-1.3-.6-3.7 0-4.5.4-3.4 1.7-5 3.7-7.3 6.4-.4-8-.3-16-.2-24-6.4 1.8-12.7 3.7-19 5.7z" class="o" />
|
||||
<path d="M138 100c1.5 5.7 2.8 10.7 4.6 16.3.5 1.5.8.8 1.3.3a81 81 0 0 0 11-14.2c1-1.3.5-2.6.8-4.3l1.8-13-19.4 14.8Z" class="g" />
|
||||
<path d="M142.3 115.6c-1.1-3.5.1-9.5 2-11.7 2.4-3 5.2-2.8 7.5-4.4 1.8-1.1 3.4-4.1 3.9-5.1 1.8-4.5 1.6-7 2-11.3-8.6 8.4-16.2 15.5-19 19.1 1 4.5 2.1 9.1 3.6 13.4z" class="f" />
|
||||
<path fill="#cf63a6" stroke="#cf63a6" stroke-miterlimit="10" d="m143.2 96 8-6.4c-4.6-1.7-9-3.6-13.5-5.4-4 4.9-7.7 10-11.5 15l-1 1.4c-10.4 14.8-21 29.6-31.1 44.7a11 11 0 0 0 5.5 2.1c.4 0 .9.4 1.4.1.4-.2.5 0 1-.6.6-.7 0 .3 1.2-1.2 4-5 8.2-10.7 13.2-15.7.9-.8 3.4-2.4 5-4.1 1-.9 2-1.9 2.7-3 3.2-4.9 7-11.2 10.8-16.9 2.6-3.5 5.3-6.8 8.3-10z" />
|
||||
<path d="M156.7 82.7c-.4 5.6-.4 6.6-3.8 11.1-1 1.1-2.2 2-3.6 2.7-2.3 1-5.5 2.6-8 3.6l-5.3 5.3c-.9 1.2-.6 1.6-3.7 1-3.8-1-8-3.8-8.2-5 0-.8 1.2-2 1.6-2.6 5-6.5 8.2-10.5 13-17 5.5.2 12.5 1 18 1z" class="g" />
|
||||
<path d="m104.5 129.7 5.1 7.7-9.2 12-5.4-7 9.5-12.7z" class="h" />
|
||||
<path d="M97.6 139.7c-1.5 0-1.8 1.5-3 2.5a16.3 16.3 0 0 0-2.1 2.5c-.3-2.9-.2-4.6-1.8-7.3-.3-.6-1.8-2.2-3-2.2-.6 0-2.4-.5-3 0a13.6 13.6 0 0 0-2.3 1c2.6 4.1 5.1 8.4 7.8 12.5a28.8 28.8 0 0 0 3 3.6l3 2.7c2.3-3 4.9-6 7-9.2a22.9 22.9 0 0 0-2.2-3.6c-1.3-1.4-1.8-2.6-3.4-2.5z" class="f" />
|
||||
<path d="M82 136.2c-.2.2-.6.2-.7.5-.6 1-1 2 0 3 4 5 8.1 10 12.4 14.8 1 1.3 2 .6 3.3 0l-15-18.3Z" class="e" />
|
||||
<path d="m169.4 116.6.4-11.2c4.4-1.3 8.7-2.7 13.1-3.8l-.1 10.1-13.4 5z" class="h" />
|
||||
<path d="M179.2 112.7c1.4.8 2.3-.5 3.7-.8a13.8 13.8 0 0 0 2.8-1.1c-.9 2.8-1.8 4.5-1.5 7.8 0 .7.6 3 1.7 3.8.4.3 1.6 1.7 2.4 1.8a11 11 0 0 0 2.3.3c-.4-5.4-.7-10.7-1.3-16.1a38 38 0 0 0-1-5.2c-.3-1.6-.7-2.7-1.2-4.2-3.2 1.6-6.6 2.8-9.7 4.7a26.9 26.9 0 0 0 .2 4.7c.3 2 .2 3.5 1.6 4.3z" class="f" />
|
||||
<path d="M191 124.6c.1 0 .5.2.7 0 1-.7 1.6-1.3 1.3-2.8-1.2-7-2.5-14-4-21-.5-1.8-1.5-1.6-2.8-2 0 0 0 .1 0 0l4.7 25.8z" class="e" />
|
||||
<path d="M102.8 131.7c2 2.8 4 5 5.6 7.6m63-34.5-.1 11.3" class="a" />
|
||||
<path d="M139.9 50.3a15.3 15.3 0 0 0-6.7 6.3c-1.2 2.3-1.4 4-3 8.9l-2.5 7a21.1 21.1 0 0 1-8-1.8 24.7 24.7 0 0 1-5.5-3.7 33.1 33.1 0 0 1-3.8 5.2c-.5.5-1.4.9-2 1.4a35.7 35.7 0 0 0 14 8.6c3 .9 5.5 1.6 8.2.9 8-2.1 11.3-14.8 11.7-16.4-.8-5.6-1.5-11-2.4-16.4z" class="o" />
|
||||
<path d="M108.2 74c7-3.3 5.8-3 10.9-3.7-.2 1.4-.1 2.8-.8 4-1 1.7-2.6 3-4.5 3.7-2.2-2-3.3-2-5.6-4zM158 84.5c-1.7-4.3-.6-13.4.4-16.7 1.8-5.8 4.1-8.2 5.8-12.7.3-.9.4-1.8.3-2.7.7-4-3-6.5-5.1-6.6-5.2-.3-11.3 1.5-15.2 2.4-4 .8-4 2.6-6 4.7-2.2 2.1-1.5 5-1.5 7 0 4.5 1.6 7.3 2 11.4.6 4.7-.1 9.3-.8 14 6.7-.6 13.4.3 20.2-.8z" class="j" />
|
||||
<path d="M145.6 47.2c-1.3 1.6-3.5 5 0 5.3 3.4.4 6.3-3.2 8.5-6q-4.2.2-8.5.7z" class="o" />
|
||||
<path d="M164 49.8c-.5-3-5.2-4.4-6.8-1.7-2.7 4.2-8.2 12.4-3 16.3 6 4.3 10.7-8.5 9.8-14.6z" class="f" />
|
||||
<path d="M148.9 36q-2 5.8-3.7 11.8l10.5-2 2.3-10.9-9.1 1z" class="k" />
|
||||
<path d="M165 35.3a12.8 12.8 0 0 0-8.7-12.3 10.7 10.7 0 0 0-3.8 1 8.8 8.8 0 0 0-4 3.6 1.5 1.5 0 0 0 0 1.4c.9 3 2 5.5 3 8.3a28 28 0 0 0 4 4.5 11.8 11.8 0 0 0 2.8 1.9h.4c3.4-2.2 6.3-2.9 6.2-8.4z" class="n" />
|
||||
<path d="M151 30a8 8 0 0 0-4.3 1c-.5.4-.4 1-.6 1.5-.5 1.3-.5 3 .7 4 .9.9 2.3 1.1 3.5.7.7-.2 1.1-1 1.5-1.6" class="n" />
|
||||
<path d="M163 31.3c1 .9 1.6 2 2.5 3l1.6 1.7c.1.4-.7 0-1 .1l-2-.1-1.4-.2" class="a" />
|
||||
<path d="M167 29.3c4.6 5.4 11.5 10 18.9 8.6 5-1 10-5.6 9.1-11-.4-3.6-4.4-5.7-7.7-4.4-3.2 1-6.5 3.4-10 1.9-3.8-2-5.9-6-9.7-8-6.1-4-15.5-2.7-19.4 3.7a6.4 6.4 0 0 0 1.4 6c2.9 2.7 7.3.4 13 1.6 1.8-.3 3.5-.6 4.4 1.6Zm8.2 6.7-.2-.1zm.8.4c-.5.4 0-.6 0 0zm-1.1-1.7h-.1z" class="k" />
|
||||
<path d="M164.6 50.5c1.8 2 2.3 4.9 2.9 7.5.8 4.4 1.2 8.9 2.2 13.3.2 1.4.4 2.8 2.2 2.7 2.7.7 5.9 1.3 7.6 3.7 1.5 2.3.6 5.3 2 7.6.3 1 2.5 2.5.5 1.9-4.4-.5-8.4-2.4-12.7-2.8-6.1 0-7.8-7.5-10.1-12-2.4-6.4-4.5-14-2.1-20.8.5-2.3 2.8-4 5.1-2.5l1.3.6z" class="o" />
|
||||
<path fill="none" stroke="#fed916" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.6" d="M148.1 31.8c2.2 1.2 3.7 3 3.2 6s-2.2 4.8-4.8 4.5c-2.6-.4-3.4-3-3.7-5.6" />
|
||||
<path d="M138 83.4c2.4 1.3 4.5 3 7.2 3.4 4.5.7 8.7-.3 13.1-1.6m-20.4 0L128.5 97m29.9-60.2a8 8 0 0 0 5.3 2.6m23.2 32.4 1.4-14.8" class="a" />
|
||||
<path d="M186.2 88.7c-4.8.9-10.2-1.5-12-6.2-2.9-6.7 1.9-14.6 8.5-16.6 5-2 11.6 0 14 5.2 3.3 7.5-2.8 16.2-10.5 17.6Z" class="g" />
|
||||
<path d="M186.2 88.7c-5.2 1-11-2-12.5-7.3-2.2-7.8 4.8-16 12.7-16.3 5.5-.5 10.8 4 11.1 9.6.6 6.7-4.9 12.8-11.3 14Z" class="a" />
|
||||
<path d="M185.6 84.4c-3.6.7-7.5-2-7.8-5.7-.2-2.7 1-5.5 3-7.2 1.5-1.2 3.6-2 5.5-2 2.1 0 4.3.8 5.5 2.6 1.9 2.4 1.6 6 0 8.4a8.5 8.5 0 0 1-4.1 3.4c-.7.1-1.4.5-2.1.5Z" class="a" />
|
||||
<path d="M185.2 81c-2.5.4-4.7-2.3-3.7-4.7.7-2.8 4.6-4.6 6.8-2.4 2 1.5 1.5 4.5-.3 6-.8.7-1.8 1-2.8 1.1Zm10.3-19.2c-2.1.4-4.3 1-6.4 1.3m-79.6-5-1.8-14.7" class="a" />
|
||||
<path d="m112.5 74.7-.7.3-.8.2-.7.1-.8.2-.8.1-.8-.1h-1.6l-.8-.1-.7-.3-.8-.2-.8-.1-.7-.4-.7-.4-.6-.5-.7-.4-.6-.6-.6-.5-.4-.7-.5-.6-.5-.6-.3-.8-.4-.7-.2-.8-.2-.7-.1-.8-.1-.8-.1-.8.1-.7v-.8l.2-.8.1-.8.3-.7.3-.8.3-.7.3-.7.5-.7.4-.6.5-.6.5-.7.5-.5.6-.6.6-.5.6-.5.7-.5.7-.3.7-.3.7-.4.7-.4.8-.1.7-.2.8-.3.8-.1.8-.1.8.1h.8l.8-.1.8.2.7.2.8.2.7.4.8.3.7.3.7.5.6.4.5.6.7.5.5.6.5.6.3.7.4.8.3.7.3.7.2.8.1.8.1.8v.7l.1.8-.2.8-.1.8-.2.8-.2.7-.4.7-.2.8-.4.7-.4.6-.4.7-.6.6-.4.7-.6.5-.5.6-.6.5-.6.5-.7.5-.7.3-.7.3-.7.4z" class="n" />
|
||||
<path d="M112.5 74.7c-1.4.5-2.8.9-4.3.8-1.5.1-3-.1-4.5-.6a9.6 9.6 0 0 1-4-2.6 11 11 0 0 1-2.6-4.1c-.9-3-.7-6.1.7-8.8 1-2 2.5-3.7 4.2-5.1 1-1 2.4-1.4 3.6-2 1.7-.4 3.3-1.2 5-.9 2.3-.3 4.5.8 6.5 1.8 1.2 1 2.4 2 3.2 3.3a12 12 0 0 1 1.5 4.8 13.4 13.4 0 0 1-7.8 12.8l-1.5.6z" class="a" />
|
||||
<path d="M111.1 70.7c-2.3.8-5.1.5-7.1-1-2.1-1.5-3.4-4.4-2.6-7a8.7 8.7 0 0 1 4.2-5.7 8.6 8.6 0 0 1 7-.8c3.1.9 5.1 4.5 4.4 7.7-.3 2.7-2.3 5-4.6 6.2l-1.3.6z" class="a" />
|
||||
<path d="M109.8 67.5c-4 1.2-6.7-4.3-3.5-6.8 2.5-3 8.2-.9 7.1 3.2-.3 1.8-2 3-3.6 3.6zm6.5-20.9-6.3 2.5m-54.1 83.1c-5.3 0-12 8.7-14.5 7.3 2.4-5.3 9.2-7 14.5-7.3Zm72.3 10.1c-4.1 7.4-14 8.5-21.6 7.8a53 53 0 0 1 20.6-8.4l.7.1zm58.1 9.7c4.3-5.7 10.2-22 21-17.9 5 1.7 4.4 10.7-.9 10.7 4.4-9.1 16.3-14.3 25.6-9.3M73.4 60.8c3.3 6.7 6 14 11.6 19.2 6.5 1.4 13.3-1.4 19.7-2.6l5.6-1.5" class="a" />
|
||||
<path d="M161.5 158c1.6-3.3 5.6-4.4 8.8-5.6 10-3 20.6-4.7 31-3.5 2.8 0 8.5 2.5 4.4 5.3-1.4 1.1-4 3.3 1.7-2.3a20 20 0 0 1 12.7-5c5.2 0 11 .9 15 4.6 2.2 1.6-1.3 6-2 5.5 2.8-1.9 6.5-1.8 9.7-2 3.2.2 6.8 0 9.5 1.9l.2.4-.5.6" class="o" />
|
||||
<path d="M21.9 158.4a204 204 0 0 1 43-9.4c10.8-.8 23-2.8 33.4 1.5 2.4 4.1-7.3 4.4-10.4 5.5-2.6.5-7.7 1.6-2.5-.8a51 51 0 0 1 33.4-1.5c-1.7 3.8-8.9 3-12.8 4.4a207.6 207.6 0 0 1 77.6.6" class="o" />
|
||||
<path d="M15 159.2c6.2-5.7 14.2-9 22.2-11.2 4.2-.9 9.4-1 12.4 2.5 1.4 3.4-3 5.2-5.4 6.3-1 .9-2.8.8-1.1-.6 3.3-4 9-5 13.9-3.7 3.4.8 1.2 5.5-1.6 5.3l-2 .8c10-4.6 22.1-4.7 32.2-.4 1.5.4 2.8 1.8.6 1.4l-71.2-.4Z" class="j" />
|
||||
<path fill="#6fc8b7" stroke="#6fc8b7" stroke-linecap="round" stroke-linejoin="round" d="M213.7 157.6c4.8-2.7-9-5.2.4-6.8a43 43 0 0 1 8-.8c5.6 0 9.7 1.6 9.3 3-.5 1.5-4.2 2.7-8.5 3.6a10.4 10.4 0 0 1 5.5-3c3.2-.7 8.8-.8 11.5 0 1.8.7 1.7 1.5.4 2.2a27.6 27.6 0 0 1-5.6 1.7 66.4 66.4 0 0 1 20-2.2c7.7.2 15 1.4 19 3.1z" />
|
||||
</svg>
|
||||
</p>
|
||||
<p> You are most likely accessing this website because you've had some issue with the traffic coming from this IP. This router is part of the <a href="https://www.torproject.org/">Tor Anonymity Network</a>, which is dedicated to <a href="https://2019.www.torproject.org/about/overview">providing privacy</a> to people who need it most: average computer users. This router IP should be generating no other traffic, unless it has been compromised. </p>
|
||||
<p> Tor works by running user traffic through a random chain of encrypted servers, and then letting the traffic exit the Tor network through an exit node like this one. This design makes it very hard for a service to know which user is connecting to it, since it can only see the IP-address of the Tor exit node:</p>
|
||||
<p style="text-align:center;margin:40px 0">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="500" viewBox="0 0 490.28 293.73" style="width:100%;max-width:600px">
|
||||
<desc>Illustration showing how a user might connect to a service through the Tor network. The user first sends their data through three daisy-chained encrypted Tor servers that exist on three different continents. Then the last Tor server in the chain connects to the target service over the normal internet.</desc>
|
||||
<defs>
|
||||
<style>
|
||||
.t {
|
||||
fill: var(--text-color);
|
||||
stroke: var(--text-color);
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<path fill="#6fc8b7" d="M257.89 69.4c-6.61-6.36-10.62-7.73-18.36-8.62-7.97-1.83-20.06-7.99-24.17-.67-3.29 5.85-18.2 12.3-16.87 2.08.92-7.03 11.06-13.28 17-17.37 8.69-5.99 24.97-2.87 26.1-10.28 1.04-6.86-8.33-13.22-8.55-2.3-.38 12.84-19.62 2.24-8.73-6.2 8.92-6.9 16.05-9.02 25.61-6.15 12.37 4.83 25.58-2.05 33.73-.71 12.37-2.01 24.69-5.25 37.39-3.96 13 .43 24.08-.14 37.06.63 9.8 1.58 16.5 2.87 26.37 3.6 6.6.48 17.68-.82 24.3 1.9 8.3 4.24.44 10.94-6.89 11.8-8.79 1.05-23.59-1.19-26.6 1.86-5.8 7.41 10.75 5.68 11.27 14.54.57 9.45-5.42 9.38-8.72 16-2.7 4.2.3 13.93-1.18 18.45-1.85 5.64-19.64 4.47-14.7 14.4 4.16 8.34 1.17 19.14-10.33 12.02-5.88-3.65-9.85-22.04-15.66-21.9-11.06.27-11.37 13.18-12.7 17.52-1.3 4.27-3.79 2.33-6-.63-3.54-4.76-7.75-14.22-12.01-17.32-6.12-4.46-10.75-1.17-15.55 2.83-5.63 4.69-8.78 7.82-7.46 16.5.78 9.1-12.9 15.84-14.98 24.09-2.61 10.32-2.57 22.12-8.81 31.47-4 5.98-14.03 20.12-21.27 14.97-7.5-5.34-7.22-14.6-9.56-23.08-2.5-9.02.6-17.35-2.57-26.2-2.45-6.82-6.23-14.54-13.01-13.24-6.5.92-15.08 1.38-19.23-2.97-5.65-5.93-6-10.1-6.61-18.56 1.65-6.94 5.79-12.64 10.38-18.63 3.4-4.42 17.45-10.39 25.26-7.83 10.35 3.38 17.43 10.5 28.95 8.57 3.12-.53 9.14-4.65 7.1-6.62zm-145.6 37.27c-4.96-1.27-11.57 1.13-11.8 6.94-1.48 5.59-4.82 10.62-5.8 16.32.56 6.42 4.34 12.02 8.18 16.97 3.72 3.85 8.58 7.37 9.3 13.1 1.24 5.88 1.6 11.92 2.28 17.87.34 9.37.95 19.67 7.29 27.16 4.26 3.83 8.4-2.15 6.52-6.3-.54-4.54-.6-9.11 1.01-13.27 4.2-6.7 7.32-10.57 12.44-16.64 5.6-7.16 12.74-11.75 14-20.9.56-4.26 5.72-13.86 1.7-16.72-3.14-2.3-15.83-4-18.86-6.49-2.36-1.71-3.86-9.2-9.86-12.07-4.91-3.1-10.28-6.73-16.4-5.97zm11.16-49.42c6.13-2.93 10.58-4.77 14.61-10.25 3.5-4.28 2.46-12.62-2.59-15.45-7.27-3.22-13.08 5.78-18.81 8.71-5.96 4.2-12.07-5.48-6.44-10.6 5.53-4.13.38-9.2-5.66-8.48-6.12.8-12.48-1.45-18.6-1.73-5.3-.7-10.13-1-15.45-1.37-5.37-.05-16.51-2.23-25.13.87-5.42 1.79-12.5 5.3-16.73 9.06-4.85 4.2.2 7.56 5.54 7.45 5.3-.22 16.8-5.36 20.16.98 3.68 8.13-5.82 18.29-5.2 26.69.1 6.2 3.37 11 4.74 16.98 1.62 5.94 6.17 10.45 10 15.14 4.7 5.06 13.06 6.3 19.53 8.23 7.46.14 3.34-9.23 3.01-14.11 1.77-7.15 8.49-7.82 12.68-13.5 7.14-7.72 16.41-13.4 24.34-18.62zM190.88 3.1c-4.69 0-13.33.04-18.17-.34-7.65.12-13.1-.62-19.48-1.09-3.67.39-9.09 3.34-5.28 7.04 3.8.94 7.32 4.92 7.1 9.31 1.32 4.68 1.2 11.96 6.53 13.88 4.76-.2 7.12-7.6 11.93-8.25 6.85-2.05 12.5-4.58 17.87-9.09 2.48-2.76 7.94-6.38 5.26-10.33-1.55-1.31-2.18-.64-5.76-1.13zm178.81 157.37c-2.66 10.08-5.88 24.97 9.4 15.43 7.97-5.72 12.58-2.02 17.47 1.15.5.43 2.65 9.2 7.19 8.53 5.43-2.1 11.55-5.1 14.96-11.2 2.6-4.62 3.6-12.39 2.76-13.22-3.18-3.43-6.24-11.03-7.7-15.1-.76-2.14-2.24-2.6-2.74-.4-2.82 12.85-6.04 1.22-10.12-.05-8.2-1.67-29.62 7.17-31.22 14.86z" />
|
||||
<g fill="none">
|
||||
<path stroke="#cf63a6" stroke-linecap="round" stroke-width="2.76" d="M135.2 140.58c61.4-3.82 115.95-118.83 151.45-103.33" />
|
||||
<path stroke="#cf63a6" stroke-linecap="round" stroke-width="2.76" d="M74.43 46.66c38.15 8.21 64.05 42.26 60.78 93.92M286.65 37.25c-9.6 39.44-3.57 57.12-35.64 91.98" />
|
||||
<path stroke="#e4c101" stroke-dasharray="9.06,2.265" stroke-width="2.27" d="M397.92 162.52c-31.38 1.26-90.89-53.54-148.3-36.17" />
|
||||
<path stroke="#cf63a6" stroke-linecap="round" stroke-width="2.77" d="M17.6 245.88c14.35 0 14.4.05 28-.03" />
|
||||
<path stroke="#e3bf01" stroke-dasharray="9.06,2.265" stroke-width="2.27" d="M46.26 274.14c-17.52-.12-16.68.08-30.34.07" />
|
||||
</g>
|
||||
<g transform="translate(120.8 -35.81)">
|
||||
<circle cx="509.78" cy="68.74" r="18.12" fill="#240a3b" transform="translate(-93.3 38.03) scale(.50637)" />
|
||||
<circle cx="440.95" cy="251.87" r="18.12" fill="#240a3b" transform="translate(-93.3 38.03) scale(.50637)" />
|
||||
<circle cx="212.62" cy="272.19" r="18.12" fill="#240a3b" transform="translate(-93.3 38.03) scale(.50637)" />
|
||||
<circle cx="92.12" cy="87.56" r="18.12" fill="#240a3b" transform="translate(-93.3 38.03) scale(.50637)" />
|
||||
<circle cx="730.88" cy="315.83" r="18.12" fill="#67727b" transform="translate(-93.3 38.03) scale(.50637)" />
|
||||
<circle cx="-102.85" cy="282.18" r="9.18" fill="#240a3b" />
|
||||
<circle cx="-102.85" cy="309.94" r="9.18" fill="#67727b" />
|
||||
</g>
|
||||
<g class="t">
|
||||
<text xml:space="preserve" x="-24.76" y="10.37" stroke-width=".26" font-size="16.93" font-weight="700" style="line-height:1.25" transform="translate(27.79 2.5)" word-spacing="0">
|
||||
<tspan x="-24.76" y="10.37">The user</tspan>
|
||||
</text>
|
||||
<text xml:space="preserve" x="150.63" y="196.62" stroke-width=".26" font-size="16.93" font-weight="700" style="line-height:1.25" transform="translate(27.79 2.5)" word-spacing="0">
|
||||
<tspan x="150.63" y="196.62">This server</tspan>
|
||||
</text>
|
||||
<text xml:space="preserve" x="346.39" y="202.63" stroke-width=".26" font-size="16.93" font-weight="700" style="line-height:1.25" transform="translate(27.79 2.5)" word-spacing="0">
|
||||
<tspan x="346.39" y="202.63">Your service</tspan>
|
||||
</text>
|
||||
<text xml:space="preserve" x="34.52" y="249.07" stroke-width=".26" font-size="16.93" font-weight="700" style="line-height:1.25" transform="translate(27.79 2.5)" word-spacing="0">
|
||||
<tspan x="34.52" y="249.07">Tor encrypted link</tspan>
|
||||
</text>
|
||||
<text xml:space="preserve" x="34.13" y="276.05" stroke-width=".26" font-size="16.93" font-weight="700" style="line-height:1.25" transform="translate(27.79 2.5)" word-spacing="0">
|
||||
<tspan x="34.13" y="276.05">Unencrypted link</tspan>
|
||||
</text>
|
||||
<path fill="none" stroke-linecap="round" stroke-width="1.67" d="M222.6 184.1c-2.6-15.27 8.95-23.6 18.43-38.86m186.75 45.61c-.68-10.17-9.4-17.68-18.08-23.49" />
|
||||
<path fill="none" stroke-linecap="round" stroke-width="1.67" d="M240.99 153.41c.35-3.41 1.19-6.17.04-8.17m-7.15 5.48c1.83-2.8 4.58-4.45 7.15-5.48" />
|
||||
<path fill="none" stroke-linecap="round" stroke-width="1.67" d="M412.43 173.21c-2.2-3.15-2.54-3.85-2.73-5.85m0 0c2.46-.65 3.85.01 6.67 1.24M61.62 40.8C48.89 36.98 36.45 27.54 36.9 18.96M61.62 40.8c.05-2.58-3.58-4.8-5.25-5.26m-2.65 6.04c1.8.54 6.8 1.31 7.9-.78" />
|
||||
<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.44" d="M1.22 229.4h247.74v63.1H1.22z" />
|
||||
</g>
|
||||
</svg>
|
||||
</p>
|
||||
<p>
|
||||
<a href="https://2019.www.torproject.org/about/overview">Read more about how Tor works.</a>
|
||||
</p>
|
||||
<p> Tor sees use by <a href="https://2019.www.torproject.org/about/torusers">many important segments of the population</a>, including whistle blowers, journalists, Chinese dissidents skirting the Great Firewall and oppressive censorship, abuse victims, stalker targets, the US military, and law enforcement, just to name a few. While Tor is not designed for malicious computer users, it is true that they can use the network for malicious ends. In reality however, the actual amount of <a href="https://support.torproject.org/abuse/">abuse</a> is quite low. This is largely because criminals and hackers have significantly better access to privacy and anonymity than do the regular users whom they prey upon. Criminals can and do <a href="https://web.archive.org/web/20200131013910/http://voices.washingtonpost.com/securityfix/2008/08/web_fraud_20_tools.html">build, sell, and trade</a> far larger and <a href="https://web.archive.org/web/20200131013908/http://voices.washingtonpost.com/securityfix/2008/08/web_fraud_20_distributing_your.html">more powerful networks</a> than Tor on a daily basis. Thus, in the mind of this operator, the social need for easily accessible censorship-resistant private, anonymous communication trumps the risk of unskilled bad actors, who are almost always more easily uncovered by traditional police work than by extensive monitoring and surveillance anyway. </p>
|
||||
<p> In terms of applicable law, the best way to understand Tor is to consider it a network of routers operating as common carriers, much like the Internet backbone. However, unlike the Internet backbone routers, Tor routers explicitly do not contain identifiable routing information about the source of a packet, and no single Tor node can determine both the origin and destination of a given transmission.</p>
|
||||
<p> As such, there is little the operator of this router can do to help you track the connection further. This router maintains no logs of any of the Tor traffic, so there is little that can be done to trace either legitimate or illegitimate traffic (or to filter one from the other). Attempts to seize this router will accomplish nothing.</p>
|
||||
<p> If you are a representative of a company who feels that this router is being used to violate the DMCA, please be aware that this machine does not host or contain any illegal content. Also be aware that network infrastructure maintainers are not liable for the type of content that passes over their equipment, in accordance with <a href="https://www.law.cornell.edu/uscode/text/17/512">DMCA "safe harbor" provisions</a>. In other words, you will have just as much luck sending a takedown notice to the Internet backbone providers. Please consult <a href="https://community.torproject.org/relay/community-resources/eff-tor-legal-faq/tor-dmca-response/">EFF's prepared response</a> for more information on this matter. </p>
|
||||
<p>For more information, please consult the following documentation:</p>
|
||||
<div class="links">
|
||||
<a href="https://2019.www.torproject.org/about/overview">Tor Overview</a>
|
||||
<a href="https://support.torproject.org/abuse/">Tor Abuse FAQ</a>
|
||||
<a href="https://community.torproject.org/relay/community-resources/eff-tor-legal-faq/">Tor Legal FAQ</a>
|
||||
</div>
|
||||
<p> That being said, if you still have a complaint about the router, you may email the <a href="mailto:user@domain.tld">maintainer</a>. If complaints are related to a particular service that is being abused, I will consider removing that service from my exit policy, which would prevent my router from allowing that traffic to exit through it. I can only do this on an IP+destination port basis, however. Common P2P ports are already blocked. </p>
|
||||
<p> You also have the option of blocking this IP address and others on the Tor network if you so desire. The Tor project provides a <a href="https://check.torproject.org/torbulkexitlist">web service</a> to fetch a list of all IP addresses of Tor exit nodes that allow exiting to a specified IP:port combination, and an official <a href="https://dist.torproject.org/tordnsel/">DNSRBL</a> is also available to determine if a given IP address is actually a Tor exit server. Please be considerate when using these options. It would be unfortunate to deny all Tor users access to your site indefinitely simply because of a few bad apples. </p>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
582
templates/tor-exit-notice/tor-exit-notice (r3bo0tbx1).html
Normal file
582
templates/tor-exit-notice/tor-exit-notice (r3bo0tbx1).html
Normal file
@@ -0,0 +1,582 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Tor Exit Router Notice</title>
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg
|
||||
xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke='%239955B3' fill='none' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E">
|
||||
<style>
|
||||
:root {
|
||||
--bg-color: #050505;
|
||||
--card-bg: rgba(22, 27, 34, 0.7);
|
||||
--card-border: rgba(48, 54, 61, 0.6);
|
||||
--text-main: #e6edf3;
|
||||
--text-muted: #7d8590;
|
||||
--tor-purple: #9955B3;
|
||||
--tor-glow: rgba(153, 85, 179, 0.25);
|
||||
--danger: #ff7b72;
|
||||
--safe: #238636;
|
||||
--link: #58a6ff;
|
||||
--code-bg: rgba(110, 118, 129, 0.15);
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
||||
background-color: var(--bg-color);
|
||||
background-image:
|
||||
radial-gradient(circle at 15% 25%, rgba(125, 70, 152, 0.08) 0%, transparent 25%),
|
||||
radial-gradient(circle at 85% 75%, rgba(35, 134, 54, 0.08) 0%, transparent 25%),
|
||||
linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
|
||||
linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
|
||||
background-size: 100% 100%, 100% 100%, 30px 30px, 30px 30px;
|
||||
background-position: 0 0, 0 0, center center, center center;
|
||||
color: var(--text-main);
|
||||
line-height: 1.6;
|
||||
padding: 40px 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: var(--tor-purple);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 900px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
header {
|
||||
text-align: center;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-weight: 800;
|
||||
font-size: 2.5rem;
|
||||
color: #ffffff;
|
||||
margin-bottom: 12px;
|
||||
letter-spacing: -1px;
|
||||
text-shadow: 0 0 20px rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.status-pill {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
background: rgba(35, 134, 54, 0.1);
|
||||
border: 1px solid rgba(35, 134, 54, 0.4);
|
||||
color: #3fb950;
|
||||
padding: 6px 16px;
|
||||
border-radius: 100px;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.5px;
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
|
||||
.status-pill::before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background-color: #3fb950;
|
||||
border-radius: 50%;
|
||||
margin-right: 8px;
|
||||
box-shadow: 0 0 10px #3fb950;
|
||||
animation: blink 2s infinite;
|
||||
}
|
||||
|
||||
.card {
|
||||
background-color: var(--card-bg);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 16px;
|
||||
padding: 35px;
|
||||
margin-bottom: 30px;
|
||||
backdrop-filter: blur(12px);
|
||||
-webkit-backdrop-filter: blur(12px);
|
||||
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #ffffff;
|
||||
margin-bottom: 20px;
|
||||
font-size: 1.3rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
border-bottom: 1px solid var(--card-border);
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 16px;
|
||||
color: var(--text-muted);
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--link);
|
||||
text-decoration: none;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #8dbdff;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', monospace;
|
||||
background: var(--code-bg);
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
color: #e6edf3;
|
||||
font-size: 0.9em;
|
||||
border: 1px solid rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
.diagram-wrapper {
|
||||
background: rgba(0, 0, 0, 0.3);
|
||||
border: 1px solid var(--card-border);
|
||||
border-radius: 12px;
|
||||
padding: 40px 20px;
|
||||
margin: 30px 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.flow-container {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.step {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
width: 120px;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.icon-box {
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
background: #1c2128;
|
||||
border: 2px solid var(--card-border);
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 15px;
|
||||
transition: all 0.3s ease;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon-box svg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
fill: var(--text-muted);
|
||||
transition: fill 0.3s;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-size: 0.9rem;
|
||||
font-weight: 600;
|
||||
color: var(--text-main);
|
||||
}
|
||||
|
||||
.sub-label {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-muted);
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.step.active .icon-box {
|
||||
border-color: var(--tor-purple);
|
||||
box-shadow: 0 0 25px var(--tor-glow);
|
||||
background: rgba(125, 70, 152, 0.1);
|
||||
}
|
||||
|
||||
.step.active .icon-box::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: -4px;
|
||||
right: -4px;
|
||||
bottom: -4px;
|
||||
border-radius: 50%;
|
||||
border: 2px solid var(--tor-purple);
|
||||
opacity: 0;
|
||||
animation: pulse-ring 2.5s cubic-bezier(0.215, 0.61, 0.355, 1) infinite;
|
||||
}
|
||||
|
||||
.step.active .icon-box svg {
|
||||
fill: var(--tor-purple);
|
||||
}
|
||||
|
||||
.connector {
|
||||
flex-grow: 1;
|
||||
height: 3px;
|
||||
background: #30363d;
|
||||
position: relative;
|
||||
margin: 0 10px;
|
||||
margin-bottom: 35px;
|
||||
border-radius: 2px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.connector::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
background: repeating-linear-gradient(90deg,
|
||||
transparent,
|
||||
transparent 5px,
|
||||
rgba(255, 255, 255, 0.4) 5px,
|
||||
rgba(255, 255, 255, 0.8) 15px);
|
||||
animation: flow-horizontal 1.5s linear infinite;
|
||||
}
|
||||
|
||||
.connector.encrypted {
|
||||
background: rgba(125, 70, 152, 0.3);
|
||||
}
|
||||
|
||||
.connector.encrypted::after {
|
||||
background: repeating-linear-gradient(90deg, transparent, transparent 10px, var(--tor-purple) 10px, var(--tor-purple) 25px);
|
||||
}
|
||||
|
||||
.connector.plain {
|
||||
background: rgba(248, 81, 73, 0.3);
|
||||
}
|
||||
|
||||
.connector.plain::after {
|
||||
background: repeating-linear-gradient(90deg, transparent, transparent 10px, var(--danger) 10px, var(--danger) 25px);
|
||||
}
|
||||
|
||||
.conn-label {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
font-size: 0.65rem;
|
||||
letter-spacing: 1px;
|
||||
font-weight: 700;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.encrypted .conn-label {
|
||||
color: var(--tor-purple);
|
||||
}
|
||||
|
||||
.plain .conn-label {
|
||||
color: var(--danger);
|
||||
}
|
||||
|
||||
.contact-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
||||
gap: 15px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.contact-box {
|
||||
background: rgba(255, 255, 255, 0.03);
|
||||
border: 1px solid var(--card-border);
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 5px;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
|
||||
.contact-box:hover {
|
||||
background: rgba(255, 255, 255, 0.06);
|
||||
}
|
||||
|
||||
.contact-label {
|
||||
font-size: 0.75rem;
|
||||
color: var(--text-muted);
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.contact-value {
|
||||
font-family: monospace;
|
||||
font-size: 1rem;
|
||||
color: var(--text-main);
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
font-size: 0.85rem;
|
||||
color: var(--text-muted);
|
||||
margin-top: 40px;
|
||||
border-top: 1px solid var(--card-border);
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
@keyframes pulse-ring {
|
||||
0% {
|
||||
transform: scale(0.8);
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(1.4);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes flow-horizontal {
|
||||
from {
|
||||
transform: translateX(-25px);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes flow-vertical {
|
||||
from {
|
||||
transform: translateY(-25px);
|
||||
}
|
||||
|
||||
to {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.flow-container {
|
||||
flex-direction: column;
|
||||
gap: 0;
|
||||
}
|
||||
|
||||
.step {
|
||||
width: 100%;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.icon-box {
|
||||
margin: 0 auto 10px auto;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.icon-box svg {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.connector {
|
||||
width: 3px;
|
||||
height: 80px;
|
||||
margin: 0 auto;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.conn-label {
|
||||
top: 50%;
|
||||
left: 15px;
|
||||
transform: translateY(-50%);
|
||||
text-align: left;
|
||||
width: 150px;
|
||||
}
|
||||
|
||||
.connector::after {
|
||||
background: repeating-linear-gradient(0deg,
|
||||
transparent,
|
||||
transparent 5px,
|
||||
rgba(255, 255, 255, 0.4) 5px,
|
||||
rgba(255, 255, 255, 0.8) 15px);
|
||||
animation: flow-vertical 1.5s linear infinite;
|
||||
}
|
||||
|
||||
.connector.encrypted::after {
|
||||
background: repeating-linear-gradient(180deg, transparent, transparent 10px, var(--tor-purple) 10px, var(--tor-purple) 25px);
|
||||
}
|
||||
|
||||
.connector.plain::after {
|
||||
background: repeating-linear-gradient(180deg, transparent, transparent 10px, var(--danger) 10px, var(--danger) 25px);
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
body {
|
||||
background: white;
|
||||
color: black;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.card {
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: none;
|
||||
background: none;
|
||||
color: black;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
p,
|
||||
a {
|
||||
color: black !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
||||
.diagram-wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.contact-box {
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<header>
|
||||
<h1>Tor Exit Router</h1>
|
||||
<div class="status-pill">System Operational</div>
|
||||
</header>
|
||||
<section class="card">
|
||||
<h2>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="12" cy="12" r="10"></circle>
|
||||
<line x1="12" y1="16" x2="12" y2="12"></line>
|
||||
<line x1="12" y1="8" x2="12.01" y2="8"></line>
|
||||
</svg> Information
|
||||
</h2>
|
||||
<p> You are visiting this page because the IP address <code>YOUR.EXIT.IP.ADDRESS</code> likely appeared in your server logs. </p>
|
||||
<p> This server is a <strong>Tor Exit Node</strong>. It is part of the <a href="http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/" target="_blank">Tor Anonymity Network</a>. The traffic you observed <strong>did not originate from this machine</strong>; it originated from an anonymous user somewhere else in the world, and was merely routed through this server to reach the open internet. </p>
|
||||
</section>
|
||||
<section class="card">
|
||||
<h2>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<rect x="2" y="2" width="20" height="8" rx="2" ry="2"></rect>
|
||||
<rect x="2" y="14" width="20" height="8" rx="2" ry="2"></rect>
|
||||
<line x1="6" y1="6" x2="6" y2="6"></line>
|
||||
<line x1="6" y1="18" x2="6" y2="18"></line>
|
||||
</svg> Traffic Analysis
|
||||
</h2>
|
||||
<div class="diagram-wrapper">
|
||||
<div class="flow-container">
|
||||
<div class="step">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="label">User</div>
|
||||
<div class="sub-label">Hidden Origin</div>
|
||||
</div>
|
||||
<div class="connector encrypted">
|
||||
<span class="conn-label">Encrypted</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="label">Tor Network</div>
|
||||
<div class="sub-label">Relays</div>
|
||||
</div>
|
||||
<div class="connector encrypted">
|
||||
<span class="conn-label">Encrypted</span>
|
||||
</div>
|
||||
<div class="step active">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M4 1h16c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2zm0 4h16V3H4v2zm16 4H4v2h16V9zm-2-4h-2V4h2v1zm0 14h-2v-1h2v1zM4 11h16c1.1 0 2 .9 2 2v4c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-4c0-1.1.9-2 2-2zm0 4h16v-2H4v2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="label">This Server</div>
|
||||
<div class="sub-label">Exit Node</div>
|
||||
</div>
|
||||
<div class="connector plain">
|
||||
<span class="conn-label">Unencrypted</span>
|
||||
</div>
|
||||
<div class="step">
|
||||
<div class="icon-box">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div class="label">Your Server</div>
|
||||
<div class="sub-label">Destination</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p style="font-size: 0.9em; text-align: center; color: var(--text-muted);"> Traffic is encrypted within Tor. It only becomes visible when it leaves this exit node. </p>
|
||||
</section>
|
||||
<section class="card">
|
||||
<h2>
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"></path>
|
||||
</svg> Abuse Resolution
|
||||
</h2>
|
||||
<p> This machine is a common carrier. We do not host content. If you are investigating a DMCA violation or abuse originating from this IP, please contact the maintainer below. </p>
|
||||
<div class="contact-grid">
|
||||
<div class="contact-box">
|
||||
<span class="contact-label">Maintainer Email</span>
|
||||
<a href="mailto:user@domain.tld" class="contact-value">user@domain.tld</a>
|
||||
</div>
|
||||
<div class="contact-box">
|
||||
<span class="contact-label">P2P Policy</span>
|
||||
<span class="contact-value" style="color: var(--danger);">Blocked</span>
|
||||
<!-- if P2P is allowed, use this instead:
|
||||
<span class="contact-value" style="color: var(--safe);">Allowed</span>
|
||||
-->
|
||||
</div>
|
||||
<div class="contact-box">
|
||||
<span class="contact-label">Logs</span>
|
||||
<span class="contact-value">None Stored</span>
|
||||
</div>
|
||||
</div>
|
||||
<p style="margin-top: 25px; font-size: 0.9em; opacity: 0.8;"> Network administrators may block this IP using the <a href="https://check.torproject.org/torbulkexitlist" target="_blank">Tor Bulk Exit List</a>. </p>
|
||||
</section>
|
||||
<footer>
|
||||
<p> Node Operated by "User" • <a href="http://hctxrvjzfpvmzh2jllqhgvvkoepxb4kfzdjm6h7egcwlumggtktiftid.onion/" target="_blank">Tor Metrics</a> • <a href="http://rzuwtpc4wb3xdzrj3yeajsvm3fkq4vbeubm2tdxaqruzzzgs5dwemlad.onion/" target="_blank">Tor Support</a>
|
||||
</p>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user