VPSలో .onion సైట్ను ఎలా హోస్ట్ చేయాలి
Ubuntuలో tor, nginxతో v3 onion service నడపండి. loopbackకు bind చేసి public IP లీక్లను మూసేయండి; 2021లో తొలగించిన v2 addressలను వాడకండి.
మీరు నిర్మిస్తున్నది
onion site అనేది Tor network ద్వారా మాత్రమే అభ్యర్థనలకు స్పందించే సాధారణ web server. tor ను install చేసి, /etc/tor/torrc కు రెండు lines జోడించండి. తరువాత tor మీ కోసం రాసిన address ను చదవండి. ఆపై nginx ను 127.0.0.1 కు bind చేయండి. దీనివల్ల public IP పై ఏదీ స్పందించదు. Install భాగానికి పది నిమిషాలు పడుతుంది. ఈ guide లోని మిగిలిన భాగం leak list. ఎందుకంటే onion site విఫలమయ్యే సాధారణ కారణం, దాని స్వంత configuration operator వద్దకు నేరుగా తిరిగి చూపించడం.
Tor మొదట "the onion router" గా ప్రారంభమైంది. onion service అంటే Tor ద్వారా మాత్రమే చేరుకోగల service. Version 3 address లో 56 characters తరువాత .onion ఉంటాయి. ఆ characters service యొక్క ed25519 public key, checksum మరియు version byteలను base32లో encode చేసినవి. Version 2 addresses (16 characters) ను 2021లో network నుంచి తొలగించారు. అందువల్ల ప్రస్తుతం మీరు generate చేసేది ఏదైనా v3 అవుతుంది. Address అనేదే key. దీనికి రెండు ముఖ్యమైన పరిణామాలు ఉన్నాయి. Certificate authority అవసరం లేకుండా connection end to endగా encrypt మరియు authenticate అవుతుంది. Key file పోతే address ను శాశ్వతంగా కోల్పోతారు.
మీ server ఎప్పుడూ inbound connection ను స్వీకరించదు. Tor కొన్ని relays ను introduction points గా ఎంచుకుని, signed descriptor ను directory servers కు upload చేస్తుంది. తరువాత visitor ఎంచుకున్న rendezvous relay వద్ద ప్రతి visitor తో connection ఏర్పాటు చేస్తుంది. ఈ connections అన్నీ మీ server నుంచి outboundగా ఉంటాయి. ఏ port ను open చేయాల్సిన అవసరం లేదు. DNS record ను publish చేయాల్సిన అవసరం కూడా లేదు.
Tor Project repository నుంచి tor ను ఇన్స్టాల్ చేయండి
Ubuntu universeలో tor package ను అందిస్తుంది. అయితే release freeze సమయంలో ఉన్న version కు అది సమీపంగా ఉంటుంది. Tor Project యొక్క స్వంత repository ప్రస్తుత stable release ను అనుసరిస్తుంది. మీ address మీకే కొనసాగుతుందా లేదా అని నిర్ణయించే ఈ software భాగానికి అదే అవసరం.
sudo apt update
sudo apt install -y apt-transport-https gnupg wget
KEYURL=https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc
wget -qO- "$KEYURL" | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/nullRepository entry deb822 format ను ఉపయోగిస్తుంది. Suites మీ Ubuntu codename అయి ఉండాలి. దాన్ని టైప్ చేయకుండా /etc/os-release నుంచి చదవండి. తప్పు codename ఇస్తే repository సరిగ్గా resolve అవుతుంది, కానీ మీ release కోసం packages ఉండవు.
. /etc/os-release
sudo tee /etc/apt/sources.list.d/tor.sources >/dev/null <<EOF
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: $VERSION_CODENAME
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpg
EOF
sudo apt update
sudo apt install -y tor deb.torproject.org-keyringdeb.torproject.org-keyring package signing key ను ప్రస్తుతంగా ఉంచుతుంది. అందువల్ల ఒక సంవత్సరం తర్వాత key rotation కారణంగా apt update విఫలం కాదు. tor ప్రారంభమై network కు చేరిందో తనిఖీ చేయండి:
tor --version
sudo journalctl -u tor@default -n 20journal చివర Bootstrapped 100% (done): Done తో ముగియాలి. tor Bootstrapped 10% వద్ద ఆగిపోతే outbound path ఉండదు. అందువల్ల మీ provider network firewall మరియు మీ egress rules ను తనిఖీ చేయండి: default గా allow (outgoing) ఉందని sudo ufw status verbose చూపించాలి.
ఇక నుంచి రెండు పేర్లు ముఖ్యమైనవి. package tor ను debian-tor user గా నడుపుతుంది. నడుస్తున్న unit tor@default.service. Debian మరియు Ubuntuలోని tor.service instance చుట్టూ ఉండే wrapper. Instance name ఉపయోగించి status మరియు logs అడిగితే నిజమైన process వివరాలు ఎల్లప్పుడూ లభిస్తాయి.
torrcలో onion service ను కాన్ఫిగర్ చేయండి
/etc/tor/torrc కు రెండు పంక్తులను జత చేయండి:
HiddenServiceDir /var/lib/tor/onion_site/
HiddenServicePort 80 127.0.0.1:8080HiddenServiceDir అనేది ఈ service కోసం Tor keys మరియు address ను ఉంచే directory. దీన్ని మీరే సృష్టించవద్దు. అవసరమైన owner మరియు mode తో Tor ప్రారంభమైనప్పుడు దీన్ని సృష్టిస్తుంది. root గా మీరు సృష్టించిన directory వల్ల దిగువ failure list లోని మొదటి failure సంభవిస్తుంది.
HiddenServicePort కు రెండు భాగాలు ఉంటాయి. వాటిని కలపడం మొదటి సాధారణ తప్పు. మొదటి number tunnel లోపల visitor connect అయ్యే port. అందువల్ల 80 సాధారణంగా ఆశించేది ఇదే, దీన్ని మార్చాల్సిన అవసరం లేదు. రెండవ భాగం Tor ఆ traffic ను forward చేసే local address. ఖాళీ HiddenServicePort 80, traffic ను 127.0.0.1:80 కు forward చేస్తుంది. అందువల్ల address ను స్పష్టంగా రాసి high port ఉపయోగిస్తే, onion vhost ఇప్పటికే 80 పై listening చేస్తున్న దేనితోనూ ఘర్షణ పడదు.
sudo systemctl restart tor@default
sudo ls -l /var/lib/tor/onion_site/ఆ listing లో hostname, hs_ed25519_public_key, hs_ed25519_secret_key మరియు ఖాళీ authorized_clients directory ఉండాలి.
మీ .onion చిరునామాను చదవండి
sudo cat /var/lib/tor/onion_site/hostnameఒకే లైన్ తిరిగి వస్తుంది: 56 base32 అక్షరాలు మరియు .onion. ఆ string సైట్కు సంబంధించిన పూర్తి గుర్తింపు. దాన్ని ఎవరూ కేటాయించరు, ఎవరూ బదిలీ చేయలేరు, మీరు key file ను కలిగి ఉన్నంత వరకు ఎవరూ దాన్ని మీ నుంచి తీసుకోలేరు. దీన్ని ఇప్పుడే copy చేసుకోండి, ఎందుకంటే దిగువన ఉన్న ప్రతి configuration కు ఇది అవసరం. ఈ guide లో మిగతా చోట్ల దీన్ని <your-address>.onionగా రాస్తాం.
127.0.0.1 కు bind చేసిన nginx నుంచి సైట్ను అందించండి
sudo apt install -y nginx
sudo install -d -m 755 /srv/onion/etc/nginx/sites-available/onion ను రాయండి:
server {
listen 127.0.0.1:8080;
server_name <your-address>.onion;
root /srv/onion;
index index.html;
server_tokens off;
etag off;
access_log off;
error_log /var/log/nginx/onion.error.log error;
}echo '<h1>hello from the onion</h1>' | sudo tee /srv/onion/index.html
sudo ln -s /etc/nginx/sites-available/onion /etc/nginx/sites-enabled/onion
sudo nginx -t
sudo systemctl reload nginxఇప్పుడు server నుంచే రెండు విషయాలను నిర్ధారించండి. మొదటిది, onion name కోసం nginx సమాధానం ఇస్తోందని నిర్ధారించాలి. ఇది tor పంపే ఖచ్చితమైన Host header:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/రెండవది, అది అక్కడ మాత్రమే సమాధానం ఇస్తోందని, మరెక్కడా కాదని నిర్ధారించాలి:
sudo ss -tlnp | grep 8080address column లో 127.0.0.1:8080 అని ఉండాలి. అది 0.0.0.0:8080 లేదా *:8080 అని ఉంటే, మీ onion site public internet లో కూడా అందుబాటులో ఉంది. ఇది leak list లోని మొదటి అంశం. address లేకుండా ఉన్న listen 8080; line ప్రతి interface కు bind అవుతుంది. అదే default.
Tor Browser లో address ను తెరవండి. client మీ descriptor ను పొందుకుని rendezvous circuit నిర్మించే సమయంలో మొదటి load కు కొన్ని seconds పడుతుంది.
Tor Project యొక్క documentation loopback port కంటే unix socket ను ఉపయోగించడాన్ని సూచిస్తుంది: HiddenServicePort 80 unix:/var/run/tor/onion_site.sock. nginx ఆ path పై listen చేయాలి. మరొక host నుంచి socket ను అసలు చేరుకోలేరు. తరువాత box కు రెండవ interface వచ్చినా ఇది మారదు. అయితే file permissions ను సరిగ్గా అమర్చాలి. nginx socket ను సృష్టిస్తుంది, tor దానికి debian-tor గా connect అవుతుంది. అందువల్ల ఈ రెండు users directory విషయంలో అనుకూలంగా ఉండాలి. ధృవీకరించిన ss output తో loopback ను అమర్చడం సులభం. ఈ guide మిగతా భాగం కూడా అదే విధానాన్ని అనుసరిస్తుంది.
సైట్ loopback పై ఉంటే, దానికి inbound rule ఏదీ అవసరం లేదు. మీ కోసం 22 ను open గా ఉంచి, మిగతావాటిని deny చేయండి (VPS లో అమర్చాల్సిన ufw defaults). 0.0.0.0 కు bind అయ్యే service ను firewall రద్దు చేయదని గుర్తుంచుకోండి. Firewall కు చేరే packets ను మాత్రమే అది filter చేస్తుంది. Containers విషయంలో ఇది మరింత ముఖ్యమైనది. Docker port ను publish చేయడం ufw కంటే ముందుగా iptables rules రాస్తుంది, కాబట్టి -p 8080:80 మీ onion backend ను public IP పై ఉంచుతుంది, అయితే ufw ఆ port ను ఇప్పటికీ denied గా చూపిస్తుంది. Container ports ను -p 127.0.0.1:8080:80 గా publish చేయండి.
Onion site ను అనామకంగా ఉంచడాన్ని భంగపరిచే లీక్లు
Tor సర్వర్ ఎక్కడ ఉందో దాచుతుంది. కానీ సర్వర్ ఏమి పంపుతుందో Tor దాచదు. క్రింద ఉన్న ప్రతి అంశాన్ని మీ స్వంత stack ప్రచురిస్తుంది.
మీ public IP పై కూడా అదే site స్పందించడం
ఇదే అంశం చాలామందిని ఇబ్బందిలోకి నెడుతుంది. Scanners ప్రతి routable address యొక్క HTTP response ను నిరంతరం index చేస్తాయి. ఆ ఫలితాలు public గా ఉండి, search చేయవచ్చు. మీ public IP మరియు onion address రెండింటిలోనూ అదే page ను అందిస్తే, వాటిని అనుసంధానించడానికి ఒక query చాలు: అదే title, అదే favicon hash, అదే ETag, అదే header క్రమం. పై భాగంలోని listen 127.0.0.1:8080; line దీనికి పరిష్కారం. దీన్ని server నుంచే కాకుండా వేరే machine నుంచి ధృవీకరించండి:
curl -sv --max-time 5 http://<your-public-ip>:8080/సరైన ఫలితం Connection refused లేదా timeout కావాలి. ఏదైనా HTML వస్తే site public గా ఉంది. ఆ box clearnet site ను కూడా నడుపుతుంటే, ఆ vhost కు ప్రత్యేక root ఇవ్వండి. Public listener పై స్పష్టమైన default_server block ఉంచండి. అప్పుడు సరిపోలని Host header ఎప్పటికీ onion vhost కు fall through కాదు.
Version banners
curl -sI http://127.0.0.1:8080/ | grep -i '^server'Default nginx Server: nginx/1.24.0 ను తిరిగి ఇస్తుంది. ఆ version string తో పాటు ఇతర headers యొక్క ఖచ్చితమైన క్రమం కూడా fingerprint అవుతుంది. దీని ఆధారంగా మీ onion site ను clearnet host తో సరిపోల్చవచ్చు. server_tokens off; దీనిని Server: nginx కు తగ్గిస్తుంది. ఇది header ను తొలగించదు. nginx లో header తొలగించడానికి built-in directive లేదు. అందువల్ల header పూర్తిగా తొలగించాలనుకుంటే headers-more module సాధారణ పరిష్కారం. expose_php = Off సెట్ చేసే వరకు PHP X-Powered-By ను జోడిస్తుంది. etag off; ను కూడా అదే జాబితాలో పరిగణించాలి. nginx ఒక file యొక్క modification time మరియు size ఆధారంగా ETag ను రూపొందిస్తుంది. అందువల్ల రెండు servers కు copy చేసిన అదే files, రెండింటిలోనూ ఒకే ETag ను అందిస్తాయి.
మీ clearnet domain ను సూచించే Absolute URLs
ఒక rel="canonical" tag, ఒక Open Graph og:url, RSS feed, sitemap, password reset email లేదా hardcoded logo URL. వీటిలో ఏదో ఒకటి onion ద్వారా అందించిన page లో clearnet site పేరును బయటపెడుతుంది. /static/logo.svg వంటి root-relative paths ఉపయోగించండి. Application తన base URL ను constant నుంచి కాకుండా request host నుంచి చదివేలా చేయండి. Redirects కూడా ఇదే సమస్యకు మరో రూపం. Catch-all block లోని return 301 https://example.com$request_uri; onion visitor ను మీ అసలు domain కు పంపుతుంది. Location header నేరుగా ఆ సమాధానాన్ని అందిస్తుంది.
Clearnet site తో పంచుకున్న TLS certificate
Onion address తనను తాను authenticate చేసుకుంటుంది, ఎందుకంటే ఆ address నే public key. అందువల్ల onion connection పై http:// ఇప్పటికే end to end encrypted గా ఉంటుంది. Tor Browser దాన్ని secure context గా పరిగణిస్తుంది. మీ ప్రస్తుత certificate ను onion vhost లో install చేస్తే, రెండు sites మధ్య సంబంధం బయటపడుతుంది. ప్రతి publicly trusted certificate Certificate Transparency logs లో నమోదు అవుతుంది. ఆ logs public, permanent, మరియు name ద్వారా searchable గా ఉంటాయి. Clearnet vhost లో Let's Encrypt certificates ఉంచండి. Onion vhost ను plain HTTP పై కొనసాగించండి.
Third-party fonts మరియు analytics
CDN (content delivery network) నుంచి వచ్చే font లేదా analytics script కూడా సమస్య కావచ్చు. Visitor browser ప్రతి asset ను నేరుగా fetch చేస్తుంది. అందువల్ల third party ఎవరో మీ page load చేశారని, సాధారణంగా ఏ page load చేశారో కూడా తెలుసుకుంటుంది. Tor Browser యొక్క కఠినమైన security levels ఆ request ను block చేయవచ్చు. దాంతో layout సరిగా కనిపించదు. Page కు అవసరమైన ప్రతి asset ను self-host చేయండి.
Host header mismatch
server_name, tor పంపే Host header తో సరిపోలకపోతే, nginx ఆ listen address కు సంబంధించిన default server కు fallback అవుతుంది. ఒక vhost మాత్రమే ఉన్న box లో ఇది కనిపించదు, ఎందుకంటే ఉన్న ఏకైక server block అదే default కూడా అవుతుంది. తరువాత clearnet vhost ను జోడిస్తే onion requests దానిపై పడవచ్చు. దాని canonical tags మరియు redirects కూడా response లోకి రావచ్చు. ప్రతి nginx మార్పు తర్వాత curl -H 'Host: ...' check ను మళ్లీ అమలు చేయండి. ఫలితంలో మీ అసలు domain కోసం grep చేయండి:
curl -s -H 'Host: <your-address>.onion' http://127.0.0.1:8080/ | grep -o 'https\?://[^"]*' | sort -uఏ process ఏ socket ను own చేస్తుందో తెలుసుకోవడం ఈ పనిలో ప్రధాన భాగం (Linux లో ports మరియు listening sockets ఎలా పనిచేస్తాయి).
Logs లో మిగిలేది
ప్రతి request 127.0.0.1 నుంచి వస్తుంది. అందువల్ల nginx నమోదు చేయడానికి visitor address ఉండదు. access_log off; వల్ల మీకు ఎలాంటి ఖర్చు ఉండదు. దాని పైన ఉన్న application వేరే విషయం. Order, email address లేదా uploaded file metadata ను మీరు నిర్వహించాలి. మీ స్వంత అలవాట్లు కూడా ముఖ్యమే. Harden చేయని login ద్వారా box ను administer చేయడం Tor రక్షణ పరిధికి వెలుపల ఉంటుంది. అందువల్ల అదే VPS పై SSH hardening ను ఈ setup లో భాగంగా పరిగణించండి.
Private key కు backup తీసుకోండి, ఎందుకంటే అదే address
/var/lib/tor/onion_site/hs_ed25519_secret_key service. దీనికి registrar లేదా recovery ఉండదు. దాన్ని కోల్పోతే address కూడా పోతుంది. దాని కాపీని తీసుకుంటే, ఆ కాపీ ఉన్న ఎవరైనా మీ address వద్ద తమ స్వంత content ను అందించగలరు. మీరు దాన్ని revoke చేయడానికి ఎలాంటి మార్గం ఉండదు.
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -czf onion-keys.tgz onion_site
sudo chmod 600 onion-keys.tgz
sudo systemctl start tor@defaultఆ archive ను (gpg -c onion-keys.tgz) encrypt చేసి server వెలుపలికి తరలించండి. కొత్త VPS లో restore చేయడానికి archive మరియు ownership ను tor ఆశించే విధంగా సిద్ధం చేయడం మాత్రమే అవసరం:
sudo systemctl stop tor@default
sudo tar -C /var/lib/tor -xzf onion-keys.tgz
sudo chown -R debian-tor:debian-tor /var/lib/tor/onion_site
sudo chmod 700 /var/lib/tor/onion_site
sudo systemctl start tor@default
sudo cat /var/lib/tor/onion_site/hostnameకొత్త hardware పై అదే address తిరిగి అందుబాటులోకి వస్తుంది. tor descriptor ను మళ్లీ publish చేసిన తర్వాత సాధారణంగా ఒకటి లేదా రెండు నిమిషాలు పడుతుంది. ఇదే మొత్తం migration: DNS మార్పు అవసరం లేదు, certificate ను మళ్లీ issue చేయాల్సిన అవసరం లేదు.
Onion-Location, సైట్ clearnetలో కూడా అందుబాటులో ఉన్నప్పుడు
onion చిరునామా రహస్యంగా ఉంచాల్సినది కాకుండా సౌకర్యం కోసం మాత్రమే ఉంటే, దాన్ని clearnet vhost నుంచి ప్రకటించండి:
add_header Onion-Location http://<your-address>.onion$request_uri;ఆ తర్వాత Tor Browser address barలో .onion available బటన్ను చూపించి, ఆ చిరునామాకు మారే ఎంపికను అందిస్తుంది. clearnet పేజీ HTTPS ద్వారా అందించబడినప్పుడు మరియు విలువ చెల్లుబాటు అయ్యే onion URL అయినప్పుడు మాత్రమే ఈ header అమలులోకి వస్తుంది.
ఇక్కడ ఒక nginx నియమాన్ని గమనించాలి. add_header directives ను location block తన స్వంత directives ఏవీ ప్రకటించనప్పుడు మాత్రమే ఆ block వారసత్వంగా పొందుతుంది. అందువల్ల, స్వంత add_header కలిగిన location నిశ్శబ్దంగా Onion-Location ను తొలగిస్తుంది. ఆ header ను అక్కడ కూడా పునరావృతం చేయండి లేదా response headers అన్నింటినీ ఒకే చోట ఉంచండి. ఈ header ను ఉద్దేశపూర్వకంగా ప్రచురించడం ద్వారా రెండు సైట్ల మధ్య సంబంధం ఏర్పడుతుంది. Mirror కోసం ఇది సరైనది; ఒకదానితో ఒకటి లింక్ కాకూడని సైట్లకు ఇది తప్పు.
వానిటీ చిరునామాలు
mkp224o మీరు కోరిన prefix తో ప్రారంభమయ్యే address దొరికే వరకు key pairs ను రూపొందిస్తుంది. ఇది brute force search. అందువల్ల prefix మరియు మీరు వేచి ఉండటానికి సిద్ధంగా ఉన్న సమయం తప్ప మరేదీ configure చేయాల్సిన అవసరం లేదు.
sudo apt install -y git gcc libc6-dev libsodium-dev make autoconf
git clone https://github.com/cathugger/mkp224o
cd mkp224o
./autogen.sh
./configure --enable-amd64-51-30k
make
./mkp224o -d onionkeys blogప్రతి match hostname మరియు hs_ed25519_secret_key ను కలిగి ఉన్న onionkeys/<address>.onion/ లో నిల్వ అవుతుంది. దాన్ని install చేయడానికి tor ను ఆపి, ఆ directory ని మీ HiddenServiceDir పైకి copy చేసి, పై restore విధానంలో ఉపయోగించిన అదే chown మరియు chmod 700 ను వర్తింపజేయండి.
Prefix పొడవే మొత్తం ఖర్చును నిర్ణయిస్తుంది. Address base32 లో ఉంటుంది. కాబట్టి మీరు కోరే ప్రతి అదనపు character, అంచనా వేసిన key ల సంఖ్యను 32 రెట్లు పెంచుతుంది. చిన్న prefix laptop పై త్వరగా పూర్తవుతుంది. పొడవైనది మీ వద్ద ఉన్న ఏ పరికరంపైనా పూర్తికాదు. Vanity prefix వల్ల పాఠకులు మొత్తం address బదులుగా మొదటి కొన్ని characters ను గుర్తించే అలవాటు చేసుకుంటారు. Onion sites ను అనుకరించే phishing కాపీలు ఈ అలవాటుపైనే ఆధారపడతాయి.
పొరపాటు పరిస్థితులు: మీరు చూసే సందేశాలతో
పునఃప్రారంభం తర్వాత hostname ఫైలు లేదు. Tor ప్రారంభం కాలేదు లేదా directory ను తిరస్కరించింది. sudo journalctl -u tor@default -n 50 దాని పేరును చూపిస్తుంది:
/var/lib/tor/onion_site/ is not owned by this user (debian-tor, 108) but by root (0). Perhaps you are running Tor as the wrong user?చేతితో సృష్టించిన directory ఇలా కనిపిస్తుంది. Ownership మరియు mode ను సరిచేయండి లేదా directory ను తొలగించి, tor దాన్ని స్వయంగా నిర్మించనివ్వండి.
Tor Browser లో Onionsite Not Found (0xF0) కనిపిస్తుంది. Client descriptor ను పొందలేకపోయింది. అందువల్ల network దృష్టిలో ఆ address వద్ద ఏదీ publish కాలేదు. tor నడుస్తోందని, bootstrap పూర్తయిందని నిర్ధారించండి. మీరు టైప్ చేసిన address ను sudo cat /var/lib/tor/onion_site/hostname తో అక్షరం అక్షరంగా సరిపోల్చండి. తరువాత clock ను తనిఖీ చేయండి. Descriptorలను publish చేసి validate చేయడానికి Tor కు ఖచ్చితమైన సమయం అవసరం. timedatectl తప్పనిసరిగా System clock synchronized: yes ను చూపించాలి.
Address resolve అవుతుంది, కానీ page ఎప్పటికీ load కాదు. Tor rendezvous ను పూర్తి చేసింది, కానీ చివరి hop లో, అంటే tor నుంచి nginx వరకు, విఫలమైంది. ఆ hop local కావడంతో tor log లో ఏమీ కనిపించదు. Server పై curl -sI http://127.0.0.1:8080/ ను అమలు చేయండి. Connection refused అంటే nginx down అయి ఉండవచ్చు లేదా HiddenServicePort సూచించే address కాకుండా వేరే address పై listening చేస్తుండవచ్చు.
Page load అవుతుంది, కానీ ప్రతి link మీ అసలు domain కు వెళ్తుంది. Templates లో absolute URLs ఉన్నాయి. పై భాగంలోని grep -o 'https\?://[^"]*' check ను అమలు చేసి, అది చూపించే విషయాలను సరిచేసిన తర్వాతే address ను ఎక్కడైనా share చేయండి.
ఇది పనిచేస్తుంది, కానీ reboot తర్వాత ఆగిపోతుంది. Site పై ఆధారపడే ముందు ఉద్దేశపూర్వకంగా box ను ఒకసారి reboot చేయండి. తరువాత sudo systemctl status tor@default మరియు sudo systemctl status nginx ను అమలు చేయండి. చేతితో ప్రారంభించిన service మరియు enabled service ఒకేలా కనిపిస్తాయి; machine restart అయ్యే వరకు తేడా కనిపించదు.
FAQ
firewallలో Tor onion service కోసం port తెరవాలా?
లేదు. tor daemon directory servers, introduction points మరియు ప్రతి rendezvous relay కు outbound connections మాత్రమే చేస్తుంది. అందువల్ల inbound rule అవసరం లేదు. Web server స్వయంగా 127.0.0.1 పై listen చేస్తుంది. SSH అనుమతితో incoming traffic కు ufw లో default deny కొనసాగించండి. ఇదే లక్షణం వల్ల public IP లేకపోయినా NAT (network address translation) వెనుక ఉన్న machine నుంచి onion service పనిచేస్తుంది.
Tor Browserలో నా .onion address ఎందుకు చేరడం లేదు?
Server నుంచి బయటికి క్రమంగా పరిశీలించండి. sudo journalctl -u tor@default -n 50 ద్వారా Bootstrapped 100% (done): Done కనిపించాలి. తరువాత serverలో curl -sI http://127.0.0.1:8080/ status line ను చూపాలి. ఆపై మీరు నమోదు చేసిన address ను hostname fileలోని addressతో సరిపోల్చండి. ఒక్క character తప్పినా అది వేరే service అవుతుంది. Onionsite Not Found (0xF0) అంటే ఆ address కోసం descriptor కనుగొనబడలేదని అర్థం. సాధారణంగా tor నడవకపోవడం లేదా system clock తప్పుగా ఉండటం దీనికి కారణం.
నా onion siteను కొత్త serverకు మార్చి అదే addressను కొనసాగించవచ్చా?
అవును. Address hs_ed25519_secret_key నుంచి ఉత్పన్నమవుతుంది. అందువల్ల మొత్తం HiddenServiceDir ను కొత్త boxకు copy చేయండి. దానికి debian-tor ownership మరియు mode 700 సెట్ చేసి, tor ప్రారంభించండి. Descriptor మళ్లీ publish అయిన వెంటనే address తిరిగి పనిచేస్తుంది. DNS recordను update చేయాల్సిన అవసరం లేదు. ఆ fileను కోల్పోతే addressను తిరిగి పొందలేరు. కాబట్టి దాన్ని సృష్టించిన రోజే encrypted రూపంలో server వెలుపల backup చేయండి.
onion siteకు HTTPS certificate అవసరమా?
లేదు. 56-character address service యొక్క public key. అందువల్ల connection end to endగా ఇప్పటికే encrypted మరియు authenticated అయి ఉంటుంది. Tor Browser .onion nameపై ఉన్న http:// ను secure contextగా పరిగణిస్తుంది. Onion vhostలో మీ clearnet certificateను మళ్లీ ఉపయోగించడం ఏమీ చేయకపోవడం కంటే దారుణం. ఎందుకంటే Certificate Transparency logs publicగా ఉంటాయి మరియు ఏ names ఒకే certificateను పంచుకుంటున్నాయో శాశ్వతంగా నమోదు చేస్తాయి. .onion name కోసం certificate కొనడానికి ఉన్న ఏకైక కారణం, వాటిని issue చేసే CA నుంచి brand assurance పొందడమే. ఆ link ఉద్దేశపూర్వకంగా publicగా ఉంటుంది.