ITСooky

IT-рецепты съедобные и не очень!

i2p на шлюзе FreeBSD версия 2014, с переносом со старого сервера

дата 05.10.2014

Стал я тут ставит i2p на новый сервер, так как старый утратил доверие, вообще задача стоит такая перенести i2p со вей датой со старого на новый. Так вот стал ставить, думал подредактирую старую статью, конечно же что-то изменилось. Но изменилось НАСТОЛЬКО что надо новую статью писать.

i2p

Во первых, поздравляю нас i2p больше нет в портах FreeBSD. Кстати это хорошо, ставим теперь через жаву это должно упростить процесс!

i2p нужно точное время, хорошо если стоит ntp но можно и руками поставить!
date 201410051629

Нужна Java ставим
Идем в
cd /usr/ports/java/openjdk6-jre
make
make install

Выбираем все по умолчанию
Теперь ставим i2p
cd /usr/ports/net-p2p/i2p
make

FreeBSD отказывается ставит, говорит версия старая дырявая — то что старая однозначно!!! Но новой то нет в портах, почему-то ставим на свой страх и риск и сразу же с запуском i2p его обновляем, он вообще то сам обновляется по себе.

make DISABLE_VULNERABILITIES=yes

Ни хрена, теперь на лицензию какую-то ругается WHAT!!!

…короче из портов i2p больше не ставится!

Идем на сайт
И качаем для FreeBSd установщик

cd /tmp
fetch http://download.i2p2.de/releases/0.9.15/i2pinstall_0.9.15.jar

и запускаем
java -jar i2pinstall_0.9.15.jar -console
тут надо будет указать только куда ставить, на экране будет спрашивать

Идем в папку куда установили i2p
cd /usr/local/i2p
vi i2prouter

Находим и доводим до вида сторку

RUN_AS_USER=i2p

И в двух местах, хотя мне кажется достаточно в последнем из местов исправить

I2P_CONFIG_DIR="/home/i2p/.i2p"

Пока не представляю как это теперь будет работать но добавляем оного юзера

adduser
Имя: i2p
C каким нибудь легко трудно запоминающимся паролем, его можно сразу забыть он не потребуется!

Что интересно, и я не знаю с чем это связано (может потому что устанавливал с диска 9.2 а по сети обновлялся до 9.3 — не доверяю я таком обновлению всегда какаято фигня) так вот см первого раза пользователь не добавится выдаст ошибку.
Надо пойти в
vipw
удалить там строку этого пользователя
и добавить еще раз теперь сработает
!!!

Заходим под i2p
su i2p
и запускаем
sh /usr/local/i2p/i2prouter start
и тут же его останавливаем
sh /usr/local/i2p/i2prouter stop
сделали мы это… чтобы в папке /home/i2p/.i2p/ появились папки рабочего i2p, и соответственно в этой папке надо править настройки а не в /usr/local/i2p/ что казалось бы логично…
cd /home/i2p/.i2p/
тут редактируем
vi clients.config
в строках где есть порт 7657 меняем IP 127.0.0.1 на IP нашего сервера

clientApp.0.args=7657 ::1,192.168.1.100 ./webapps/

и

clientApp.4.args=http://192.168.1.100:7657/

Также ставим пароль на вебинтерфейс пишем в
vi /home/i2p/.i2p/router.config

добавляем строку

consolePassword=parolll

пользователь admin(не меняется) пароль parolll.

теперь все еще под пользователем i2p
запускаем
sh /usr/local/i2p/i2prouter start
И пытаемся зайти на, откроется не сразу
http://192.168.1.100:7657/

Таддааааам
I2P_Router_Console_-_home_-_2014-09-28_08.42.50

Теперь надо подумать как это запускать на загрузке, скриптов то никаких нам в rc.d установщик не кинул… но у меня было, от старого, чуть исправив

#!/bin/sh
#
# $FreeBSD: ports/net-p2p/i2p/files/i2p.sh.in,v 1.5 2011/05/15 02:49:13 dougb Exp $
#
# Under a BSDL license. Copyright 2005. Mario S F Ferreira lioux at FreeBSD.org
# PROVIDE: i2p
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following lines to /etc/rc.conf to enable i2p:
#
# i2p_enable="YES"
# i2p_user

. /etc/rc.subr

name="i2p"
rcvar=`set_rcvar`
command="/bin/sh /home/i2p/i2p/i2prouter"
extra_commands="install uninstall update"

i2p_check_vars()
{
  if [ -z "${i2p_user}" ]; then
    i2p_user=$(whoami)
  fi

  if [ "x${i2p_user}" = "xroot" ]; then
    err 1 "You have to set i2p_user to a non-root user for security reasons"
  fi
}

start_cmd="start_cmd"
stop_cmd="stop_cmd"
status_cmd="status_cmd"
restart_cmd="restart_cmd"
install_cmd="install_cmd"
uninstall_cmd="uninstall_cmd"
update_cmd="update_cmd"

generic_cmd()/phpinfo.php
{
  i2p_check_vars
  su -l ${i2p_user} -c "${command} ${1}"
}

start_cmd()
{
  generic_cmd start
}

stop_cmd()
{
  generic_cmd stop
}

status_cmd()
{
  generic_cmd status
}

restart_cmd()
{
  generic_cmd restart
}cd /usr/ports/misc/compat6x

chown -R i2p:i2p /home/i2p
 
install_cmd()
{
  generic_cmd install
}
 
uninstall_cmd()
{
  generic_cmd uninstall
}
 
update_cmd()
{
  generic_cmd update
}
 
load_rc_config "${name}"
: ${i2p_enable="NO"}
: ${i2p_user=""}
  
run_rc_command "$1"

restart_cmd()

ТУТ НАДО СКАЗАТЬ!
У меня один раз скрипт сработал странно на загрузке! Он думал что на процессе запушен i2p, а там был senmail. Пришлось руками убивать этот процесс и запускать!

Вставляем это в файл
vi /etc/rc.d/i2p

Делаем его исполняемым
chmod +x /etc/rc.d/i2p
chmod 755 /etc/rc.d/i2p

Вставляем
vi /etc/rc.conf
строки

i2p_enable="YES"
i2p_user="i2p"

Соьственно всё с установкой! Дальше надо настраивать также как это было далекой осенью 2011 года!
Вот тут описаноwww.itcooky.com/?p=584

А я попробую перенести свой старый i2p на новый сервер — мне важно перенести старое имя и всё, сайт у меня снаружи болтается на nginx его я руками буду переносить!

Сейчас через пару недель попыток выясняется что перенести ооочень просто! Даже не надо ничего ставить!

Ну только Java, как описано выше! И i2p еще попросить вот это устноавить:
cd /usr/ports/misc/compat6x
make
install

А дале главное чтобы у нас был тот же юзер что на старом сервере — из-за путей!

Копируем две папки, со старого в тоже самое место
это установочная
/home/i2p/i2p
и рабочая
/home/i2p/.i2p

Прочмодиваем их
chown -R i2p:i2p /home/i2p/*

Да и всё! Заходим под юзером i2p запускаем — и работает!!!

  • cyber

    Вы видимо порты ну оооочень давно не обновляли =)
    i2p уже давно переехал в security — http://www.freshports.org/security/i2p/
    Если бы Вы устанавливали i2p из актуальных портов, то, вероятно, заметили бы, что в зависимостях у него есть openjdk7 (в портах есть даже openjdk8!), также установится скрипт запуска в /usr/local/etc/rc.d, compat уже не нужен и т.д.

  • AlexandrBu

    Обновлял portsnap fetch extract && portsnap fetch update

  • cyber

    Покажите, пожалуйста, вывод команды uname -a

  • AlexandrBu

    FreeBSD server 9.3-RELEASE-p2 FreeBSD 9.3-RELEASE-p2 #0: Mon Sep 15 16:23:12 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386

  • cyber

    Дайте, пожалуйста, вывод команды
    # cd /usr/ports
    # make search name=’i2p’
    У меня так:
    root@router:/usr/ports # make search name=’i2p’
    Port: i2p-0.9.14.1
    Path: /usr/ports/security/i2p
    Info: Anonymizing network
    Maint: cs@FreeBSD.org
    B-deps: alsa-lib-1.0.28 apache-ant-1.9.4 dejavu-2.34_4 expat-2.1.0_1 fixesproto-5.0 fontconfig-2.11.0_3,1 freetype2-2.5.3_2 gettext-0.18.3.1_1 gmp-5.1.3_2 indexinfo-0.2 inputproto-2.3.1 java-zoneinfo-2014.i javavmwrapper-2.5 kbproto-1.0.6 libICE-1.0.9,1 libSM-1.2.2_2,1 libX11-1.6.2_2,1 libXau-1.0.8_2 libXdmcp-1.1.1_2 libXext-1.3.3,1 libXfixes-5.0.1_2 libXi-1.7.4,1 libXrender-0.9.8_2 libXt-1.1.4_2,1 libXtst-1.2.2_2 libiconv-1.14_4 libpthread-stubs-0.3_6 libxcb-1.11 libxml2-2.9.2_2 openjdk-7.71.14,1 recordproto-1.14.2 renderproto-0.11.1 xextproto-7.3.0 xproto-7.0.26
    R-deps: gettext-0.18.3.1_1 indexinfo-0.2 libiconv-1.14_4 unzip-6.0_2
    WWW: http://geti2p.net/

  • AlexandrBu

    аналогично