Tor, usługi ukryte i Apache

Gdy ktoś się zastanawia jak postawić stronę lub udostępniać usługi anonimowo w sieci Tor, tzw. „pedofilskiej cebulowej sieci”, to odpowiedź znajdzie poniżej. Sam z tego nie korzystam, bo nie jest mi to w tej chwili do niczego potrzebne, jednak instrukcja stworzona przy pocie mózgu, dzięki której można dostosować Apache do Tora, powinna się komuś przydać.
Instalacja i konfiguracja Tora
Instalacja i konfiguracja Tora jest dziecinnie prosta. Poniżej przedstawiam sposób instalacji i konfiguracji.
- Robimy według instrukcji podanych na stronach: „Tor: Instrukcje instalacji dla Linux/BSD/Unix”, „Tor: Mac OS X Install Instructions”, „Tor: MS Windows Install Instructions” (po polsku).
- Jeśli chcemy być przekaźnikiem, to robimy jeszcze Konfiguracja przekaźnika sieci Tora. Jeśli zaś mamy Linuksa lub chcemy konfigurować ręcznie, to musimy znaleźć w pliku konfiguracyjnym Tora (/etc/tor/torrc) następujące linijki
i je odkomentować, jeśli są zakomentowane.SocksPort 9050 # what port to open for local application connections SocksListenAddress 127.0.0.1 # accept connections only from localhost RelayBandwidthRate 20 KBytes RelayBandwidthBurst 30 KBytes ORPort 9001 ExitPolicy reject *:* # no exits allowedRelayBandwidthRateto limit prędkości dla Tora, nie może on używać więcej niż 20KB/s, ale pozwala mu sięRelayBandwithBurstna chwilowe skoki do 30KB/s. LinijkaExitPolicy reject *:*oznacza, że nie chcemy być ostatnim węzłem, który łączy się punktem docelowym. Nie będziemy ostatnim widocznym węzłem. Gdy usuniemy tą linijkę, czasami możemy być ostatnim widocznym węzłem, moglibyśmy być czasami oskarżenie o np. rozpowszechnianie pornografii dziecięcej, gdyby to pedofil korzystał z naszego węzła.
Usługi ukryte i Apache
Jeśli już zainstalowałem Tora, to skorzystam z wszystkich jego możliwości. Uruchomiłem więc usługę wg „Tor: instrukcja konfiguracji usług ukrytych”. Moje linijki wyglądają tak:
#katalog radzę zmienić :D
HiddenServiceDir /media/godlark/tor_hidden_service/
HiddenServicePort 80 127.0.0.1:4619
Czyli ktoś wpisuje moj_adres.onion, jego komputer myśli, że na porcie 80, a ja mu wysyłam odpowiedź aplikacji nasłuchującej na porcie 4619.
Ten port zmieniłem, bo nie chciałem, aby ludzie z tora nie mieli dostępu do głównego katalogu strony, tylko do strony specjalnie przygotowanej dla nich.
Teraz trzeba zająć się Apachem, aby nasłuchiwał na porcie 4619 i 80 oraz, żeby w zależności od tego, z którego portu zostanie nawiązane połączenie była wyświetlana inna strona i tutaj są przydatne VHosty. Wystarczy dodać do pliku konfiguracyjnego Apache (w Debianie /etc/apache2/httpd.conf) dodać (i pozmieniać):
#dla Debiana te dwie linijki zalecałbym dodać do pliku /etc/apache2/ports.conf
NameVirtualHost *:4619
Listen 4619 #nasłuchuje na porcie 4619
<VirtualHost *:80>
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:4619>
#katalog z osobną stroną dla Tora
DocumentRoot /var/www/tor_hidden_service/
<Directory /var/www/tor_hidden_service/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Zrestartujmy teraz Apache i Tora, w Debianie będzie to odpowiednio /etc/init.d/apache2 restart i /etc/init.d/tor restart. Możemy testować, wpiszmy w przeglądarce http://localhost:80, a później http://localhost:4619, ale różnicy nie zobaczymy, jeśli nie umieścimy jakiegoś przykładowego pliku index.html w katalogu /var/www/tor_hidden_service/.
Musimy jeszcze sprawdzić, czy działa to przez tora. Kopiujemy adres z pliku /media/godlark/tor_hidden_service/hostname (plik znajduje się katalogu przez nas wybranym w pliku /etc/tor/torrc) i wklejamy do przeglądarki, która obsługuje tora. Wszystko powinno działać.
Oczywiście to nie wyczerpuje całej gamy możliwości jakie dają nam vhosty. NameVirtualHost *:4619 oznacza, że na wszystkich adresach będę robił VHosty na porcie 4619 (czyli niezależnie czy ja wpiszę localhost:4619, czy ktoś mój_adres_w_sieci_lokalnej:4619, czy adres IPv6). Dwa sposoby na ograniczanie działanie VHostów zależnie od adresu lub nazwy jaką ktoś podał są przedstawione tutaj: baseciq.org » Apache i vhosty, Tworzenie VHost'a w Apache.
Trochę przybliżyłem konfigurację tora i jego usług ukrytych w oparciu o Apache. Myślę, a raczej mam taką nadzieję, że to nie koniec mojej przygody z torem i znajdę w nim jakieś ciekawe rzeczy, które będą warte opisania
Jeśli spodobał ci się wpis, zasubkrybuje kanał RSS
«Patenty
Nie dla mnie SaaS»
Podobne wpisy
- Rodzina języków C
- Programy, które używam
- Prawdziwy polski układ klawiatury
- Wuala - sieciowy disk wirtualny
- Nowy komputer, Debian i problemy
1 komentarz»
godlark napisał 9 Kwietnia 2010 o 17:30
Eeeh... artykuł jest już tak długo, a nikt go nie skomentował?
A Ty jaką masz opinię, o tym co napisałem?