Бюджетный SSH тоннель в подводный мир I2P для начинающих оленеводов


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

Введение:
Кто бы что ни говорил, но ледовая обстановка в отечественном сегменте становится все более тяжелой. За нас взялись всерьез, обкладывают флажками, взрывают ровные тропинки натоптанные по бескрайним ледяным полям, вспарывают ледоколами привычные пути доставки провианта и под предлогом борьбы с браконьерами, расставляют капканы за каждым вторым торосом. Все идет к тому что проход с одной льдины на другую скоро будет происходить только через КПП с автоматчиками, по предварительной заявке в письменном виде и после предъявления паспорта и мандата из рыбнадзора. И только непослушнозаконные браконьеры будут посмеиваться в лисьи воротники над жалкими попытками геологических партий с большой земли испортить им жизнь.


Часть 1:
Многие боялись этого, а кто-то ждал и готовился. Некоторые смирились, некоторые принесли жертвы языческим богам, а некоторые оборудовали запасные командные пункты на списанных подводных лодках и наладили аккустическую связь с другими такими же лодками в пока неподконтрольных геологам и рыбнадзору подлёдных глубинах. А обычным охотникам и оленеводам для связи с подводным миром предлагают крутить лунки в паковых льдах, забрасывать в них удочки, запасаться кофием покрепче и с помощью специальной насадки на ушанке преобразовывать вибрации лески в исходную информацию. Но с одной стороны лунка сама по себе является серьезным демаскирующим фактором, с другой не у каждого хватит сил прокрутить лунку и постоянно таскать с собой коловорот, а с третьей насадку для ушанки не особо приспособишь на роботизированный спиннинг, не говоря уже про элитные полированные яблоневые удочки. Поэтому некоторые изобретают более экзотические варианты типа постоянно погруженного под воду медного тазика, который будет транслировать колебания лески минуя ушанки прямо в ушко полярной лисички, на хромированные детали спиннинга или на африканский рисунок рукоятки пижонской удочки. В этой ситуации можно будет не сидеть возле лунки, а коловорот оставить в погруженном под лед тазике. Теоретически для этих целей можно взять бесплатную тару со склада вторцветмета в Анадыре, но надежность получится ниже среднего, морская вода будет постоянно капать на унты и аптайм системы станет непрогнозируемым. Так что я бы посоветовал для решения этой задачи таки замахнуться на новый медный тазик от купцов с обратной стороны беренгового пролива или хотя бы на жестяной за $9.99 год. Вариантов от 9 до 13 долларов в год на данный момент как минимум 6. В поисковом каталоге торговых лабазов жестяные тазики проходят по графе OpenVZ VPS (OpenVZ Virtual Private Servers). На объем тары и удобство ручек можно особо не смотреть — по своей природе информация из подводного мира будет капать по капельке и много унести с собой все равно не получится. Поэтому рассмотрим особенности погружения в воду и сцепки тазика со стационарным компьютером и смартфоном на примере самого дешевого варианта вот отсюда. Для этого нам понадобится совсем немного изоленты, 18 саморезов, plink.exe, PuTTY и старый компас. А для максимального упрощения, сыграем в неуловимого Джо и все операции произведем от рута.

Часть2:
В сопроводительном письме после оплаты нам вышлют IP адрес, Username и Root pass для доступа к консоли. Виртуальная машина обычно абсолютно голая и все придется делать с нуля. соединяемся с хостом через PuTTY и:
1. пробуем выяснить что за дистрибутив нам подсунули
lsb_release -a

и выясняем что это Debian
2. Обновим репозитории
apt-get update

У меня есть дурацкая привычка первым делом ставить mc из-за его редактора
apt-get install mc

и сразу менять порт ssh на стандартно пропускаемый везде почтовый 110-й
mcedit /etc/ssh/sshd_config

Port 110
F2, F10
но эти шаги вполне можно пропустить. Если вы все-таки решили изменить порт, нужно рестартануть SSH
/etc/init.d/ssh restart

и переконнектиться уже по новому порту

3. установим поддержку I2P
mcedit /etc/apt/sources.list

добавляем
deb http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main
deb-src http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu natty main 
и сохраняем
Обновим список и установим пакеты
apt-get update

apt-get install i2p

Стартуем
dpkg-reconfigure -plow i2p

не забываем выделить 32 мегабайта памяти

В результате у нас на хосте появился I2P прокси, который можно туннелировать через SSH с шифрованием простым .bat файлом рядом с plink.exe


echo y | plink -ssh -2 -P 110 -C -N -l root -pw пароль -L 2222:127.0.0.1:4444 199.255.255.255

где 199.255.255.255 IP адрес нашего тазика

В этом примере браузер нужно подключать к прокси 127.0.0.1:2222
Поскольку в качестве outproxy используется тормозной шлюз по умолчанию false.i2p, смотреть обычные странички через эту конструкцию практически невозможно. Поэтому лучше использовать .pac файл автоматической конфигурации прокси с содержимым:


function FindProxyForURL(url, host) {
	if (dnsDomainIs(host, ".i2p")) {
		return "PROXY 127.0.0.1:2222";
	} else {
		return "DIRECT";
	}
}

Без добавления подписок, многие ресурсы в I2P не захотят открываться с первого раза. Для обхода этого используем ссылку на jump service на страничке с ошибкой



Для использования с мобильного телефона, придется отказаться от шифрования трафика и SSH тоннеля, убрать ограничение для доступа только с хоста 127.0.0.1 в настройках запущенного на удаленном сервере I2P-HTTP прокси (поставить там 0.0.0.0) и подключаться через прокси 199.255.255.255:4444
Еще не помешает отключить использование нашего сервера в качестве роутера в остальной I2P сети и написать какой-нибудь красивый интерфейс к ptlink на каком-нибудь autoit. Кроме того удаленный хост можно использовать в качестве обычного SOCKS5 или HTTPS прокси с шифрованием трафика для обхода блокировок. Если кому-нибудь интересны очевидные подробности, то будет продолжение.

PS Почему-то поиском не нашлось, но оказывается уже было на эту же тему и более вдумчиво
habrahabr.ru/post/207208
Виноват за повтор.
Share post

Comments 23

    +2
    cat /proc/version для определения дистрибутива?

    Linux version 3.9.3-x86-linode52 (maker@build) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 SMP Mon May 20 09:32:28 EDT 2013

    Какой у меня дистрибутив?
    А вот и не угадали.

    lsb_release -a
    Для определения дистрибутива, если вдруг дистрибутив кривой и нет lsb_release, то
    ls /etc/*_version
    можно попробовать.
    А из /proc/version вы только версию ядра узнаете, да чем и когда оно собрано.
      0
      В более-менее новых может быть еще /etc/os-release.
        0
        Хм, новых...Red Hat Linux 5.1 не хотите?
        Не путать с Red Hat Enterprise Linux.
        0
        cat /etc/*release*
          0
          Не скажу, что панацея, но на всех доселе встречаемых мною линуксах работало такое определение ОС:

          cat /etc/issue
          +1
          Для использования с мобильного телефона, придется отказаться от шифрования трафика ...

          А что мешает на том же тазике поднять OpenVPN и ходить через него?
            +1
            Спасибо за lsb_release -a
            Я на том хосте попробовал несколько способов, знакомых такому чайнику как я, но ни один не сработал — вот и остановился на приблизительном cat /proc/version :) С вашего позволения подправлю текст.
            А насчет VPN, то оно еще далеко не на каждом дешевом хосте встанет, да и настроить посложнее на порядок…
              +6
              Почему-то вспомнился журнал Хакер. Бывало там проскакивали статьи, написанные в таком стиле.

              А тазик сейчас можно взять намного дешевле, например за $5 на www.digitalocean.com/pricing с очень недурными характеристиками.
                0
                так там же 5 в месяц? а тут 10 в год :)
                  0
                  А, вот оно что :). Тогда действительно очень дешево, невнимательно посмотрел.
                  +1
                  да, 5 в месяц, и 1Тб трафика, против 10 в год с 250Гб.
                    0
                    Для эгоистичного варианта подойдет и 250 Гб в год. Но сеть живет за счет транзитного траффика.
                    +1
                    Использование такого .pac файла очень опасно, если вы действительно хотите быть анонимным. Вы можете перейти на страницу i2p, на которой есть картинки или еще что-то из обычного интернета и ваш браузер спокойно спалит ваш реальный адрес. Также для посещения i2p страничек строго рекомендуется использовать расширения NoScript, NoFlash.
                      0
                      Для посещения i2p страничек рекомендуется использовать отдельный firefox с единственным прокси на 127.0.0.1
                        0
                        Для посещения i2p страничек рекомендуется использовать две виртуалки. На одной два сетевых интерфейса. Один в интернет, другой — на вторую виртуалку. На неё ставится ip2 прокси, который доступен для второй виртуалки. На второй виртуалке — браузер. И там в принципе нет никакого интернета, кроме i2p. Даже днсов нет.
                          0
                          А чем это лучше одной виртуалки, которая смотрит в интернет и в i2p. И есть два браузера, один для обычного интернета, а другой для i2p с прокси (типа 192.168.1.5:4444)?
                            0
                            Тем, что софт на внутренней виртуалке вообще ничего не знает про «кто я» и «где я». Ни ОСь, ни лиса, никто. Даже если найдутся какие-то внезапные каналы утечки информации — они останутся бесполезными просто из-за отсутствия какой-либо информации.
                            0
                            Я бы поспорил о целесообразности использования двух виртуалок, но, думаю, не стоит. Каждый определяет границы своей безопасности сам.
                              0
                              Своей паранойи, имели ввиду? :-D

                              P.S.: Хотя, я говорю это юзеру I2P, что это я, собственно?
                        +2
                        Совершенно упоротое и прекрасно написаное вступление :)
                          0
                          dpkg-reconfigure -plow i2p?! SRSLY?
                            +2
                            Судя по первой части, вопрос не только в рыбнадзоре, но и минсельхозе (выращивание сельскохозяйственных культур) и минкульте (игра на духовых инструментах) автор сдай поставщиков :)
                            Статья очень!, но!

                            Все дела должны начинаться с приобретения симкарты в митино/совке, приобретения телефона, оформления киви (все это с должными мерами предосторожности, без личных телефонов, и в местах повышенного скопления народа) и так далее. Все конечно зависит от задач, но если есть желание иметь правильный канал, это надо продумывать с самого начала.
                            И лучше иметь это все не в одном экземпляре, не так дорого это все стоит.
                            А мандаты из рыбнадзора не дремлют, пока есть возможность нужно долбить сверлить лунки.
                              0
                              Я совсем запутался во всех этих организациях, РыбНадзор — это такие ЛГБИ?

                            Only users with full accounts can post comments. Log in, please.