კლიენტის დამოწმება არის საშუალება, onion-მომსახურების კერძო გამოყენებისა და ანგარიშით სარგებლობისთვის. მოსთხოვს Tor-კლიენტებს დამოწმების მონაცემების შეყვანას, onion-მომსახურებასთან დასაკავშირებლად. v3 onion-მომსახურებებისთვის, ეს ხერხი მუშაობს წყვილი გასაღებებით (საჯარო და საიდუმლო). მომსახურე მხარე უნდა გაიმართოს საჯარო გასაღებით, ხოლო მომხმარებელს მხოლოდ საიდუმლო გასაღებით შეეძლება წვდომა.
გაითვალისწინეთ: მას შემდეგ, რაც ჩართავთ მომხმარებლის დამოწმებას, მოცემულ მისამართთან წვდომა შეიზღუდება. თუ დამოწმების საშუალება არ გაიმართება, მომსახურება ხელმისაწვდომი იქნება ნებისმიერისთვის, ამ onion-მისამართით.
გამართვა v3 Onion-მომსახურებების
სერვერის მხარე
To configure client authorization on the service side, the <HiddenServiceDir>/authorized_clients/
directory needs to exist. Following the instructions described in the section Setup will automatically create this directory.
მომხმარებლის დამოწმება ჩაირთვება მხოლოდ იმ მომსახურებისთვის, რომელშიც Tor წარმატებით ჩატვირთავს დამოწმების ერთ ფაილს მაინც.
ამის შემდგომ, დაგჭირდებათ გასაღების შედგენა ან სკრიპტით (დაწერილი ენებზე Bash, Rust და Python), ან ხელით.
გასაღებების ხელით შედგენისთვის, უნდა დააყენოთ openssl
ვერსია 1.1+ და basez
.
ნაბიჯი 1. შეადგინეთ გასაღები ალგორითმით x25519:
$ openssl genpkey -algorithm x25519 -out /tmp/k1.prv.pem
თუ შეცდომა ამოაგდო, რაღაც არასწორად წარიმართა და იქამდე ვერ განაგრძობთ, სანამ არ გაარკვევთ რა არ მუშაობს.
ნაბიჯი 2. დააფორმატეთ გასაღებები base32-ის საფუძველზე:
საიდუმლო გასაღები
$ cat /tmp/k1.prv.pem | grep -v " PRIVATE KEY" | base64pem -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.prv.key
საჯარო გასაღები
$ openssl pkey -in /tmp/k1.prv.pem -pubout | grep -v " PUBLIC KEY" | base64pem -d | tail --bytes=32 | base32 | sed 's/=//g' > /tmp/k1.pub.key
ნაბიჯი 3. აიღეთ საჯარო გასაღების ასლი:
$ cat /tmp/k1.pub.key
ნაბიჯი 4. შექმენით დამოწმებული კლიენტის ფაილი:
გააფორმეთ კლიენტის დამოწმების საშუალება და შექმენით ახალი ფაილი საქაღალდეში <HiddenServiceDir>/authorized_clients/
.
თითოეული ფაილი იმ საქაღალდეში უნდა ბოლოვდებოდეს „.auth“ ბოლოსართით (მაგ. „alice.auth“; ფაილის სახელი მეორეხარისხოვანია) და მისი შიგთავსი უნდა იყოს:
<auth-type>:<key-type>:<base32-encoded-public-key>
მხარდაჭერილი მნიშვნელობები <auth-type>
არის: "descriptor".
მხარდაჭერილი მნიშვნელობები <key-type>
: "x25519".
<base32-encoded-public-key>
არის base32-სახით წარმოდგენილი ნედლი გასაღების ბაიტები მხოლოდ (32 ბაიტი x25519-ისთვის).
მაგალითად, ფაილი /var/lib/tor/hidden_service/authorized_clients/alice.auth
უნდა გამოიყურებოდეს ასე:
descriptor:x25519:N2NU7BSRL6YODZCYPN4CREB54TYLKGIE2KYOQWLFYC23ZJVCE5DQ
თუ აპირებთ რამდენიმე დამოწმებული კლიენტის ყოლას, თითოეული ფაილი უნდა შეიცავდეს მხოლოდ თითო ხაზს. ნებისმიერი გაუმართავი ფაილი უგულებელყოფილი იქნება.
ნაბიჯი 5. ხელახლა გაუშვით მომსახურება:
$ sudo systemctl reload tor
თუ შეცდომა ამოაგდო, რაღაც არასწორად წარიმართა და იქამდე ვერ განაგრძობთ, სანამ არ გაარკვევთ რა არ მუშაობს.
გაითვალისწინეთ: კლიენტის უარყოფა შესაძლებელია მისი „.auth“ ფაილის მოცილებით, შედეგი ექნება Tor-ის ხელახლა გაშვების შემდგომ.
კლიენტის მხარე
მომხმარებლის დამოწმების მქონე მე-3 ვერსიის Onion-მომსახურებასთან წვდომისთვის მომხმარებლის მხრიდან, საჭიროა მიუთითოთ ClientOnionAuthDir
თქვენს torrc-ფაილში.
მაგალითად დაამატეთ ეს ხაზი ფაილში /etc/tor/torrc
:
ClientOnionAuthDir /var/lib/tor/onion_auth
შემდეგ, საქაღალდეში <ClientOnionAuthDir>
, შექმენით .auth_private
ფაილი Onion-მომსახურებისთვის, ამ გასაღების შესაბამისად (მაგ. 'bob_onion.auth_private').
შიგთავსი ფაილისა <ClientOnionAuthDir>/<user>.auth_private
უნდა გამოიყურებოდეს ასე:
<56-char-onion-addr-without-.onion-part>:descriptor:x25519:<x25519 private key in base32>
მაგალითად:
rh5d6reakhpvuxe2t3next6um6iiq4jf43m7gmdrphfhopfpnoglzcyd:descriptor:x25519:ZDUVQQ7IKBXSGR2WWOBNM3VP5ELNOYSSINDK7CAUN2WD7A3EKZWQ
თუ ხელით შეადგენთ გასაღებების წყვილს ამ გვერდზე მოცემული მითითებებით, შეგიძლიათ გამოიყენოთ ასლი იმ საიდუმლო გასაღებისა, რომლის შექმნასაც ეხებოდა ნაბიჯი 2.
შემდეგ ხელახლა გაუშვით tor
და უკვე შეგეძლებათ onion-მომსახურების მისამართთან დაკავშირება.
თუ აპირებთ შექმნათ საიდუმლო გასაღები Onion-საიტისთვის, მომხმარებელს არ დაჭირდება Tor-ბრაუზერის torrc-ფაილის ჩაწორება. შესაძლებელია საიდუმლო გასაღების პირდაპირ Tor-ბრაუზერში.
ვრცლად, კლიენტის დამოწმების შესახებ, გთხოვთ იხილოთ Tor-ის სახელმძღვანელო.
გამართვა v2 Onion-მომსახურებების
ფუნთუშით დამოწმების (Cookie Authentication) ჩასართავად v2 მომსახურებებისთვის, იხილეთ ჩანაწერები HidServAuth და HiddenServiceAuthorizeClient-ვარიანტებისთვის სახელმძღვანელოში. ჯერ დაამატეთ შემდეგი ხაზი torrc ფაილში, თქვენი onion-მომსახურების:
HiddenServiceAuthorizeClient [auth-type] [service-name]
ხელახლა გაუშვით tor და წააკითხეთ ფუნთუშა ჰოსტის სახელის ფაილიდან თქვენი Onion-მომსახურების, მაგალითად
/var/lib/tor/hidden_service_path/hostname
.
Tor-კლიენტიდან წვდომისთვის, დაამატეთ შემდეგი ხაზი torrc-ს და ხელახლა გაუშვით Tor:
HidServAuth [onion-address] [auth-cookie] [service-name]
ახლა უკვე შეგიძლიათ onion-მომსახურების მისამართთან დაკავშირება.