Проксі-сервер на Raspberry Pi для доступу в I2P
User Rating: / 4
PoorBest 
There are no translations available.

i2p-logoI2P є тим програмним забезпеченням, яке краще залишити працюючим вічно. Raspberry Pi - одна з платформи, яка чудово підходить для такого завдання.
Думаю, що ви могли б залишити свій Raspberry Pi працюючим "за лінією фронту", і змогли б отримувати до нього доступ через даркнет I2P.
Підготовка
Перше, що ми зробимо, це оновимо операційну систему, так як в образі може бути далеко не остання версія різних пакетів та іншого:
#sudo aptitude update
#sudo aptitude upgrade
Нам потрібно буде створити каталог для установки. Це можна зробити за допомогою декількох простих команд, і буде працювати під управлінням користувача pi. Якщо ви використовуєте інший обліковий запис, то відповідно змініть шлях. Нагадуємо, що ~ просто умовне позначенням поточного домашньому каталогу користувача.
cd ~
mkdir i2p
cd i2p
Знайдіть URL, щоб завантажити I2P, перейшовши в http://www.i2p2.de/download, але адреса з часом змінюється, бо з'являються нові версії. На момент написання цієї статті маємо працюючим наступне:
wget https://download.i2p2.de/releases/0.9.13/i2pinstall_0.9.13.jar
або
wget http://download.i2p2.no/releases/0.9.13/i2pinstall_0.9.13.jar
i2p-install
Встановлюємо Java
Зверніть увагу: не треба ставити стандартну JRE з пакетів! Вона гальмує! Ми будемо ставити Java, спеціально скомпільовану для процесора ARM.
Тепер доступний Oracle JDK8 для ARM як видання Developer Preview! Розглянемо детально, як встановити Oracle Java SE 8 (з JavaFX) Developer Preview для ARM на Raspberry Pi.
Насамперед, завантажимо Java SE 8 (with JavaFX) Developer Preview for ARM для Raspberry Pi.
Переносимо Oracle JDK на Raspberry Pi
Після завантаження Oracle JDK до настільного комп'ютера, ми повинні перенести його на на Raspberry Pi. Будемо використовувати SCP для передачі файлів мережею. Якщо ви працюєте на десктопному Windows, то завантажте і встановіть WinSCP.
Якщо використовуєте Mac OSX, то можете завантажити і встановити Cyberduck. Екрани будуть виглядати по-різному, але суть одна і та ж.
Створіть нову сесію в WinSCP за допомогою IP-адреси свого Raspberry Pi. Повноваження аутентифікації за замовчуванням для образу є ім'я користувача pi і пароль raspberry. Збережіть сесію, а потім увійдіть в систему. Вам може бути запропоновано прийняти відбиток SSH, виберіть "Yes", щоб прийняти і продовжити.
WinSCP-Java
Після успішного встановлення з'єднання, виберіть диск і папку в лівій панелі, куди ви завантажити файл Oracle JDK на свою локальну машину. На правій панелі відображена файлова система на Raspberry Pi, ми залишимо її в положенні за замовчуванням в домашньому каталозі користувача "pi". Перетягніть файл Oracle JDK з лівої панелі на праву панель і WinSCP почне процес передачі файлів. Вам буде запропонований діалог передачі - просто натисніть кнопку "Copy", щоб почати передачу.
WinSCP-Copy
Коли завершення передачі файлу, можете закрити WinSCP (або Cyberduck).
Процедура встановлення на Raspberry Pi
Решта кроків мають бути виконані безпосередньо на консолі Raspberry Pi або з використанням з'єднання через термінал SSH з доступом до оболонки. На останньому етапі, ми передали файл Oracle JDK в домашній каталог користувача "pi". Ми повинні увійти в систему, як користувач "pi" і відразу будемо в домашньому каталозі користувача.
Давайте створимо новий каталог, до якого будуть встановлені файли JDK:
sudo mkdir -p -v /opt/java
Далі, розпакуємо файл .gz Oracle JDK за допомогою команди:
tar xvzf ~/ jdk-8-linux-arm-vfp-hflt.tar.gz
Процес розпакування займе кілька секунд. Буде розпакований весь вміст файлу .gz Oracle JDK в новий каталог з ім'ям "jdk1.8.0", розташований в домашньому каталозі користувача.
З завершенням розпакування настав час перенести новий розпакований каталог в місце розташування встановленої Java, створене нами раніше як opt/java.
sudo mv -v ~/jdk1.8.0 /opt/java
Ми можемо також видалити оригінал файлу .gz, який нам більше не потрібний:
rm ~/jdk-8-linux-arm-vfp-hflt.tar.gz
Для завершення установки JDK нам потрібно, щоб система знала, що є нова JVM встановлена і де вона знаходиться. Використайте наступну команду, щоб виконати це завдання:
sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jdk1.8.0/bin/java" 1
І, нарешті , ми також повинні повідомити системі, що хочемо, щоб цей JDK бути для системи Java Runtime за замовчуванням. Наступна команда виконає цю дію:
sudo update-alternatives --set java /opt/java/jdk1.8.0/bin/java
Java-update
Тепер встановлений Java. Для перевірки і підтвердження ми можемо виконати команду перевірки версії Java за допомогою:
java -version
Ви повинні отримати таку відповідь:
Java-version
Це підтверджує, що Oracle JDK встановлений і готовий до використання.
Додавання змінної середовища JAVA_HOME
Деякі програми Java вимагають наявність налаштованої в системі змінної JAVA_HOME. Додайте наступний рядок до вашого "/etc/environment", використовуючи улюблений текстовий редактор:
JAVA_HOME="/opt/java/jdk1.8.0"
Крім того, відредагуйте файл "~/.bashrc" за допомогою цієї команди:
nano ~/.bashrc
додавши наступні два рядки в кінець файлу, та збережіть його:
export JAVA_HOME="/opt/java/jdk1.8.0"
export PATH=$PATH:$JAVA_HOME/bin
Перезавантажтеся або повторно увійдіть в систему, щоб застосувати експорт у ваше середовище.
Встановлення I2P-маршрутизатора
Вводимо:
#java -jar i2pinstall_0.9.13.jar -console
Замість i2pinstall_0.9.13.jar підставляєте назву свого файлу установника маршрутизатора, бо версія може змінитися. Шлях для встановлення: /home/pi/i2p/
Ось і все! I2P-маршрутизатор встановлений!
Налаштування маршрутизатора
Хоча маршрутизатор встановлений, але працювати з ним ще рано. Він вас просто не "почує", тому що чекає команд з 127.0.0.1, а зовсім не з вашого комп'ютера. Виправимо:
#cd i2p
#./runplain.sh
#kill -9 `cat /tmp/router.pid` або killall java
#cd ..
#cd .i2p
#nano clients.config
Ми дозволяємо вперше запуск runplain.sh, а потім вбиваємо його для того, щоб створити профіль I2P для наступного редагуванняю.
Якщо хочете, то можете скористатися RDP для підключення до Raspberry Pi і просто використовувати I2P звідти. Автор хоче зробити Pi воротами в I2P для всієї своєї локальної мережі, тому давайте зробимо це так, щоб ми могли потрапити в веб-консоль з будь ПК, а не тільки з локальний хоста. Відкриваємо в редакторі ~/.i2p/clients.config і знаходимо рядок, який виглядає як:
clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/
Коментуємо його з # і розкоментуємо рядок, який виглядає як:
#clientApp.0.args=7657 0.0.0.0 ./webapps/
в:
clientApp.0.args=7657 0.0.0.0 ./webapps/
Якщо ми зробимо цей крок, але не довіряємо всім хостам в нашій локальній мережі, це, ймовірно, хороша ідея, зробити пароль для маршрутизатора. Просто редагуємо clients.config далі, додавши рядок:
consolePassword=SomePassword
Очевидно замінивши "SomePassword" паролем, який хочете використовувати. Ім'я для входу - admin. Переконайтеся, що маєте тепер доступ до консолі I2P, щоб мати можливість дістатися до проксі. Для цього ми повинні встановити проксі на портах 4444 і 4445 для прослуховування 0.0.0.0.
Тепер продовжимо з редагування файлу i2ptunnel.config:
#nano i2ptunnel.config
Знайдіть рядки, які виглядають як :
tunnel.0.interface=127.0.0.1
tunnel.6.interface=127.0.0.1
і змініть їх на:
tunnel.0.interface=0.0.0.0
tunnel.6.interface=0.0.0.0
Тепер можемо запустити I2P:
#cd /home/pi/i2p
#./runplain.sh
але, якщо хочете запускати при завантаженні і бути впевненим, що все працює будь-коли, навіть після аварії, скористайтесь наведеним нижче рішенням. Вводимо:
crontab –e
Цим ми запускаємо редактор, щоб додати заплановані завдання. Додайте наступні рядки:
0 * * * * /home/pi/i2p/runplain.sh
@reboot /home/pi/i2p/runplain.sh
Потім exit для завершення роботу.
Дані рядки повинні запускати I2P при завантаженні і робити спроби завантажити його щогодини. Приводом для кожного щогодинного рядка для перезапуску I2P є випадок, що він зламався. Якщо I2P вважає, що він вже запущений, то це повинно витончено закритись.
Ми тепер повинні мати піднятий і працюючий I2P, залишилось конфігурувати свій браузер для вказівки на порти 4444 і 4445 для HTTP і HTTPS проксі, відповідно.
Базові налаштування i2p
Багато користувачів віддають перевагу веб-інтерфейсу, а не файлам конфігурації.
Спочатку доступ до вебінтерфейсу дозволений тільки з локального комп'ютера. Так що будемо робити першу «дірку в безпеці» - відкривати доступ до адмінки з будь-якої адреси . Але для початку треба хоч якось до неї достукатися . Беремо ssh і робимо тунель з порту 7657 хостингу на порт 7657 нашого комп'ютера.

C:\>ssh user@ваш_сервер-L7657:127.0.0.1:7657

user@ваш_сервер's password:

Linux ваш_сервер3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64

You have mail.

Last login: Tue Dec 24 06:18:58 2013

ваш_сервер:~>

Якщо бачимо запрошення шелла, то за посиланням http://127.0.0.1:7657/ стає доступна адмінка i2p-маршрутизатора.
По-перше, на закладці UI ставимо англійську мову. Тому що, якщо щось знадобиться знайти, то простіше шукати за англійськими назвами термінів. Наприклад, так відразу не здогадаєшся, що «транзитний трафік» - це «share bandwidth».
i2p-setup-1
Закладка Bandwidth - автор виставив IN - 512 , OUT - 256 і 50% share (той самий транзитний трафік через ваш сервер).
Звичайно, при 50% страждає анонімність і, потенційно, швидкість. Хочеться анонімності – приближайтесь до 100%. А швидкість треба налаштовувати залежно від каналу вашого сервера і ваших потреб.
i2p-setup-2
Далі налаштовуємо адресну книгу. Справа в тому, що мережа I2P не має звичних нам DNS-серверів. Тому SusiDNS звертається до вже відомих ресурсів для поповнення так званої «Адресної книги».
Заходимо в браузері на http://<IP Raspberry Pi>:7657/susidns/subscriptions і додаємо:
http://www.i2p2.i2p/hosts.txt
http://i2host.i2p/cgi-bin/i2hostetag
http://stats.i2p/cgi-bin/newhosts.txt
http://tino.i2p/hosts.txt
http://inr.i2p/export/alive-hosts.txt
Основні налаштування зроблені, тому можна почати освоєння «невидисого» Інтернету.
(За матеріалами EN: irongeek.com)
 
>
BookNewsPractice SearchPartnersAbout
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting