LINUX.ORG.RU
ФорумAdmin

IPv6 :: Соединяем 2 компьютера за NAT по SSH


1

1

Предположим, у нас есть 2 компьютера, подключенных к интернету. И мы хотим наладить связь между ними. Например получить доступ к SSH или VNC. Задача достаточно простая, если оба компьютера расположены в одной подсети или же просто имеют прямой IP адрес. А что делать, если оба компьютера находятся за NAT?

В этом случае к нам на помощь приходит IPv6. С помощью тоннельного брокера мы получаем белые IPv6 для обоих компьютеров. Теперь прямое соединение становится возможным. Однако, остается последняя проблема, которую призван решить этот проект - динамические адреса. Каждый раз при загрузке компьютера наш IPv6 меняется. Что бы решить эту проблему, нам нужен сервер, имеющий внешний IP адрес и способный сохранять информацию о нашем динамическом (но прямом!) IPv6.

Для этих целей я создал этот небольшой проект: grio.ru/ipv6/

Достаточно открыть страницу проекта с новыми параметрами, например так:

$curl http://www.grio.ru/ipv6/save.php?email=vasia@pupkin.ru&name=Moy_Laptop&pass=parol&ip=fe80::ffff:ffff:ffff

Теперь ваш новый айпи будет сохранен в базе проекта и доступен через поиск. Можно автоматизировать процесс сохранения IPv6 адреса, добавив задание в СRON или приурочив к загрузке системы. В ОС Линукс я использую вот такой скрипт.

Для его корректной работы необходимо установить два пакета.

1. Miredo, содержащий протокол инкапсуляции IPv6 в IPv4 UDP - Teredo.

2. Curl - для обновления информации о нашем IP на сервере проекта.

Устанавливаются эти пакеты предельно просто. В доп.настройках они, в принципе, не нуждаются. За одно можно установить и SSH-сервер. Выполняем в терминале:

$sudo aptitude install miredo curl ssh

Скачиваем скрипт и сохраняем его в ~/scripts/, например. Из консоли:

$sudo crontab -e -u имя_пользователя

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

55 */2 * * * ~/scripts/ipv6save.sh > /dev/null  2>&1
# Скрипт будет выполняться каждые 2 часа, начиная с 0:55

Теперь заходим на сайт grio.ru/ipv6/ и регистрируем имя компьютера.

Проверяем:

$~/scripts/ipv6save.sh

Должно выдать «Ok». Затем, когда вам потребуется узнать IP адрес вашего компьютера, достаточно будет воспользоваться строкой поиска на сайте проекта или же сформировать свой запрос для страницы load.php

Всё готово? У обоих компьютеров есть IPv6 адрес? Соединяем их по SSH:

$ssh -6 'vashlogin@2001:0:53aa:64c:2c38:2aa1:3c9d:4675'

Ура! Мы в удаленной консоле за двумя(а может быть и пятью!) NAT.

P.S. Проект grio.ru/ipv6/ опенсорсный - можете подключиться к разработке или использовать в своих целях! Буду рад в любом случае :)

---

br,


Ответ на: комментарий от grio

Повторяю еще раз, для непонятливых - зачем мне DynDNS для СТАТИЧЕСКОГО IPv6-адреса(при ДИНАМИЧЕСКОМ IPv4). Просто DNS - да, нужен, запомнить некоторые IPv6-адреса - это ж охренеть можно. Но ДИНАМИЧЕСКИЙ DNS зачем?

Pinkbyte ★★★★★
()
Ответ на: комментарий от grio

То есть по сути ответить нечего?

Расскажите, как и где хранятся адреса? Обычная mysql база, phpmyadmin к которой торчит на grio.ru?

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Неужели настолько лень посмотреть исходник проекта? Там три с половиной файла. База SQLITE.

grio
() автор топика
Ответ на: комментарий от grio

Неужели настолько лень посмотреть исходник проекта?

Делать мне больше нечего, вы представляете проект, вы и отвечайте на вопросы.

IP хранятся в plain text?

adriano32 ★★★
()
Ответ на: комментарий от grio

ок, если так желаете, то слив защитан. Я со своими вопросами от вас отстаю, благо любой прочитавший данную тему и посмотревший пару статей на википедии сможет воочию убедиться в вашем мастерстве велосипедостроения

Pinkbyte ★★★★★
()
Ответ на: комментарий от adriano32

Я посмотрел исходники. Ты, не поверишь, но - да! Параноикам можно не беспокоиться и сразу одевать шапочку из фольги, так как автор проекта хранит все в базе в чистом виде(включая пароли).

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

к слову, так можно ловить хомячков, пользующихся одинаковыми паролями и воровать их мыльники. Лет 10 назад автор могут бы нехило подняться в звании кулхацкера, если б захотел конечно ;)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

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

Почитай выше мой способ, тоже велосипед, но по крайней мере без откровенных таких дыр.

Марина! Я присоединяюсь к тебе!...

я за бан ТС с первого поста в этом треде если что

adriano32 ★★★
()
Ответ на: комментарий от Pinkbyte

Какая разница, как я храню пароли, если у тебя нет доступа к базе?

Если это единственный твой аргумент, что бы не пользоваться сервисом - запили MD5. Обещаю, я включу твой коммит в проект.

так можно ловить хомячков, пользующихся одинаковыми паролями и воровать их мыльники.

Если у человека есть нож, то это совершенно не значит, что он маньяк-убийца.

grio
() автор топика
Ответ на: комментарий от grio

Какая разница, как я храню пароли, если у тебя нет доступа к базе?

Спрячь phpmyadmin сперва, чтоб его версию первому встречному видно не было из браузера и версию обнови. А то найдётся vulnerability с exploit'oм на него и ты уже не будешь так крут, как сейчас.

Посолить не забудь, когда реализовывать будешь.

adriano32 ★★★
()

Оо! Первая хакерская атака на базу )))

"-1+UNION+SELECT+null,null,null,null"

Нет, парни, так просто PDO не пробьешь. Но попытка засчитана. ;)

grio
() автор топика
Ответ на: комментарий от grio

ЛОЛ, нашёл чем хвастаться. Ты так и будешь 3306-ой порт наружу держать?

adriano32 ★★★
()
Ответ на: комментарий от Pinkbyte

Кафе, поезда/такси с вайфаем... да мало ли. Не будет же везде один и тот же ipv6-адрес? Вернее, сейчас будет, пока туннели через ipv4 есть. Когда будут ipv6-only-сети, ipv6-DynDNS вполне может пригодиться

Slavaz ★★★★★
()
Ответ на: комментарий от Slavaz

>Когда будут ipv6-only-сети, ipv6-DynDNS вполне может пригодиться

полностью согласен. Но я думаю к тому времени существующие бесплатные сервисы адаптируются к ipv6. Пока же ipv6 в большинстве своем - удел гиков и экспериментальных исследовательских сетей, к моему большому сожалению

Pinkbyte ★★★★★
()
Ответ на: комментарий от grio

>Какая разница, как я храню пароли, если у тебя нет доступа к базе?

ключевое слово «нет доступа к базе»? Я не ослышался? Даже сраный phpBB с кучей постоянно закрываемых дыр и тот держит пароли в базе в зашифрованном виде! Теперь про «запили MD5!» - у тебя порочный круг получается. Я почитал твой код... Люди не будут пользоваться твоей системой, пока она не будет достаточно безопасна(и шифрование паролей тут - лишь один из факторов, который просто бросается в глаза каждому и настораживает), тогда они подтянутся и реализуют всякие НЕОБЯЗАТЕЛЬНЫЕ плюшки. Ты же говоришь - «вот тут фигня, может быть перспективная, а может и нет, но я даже MD5 сам не осилил запилить, так что вы попользуйтесь ей, поделиться со мной паролями^W^W^W^W и запилите все что нужно». Ты уж прости, но такое могло сканать во времена Торвальдса, но не сейчас. По двум причинам: 1) я на код ядра 0.0.1 не смотрел конечно, но я думаю там поменьше говнокода, чем у тебя, уж извини; 2) сейчас проектов имеющих вес в виде надежности и безопасности, и могущих реализовать подобный функционал не так уж мало. Разумному человеку проще задонатить в такой проект на реализацию необходимого ему функционала(при условии что он ценит безопасность и готов в нее вкладывать свои деньги)

Единственный плюс у тебя - это открытые исходники. Тут к тебе претензий нет, все честно, что очень похвально. Но одной открытостью исходников и слегка наплевательским отношением к комьюнити(в лице меня и adriano32, к примеру) ты рискуешь собрать вокруг себя только законченных фанатиков, для которых открытый исходный код - это самоцель, не важно код чего открыт.

А теперь, позволь сказать, как я вижу решение проблемы:

1) переформулируй цель, для чего нужна твоя система. Скажем «поддержка постоянного DNS-имени в условиях сетей с динамическим IPv6(Teredo и т.д.)».
2) прислушивайся к голосу простых пользователей(не троллей. Я тебя не троллил ни разу, я честно пытался намекнуть на проблемы, описанные в этом и предыдущем пунктах), заведи где-нибудь фичреквест насчет MD5(или любого другого шифрования, без разницы). Это покажет, что ты о проблеме знаешь. Фраза - «сделай сам» хороша, но вот допустим придет незнакомый человек, глянет на проект, захочет внести вклад и даже не будет знать, а какие у проекта дальнейшие планы на развитие и какие ФИЧИ нужно сделать.

Фух... Что-то меня сегодня на большие тексты пробило, надо отдохнуть. Зато смог внятно и надеюсь ДОХОДЧИВО объяснить свою позицию...

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

>> Даже сраный phpBB

Что значит даже? phpBB это очень популярный движок с мировым именем.

даже MD5 сам не осилил запилить

Опять даже. МД5 я не стал пилить лишь по одной причине. Ящетаю, что это, на данный момент, абсолютно лишнее телодвижение. А вся «проблема безопасности» о которой ты говоришь - надумана на 101%. Переубедить меня в этом может только успешная хакерская атака. В результате которой, атакующий получит доступ к моему паролю, хранящемуся в «открытом» виде и передающемуся по «не защищенному» протоколу «не безопасным методом». Любые другие доводы - демагогия. Код открыт, все «дыры» видно - успехов.

но я думаю там поменьше говнокода, чем у тебя, уж извини;

Спасибо, за сравнение моего проекта с творчеством Торвальдса.

переформулируй цель

Согласен. Тоже подумал, что надо конкретизировать. Вчера еще поправил intro, а с утра сменил и заголовок. К слову, в коде тоже произошли изменения и доработан bash-скрипт.

прислушивайся к голосу простых пользователей

Я стараюсь. Ключевое слово «пользователей». Фич реквесты оставляйте пожалуйста на форуме проекта http://www.grio.ru/ipv6/punbb/. Кстати, один реквест уже реализован: http://forum.ubuntu.ru/index.php?topic=164613.0

ЗЫ

про слегка наплевательское отношение - это не так, мне важно ваше мнение, даже если оно выражено в слегка хамской манере.

grio
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.