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 запускаем — и работает!!!