20:05
5/6/2017

Sieć Tor to nie tylko siedlisko przestępców, jak najczęściej przedstawiają to mainstreamowe media. To także ostoja wolności słowa, opozycji wobec władzy i anonimowości. Każdy może umieścić w Torze swój własny serwer ze stroną WWW, zyskując tym samym odporność na cenzurę i zapewniając ochronę tożsamości osób ją odwiedzających. Wbrew pozorom zadanie nie jest szczególnie trudne — poniżej pokażemy, jak krok po kroku skonfigurować swój własny serwer w sieci Tor za pomocą usług oferowanych przez firmę Aruba Cloud.

Grupa ArubaCloud to europejska firma, która ma 15-letnie doświadczenie w budowie i zarządzaniu centrami danych i dedykowanymi rozwiązaniami serwerowymi. ArubaCloud ma ponad dwa miliony klientów i mocną pozycję w Europie Zachodniej i Środkowowschodniej. Firma od 2015 r. działa również również w Polsce, gdzie jest liderem tanich serwerów VPS opartych na technologii VMware. Już za 4 PLN miesięcznie możesz mieć swój własny serwer VPS. Ale jest też szansa na zdobycie VPS za darmo.

Aby uruchomić swoją stronę w sieci Tor użyjemy webserwera Apache2 wraz z interpreterem PHP. Najpierw skonfigurujemy nasz serwer w taki sposób, aby namierzenie jego prawdziwego adresu IP było jak najbardziej utrudnione. Potem podłączymy serwer do sieci Tor i sprawdzimy naszą przykładową stronę. Wszystkiego dokonamy w 7 krokach:

  • wykonamy aktualizację systemu,
  • dostosujemy parametry kernela – sysctl,
  • zainstalujemy i skonfigurujemy firewall – ufw,
  • zainstalujemy i skonfigurujemy usługę Apache2,
  • zainstalujemy interpreter php,
  • utworzymy katalog /var/www/aruba_tor_service/ wraz z przykładowym plikiem – index.php, który będzie widoczny w sieci Tor,
  • podłączymy serwer do sieci Tor.

Zaczynamy!

Po założeniu konta na platformie ArubaCloud, jako szablon maszyny wybieramy system operacyjny Debian 8 64 bit. Na początku warto upewnić się czy posiadamy najnowszą wersję systemu Debian. Aktualną wersję można sprawdzić wykonując polecenie:
# cat /etc/debian_version
8.3

Jeśli nie posiadamy najnowszej dostępnej wersji – warto zaktualizować system za pomocą poniższych poleceń:
# apt-get update
# apt-get upgrade

Po pobraniu i zainstalowaniu nowych pakietów, jeśli to konieczne, restartujemy serwer poleceniem:
# reboot

Zmiana parametrów kernela

Ustawiamy odpowiednie parametry w /etc/sysctl.conf:
# vim /etc/sysctl.conf
Usuwamy znak komentarza (#) zawierające linie:
net.ipv4.conf.default.rp_filter=1 # włączamy ochronę przed ip spoofingiem
net.ipv4.conf.all.rp_filter=1
net.ipv4.tcp_syncookies=1 # włączamy mechanizm pozwalający na obronę przed atakami SYN flood
net.ipv4.conf.all.send_redirects = 0 #wyłączamy przekierowywanie pakietów ICMP,
net.ipv4.conf.all.accept_source_route = 0

Jeśli nie chcemy obsługiwać protokołu IPv6 na końcu pliku sysctl.conf dodajemy:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.eth0.disable_ipv6 = 1

Wprowadzamy zmiany w życie:
# sysctl -p

Konfiguracja firewalla

Aby zminimalizować wykrycie prawdziwego adresu IP na jakim działać będzie nasza usługa w sieci Tor, warto ograniczyć dostępność serwera z adresów zewnętrznych. Dla bezpieczeństwa na serwerze powinny być zaimplementowane reguły firewall – w dystrybucji Linux Debian dostępny jest Uncomplicated FireWall. Jest to nakładka na iptables do łatwiejszego zarządzania firewallem.

W poniższej konfiguracji zezwalamy wyłącznie na ruch przychodzący na port tcp/22 dla usługi SSH. Reszta usług z zewnątrz powinna być niedostępna. Warto zwrócić uwagę, że nie otwieramy także ruchu TCP/80 dla serwera WWW.
# apt-get install ufw
# ufw allow ssh
# ufw default deny incoming
# ufw default allow outgoing
# ufw enable # aktywujemy reguły firewalla
# ufw status # sprawdzamy czy firewall jest aktywny

Warto rozważyć, czy usługa SSH rzeczywiście powinna być uruchomiona na porcie 22/tcp. Jest pewne, że bardzo szybko w logach pojawi się wiele prób zgadywania hasła. Dlatego sugerujemy przenieść SSH na inny port, wtedy możecie zezwolić na ruch do SSH na zaporze wydając poniższe polecenie:

# ufw allow port_usługi_ssh/tcp

Instalujemy i konfigurujemy serwer WWW

Ponieważ w sieci Tor chcemy udostępnić usługę WWW, potrzebny nam będzie serwer Apache2. Zainstalujemy więc pakiet apache2, który jest dostępny w standardowym repozytorium Linux Debian:

# apt-get install apache2

Jeśli chcemy aby nasz serwer WWW obsługiwał pliki PHP, powinniśmy zainstalować interpreter PHP:

# apt-get install php5 libapache2-mod-php5 php5-gd php5-mcrypt

Jeśli potrzebujecie dodatkowych modułów do PHP, warto zapoznać się z zawartością repozytorium wydając polecenie:

# apt-cache search php5-

Przed uruchomieniem Apache2 warto zadbać o jego odpowiedni poziom bezpieczeństwa. Na wstępie przekonfigurujemy usługę tak, aby nie wyświetlała ona numeru wersji. Na początku wyedytujemy plik security.conf, który znajduje się w katalogu /etc/apache2/conf-enabled/:

# nano /etc/apache2/conf-enabled/security.conf

W linii 26, zmieniamy dyrektywę ServerTokens na wartość Prod:

ServerTokens Prod

Zmiana ta spowoduje, że usługa nie będzie wysyłała w nagłówkach informacji pełnych o używanej wersji oprogramowania Apache, np:

Server: Apache/2.4.25 (Unix) -> Server: Apache

Następnie w linii 36, w dyrektywie ServerSignature usuwamy znak komentarza (#)

ServerSignature Off

oraz komentujemy linię 37 dodając znak # na poczatku linii:

#ServerSinature On

Na samym końcu pliku security.conf dodajemy:

FileETag None

W kolejnym kroku będziemy edytować plik apache2.conf, który znajduje się w katalogu /etc/apache2/

# emacs /etc/apache2/apache2.conf
W linii 165 dodajemy znak “-” przy słowie Indexes. Zmiana ta spowoduje, że nie będziemy wyświetlali zawartości katalogów jeśli w katalogu nie znajduje się plik ‘index.php’ czy ‘index.html’.

Następnie musimy określić w którym katalogu na serwerze będzie znajdować się strona internetowa. W ramach tego artykułu utworzymy przykładowy katalog – /var/www/aruba_tor_service/:

# mkdir /var/www/aruba_tor_service/

Tworzmy prosty skrypt PHP, którego zadaniem będzie wyświetlenie nam komunikatu “Server TEST”

# echo "<?php echo('Server TEST') ?>" > /var/www/aruba_tor_service/index.php

Plik index.php został zapisany do katalogu /var/www/aruba_tor_service/.

Gdy wybraliśmy już odpowiedni katalog oraz utworzyliśmy prosty skrypt php, możemy przejść do utworzenia konfiguracji Apache2 dla strony dostepnej w sieci Tor. Kopiujemy domyślną konfigurację 000-default.conf jako 001-aruba-tor.conf

# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/001-aruba-tor.conf

a następnie edytujemy skopiowany plik:

# nano /etc/apache2/sites-available/001-aruba-tor.conf

W pliku tym zmieniamy dyrektywę DocumentRoot z /var/www na katalog, gdzie znajduje się nasz przykładowy plik index.php

DocumentRoot /var/www/aruba_tor_service/

oraz definiujemy katalog w którym będą zapisywane żądania do serwera WWW (logi będą zapisywane w katalogu /var/log/apache2/tor/):

ErrorLog ${APACHE_LOG_DIR}/tor/error.log
CustomLog ${APACHE_LOG_DIR}/tor/access.log combined

Następnie tworzymy katalog, w który będą znajdywały się logi z usługi WWW:

# mkdir /var/log/apache2/tor/

W tym katalogu zostaną utworzone dwa pliki: access.log oraz error.log.
Dezaktywujemy domyślną konfigurację w Apache2:

# a2dissite 000-default

oraz aktywujemy konfigurację dla strony WWW w sieci Tor:
# a2ensite 001-aruba-tor.conf

Dla bezpieczeństwa dezaktywujemy też moduł mod_status:
# ap2dismod status

W pliku /etc/apache2/ports.conf ustawiamy adres IP oraz port na którym będzie nasłuchiwała usługa WWW. Usługa nie będzie dostępna bezpośrednio, a jedynie za pomocą sieci Tor, dlatego wskazujemy adres lokalny:

# nano /etc/apache2/ports.conf
Listen 127.0.0.1:80

Celem wprowadzenia zmian restartujemy usługę Apache2:

# /etc/init.d/apache2 restart

Na chwilę obecną jeszcze nie możemy wywołać naszej strony przez Tora. Aby udostępnić naszą stronę w sieci TOR, musimy podłączyć serwer do sieci Tor.

Podłączamy serwer do sieci Tor

Aby spełnić to wymaganie instalujemy pakiet tor:

# apt-get install tor

Następnie edytujemy plik konfiguracyjny /etc/tor/torrc:

# vim /etc/tor/torrc

Definiujemy naszą usługę:

HiddenServiceDir /var/lib/tor/aruba_hidden_service/
HiddenServicePort 80 127.0.0.1:80

Wskazujemy adres 127.0.0.1:80 – jest to adres lokalny, który wskazaliśmy w pliku /etc/apache2/ports.conf. Kończąc edycję pliku usuwamy znak komentarza z linii 178:

ExitPolicy reject *:*

Restartujemy usługę Tor

# /etc/init.d/tor restart

Po nawiązaniu połączenia z siecią Tor zostanie utworzony plik /var/lib/tor/aruba_tor_service/hostname. W pliku tym zostanie wygenerowana domena w sieci Tor:

# cat /var/lib/tor/aruba_tor_service/hostname
ymrcdjxykr2ublbc.onion

Jeśli interesuje was jak zbudowany jest adres w domenie .onion, zajrzyjcie tu. A jeśli chcielibyście wygenerować sobie bardziej “sensowną” domenę onion, to możecie skorzystać z narzędzia Eschalot lub scallion.

Jeśli zajrzymy pod wygenerowany adres http://ymrcdjxykr2ublbc.onion w sieci Tor to odpowie nam nasz serwer, wyświetlając plik index.php.

Brawo, właśnie uruchmiłeś swoją stronę w sieci Tor! Pochwal się teraz w komentarzach jej adresem :)

PS. Niniejszy artykuł jest artykułem sponsorowanym, za który redakcja Niebezpiecznik.pl otrzymuje wynagrodzenie. Staramy się, aby publikowaNe na Niebezpieczniku reklamy były przydatne i kształcące. Jeśli chcielibyście przeczytać porady na inne tematy (nie tylko związane z siecią Tor), dajcie znać w komentarzach, postaramy się aby kolejne teksty poruszyły wskazane przez Was zagadnienia.


Dowiedz się, jak zabezpieczyć swoje dane i pieniądze przed cyberprzestępcami. Wpadnij na nasz kultowy ~3 godzinny wykład pt. "Jak nie dać się zhackować?" i poznaj kilkadziesiąt praktycznych i przede wszystkim prostych do zastosowania porad, które skutecznie podniosą Twoje bezpieczeństwo i pomogą ochronić przed atakami Twoich najbliższych. Uczestnicy tego wykładu oceniają go na: 9,34/10!

Na ten wykład powinien przyjść każdy, kto korzysta z internetu na smartfonie lub komputerze, prywatnie albo służbowo. Wykład prowadzimy prostym językiem, wiec zrozumie go każdy, także osoby spoza branży IT. Dlatego na wykład możesz spokojnie przyjść ze swoimi rodzicami lub mniej technicznymih znajomych. W najbliższych tygodniach będziemy w poniższych miastach:

Zobacz pełen opis wykładu klikając tutaj lub kup bilet na wykład klikając tu.

59 komentarzy

Dodaj komentarz
  1. Chętnie korzystałbym z usług aruby, ale niestety nie mogę zapłacić przykładowo skrillem lub paysafecard, co jest dla mnie najlepszą opcją. Podobno opłaty są wysokie, ale chyba mogłaby być opcja płatności z pokryciem przez kupującego wszystkich opłat.

    • Powinni akceptować Bitcoiny, bo inaczej to trochę słabo do stawiania Torowych serwerów…

    • Bloga gdzie najlepiej postawić ,żeby smutni czasem nie pukali i niedopytywali się aż tak o ekstremizmem oprócz aruby ?

    • Nie mozna placic karta/paypalem (zlecenie stale), a tylko polskimi bankami. To komplikuje cala sprawe i stawia arube na… eeee… nie stawia nigdzie! Nie mam tam nic, a pewnie mialbym sporo, ale coz… nie mam polskich konto, to nie mam aruby. Ich support twierdzi, ze “byly naduzycia” jak mieli plasnosci kartami.

  2. Eh miałem nadzieję że będzie w dockerze

  3. Plus dla Aruby – za reklamowanie się przez sponsoring artykułów.

  4. Ale.. czemu nie na nginx’ie? :D

    • A może thttpd (acme.com)? Dodatkowa warstwa obrony jest taka, że nikt nie wpisze poprawnie w google “thttpd exploit” za pierwszym razem, a słownie między kolegami-crackerami też ciężko wymówić, chyba że po wódce, to wtedy każdy serwer jest “tthttpp”…

  5. Szkoda tylko że jest to Apache :(

    • Nie marudź. Zmiana z apache na cokolwiek innego jest trywialna. A jeśli ktoś nie ma podstaw, to lepiej by nie stawiał serwera w Torze.

  6. Jak już reklamujecie usługę dla pedofilów i takich tam to chociaż upewnijcie się, że można za nią zapłacić Bitcoinem. Zboczek, o przepraszam – uciśniony dysydent chiński xd – nie będzie przecież płacił za to kartą kredytową.

    • Jasne, przecież każdy kto chce ukryć swoją tożsamość to zboczeniec i taki tam, patrząc na to co się dzieje w naszym “Kórniku” to za jakiś czas będzie można tylko w taki sposób wypowiedzieć się o naszych rządzących :)

    • Usługę dla pedofilów… powiedział właściciel jednego z największych portali w Polsce udostępniającego #rozowepaski publicznie

    • Arubę można opłacić przelewem przecież, czyli Inpay. Ponadto można na Aruba postawić blog w styly antykomor, albo Charlie Hebdo czy jak im tam było, i nie martwić się aż tak ekstremizmem.
      Albo np piętnować działania korporacji innych niż Aruba. Wówczas adwersarz nie ma mocy sprawczej takiej jak wobec normalnej strony www.

    • Sporo tego myślenia w Polsce ostatnio. Ukrywasz się? Znaczy żeś sodomita i zdrajca. Wszak prawy obywatel nie powinien mieć nic do ukrycia przed przedstawicielami suwerena. I nic do powiedzenia…

    • To nie ta sama Aruba co na prośbe Hacking Teamu przejęła adresy IP innego operatora? … niezły honeypot :)

    • Jak już przeglądasz i komentujesz artykuł o usługach dla zdegenerowanych ludzi i innych takich to chyba sam taki jesteś bo kto normalny interesuje się czymś takim jak TOR!

  7. “`
    ServerTokens Prod
    “`

    możecie zamienić na

    “`
    sed “s/ServerTokens.*/ServerTokens Prod/g”
    “`

  8. Szacunek dla Aruby że mają na tyle ‘jaj’ żeby sponsorować takie artykuły. Szczególnie w porównaniu do niektórych usługodawców dla których Tor jest dziki Tor jest zły, Tor ma bardzo ostre kły, dla zasady blokując.

  9. W końcu na Debianie, szanuję.
    Ale w jednej linijcie daliście chyba niechcący emacsa zamiast nano. :D Jeszcze brakuje tylko do tego sendmaila.

  10. Fajna inicjatywa, Tor to nie tylko zło i dobrze, że ktoś o tym informuje z zyskiem lub bez ale informacja w polski internet poszła.

    Kompletny poradnik na Nginx z obsługą e mail i zabezpieczeniami znajdziecie tutaj: http://54ogum7gwxhtgiya.onion/hs-cookbook/

    • Krangu, clearnetowa wersja Twojej strony znikła już z sieci?

    • Clearnetowa wersja to był tylko index z linkiem do cebulowej. Jak chcecie mogę postawić na nowo. Tylko czy jest taka potrzeba?

    • Po .onion (a przed /) dopisz jeszcze .city i działa :)

  11. Vim też jest. Chyba nie chcieli być nudni ^^

  12. Kurcze zainstalowalem ostatnio klienta tor, ale 95% linkow znalezionych na forach mi nie dzialalo. Jest tam jakies globalne forum, z ktorego mozna trafic na jakies inne pomniejsze strony? Albo cos godnego polecenia w tematyce podobnej do niebezpiecznika?

  13. Coś macie błąd w stopce:
    Wszelkie prawa zastrzeżone © 2009- echo date(“Y”);

    • Nie, nie maja. Zerknij w zrodlo strony ;)

    • A żebyś zobaczył źródło strony, fiu fiu.

    • Tak ma być.

    • widze że kolega nowy…

  14. Wykonanie tych punktów sprawia ze mój serwer jest odporny na ataki? Chętnie przeczytalbym coś na temat problemów z jakimi maja do czynienia male firmy hostingowe. Wydaje mi się że gdyby to było takie proste to nikt nigdy by nie miał problemów z serwerami a przecież ciągle coś nawala. Jeśli ktoś ma doświadczenie w tym temacie to laik chętnie przeczyta!

    • Oprogramowanie, czy to closed source, czy to open source, ma błędy. Trzeba aktualizować system, bo bezpieczeństwo to proces. To chyba pierwsza, nie jedyna ale najważniejsza zasada.

  15. # emacs /etc/apache2/apache2.conf

    Pomocy ! Jak się z tego wychodzi ?
    :wq nie działa :(

    • C-x

  16. A gdzie się podział tag ARTYKUŁ SPONSOROWANY?

  17. “Po , jako szablon maszyny wybieramy system operacyjny Debian 8 64 bit.”

    Po czym?

    A i czemu najpierw proponujecie vima a potem nano? Dobrze, że chociaż emacsem nie straszycie. mcedit FTW!

  18. “Już za możesz mieć swój własny serwer”
    No jak za mogę to “również również” się cieszę.
    Pominąć cenę w tekście reklamowym, to albo poważne niedopatrzenie, albo jakiś chiński chłyt marketingowy( ͡° ͜ʖ ͡°)

  19. “Przekierowywanie pakietów ICMP” – że jak?

  20. Fajny artykuł, taki sponsoring to popieram – normalnie człowiek może polubić reklamy :)

  21. Dlaczego firewall przez ufw? Jak to ma być minimalny serwer webowy bez obsługi baz, serwisów skryptowych itd itp, to nie lepiej jest ogarnąć rule przez czyste iptables?

  22. http://www.forbes.pl/bitcoin-podstawa-atakow-ransomware-hakerzy-go-uwielbiaja,artykuly,212781,1,1.html
    “Płacenie okupu zaleca także zazwyczaj serwis niebezpiecznik.pl, w przypadku chęci odzyskania danych.”
    Nie no serio???

    • Zdecydowanie! Przy innych ransomware jak nie masz backupu – plac, albo czekaj w niepewnosci czy kiedys ktos zlamie szyfrowanie. Co do Twojego cytatu, to doklej tez kolejne zdanie ktore wygodnie pominąłeś: “Jednak dla WannaCry wydano odmienną rekomendację. “

  23. Hm… Aruba… coz… Ale w sumie ktos musi normalnych inaczej tez obslugiwac…
    Co do meritum – Gratuluje pomyslu aby zablokowac wszystko na FW a nastepnie probowac sciagnac updaty :) Ale to moze i lepiej – oszczedzi posiadaczowi wsydu wystawiania sie w takim towarzystwie…
    Przy okazji – nie ma czegos takiego jak bezpieczny serwer. ;) Na szczescie TOR daje dobre mozliwosci namierzenia kazdego z uczestnikow tej zabawy a wiec w razie czegos i mozna sprobowac dochodzic sprawiedliwosci – no chyba ze to ‘oddzial 14652’ zlokalizowany pod Pekinem

  24. no w końcu ktoś używa Debiana a nie korpolubnych dystrybucji ;)

  25. no ladnie…. chlopaki w nano edytuja pliki… ;-)

    • nano jeszcze ujdzie ale żeby w emacs-ie :)

  26. Ten PS. to powinien być na początku albo w tytule wielkimi literami – ARTYKUŁ SPONSOROWANY – jeśli lubisz czytać reklamy śmiało ;)

    • Nastepnym razem powiadomimy Cie listownie na tydzień przed publikacją :)

    • To się dopiero nazywa dbanie o użytkowników :)

  27. Co do UFW – jeszcze trzeba dać “systemctl enable ufw.service”. Jak się tego nie zrobi to UFW przy restarcie systemu po prostu nie wystartuje.

  28. Bardzo fajny tutorial na prawdę!!! I chyba się nim trochę pobawię ;)

    Ale mam kilka pytań do autora z racji jego widocznie większego doświadczenia ;)

    1) Czy firewall to jest jedyna linia naszego bezpieczeństwa serwera ?

    2) Omawiamy tutaj kwestie od razu ataków od tylca :P a co z zabezpieczeniem naszego frontu ?

    3) Na przykładzie który widzimy wyżej mimo, że od strony administracyjnej jest trochę zabawy i może przysporzyć trochę problemów ale nie owijajmy w bawełnę nie jest to za bardzo zaawansowany projekt ;) Jak wygląda kwestia zabezpieczeń w przypadku gdzie administrator chciałby postawić sklep np Prest bądź Woo?

    4) zatem nasuwa się nam pytanie wynikowe :) Wiemy jaka jest sieć Tor :) ja po dłuższej przerwie od Tora wskoczyłem na chwilę do sieci i nadziałem się na pierwszym inpucie :p i tak minęła mi nocka :P A więc skoro stawiamy sklep w sieci Tor a klientów potencjalnych mamy po za nią, to w jaki sposób możemy zabezpieczyć ich drogę do naszego sklepu jak i sam przebieg rejestracji, logowania, transakcji itp… ?

  29. Jeszcze można zmienić nazwę serwera, żeby zamiast apache się wyświetlało co innego ;) Artykuł fajny :)

    https://www.howtoforge.com/changing-apache-server-name-to-whatever-you-want-with-mod_security-on-debian-6

  30. Cześć, czy ktoś wie jak zainstalować phpmyadmin? I jak stworzyć bazę danych w domenie .onione?

  31. Witam,

    zbyt trudne dla takiego starucha jak ja. Jednak nawet zgredy mają coś do powiedzenia, co się może nie wszystkim podobać.

    Marzy mi się blog z zawartością zdjęć, tekstów i filmów, po które wredne łapska nie sięgną. Jednak wiem, że nawet za miesiąc nie będę w stanie sam tego uczynić.

    Czy znajdzie się ktoś, kto mi pomoże za niewygórowaną opłatą?

    Zapomniałby, że chyba potrzebna jest domena. Oczywiście nie w naszym kraju rejestrowana.

    Pozdrawiam
    J

    • Chętnie pomogę ;)

  32. Rejestracja konta w firmie dla serwera tor ,jest jak podanie się na złotej tacy.

Odpowiadasz na komentarz Robert

Kliknij tu, aby anulować

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: