הקדמה
המדריך הזה קשור במידה רבה לפוסט הזה איך להתחבר לשרת SSH מעל Tor, אך פה אתמקד באיך לייצר Hidden Service (יש מעבר לשם Onion Service, אך סלחו לי כי בשלב זה עדיין אקרא לשירות HS או Hidden Services) עבור חיבור SSH. במקרה אצלי, יש לי “קופסה” שנמצאת ברשת NAT ואני רוצה לגשת אליה מרחוק באופן יזום (יש עוד דרכים לפתור את הבעיה הזו, החל מ-Port-forwarding, שירות VPN, ועוד…).
שימוש ב-HS כנראה יהיה איטי יותר מפתרונות אחרים, אבל הוא פתרון חימני, דיי בטוח ואנונימי (שימוש ב-Client Authorization), ובנוסף יציב, קל להתקנה והגדרה.
התקנה והגדרה של Tor
אתם תצרכו להתקין Tor גם בשרת וגם בקלינט, ההגדרות בכל צד יהיו שונות.
תלוי בהפצת לינוקס שלכם, יכול להיות ש-Tor כבר מגיע כחלק מהמנהל חבילות, במקרה שלי מדובר בהפצת דביאן, Tor זמין להתקנה דרך המנהל חבילות:
sudo apt update
sudo apt install tor
אם Tor אינו חלק מההפצה שלכם, ראו את החלק של “קריאה נוספת” למדריך איך להתקין Tor.
קובץ ההגדרות בדרך כלל נמצא בנתיב הזה /etc/tor/torrc. בצד של הקלינט יש לוודא כי השרת Socks מופעל ומקבל חיבורים מ-Localhost:
SocksPort 9050
SocksPolicy accept 127.0.0.0/8
SocksPolicy reject *
בצד של השרת יש להוסיף מספר שורות שמגדירות את ה-Hidden Service:
HiddenServiceDir /var/lib/tor/ssh
HiddenServicePort 32122 127.0.0.1:22
שימו לב
הנתיב קיים, יש לו את ההרשאות הנכונות? אם לא:
sudo mkdir /var/lib/tor/ssh
sudo chown debian-tor: /var/lib/tor/ssh
sudo chmod 0700 /var/lib/tor/ssh
לאחר מכן נצטרך לאתחל את השירות בעזרת הפקודה sudo systemctl restart tor. עם הריצה הראשונה של Tor, יווצרו המפתחות ותוכלו לאסוף את הכתובת מתוך הקובץ /var/lib/tor/ssh/hostname. יכול להיות שיקח כמה דקות עד שתוכלו לגשת לכתובת הזו בפועל, כי ההפצה של ה-HSDir ויצירה של rendezvous אינו מיידי.
התקנה והגדרה של SSH
בצד של הקלינט, צריך לוודא ש-Tor רץ, ושהגדרתם ב-.ssh/config איך החיבור לכתובות .onion מתבצעות (נדרשות לעבור דרך פרוקסי).
Host *.onion
CheckHostIP no
Compression no
Protocol 2
# Package required: connect-proxy
ProxyCommand connect-proxy -4 -S 127.0.0.1:9050 %h %p
אין לכם connect-proxy?
אם החבילה connect-proxy לא זמינה לכם, תוכלו להשתמש ב-ncat במקום, ב-config תחליפו ל:
proxyCommand ncat --proxy 127.0.0.1:9050 --proxy-type socks5 %h %p
בצד של השרת אני מצפה שיהיה לכם שירות SSH מופעל שמאזין על פורט כלשהו ומאשר חיבור מ-Localhost, זה הפורט שלמעשה הגדרתם ב-torrc (בצבע אדום), ואילו בצבע כחול, זה הפורט שאליו תתחברו.
בדיקה
תוודאו שהכל עובד על-ידי נסיון התחברות, זה עלול לקחת מספר דקות בחיבור הראשון, אז תהיו סבלניים:
ssh -o 'Port=32122' -o 'User=debian' zm6zeblvl3nhddpg65yzhlvsa4t2wpfuyuhomhebnufhxvdmxgui4qid.onion
# יצרתי כתובת חדשה
קריאה נוספת:

