ghost
Well-known member
- 12.05.2016
- 1 636
- 3 081
Статья для участия в конкурсе Конкурс 2018 года - авторская статья по любой тематике нашего форума!
Приветствую, друзья!
Давно я не писал статьи для форума...
Уж извините, но год был действительно сложный и насыщенным. Работа над курсом Paranoid и много ещё чего важного.
Что же, попробую хоть в конце года наверстать упущенное.
Позволю себе процитировать абзац из википедии, так как я нахожу это сейчас как нельзя кстати:
Для тех, кто совсем не в курсе что это за диковинная сеть такая айтупи, можете прочитать сами на
Ведь на
Собственно, сегодня мы научимся, как и сказано в названии темы, создавать свой сайт в сети i2p.
Потребуется виртуальный сервер, арендованный анонимно за крипту вне Рашки, машина с линукс на борту, свободное время и прямые руки.
Приступаем.
Установим i2p на сервер. Для теста мы использовали VPS на базе Debian.
Подключаемся к серверу по ssh (в идеале будет если вначале вы пропустите трафик через VPN):
где codeby - user, 185.86.149.69 - ip
* В моём примере -p 2282 - изменённый порт ssh. По умолчанию он 22. Если ничего не меняли в настройках, то это вам и не нужно...
Работаем под root (если же вы создали пользователя, соответственно, все команды выполняйте с использованием команды sudo вначале):
Для начала установим пакет, который позволит принимать обновления по HTTPS, то есть по зашифрованному каналу:
Добавляем репозитории i2p в систему вводом следующей команды в терминале:
Если работаете под пользователем, соответственно это будет выглядеть как:
В папке /etc/apt/sources.list.d появился новый файл i2pd.list с содержимым:
Обновляем список пакетов, чтобы система приняла новые репозитории с пакетами:
Устанавливаем i2p в систему вводом следующей команды в терминале:
Добавляем в конец файла подписок /etc/i2pd/subscriptions.txt следующие строки:
Не забываем сохранить файл!
Добавляем в конец файла туннелей /etc/i2pd/tunnels.conf следующие строки:
Не забываем сохранить файл!
Создаём папки для будущего сайта:
Создаём главную HTML страницу сайта и сохраняем её под именем index.html:
* Содержимое можно найти в прикреплённом вложении.
Не забываем сохранить файл!
Создаём PHP страницу ошибки и сохраняем её под именем 404.php, что необходимо если прихожане захотят перейти на несуществующую страницу сайта:
* Содержимое можно найти в прикреплённом вложении.
Не забываем сохранить файл!
Запускаем i2p и проверяем его статус активности. Значение active (running) говорит что служба работает как часы:
Установим лёгкий и быстрый веб-сервер lighttpd, так как у нас нагрузка на сайт будет мала, да и от решета типа апача или Nginx мы лучше сразу откажемся:
Запустим и сразу выключим lighttpd, чтобы он смог создать файлы конфигурации и настроек:
После того как это произошло, в /etc/lighttpd/lighttpd.conf изменим значения на следующие:
Не забываем сохранить файл!
Теперь можно снова запустить lighttpd:
Современные веб-технологии предусматривают широкое использование различных "движков" сайтов, для поддержки которых требуются PHP и MySQL.
Поэтому самое время добавить их к нашему серверу. Но у нас статика, мускул нам не нужен, поэтому просто установим пыху:
Затем в /etc/php/cgi/php.ini найдём и раскомментируем следующую строку (это значит просто убрать ; вначале строки):
Не забываем сохранить файл!
Далее включим поддержку PHP в lighttpd:
Установим права на папку /var/www/codeby с будущим сайтом, чтобы мамкиным хацкерам было нечем поживиться:
Перезапустим службы:
И добавим их в автозагрузку:
Через следующую команду можно посмотреть что за службы у вас включены в системе в данный момент:
Пригодится, чтобы обнаружить и порезать файерволлом лишнее. Ведь ненастроенный сервер искаропки светит открытыми портами как новогодняя ёлка...
В папке /var/lib/i2pd/destinations можно найти файл вида ufydaj3de33rvcadop7lh4shsojkufpyo4yceulqm6syaawvyg5a.dat
Это и будет адрес будущего сайта в сети i2p. Запомните его, так как в конце настроек он нам ещё понадобится.
На стороне сервера всё настроено и работает. Теперь предстоит поработать на стороне клиента.
Установим i2p в систему. Для теста мы использовали дистрибутив Kali Linux.
Добавляем репозитории i2p в систему вводом следующей команды в терминале:
Проверьте сами. В папке /etc/apt/sources.list.d появился новый файл i2pd.list:
Обновляем список пакетов, чтобы система приняла новые репозитории с пакетами:
Устанавливаем i2p в систему следующей командой в терминале:
Добавляем в конец файла подписок /etc/i2pd/subscriptions.txt следующие строки:
Не забываем сохранить файл!
Запускаем i2p и проверяем его статус активности. Значение active (running) говорит что служба работает как часы:
В браузере firefox в меню edit->preferences->advanced connection settings меняем значение на manual proxy configuration.
Выставляем настройки http proxy на 127.0.0.1 и port на 4444. Отмечаем SOCKS v5 и нажимаем Ok, чтобы применить полученные изменения:
Переходим в браузере по адресу 127.0.0.1:7070 и если попадаем на страницу i2pd webconsole, то это ещё раз говорит нам о том что i2p работает корректно:
Если попробуете перейти, например, на сайт разработчиков i2p, то вас ждёт разочарование.
В этой сети нет DNS и вместо них используют адресные книги. Поэтому целевой сайт нужно добавить сначала туда:
Теперь как видим всё работает. Уведомление на сайте тоже говорит об этом:
Добавив один раз сайт в адресную книгу, повторять это не потребуется!
Переход на свой сайт осуществляется вводом в адресную строку файла, который мы находили раньше в /var/lib/i2pd/destinations, но .dat заменяем на .b32.i2p:
Ссылка на сайт ufydaj3de33rvcadop7lh4shsojkufpyo4yceulqm6syaawvyg5a.b32.i2p выглядит очень нечитабельно.
Поэтому её можно сократить до удобочитаемого codeby.i2p и зарегистрировать в каталоге, представленном на скрине ниже:
Из i2p можно свободно выходить в обычную сеть. Использовать почту, торренты, IRC, а для параноиков - HTTPS и SSL. Однако есть пара нюансов.
Для выхода в интернет в i2p используется несколько общих шлюзов, преимущественно в Германии. Поэтому со скоростью в направлении i2p ↔ интернет немного плохо (до 5 Мбит/с). К тому же некоторые шлюзы находятся в черных списках, поэтому не все ресурсы через них можно посмотреть.
Cookies работают только при сёрфинге i2p → интернет. При попытке доступа интернет → i2p (например, через шлюз) печеньки режутся и авторизация на сайтах не проходит. Для исправления этой проблемы в firefox в меню edit->preferences->advanced connection settings меняем всё назад на use system proxy settings.
В заключении тормозим демон i2p на хосте:
Теперь все аноны, параноики, и лично Вы можете спать спокойно: наконец-то создана сеть, где никто никого и никогда не найдёт.
Однако даже I2P не гарантирует АБСОЛЮТНОЙ защиты. JavaScript, а ранее ещё и Java, Silverlight и Flash никто не отменял.
Поэтому настройте браузер должным образом...
P.S. Так же запилил видео по теме в качестве бонуса, которое поможет увидеть весь процесс наглядно. Не судите строго.
Спасибо за внимание.
Поздравляю Всех с наступающим Новым годом!
Успехов, достатка, здоровья, стабильного аптайма и новых знаний, обязательно подкреплённых практическими навыками.
Приветствую, друзья!
Давно я не писал статьи для форума...
Уж извините, но год был действительно сложный и насыщенным. Работа над курсом Paranoid и много ещё чего важного.
Что же, попробую хоть в конце года наверстать упущенное.
Позволю себе процитировать абзац из википедии, так как я нахожу это сейчас как нельзя кстати:
I2P (аббревиатура от англ. invisible internet project, IIP, I2P — проект «Невидимый интернет») — проект, начатый с целью создания анонимной компьютерной сети, работающей поверх сети интернет. Создатели проекта разработали свободное программное обеспечение (ПО), позволяющее реализовать сеть, работающую поверх сети интернет. ПО и сеть были названы «I²P» или «I2P».
Сеть I2P является оверлейной (то есть, работающей поверх другой сети — сети интернет), устойчивой (отключение узла не повлияет на функционирование сети), анонимной (невозможно или сложно определить IP-адрес узла). При передаче данных между узлами сети применяется шифрование.
Для тех, кто совсем не в курсе что это за диковинная сеть такая айтупи, можете прочитать сами на
Ссылка скрыта от гостей
Ведь на
Ссылка скрыта от гостей
свет клином не сошёлся, а Интернет должен быть и будет свободным, так как изначально задумывался таким!Собственно, сегодня мы научимся, как и сказано в названии темы, создавать свой сайт в сети i2p.
Потребуется виртуальный сервер, арендованный анонимно за крипту вне Рашки, машина с линукс на борту, свободное время и прямые руки.
Приступаем.
Установим i2p на сервер. Для теста мы использовали VPS на базе Debian.
Подключаемся к серверу по ssh (в идеале будет если вначале вы пропустите трафик через VPN):
Код:
ssh user@ip
где codeby - user, 185.86.149.69 - ip
* В моём примере -p 2282 - изменённый порт ssh. По умолчанию он 22. Если ничего не меняли в настройках, то это вам и не нужно...
Работаем под root (если же вы создали пользователя, соответственно, все команды выполняйте с использованием команды sudo вначале):
Код:
su -
Для начала установим пакет, который позволит принимать обновления по HTTPS, то есть по зашифрованному каналу:
Код:
apt-get install apt-transport-https
Добавляем репозитории i2p в систему вводом следующей команды в терминале:
Код:
wget -q -O - https://repo.i2pd.xyz/.help/add_repo | bash -s -
Если работаете под пользователем, соответственно это будет выглядеть как:
Код:
wget -q -O - https://repo.i2pd.xyz/.help/add_repo | sudo bash -s -
В папке /etc/apt/sources.list.d появился новый файл i2pd.list с содержимым:
Код:
deb https://repo.i2pd.xyz/debian jessie main
deb-src https://repo.i2pd.xyz/debian jessie main
Обновляем список пакетов, чтобы система приняла новые репозитории с пакетами:
Код:
apt-get update
Устанавливаем i2p в систему вводом следующей команды в терминале:
Код:
apt-get install i2pd
Добавляем в конец файла подписок /etc/i2pd/subscriptions.txt следующие строки:
Код:
inr.i2p/export/alive-hosts.txt
stats.i2p/cgi-bin/newhosts.txt
i2p-projekt.i2p/hosts.txt
i2host.i2p/cgi-bin/i2hostetag
no.i2p/export/alive-hosts.txt
rus.i2p/hosts.txt
Не забываем сохранить файл!
Добавляем в конец файла туннелей /etc/i2pd/tunnels.conf следующие строки:
Код:
[anon-website]
type = http
host = 127.0.0.1
port = 8080
keys = anon-website.dat
Не забываем сохранить файл!
Создаём папки для будущего сайта:
Код:
mkdir /var/www
mkdir /var/www/codeby
Создаём главную HTML страницу сайта и сохраняем её под именем index.html:
Код:
nano /var/www/codeby/index.html
* Содержимое можно найти в прикреплённом вложении.
Не забываем сохранить файл!
Создаём PHP страницу ошибки и сохраняем её под именем 404.php, что необходимо если прихожане захотят перейти на несуществующую страницу сайта:
Код:
nano /var/www/codeby/404.php
* Содержимое можно найти в прикреплённом вложении.
Не забываем сохранить файл!
Запускаем i2p и проверяем его статус активности. Значение active (running) говорит что служба работает как часы:
Код:
service i2pd start
service i2pd enable
service i2pd status
Установим лёгкий и быстрый веб-сервер lighttpd, так как у нас нагрузка на сайт будет мала, да и от решета типа апача или Nginx мы лучше сразу откажемся:
Код:
apt-get install lighttpd
Запустим и сразу выключим lighttpd, чтобы он смог создать файлы конфигурации и настроек:
Код:
service lighttpd start
service lighttpd stop
После того как это произошло, в /etc/lighttpd/lighttpd.conf изменим значения на следующие:
Код:
server.document-root = "/var/www/codeby"
server.error-handler-404 = "/404.php"
server.tag = "Nginx"
server.port = 8080
$HTTP["remoteip"] !~ "127.0.0.1" {
url.access-deny = ( "" )
}
server.dir-listing = "disable"
Не забываем сохранить файл!
Теперь можно снова запустить lighttpd:
Код:
service lighttpd start
Современные веб-технологии предусматривают широкое использование различных "движков" сайтов, для поддержки которых требуются PHP и MySQL.
Поэтому самое время добавить их к нашему серверу. Но у нас статика, мускул нам не нужен, поэтому просто установим пыху:
Код:
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
Установим права на папку /var/www/codeby с будущим сайтом, чтобы мамкиным хацкерам было нечем поживиться:
Код:
chown www-data:www-data /var/www/codeby
chmod 775 /var/www/codeby
usermod -a -G www-data codeby
Перезапустим службы:
Код:
service i2pd restart
service lighttpd restart
И добавим их в автозагрузку:
Код:
update-rc.d i2pd enable
update-rc.d lighttpd enable
Через следующую команду можно посмотреть что за службы у вас включены в системе в данный момент:
Код:
netstat -tulpan
Пригодится, чтобы обнаружить и порезать файерволлом лишнее. Ведь ненастроенный сервер искаропки светит открытыми портами как новогодняя ёлка...
В папке /var/lib/i2pd/destinations можно найти файл вида ufydaj3de33rvcadop7lh4shsojkufpyo4yceulqm6syaawvyg5a.dat
Это и будет адрес будущего сайта в сети i2p. Запомните его, так как в конце настроек он нам ещё понадобится.
На стороне сервера всё настроено и работает. Теперь предстоит поработать на стороне клиента.
Установим i2p в систему. Для теста мы использовали дистрибутив Kali Linux.
Добавляем репозитории i2p в систему вводом следующей команды в терминале:
Код:
wget -q -O - https://repo.i2pd.xyz/.help/add_repo | bash -s -
Проверьте сами. В папке /etc/apt/sources.list.d появился новый файл i2pd.list:
Код:
deb https://repo.i2pd.xyz/kali n/a main
deb-src https://repo.i2pd.xyz/kali n/a main
Обновляем список пакетов, чтобы система приняла новые репозитории с пакетами:
Код:
apt-get update
Устанавливаем i2p в систему следующей командой в терминале:
Код:
apt-get install i2pd
Добавляем в конец файла подписок /etc/i2pd/subscriptions.txt следующие строки:
Код:
inr.i2p/export/alive-hosts.txt
stats.i2p/cgi-bin/newhosts.txt
i2p-projekt.i2p/hosts.txt
i2host.i2p/cgi-bin/i2hostetag
no.i2p/export/alive-hosts.txt
rus.i2p/hosts.txt
Не забываем сохранить файл!
Запускаем i2p и проверяем его статус активности. Значение active (running) говорит что служба работает как часы:
Код:
service i2pd start
service i2pd enable
service i2pd status
В браузере firefox в меню edit->preferences->advanced connection settings меняем значение на manual proxy configuration.
Выставляем настройки http proxy на 127.0.0.1 и port на 4444. Отмечаем SOCKS v5 и нажимаем Ok, чтобы применить полученные изменения:
Переходим в браузере по адресу 127.0.0.1:7070 и если попадаем на страницу i2pd webconsole, то это ещё раз говорит нам о том что i2p работает корректно:
Если попробуете перейти, например, на сайт разработчиков i2p, то вас ждёт разочарование.
В этой сети нет DNS и вместо них используют адресные книги. Поэтому целевой сайт нужно добавить сначала туда:
Теперь как видим всё работает. Уведомление на сайте тоже говорит об этом:
Добавив один раз сайт в адресную книгу, повторять это не потребуется!
Переход на свой сайт осуществляется вводом в адресную строку файла, который мы находили раньше в /var/lib/i2pd/destinations, но .dat заменяем на .b32.i2p:
Код:
ufydaj3de33rvcadop7lh4shsojkufpyo4yceulqm6syaawvyg5a.b32.i2p
Ссылка на сайт ufydaj3de33rvcadop7lh4shsojkufpyo4yceulqm6syaawvyg5a.b32.i2p выглядит очень нечитабельно.
Поэтому её можно сократить до удобочитаемого codeby.i2p и зарегистрировать в каталоге, представленном на скрине ниже:
Из i2p можно свободно выходить в обычную сеть. Использовать почту, торренты, IRC, а для параноиков - HTTPS и SSL. Однако есть пара нюансов.
Для выхода в интернет в i2p используется несколько общих шлюзов, преимущественно в Германии. Поэтому со скоростью в направлении i2p ↔ интернет немного плохо (до 5 Мбит/с). К тому же некоторые шлюзы находятся в черных списках, поэтому не все ресурсы через них можно посмотреть.
Cookies работают только при сёрфинге i2p → интернет. При попытке доступа интернет → i2p (например, через шлюз) печеньки режутся и авторизация на сайтах не проходит. Для исправления этой проблемы в firefox в меню edit->preferences->advanced connection settings меняем всё назад на use system proxy settings.
В заключении тормозим демон i2p на хосте:
Код:
service i2pd stop
Теперь все аноны, параноики, и лично Вы можете спать спокойно: наконец-то создана сеть, где никто никого и никогда не найдёт.
Однако даже I2P не гарантирует АБСОЛЮТНОЙ защиты. JavaScript, а ранее ещё и Java, Silverlight и Flash никто не отменял.
Поэтому настройте браузер должным образом...
P.S. Так же запилил видео по теме в качестве бонуса, которое поможет увидеть весь процесс наглядно. Не судите строго.
Спасибо за внимание.
Поздравляю Всех с наступающим Новым годом!
Успехов, достатка, здоровья, стабильного аптайма и новых знаний, обязательно подкреплённых практическими навыками.