Information Security
I2P
11 January 2014

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

From Sandbox

Всерьез читать данный текст бессмысленно. Он адресуется счастливым обладателям окошек различных версий, которых пугает даже необходимость установки 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
Виноват за повтор.

+37
37.5k 331
Comments 23
Top of the day