Этот перевод был создан с помощью машинного обучения и может быть не на 100% точным. Просмотреть английскую версию

Создание и запуск сервер-ресида I2P

Полное руководство по настройке и эксплуатации reseed-сервера I2P для помощи новым роутерам в присоединении к сети

Reseed-хосты являются критически важной инфраструктурой для сети I2P, предоставляя новым router’ам начальную группу узлов в процессе bootstrap’а. Это руководство проведет вас через настройку и запуск собственного reseed-сервера.

Что такое I2P Reseed Server?

Reseed-сервер I2P помогает интегрировать новые роутеры в сеть I2P следующим образом:

  • Обеспечение первоначального обнаружения узлов: Новые роутеры получают начальный набор сетевых узлов для подключения
  • Восстановление bootstrap: Помощь роутерам, испытывающим трудности с поддержанием соединений
  • Безопасное распространение: Процесс reseeding шифруется и цифровым образом подписывается для обеспечения безопасности сети

Когда новый I2P router запускается впервые (или потерял все свои пиринговые соединения), он обращается к reseed-серверам для загрузки начального набора информации о роутерах. Это позволяет новому router начать построение собственной netDb (базы данных сети) и установление tunnel.

Предварительные требования

Перед началом работы вам понадобится:

  • Linux-сервер (рекомендуется Debian/Ubuntu) с правами root
  • Доменное имя, указывающее на ваш сервер
  • Минимум 1 ГБ оперативной памяти и 10 ГБ дискового пространства
  • Работающий I2P router на сервере для заполнения network database
  • Базовые знания системного администрирования Linux

Подготовка сервера

Step 1: Update System and Install Dependencies

Сначала обновите вашу систему и установите необходимые пакеты:

sudo apt update && sudo apt upgrade -y && sudo apt-get install golang-go git make docker.io docker-compose -y

Это устанавливает: - golang-go: среда выполнения языка программирования Go - git: система контроля версий - make: инструмент автоматизации сборки - docker.io & docker-compose: контейнерная платформа для запуска Nginx Proxy Manager

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

Step 2: Clone and Build Reseed Tools

Клонируйте репозиторий reseed-tools и соберите приложение:

cd /home/i2p
git clone https://i2pgit.org/idk/reseed-tools
cd reseed-tools
make build
sudo make install

Пакет reseed-tools предоставляет основной функционал для запуска reseed-сервера. Он обрабатывает: - Сбор информации о router из вашей локальной базы данных сети - Упаковку информации router в подписанные SU3-файлы - Предоставление этих файлов через HTTPS

Клонирование репозитория reseed-tools

Step 3: Generate SSL Certificate

Сгенерируйте SSL-сертификат и приватный ключ вашего reseed-сервера:

su - i2p -c 'reseed-tools reseed --signer=admin@stormycloud.org --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy'

Важные параметры: - --signer: Ваш адрес электронной почты (замените admin@stormycloud.org на свой собственный) - --netdb: Путь к сетевой базе данных вашего I2P router - --port: Внутренний порт (рекомендуется 8443) - --ip: Привязка к localhost (мы будем использовать reverse proxy для публичного доступа) - --trustProxy: Доверять заголовкам X-Forwarded-For от reverse proxy

Команда сгенерирует: - Приватный ключ для подписи SU3-файлов - SSL-сертификат для безопасных HTTPS-соединений

Генерация SSL-сертификата

Шаг 1: Обновление системы и установка зависимостей

Критически важно: Создайте безопасную резервную копию сгенерированных ключей, расположенных в /home/i2p/.reseed/:

sudo tar -czf reseed-keys-backup.tar.gz /home/i2p/.reseed/

Храните эту резервную копию в безопасном зашифрованном месте с ограниченным доступом. Эти ключи необходимы для работы вашего reseed-сервера и должны быть тщательно защищены.

Configuring the Service

Шаг 2: Клонирование и сборка инструментов Reseed

Создайте systemd service для автоматического запуска reseed-сервера:

sudo tee /etc/systemd/system/reseed.service <<EOF
[Unit]
Description=Reseed Service
After=network.target

[Service]
User=i2p
WorkingDirectory=/home/i2p
ExecStart=/bin/bash -c 'reseed-tools reseed --signer=admin@stormycloud.org --netdb=/home/i2p/.i2p/netDb --port=8443 --ip=127.0.0.1 --trustProxy'
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

Не забудьте заменить admin@stormycloud.org на ваш собственный адрес электронной почты.

Теперь включите и запустите службу:

sudo systemctl daemon-reload
sudo systemctl enable reseed
sudo systemctl start reseed

Проверьте, что сервис запущен:

sudo systemctl status reseed

Проверка статуса сервиса reseed

Шаг 3: Генерация SSL-сертификата

Для оптимальной производительности вы можете периодически перезапускать службу reseed для обновления информации о роутерах:

sudo crontab -e

Добавьте эту строку для перезапуска сервиса каждые 3 часа:

0 */3 * * * systemctl restart reseed

Setting Up Reverse Proxy

Reseed-сервер работает на localhost:8443 и требует обратный прокси-сервер для обработки публичного HTTPS-трафика. Мы рекомендуем Nginx Proxy Manager за простоту использования.

Шаг 4: Резервное копирование ключей

Развертывание Nginx Proxy Manager с использованием Docker:

docker run -d \
--name nginx-proxy-manager \
-p 80:80 \
-p 81:81 \
-p 443:443 \
-v $(pwd)/data:/data \
-v $(pwd)/letsencrypt:/etc/letsencrypt \
--restart unless-stopped \
jc21/nginx-proxy-manager:latest

Это открывает: - Порт 80: HTTP-трафик - Порт 81: Интерфейс администратора - Порт 443: HTTPS-трафик

Configure Proxy Manager

  1. Откройте интерфейс администратора по адресу http://your-server-ip:81

  2. Войдите, используя учетные данные по умолчанию:

Важно: Измените эти учетные данные сразу после первого входа в систему!

Вход в Nginx Proxy Manager

  1. Перейдите в раздел Proxy Hosts и нажмите Add Proxy Host

Добавление прокси-хоста

  1. Настройте proxy host:
    • Domain Name: Ваш домен reseed-сервера (например, reseed.example.com)
    • Scheme: https
    • Forward Hostname / IP: 127.0.0.1
    • Forward Port: 8443
    • Включите Cache Assets
    • Включите Block Common Exploits
    • Включите Websockets Support

Настройка прокси-хоста

  1. На вкладке SSL:
    • Выберите Request a new SSL Certificate (Let’s Encrypt)
    • Включите Force SSL
    • Включите HTTP/2 Support
    • Примите условия использования Let’s Encrypt

SSL certificate configuration

  1. Нажмите Сохранить

Ваш reseed сервер теперь должен быть доступен по адресу https://reseed.example.com

Успешная конфигурация reseed-сервера

Registering Your Reseed Server

После того как ваш reseed-сервер заработает, свяжитесь с разработчиками I2P, чтобы добавить его в официальный список reseed-серверов.

Шаг 5: Создание службы Systemd

Напишите на email zzz (ведущему разработчику I2P) следующую информацию:

Шаг 6: Опционально - Настройка периодических перезапусков

Укажите в своем письме:

Verification

Разработчики I2P проверят, что ваш reseed-сервер: - Правильно настроен и раздаёт информацию о роутерах - Использует действительные SSL-сертификаты - Предоставляет корректно подписанные SU3-файлы - Доступен и отвечает на запросы

  1. URL сервера reseed: Полный HTTPS URL (например, https://reseed.example.com)
  2. Публичный reseed сертификат: Расположен в /home/i2p/.reseed/ (приложите файл .crt)
  3. Контактный email: Предпочтительный способ связи для уведомлений об обслуживании сервера
  4. Местоположение сервера: Опционально, но полезно (страна/регион)
  5. Ожидаемое время работы: Ваше обязательство по поддержанию работы сервера

Установка Nginx Proxy Manager

После одобрения ваш reseed-сервер будет добавлен в список, распространяемый вместе с I2P-роутерами, помогая новым пользователям присоединиться к сети!

Мониторинг вашего reseed-сервиса:

Monitoring and Maintenance

Настройка Proxy Manager

Следите за системными ресурсами:

sudo systemctl status reseed
sudo journalctl -u reseed -f

Update Reseed Tools

Периодически обновляйте reseed-tools, чтобы получать последние улучшения:

htop
df -h

Контактная информация

Если используется Let’s Encrypt через Nginx Proxy Manager, сертификаты будут обновляться автоматически. Проверьте, что обновление работает:

cd /home/i2p/reseed-tools
git pull
make build
sudo make install
sudo systemctl restart reseed

Необходимая информация

Проверьте логи на наличие ошибок:

docker logs nginx-proxy-manager | grep -i certificate

Настройка сервиса

Проверка

Распространённые проблемы: - I2P router не запущен или база данных сети пуста - Порт 8443 уже используется - Проблемы с правами доступа к директории /home/i2p/.reseed/

sudo journalctl -u reseed -n 50

Убедитесь, что ваш I2P router запущен и заполнил свою netDb:

SSL Certificate Errors

Вы должны увидеть множество файлов .dat. Если папка пуста, подождите, пока ваш I2P router обнаружит peers.

ls -lh /home/i2p/.i2p/netDb/

Проверьте, что ваши сертификаты действительны:

Проверка состояния сервиса

Проверьте: - DNS-записи правильно указывают на ваш сервер - Файрвол разрешает порты 80 и 443 - Nginx Proxy Manager запущен: docker ps

openssl s_client -connect reseed.example.com:443 -servername reseed.example.com

Что такое I2P?

Запуская reseed-сервер, вы предоставляете критически важную инфраструктуру для сети I2P. Спасибо за ваш вклад в более приватный и децентрализованный интернет!

Security Considerations

  • Храните приватные ключи в безопасности: Никогда не передавайте и не раскрывайте содержимое /home/i2p/.reseed/
  • Регулярные обновления: Поддерживайте системные пакеты, Docker и reseed-tools в актуальном состоянии
  • Мониторинг логов: Следите за подозрительными паттернами доступа
  • Ограничение частоты запросов: Рассмотрите возможность внедрения rate limiting для предотвращения злоупотреблений
  • Правила файрвола: Открывайте только необходимые порты (80, 443, 81 для администрирования)
  • Интерфейс администратора: Ограничьте доступ к административному интерфейсу Nginx Proxy Manager (порт 81) только доверенными IP-адресами

Contributing to the Network

Для вопросов или помощи обращайтесь в сообщество I2P: - Форум: i2pforum.net - IRC/Reddit: #i2p в различных сетях - Разработка: i2pgit.org

I2P - это анонимная оверлейная сеть, которая позволяет приложениям безопасно и анонимно отправлять друг другу сообщения. I2P обеспечивает конфиденциальность, анонимность и защиту от цензуры.

I2P разработан для предоставления анонимных сервисов внутри сети (веб-сайты, чаты, файлообмен), в то время как другие сети могут больше ориентироваться на анонимный выход в открытый интернет. I2P использует технологию garlic encryption для защиты сообщений.

I2P предоставляет сильную анонимность при правильном использовании. Однако никакая система не является полностью безопасной. Важно следовать рекомендациям по безопасности и понимать ограничения системы.

Was this page helpful?