Tor onion service দিয়ে SSH, কোনো open port ছাড়াই
Tor onion service-এর আড়ালে sshd চালিয়ে VPS-এ inbound port বন্ধ রাখুন। v3 client authorisation সেটআপ এবং lockout এড়াতে firewall বদলের সঠিক ক্রম দেখুন।
Tor onion service-এর মাধ্যমে SSH ব্যবহারে যা পরিবর্তিত হয়
Tor onion service-এর মাধ্যমে SSH ব্যবহার করলে এমন একটি VPS পরিচালনা করা যায়, যেটি কোনো port-এ inbound connection গ্রহণ করে না। সার্ভারটি Tor network-এ outbound connection তৈরি করে এবং সেই connection চালু রাখে। আপনার SSH session সেই connection দিয়েই ফিরে আসে। তাই public IP address-এ কোনো service-কে listen করতে হয় না।
এর প্রভাব log-এ সঙ্গে সঙ্গে দেখা যায়। Public SSH port থাকা একটি server-এ scanner-গুলো প্রতিদিন হাজার হাজার ব্যর্থ password attempt তৈরি করে। sshd-কে onion service-এর আড়ালে রেখে firewall-এ inbound traffic বন্ধ করলে /var/log/auth.log-এ এরপর শুধু আপনার শুরু করা session-গুলোর রেকর্ড থাকে।
এর বিনিময়ে প্রতিটি প্রশাসনিক session-এর পথে tor অবস্থান করে। এটি একটি userspace daemon, যা প্রতিটি reboot-এর পরে start হয়ে bootstrap সম্পন্ন না করা পর্যন্ত আপনি login করতে পারবেন না। Port বন্ধ করার আগে এই বিষয়টির পরিকল্পনা করুন। কারণ এখানে ব্যর্থ হলে এমন একটি machine-এ access হারাতে পারেন, যেটিতে আপনি শারীরিকভাবে পৌঁছাতে পারবেন না।
কোনো পরিবর্তন করার আগে ফিরে ঢোকার পথ নিশ্চিত করুন
SSH ব্যবহার করে নয়—এমন একটি recovery path নিশ্চিত না করা পর্যন্ত কাজ শুরু করবেন না।
এখনই provider-এর console খুলুন। Control panel-এর VNC বা serial console ব্যবহার করে এতে লগ ইন করুন। root password জানা না থাকলে আগে panel থেকে root password reset করুন এবং এটি কাজ করছে কি না নিশ্চিত করুন। আগে কখনও পরীক্ষা না করা console-কে recovery path হিসেবে গণ্য করা যায় না।
নিচের ক্রমটি গুরুত্বপূর্ণ। পরের ধাপ চালানোর আগে প্রতিটি ধাপ সফল হয়েছে কি না যাচাই করা হয়, এবং onion route কাজ না করা পর্যন্ত port 22 খোলা থাকে।
- tor install করুন এবং এটি bootstrap সম্পন্ন করছে কি না নিশ্চিত করুন।
- onion service নির্ধারণ করুন এবং address পড়ে নিন।
- port 22 খোলা থাকা অবস্থায় onion-এর মাধ্যমে connect করুন।
- client authorisation যোগ করুন, তারপর আবার connect করুন।
sshd-কে loopback-এ bind করুন এবং port 22 বন্ধ করুন।- reboot করুন, তারপর আবার onion-এর মাধ্যমে connect করুন।
পুরো প্রক্রিয়া চলাকালে বর্তমান SSH session খোলা রাখুন। নতুন session block করবে এমন firewall পরিবর্তনের পরও একটি established session সচল থাকে। তাই এটিই আপনার প্রথম rescue পথ।
সার্ভারে tor ইনস্টল করুন
Ubuntu নিজস্ব repository-তে tor সরবরাহ করে, তবে সেই build প্রায়ই পুরোনো থাকে। Tor Project-এর repository-তে তাদের documentation-এ বর্ণিত version থাকে। তাদের apt repository guide-এ দেওয়া command দিয়ে এটি যোগ করুন।
sudo apt update
sudo apt install -y apt-transport-https wget gpg
wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/deb.torproject.org-keyring.gpg >/dev/null/etc/apt/sources.list.d/tor.sources লিখুন। Suites আপনার release codename নেয়, যা lsb_release -cs দেখায় (Ubuntu 24.04-এ noble)।
Types: deb deb-src
URIs: https://deb.torproject.org/torproject.org/
Suites: noble
Components: main
Signed-By: /usr/share/keyrings/deb.torproject.org-keyring.gpgsudo apt update
sudo apt install -y tor deb.torproject.org-keyring
sudo journalctl -u tor@default -n 20 --no-pagerলগের শেষে Bootstrapped 100% (done) থাকা উচিত। এর নিচে আটকে থাকলে tor network-এ পৌঁছাতে পারছে না। এর কারণ প্রায় সব সময় outbound firewall rule অথবা clock-এর সময় গুরুতরভাবে ভুল থাকা।
Unit-এর নাম বিভ্রান্তিকর। সবকিছু সঠিক থাকলেও systemctl status tor-এ Active: active (exited) দেখা যায়। কারণ Debian এবং Ubuntu tor-কে একটি multi-instance master unit হিসেবে package করে। এর একমাত্র কাজ হলো প্রকৃত instance চালু করা। Daemon নিজে tor@default.service হিসেবে চলে। status এবং journalctl-এর জন্য এই নাম ব্যবহার করুন। tor-এর start, stop এবং reload অবশ্যই instance-এ পৌঁছায়। তাই sudo systemctl reload tor প্রত্যাশামতো কাজ করে।
port 22-এর জন্য onion service সংজ্ঞায়িত করুন
/etc/tor/torrc-এ 2টি লাইন যোগ করুন।
HiddenServiceDir /var/lib/tor/ssh/
HiddenServicePort 22 127.0.0.1:22দ্বিতীয় লাইনটি tor-কে onion address-এ virtual port 22 গ্রহণ করে এই সার্ভারের 127.0.0.1:22-এ সংযোগ করতে বলে। Tor loopback-এর মাধ্যমে sshd-এ পৌঁছায়। এ কারণেই পরে sshd-কে public address-এ listening করা বন্ধ করা যায়। দ্বিতীয় লাইনটি 127.0.0.1:80-এ চলমান web server-এর দিকে নির্দেশ করুন। একই 2টি নির্দেশনা onion address-এ একটি site প্রকাশ করে। tor ইনস্টল করার পর এটি চালানোর জন্য একটি কার্যকর দ্বিতীয় service।
sudo systemctl reload tor
sudo cat /var/lib/tor/ssh/hostnameএটি 56টি base32 অক্ষর এবং তার পরে .onion মুদ্রণ করে। এই অক্ষরগুলো encoded আকারে service-এর public key। এখানে কোনো certificate authority বা name registration নেই।
tor-কে /var/lib/tor/ssh/ নিজে তৈরি করতে দিন। ভুল owner দিয়ে এটি হাতে তৈরি করলে, অথবা 0700-এর চেয়ে বেশি উন্মুক্ত mode সেট করলে, tor এটি ব্যবহার করতে অস্বীকার করবে এবং journal directory-টিকে অতিরিক্ত permissive হিসেবে জানাবে। ভেতরের ফাইলগুলোই service identity: hs_ed25519_secret_key হল address। এই directory-টির mode 600 রেখে backup নিন এবং কপিটি সার্ভারের বাইরে সংরক্ষণ করুন। এটি হারালে নতুন address তৈরি করতে হবে এবং প্রতিটি client-এ configuration সম্পাদনা করতে হবে।
ওয়ার্কস্টেশন থেকে সংযোগ করুন
আপনার ওয়ার্কস্টেশনে একটি tor client থাকতে হবে, যার কোনো configuration-এর প্রয়োজন নেই। Debian বা Ubuntu-তে সেটি হলো sudo apt install -y tor netcat-openbsd। এরপর Tor 127.0.0.1:9050-এ একটি SOCKS5 proxy হিসেবে listen করে। SOCKS একটি সাধারণ proxy protocol। এর version 5 IP address-এর পরিবর্তে hostname বহন করতে পারে। এখানে এটিই গুরুত্বপূর্ণ।
OpenSSH-এর নিজস্ব SOCKS client নেই। তাই একটি helper program ব্যবহার করে সংযোগ তৈরি করতে হবে। ~/.ssh/config-এ এটি যোগ করুন।
Host myvps
HostName xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.onion
User admin
ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:9050 %h %p
ServerAliveInterval 30-X 5 SOCKS5 নির্বাচন করে এবং -x 127.0.0.1:9050 local tor-এর দিকে নির্দেশ করে। %h onion name-টি একটি name হিসেবে tor-এর কাছে পাঠায়। ফলে tor সেটি network-এর ভেতরে resolve করে। এটি অবশ্যই OpenBSD netcat হতে হবে। GNU netcat-এ -X option নেই এবং এটি nc: invalid option -- 'X' দিয়ে বন্ধ হয়ে যায়।
ssh myvpsপ্রথম সংযোগটি ধীর হবে, কারণ অন্য কিছু করার আগে tor একটি circuit তৈরি করে। অন্য যেকোনো সংযোগের মতোই host key fingerprint গ্রহণ করুন। এরপর প্রচলিত SSH key ব্যবস্থাপনা অপরিবর্তিতভাবে প্রযোজ্য হবে। শুধু transport পরিবর্তিত হয়েছে। authentication পরিবর্তিত হয়নি।
একবারের জন্য সংযোগ করলে configuration entry বাদ দিতে পারেন: torsocks ssh admin@xxxxx.onion একই কাজ করে।
v3 client authorisation যোগ করুন
এখন যে অবস্থায় আছে, ঠিকানা জানা যেকেউ আপনার SSH banner-এ পৌঁছে অনুমান করা শুরু করতে পারে। Onion address directory system থেকে enumerated করা যায় না, তাই ঠিকানাটি একটি secret-এর মতো কাজ করে। কিন্তু সাধারণ উপায়ে এটি ফাঁস হয়ে যেতে পারে, যেমন shell history বা git repository-তে commit করা configuration file-এর মাধ্যমে। Client authorisation এই দুর্বলতা বন্ধ করে। Service তার descriptor একটি client key দিয়ে encrypted অবস্থায় প্রকাশ করে। ফলে ঠিকানা জানা থাকলেও key না থাকলে কেউ service-টি locate করতে পারে না।
Client-এ একটি x25519 key pair তৈরি করুন। এটি Tor Project-এর client authorisation guide-এর pipeline, তবে একটি পরিবর্তন আছে।
openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem
grep -v " PRIVATE KEY" /tmp/k1.prv.pem | base64 -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.prv.key
openssl pkey -in /tmp/k1.prv.pem -pubout | grep -v " PUBLIC KEY" | base64 -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.pub.keyপ্রকাশিত সংস্করণের ওই লাইনগুলোতে base64pem -d ব্যবহার করা হয়েছে। Stock Ubuntu install-এ এটি থাকে না। ফলে command-টি base64pem: command not found দিয়ে থেমে যায়। GNU base64 -d একই PEM body decode করতে পারে, তাই সেটিই ব্যবহার করুন।
Server-এ public key install করুন।
sudo install -d -m 700 -o debian-tor -g debian-tor /var/lib/tor/ssh/authorized_clients
echo "descriptor:x25519:PASTE_PUBLIC_KEY_HERE" | sudo tee /var/lib/tor/ssh/authorized_clients/laptop.auth >/dev/null
sudo chown debian-tor:debian-tor /var/lib/tor/ssh/authorized_clients/laptop.auth
sudo systemctl reload torশুধু .auth দিয়ে শেষ হওয়া file পড়া হয়। File-টি laptop.auth.txt নামে save করুন। তা না করলে tor কোনো error না দেখিয়েই ওই file উপেক্ষা করবে, এবং service নীরবে address জানা যেকোনো ব্যক্তির জন্য open থাকবে।
Client-এ private key install করুন। Ubuntu-তে tor daemon debian-tor user হিসেবে চলে এবং আপনার home directory-র file পড়তে পারে না। তাই directory এমন জায়গায় রাখুন যেখানে ওই user পৌঁছাতে পারে।
sudo install -d -m 700 -o debian-tor -g debian-tor /var/lib/tor/onion_auth
echo "ADDRESS_WITHOUT_DOT_ONION:descriptor:x25519:PASTE_PRIVATE_KEY_HERE" | sudo tee /var/lib/tor/onion_auth/myvps.auth_private >/dev/null
sudo chown debian-tor:debian-tor /var/lib/tor/onion_auth/myvps.auth_private
sudo chmod 600 /var/lib/tor/onion_auth/myvps.auth_privateClient-এর /etc/tor/torrc-এ ClientOnionAuthDir /var/lib/tor/onion_auth যোগ করুন এবং tor reload করুন। আপনি যদি নিজের user হিসেবে tor চালান, যেমন macOS-এ Homebrew build ব্যবহার করলে, তাহলে ClientOnionAuthDir-কে mode 0700 সহ ~/.tor/onion_auth-এর দিকে point করুন।
ওই file-এর address হলো .onion suffix ছাড়া 56 characters। কাজ শেষ হলে /tmp/k1.prv.pem এবং /tmp/k1.prv.key মুছে ফেলুন।
এখন উভয় দিক পরীক্ষা করুন। ssh myvps-এর এখনও connect করা উচিত। কোনো key না থাকা machine থেকে একই address-এ connection ব্যর্থ হওয়া উচিত। এই ব্যর্থতাই প্রমাণ করে যে authorisation সক্রিয় আছে।
port 22 বন্ধ করুন, এই ক্রমে
প্রথমে একটি নিরাপত্তা ব্যবস্থা তৈরি করুন। আপনি access হারালে এই একটি command নিচের দুটি পরিবর্তন পনেরো মিনিট পরে স্বয়ংক্রিয়ভাবে ফিরিয়ে দেবে।
sudo systemd-run --on-active=15m --unit=ssh-rescue \
/bin/sh -c 'ufw allow 22/tcp; rm -f /etc/systemd/system/ssh.socket.d/override.conf; systemctl daemon-reload; systemctl restart ssh.socket'onion route এখনও কাজ করছে নিশ্চিত হওয়ার পর sudo systemctl stop ssh-rescue.timer দিয়ে এটি বাতিল করুন।
এরপর public address-এ sshd-এর listening বন্ধ করুন। Ubuntu 24.04 socket unit ব্যবহার করে SSH সক্রিয় করে, তাই sshd_config-এর ListenAddress উপেক্ষা করা হয়: listening socket-এর মালিক sshd নয়, ssh.socket। আপনার ক্ষেত্রে কোনটি প্রযোজ্য তা পরীক্ষা করুন।
systemctl is-enabled ssh.socketএটি enabled দেখালে sudo systemctl edit ssh.socket চালিয়ে নিচের অংশ যোগ করুন।
[Socket]
ListenStream=
ListenStream=127.0.0.1:22খালি ListenStream= packaged unit থেকে উত্তরাধিকারসূত্রে পাওয়া value মুছে দেয়। এই line বাদ দিলে public listener চালু রেখেই আপনি দ্বিতীয় একটি listener যোগ করবেন। কোনো error না দেখিয়ে এই ধাপ ব্যর্থ হওয়ার এটিই সবচেয়ে সাধারণ কারণ।
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
ss -tlnp | grep ':22'ss-এর output-এ 127.0.0.1:22 থাকা উচিত এবং 0.0.0.0:22-এ কিছুই থাকা উচিত নয়। ssh.socket disabled থাকলে /etc/ssh/sshd_config.d/10-onion.conf-এ ListenAddress 127.0.0.1 যোগ করুন, sudo systemctl restart ssh চালান, তারপর একই ss line দিয়ে পরীক্ষা করুন। উভয় ক্ষেত্রেই ওই output-ই প্রমাণ।
এরপর firewall-এর কাজ। এটি একটি VPS-এ সাধারণ ufw rule management। প্রথমে sudo ufw status numbered চালান এবং এতে তালিকাভুক্ত SSH rule-টি মুছে দিন।
sudo ufw status numbered
sudo ufw delete allow OpenSSH
sudo ufw default allow outgoing
sudo ufw default deny incoming
sudo ufw status verboseoutgoing traffic অনুমোদিত রাখুন। Tor 443 এবং 9001-এর মতো port-এ relay-এ outgoing connection তৈরি করে। তাই outbound default-deny policy Tor-এর bootstrapping বন্ধ করবে এবং একই সময়ে আপনার একমাত্র অবশিষ্ট প্রবেশপথও সরিয়ে দেবে। অধিকাংশ provider control panel-এ আলাদা network firewall-ও চালায়। সেখানেও 22 বন্ধ করুন। তা না হলে ufw যা-ই দেখাক, port-টি reachable থাকবে।
এই মেশিনে Docker চললে কাজ শেষ হয়েছে ধরে নেওয়ার আগে published port পরীক্ষা করুন। Docker একই table-এ নিজের rule লেখে এবং container port সরাসরি ufw-এর বাইরে প্রকাশ করে, তাই ufw deny policy একা সম্পূর্ণ চিত্র দেখায় না।
Reboot করার আগে এটি যাচাই করুন
systemctl is-enabled tor@default
sudo rebootপ্রথম কমান্ডে service-টি enabled হিসেবে না দেখালে reboot করার আগে sudo systemctl enable tor@default চালান। 2 মিনিট অপেক্ষা করে তারপর ssh myvps চালান। boot-এর পরে Tor-কে bootstrap করতে হয়। তাই মেশিন চালু হওয়ার কিছু সময় পরে onion address সাড়া দিতে শুরু করে।
এটি কখনো ফিরে না এলে console খুলে sudo journalctl -u tor@default -b পড়ুন। সেখানে torrc syntax error বা directory permission সমস্যা দেখানো হয়। প্রয়োগ করার আগে torrc-এ করা পরিবর্তনও যাচাই করতে পারেন।
sudo -u debian-tor tor --verify-configWireGuard tunnel-এর তুলনায় এর খরচ
নিজের VPS-এ WireGuard VPN-এর তুলনায় onion service ধীর এবং কম পূর্বানুমানযোগ্য। এটি ব্যবহার করার সিদ্ধান্ত নেওয়ার আগে এই বিনিময়টি বাস্তবভাবে বিবেচনা করুন।
Latency। একটি client circuit-এ 3টি relay থাকে এবং service side-এ আরও 3টি relay যুক্ত হয়। ফলে আপনার keystroke বিশ্বজুড়ে এলোমেলোভাবে নির্বাচিত প্রায় 6টি machine অতিক্রম করে। Interactive typing-এ স্পষ্ট বিলম্ব দেখা যায় এবং file copy ধীর হয়। WireGuard মাত্র 1টি hop যোগ করে। নিজের ক্ষেত্রে time ssh myvps 'echo ok' দিয়ে মাপুন। কারণ ফলাফল tor যে circuit তৈরি করেছে তার ওপর নির্ভর করে এবং tor অন্য circuit তৈরি করলে এটি পরিবর্তিত হয়।
Critical path-এ userspace daemon। WireGuard kernel-এ চলে এবং network-এর সঙ্গে চালু হয়। Tor এমন একটি process, যাকে start করতে, bootstrap করতে এবং কোনো guard relay-এ পৌঁছাতে হয়। এর আগে কোনো কিছু কাজ করে না। এটি ব্যর্থ হলে আপনাকে provider console ব্যবহার করতে হবে।
Clock accuracy। Onion service descriptor নির্দিষ্ট time period অনুযায়ী publish করা হয়। তাই clock-এর সময় গুরুতরভাবে ভুল হলে কোথাও স্পষ্ট message ছাড়াই address lookup ব্যর্থ হয়। timedatectl-এ System clock synchronized: yes দেখানো উচিত।
এর বিনিময়ে আপনি এমন exposure পান, যা firewall rule সঠিক থাকার ওপর আর নির্ভর করে না। Scan করার মতো কোনো port নেই এবং সংগ্রহ করার মতো কোনো banner নেই। Address-টি নিজেই একটি public key। তাই SSH শুরু হওয়ার আগেই endpoint নিজের পরিচয় প্রমাণ করে।
বাস্তবে সাধারণত উভয়টি ব্যবহার করাই ভালো। দৈনন্দিন সংযোগের জন্য WireGuard চালান এবং WireGuard configuration ভুল হলেও কাজ করে এমন route হিসেবে onion service রেখে দিন। এতে public SSH port-এর পরিবর্তে শুধু 1টি UDP port খোলা থাকে। এর কোনোটি sshd নিজে harden করার বিকল্প নয়। শুধু key ব্যবহার করে authentication এবং non-root login এখনও গুরুত্বপূর্ণ। কারণ onion service network path সুরক্ষিত করে, এর বাইরে আর কিছু নয়।
ব্যর্থতার ধরন এবং যে ত্রুটিগুলো দেখবেন
Tor কখনও Bootstrapped 0% পার হয় না। Outbound traffic ব্লক করা আছে, অথবা ঘড়ির সময় অনেকটা ভুল। sudo ufw status verbose দিয়ে outgoing policy পরীক্ষা করুন, তারপর timedatectl চালান।
systemctl status tor-এ active (exited) দেখায়। Debian এবং Ubuntu-তে এটি স্বাভাবিক। এর পরিবর্তে tor@default পড়ুন।
Descriptor খুঁজে পাওয়া যাচ্ছে না। Tor SOCKS extended error F0, "Onion Service Descriptor Can Not be Found" ফেরত দেয়। Descriptor এখনও publish না হয়ে থাকতে পারে; reload-এর পরে এটি হতে অল্প সময় লাগে। অথবা server-এ tor চলছে না।
F4, "Onion Service Missing Client Authorization"। Client-এর কাছে এমন কোনো .auth_private নেই, যা tor ব্যবহার করতে পারে। torrc-এ ClientOnionAuthDir আছে কি না, directory-টির mode 0700 কি না, filename-এর শেষে .auth_private আছে কি না এবং debian-tor সেটি পড়তে পারে কি না পরীক্ষা করুন।
F5, "Onion Service Wrong Client Authorization"। Private key server-এর .auth file-এর সঙ্গে মেলে না। Base32 string-এর শেষে থাকা = অথবা string-এর ভেতরের অতিরিক্ত newline এই সমস্যা ঘটায়।
nc: invalid option -- 'X'। OpenBSD সংস্করণের বদলে GNU netcat ইনস্টল করা আছে। sudo apt install -y netcat-openbsd চালান।
Could not resolve hostname। ssh সাধারণ DNS ব্যবহার করার চেষ্টা করেছে। সেখানে .onion-এর কোনো উত্তর নেই, তাই ProxyCommand কখনও চালানো হয়নি। ~/.ssh/config-এর Host pattern আপনার লেখা name-এর সঙ্গে মেলে না।
Permission denied (publickey)। Tunnel কাজ করেছে এবং tor-এর কাজ শেষ। এটিকে সাধারণ permission denied publickey সমস্যা হিসেবে বিবেচনা করুন এবং এতে tor-কে যুক্ত করবেন না।
FAQ
একটি onion service ব্যবহার করলে কি আমার VPS-এ সত্যিই কোনো open port থাকে না?
হ্যাঁ, যখন sshd 127.0.0.1-এ bind করা থাকে এবং firewall inbound traffic drop করে। Tor একটি relay-এ outbound TCP connection তৈরি করে, তারপর আপনার session সেই relay-এর মাধ্যমে ফিরে আসে। তাই server-এর public address-এ কোনো connection গ্রহণ করা হয় না। Server-এ ss -tlnp চালিয়ে এবং অন্য কোনো স্থান থেকে port scan করে এটি নিশ্চিত করুন। Provider-এর control panel-এ থাকা নিজস্ব network firewall-এর কথাও ভুলবেন না। এটি ufw থেকে আলাদা নিয়ন্ত্রণ, এবং এটিতেও inbound traffic বন্ধ করতে হবে।
SSH-এর জন্য কি .onion address একাই যথেষ্ট security দেয়?
না। Address-টি 56 characters দীর্ঘ এবং directory system থেকে অনুমান বা enumerate করা যায় না। তাই এটি একটি secret-এর মতো কাজ করে। তবে shell history এবং config file-এর মাধ্যমে এটি ফাঁস হতে পারে। v3 client authorisation যোগ করুন। এতে service descriptor আপনার client key দিয়ে encrypted থাকে। ফলে শুধু address জানা কেউ extended error F4 পায় এবং sshd পর্যন্ত পৌঁছাতে পারে না।
Reboot-এর পরে tor start না হলে কী ঘটে?
আপনি সম্পূর্ণভাবে SSH access হারাবেন, কারণ তখন onion address-ই প্রবেশের একমাত্র পথ। তাই port 22 বন্ধ করার আগে provider console পরীক্ষা করতে হবে। Boot-এর পরে Tor-এর bootstrap সম্পন্ন হতেও সময় লাগে। ফলে machine ping-এর উত্তর দেওয়ার পরেও address কিছুটা পরে সাড়া দিতে পারে। যদি কখনো সাড়া না দেয়, console-এ login করে sudo journalctl -u tor@default -b পড়ুন। সেখানে torrc syntax error অথবা /var/lib/tor/ssh-এর permissions সমস্যা লেখা থাকবে।
SSH over Tor কি WireGuard-এর চেয়ে ধীর?
হ্যাঁ, উল্লেখযোগ্যভাবে ধীর। একটি onion service-এ connection সাধারণত random ভাবে নির্বাচিত প্রায় 6টি relay অতিক্রম করে। WireGuard-এ আপনার server পর্যন্ত একটি encrypted hop থাকে। ফলে typing করার সময় lag অনুভূত হয় এবং file transfer ধীর হয়। প্রচলিত ব্যবস্থা হলো দৈনন্দিন কাজের জন্য WireGuard ব্যবহার করা এবং onion service-কে emergency route হিসেবে রাখা। এতে VPN configuration নষ্ট হলেও বিকল্প প্রবেশপথ সচল থাকে।