Tor и RPi

Tor и RPi

Life-Hack

Домашний компьютер/ноутбук не может быть всегда включен. А RPi может. Поэтому... Реализовываем создание своего onion-сайта в сети TOR на Raspberry Pi, чтобы он всегда был доступен.

Нам понадобится RPi, адаптер питания 5V 2A DC, карта памяти min 4Gb, USB-адаптер (лучше ALFA или TP-Link), Для первого подключения клавиатура, HDMI кабель и зомбоящик.

Будем использовать Raspbian Jessie Lite образ.

Сверили контрольные суммы:

sha1sum

3a34e7b05e1e6e9042294b29065144748625bea8


Распаковываем архив, подключаем карту памяти и записываем образ:

dd if=2016-09-23-raspbian-jessie-lite.img.img of=/dev/mmcblk0


Первый запуск. Вставим карту памяти в RPi, подключим клавиатуру и USB-адаптер. Соединим по HDMI шнуру с зомбоящиком. Подключаем адаптер питания. Пойдет первая загрузка. Образ Raspbian небольшой, автоматом расширится все дисковое пространство карты памяти. Когда выскочит на экран ввода логина/пароля, введите pi/raspberry. Дальше будет ОЧЕНЬ много команд!


Сменим пароль пользователя pi

passwd


Перейдем в суперпользователя root

sudo -i


и так же сменим пароль

passwd


желательно не такой же, как у пользователя pi. Добавим пользователя pi к sudo

usermod -g sudo pi


редактируем

visudo


находим строки

# User privilege specification

root ALL=(ALL:ALL) ALL


добавляем ниже

# Allow members of group sudo to execute any command

pi ALL=(ALL:ALL) ALL


меняем

nano /etc/hosts


и

nano /etc/motd


на что то другое вместо raspberry. Так же заменим MOTD – Message of the Day banner

nano /etc/motd


Создать вашу собственную картинку ASCII можно здесь, затем вставить ее в MOTD.

Поправим SSH, так как будем подключаться по нему

nano /etc/ssh/sshd_config


Для защиты от брутфорса запретим подключаться через root и сменим порт с 22 на другой

PermitRootLogin no

Port 2282


Настраиваем SSH для постоянной работы

update-rc.d -f ssh remove

update-rc.d -f ssh defaults

cd /etc/ssh/

mkdir original_keys

mv ssh_host_* original_keys/

dpkg-reconfigure openssh-server


Подключаться будем по wi-fi.

Приводим

nano /etc/wpa_supplicant/wpa_supplicant.conf

к виду

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=GB

network={

ssid="точка доступа"

psk="пароль"

key_mgmt=WPA-PSK

}


Добавим автовход без ввода логина/пароля

sudo -i

mkdir -pv /etc/systemd/system/getty@tty1.service.d

nano /etc/systemd/system/getty@tty1.service.d/autologin.conf


в autologin.conf вводим и сохраняем

[Service]

ExecStart=

ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux


перезагружаем RPi

reboot


зайдя под пользователем pi автоматически проверим, появилось ли автоматическое интернет-подключение

ping google.com


и узнаем свой IP-адрес

hostname -I


клавиатуру и HDMI можно отключить. Будем соединяться по SSH

ssh pi@ip_address -p 2282


если не хотите каждый раз вводить пароль, то можно сделать аутентификации по ключам.

генерируем пару ключей на локальной машине

ssh-keygen


устанавливаем открытый ключ на удаленном сервере

ssh-copy-id -i ~/.ssh/id_rsa.pub pi@ip_adress -p 2282


добавляем секретный ключ в агент аутентификации на локальной машине

ssh-add


пора обновить систему

apt-get update

apt-get upgrade


Если хотим сгенерировать красивый адрес для сайта, то нам понадобится СТАРАЯ версия Kali Linux! Я использовал 1.0.6 На новых не заработало. Можно найти в архивах. Нарезаем на болванку/делаем live-usb. Прогружаемся в систему. Подключаемся к сети. Далее в ход пойдет Shallot.

Shallot позволяет создавать настроенные адреса .onion для скрытых сервисов Tor. Часть адреса может быть произвольной. Для установки загрузим Shallot с github

wget https://github.com/katmagic/Shallot/archive/master.zip


распакуем

unzip master.zip


перейдем в директорию

cd Shallot-master


далее

./configure

make


и запускаем для примера

./shallot ^penis

------------------------------------------------------------------

Found matching domain after 30493976 tries: penistfobso4wxhr.onion

------------------------------------------------------------------

-----BEGIN RSA PRIVATE KEY-----

MIICXgIBAAKBgQC+dO6h1GjQD0Hqn2LLBX0kIA9px/CtxV5yxMCjbk773igLvXDu

v7N9Kr1FYB+yKuSWL/aCZttLqiqUA4L3cxI5Dgtk3bRKkmZre9qfH9xU9v+RSr5P

BQmtp0AMi2wLiZxGggkoqcdIhKC4WWoD1xks0H//f7D+G+rdh4IMOHj7kQIEAPC0

RQKBgAwEVw9kxxu/SIugn3dDXJ2tq8V/uGNMBm02MnhckgvIS6S9wfB60mjy3FG/

SUPCWE/f5pUx8fNb3aPnIg2C5FlSE8hAfzdVBIP5F3S2KacSeCL+DPgCpcM8Tkfh

s5AaqHe5Z+cb2pLE/1VXQpnnSQhLuSQFresIMCxnaBjOizzJAkEA4laycqQo2Guu

eGkppcdNDRnlI4+bCslp2C4ZOuv8/DaLsQ/UE+RMrhdmJi48bcGBafcQlfewdyvL

FpF6cpzjtQJBANdqdFilmRwCi1Ij4Q3dBubjjo5+WzxeZ0A6M6g5HDPFZBuHoXtI

LNbSz5ilriQQ8fhKZi1HpwVWhNNLyIB3me0CQCdn1d98SwNP+gIfyvYT5ufxoBfH

ElngrkQr4rYhsbCmSorxfen9gxI1hQVy4DsbTfttzSwJmOZ5P/CBG+HPFjUCQQCB

gWh+P0wOCUDfkRDXdVd1Tb/7nbPbk8r+VlVgnz7fMNPYzjVkq2DTsRvk8uWTdMwQ

bTDrrSiO0Wv5zxmMocT9AkEAkLfNSgZafRVmipGo9Fn78ZqedvZAqfYkwXgoIfrB

MEq+FK1D3nyY9QDukbe6uR7k8gTfqTtqiHwIQ5JX7u6v7w==

-----END RSA PRIVATE KEY-----


замените "член" именем, которое хотите. Стоит помнить, что чем больше символов вы введете, тем тольше времени уйдет на генерацию. Оптимально не более 6. Полученный вывод сохраните в текстовый файл и пока сохраните на внешний носитель


установим необходимые пакеты

apt-get install tor

apt-get install lighttpd


далее стартуем tor и lighttpd

service tor start

service lighttpd start


чтобы они создали конфигурации. В /etc/tor/torrc раскомментируем и приведем к такому виду строки

HiddenServiceDir /var/lib/tor/hidden_service/

HiddenServicePort 80 127.0.0.1:8123


и в самом низу добавим это

ExcludeNodes {ru}, {ua}, {be}


устранит подключения Tor к *** нодам. Сохраним и выйдем

в /var/lib/tor/hidden_service есть два файла hostname и private_key

в первом имя вашего onion сайта, а во втором - уникальный приватный ключ. 

у вас должен остаться полученный вывод в текстовом файле. Вот из него то и подставьте значения в эти два файла. Для примера в hostname впишите penistfobso4wxhr.onion а в private_key

-----BEGIN RSA PRIVATE KEY-----

MIICXgIBAAKBgQC+dO6h1GjQD0Hqn2LLBX0kIA9px/CtxV5yxMCjbk773igLvXDu

v7N9Kr1FYB+yKuSWL/aCZttLqiqUA4L3cxI5Dgtk3bRKkmZre9qfH9xU9v+RSr5P

BQmtp0AMi2wLiZxGggkoqcdIhKC4WWoD1xks0H//f7D+G+rdh4IMOHj7kQIEAPC0

RQKBgAwEVw9kxxu/SIugn3dDXJ2tq8V/uGNMBm02MnhckgvIS6S9wfB60mjy3FG/

SUPCWE/f5pUx8fNb3aPnIg2C5FlSE8hAfzdVBIP5F3S2KacSeCL+DPgCpcM8Tkfh

s5AaqHe5Z+cb2pLE/1VXQpnnSQhLuSQFresIMCxnaBjOizzJAkEA4laycqQo2Guu

eGkppcdNDRnlI4+bCslp2C4ZOuv8/DaLsQ/UE+RMrhdmJi48bcGBafcQlfewdyvL

FpF6cpzjtQJBANdqdFilmRwCi1Ij4Q3dBubjjo5+WzxeZ0A6M6g5HDPFZBuHoXtI

LNbSz5ilriQQ8fhKZi1HpwVWhNNLyIB3me0CQCdn1d98SwNP+gIfyvYT5ufxoBfH

ElngrkQr4rYhsbCmSorxfen9gxI1hQVy4DsbTfttzSwJmOZ5P/CBG+HPFjUCQQCB

gWh+P0wOCUDfkRDXdVd1Tb/7nbPbk8r+VlVgnz7fMNPYzjVkq2DTsRvk8uWTdMwQ

bTDrrSiO0Wv5zxmMocT9AkEAkLfNSgZafRVmipGo9Fn78ZqedvZAqfYkwXgoIfrB

MEq+FK1D3nyY9QDukbe6uR7k8gTfqTtqiHwIQ5JX7u6v7w==

-----END RSA PRIVATE KEY-----


в /etc/lighttpd/lighttpd.conf изменим значения

server.document-root = "/var/www/onion"

server.error-handler-404 = "/404.php"

server.tag = "Ваше значение"

server.port = 8123

$HTTP["remoteip"] !~ "127.0.0.1" {

url.access-deny = ( "" )

}

server.dir-listing = "disable"


современные веб-технологии предусматривают широкое использование "движков", для поддержки которых требуются PHP и MySQL, поэтому самое время добавить их к нашему серверу. Сначала установим PHP


apt-get install php5-cgi


затем в /etc/php/cgi/php.ini найдем и раскомментируем следующую строку

cgi.fix_pathinfo = 1


теперь включим поддержку PHP в lighttpd

lighttpd-enable-mod fastcgi

lighttpd-enable-mod fastcgi-php


следующим шагом установим сервер баз данных MySQL и модуль PHP для работы с ним (Можете пропустить, если сайт будет без БД)

apt-get install mysql-server mysql-client php5-mysql


по умолчанию MySQL сервер использует кодировку latin1, в то время как большинство современных движков работают в UTF-8. Поэтому откроем /etc/mysql/my.cnf и добавим в секции [client] и [mysqld] следующие строки

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

collation_server=utf8_unicode_ci

об управлении БД в mysql я рассказывать не буду. Это отдельная тема

в /var/www/ создаем папку onion (не забудьте установить права)

chown www-data:www-data /var/www/onion

chmod 775 /var/www/onion

usermod -a -G www-data pi


ваш сайт разместим в ней. Создадаем проверочную HTML страницу и сохраняем ее под именем index.html

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Тестовая страница</title>

</head>

<body>

<h2>Site Local </h2>

<h3> Тестовая страница.</h3>

<p> Веб-сервер работает и настроен правильно. </p>

</body>


cоздадаем PHP страницу ошибки и сохраняем ее под именем 404.php

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>404</title>

</head>

<body>

<h2>Site Local </h2>

<h3> Ошибка 404.</h3>

<p> Страница не найдена. </p>

</body>


перезапустим службы

service tor restart

service lighttpd restart

service mysql restart


и добавим в автозагрузку

update-rc.d tor enable

update-rc.d lighttpd enable

update-rc.d mysql enable


в tor-браузере переходим на ВАШ сгенерированный onion адрес, например penistfobso4wxhr.onion и видим результат!

желательно добавить в /root/***/tor-browser_en-US/Browser/TorBrowser/Data/Tor/torrc в самый низ строку ExcludeNodes {ru}, {ua}, {be}

теперь, чтобы запустить сайт, достаточно воткнуть вилку в розетку и чтобы wi-fi был доступен

P. S. От себя замечу, что можно использовать тяжелые движки для сайта, но я бы порекомендовал opensource, можно найти в интернете на том же github

flatpress - блог без БД

lechat - чат с БД

fluxbb - форум с БД

Добавлю к теме, что если нет возможности подключаться по wi-fi, то можно реализовать соединение через USB-свисток. Ищем по поисковым запросам "sakis3g Raspberry Pi". Там и перепрошить модем под любые сим карты можно и автозагрузку и автоподключение настроить...

Источник

Report Page