~AreEnn
~AreEnn_
~R4SAS
~acetone
~orignal
~villain
@onon
&N00B
+Xeha
GFW
Nikat
Opax
Trusishka
anontor2
b3t4f4c3
chch
duck
fidoid
grimreaper
guest7
ignisflu
iiii
karamba_i2p
not_bob_afk
not_human
osoznayka
poriori
profetikla
qend
r3med1tz
rc13
segfault
slfd
soos
spider
tahoe
teeth
tensor
un
vougel
weko
whothefuckami
tetrimer
Ломится кто-то довольно настойчиво:
tetrimer
NTCP2: RouterInfo verification failed in SessionConfirmed from 140.246.136.172:52663
tetrimer
Китаец по whois.
Vort
у меня весь лог этим заспамлен
Vort
IP другой, но суть та же
Vort
и это длится уже минимум полгода
GFW
<lost+skunk> Китайцы атакуют ш2з?
tetrimer
GFW: Не то, чтобы атакуют, но грузят зазря.
orignal
это значит подпись не неверная
orignal
а их RI
orignal
короче выдают себя за другого
Most2
15.<ju> Чем китайским чекистам полюбилась i2p?
Vort
"<~orignal> это значит подпись не неверная" по-моему там на одно сообщение несколько причин
Vort
чтобы точно понять, надо словить этот RI и рассмотреть получше
Vort
"<tetrimer> GFW: Не то, чтобы атакуют, но грузят зазря." и не то чтобы грузят. у меня таких сообщний штук 100 в час. так себе нагрузка
Vort
формально конечно нагрузка, но это явно не цель
tetrimer
Скорее - зондирование, или проверка на живость узла.
orignal
нет там разные
orignal
i2p::data::RouterInfo ri (buf->data () + 4, size - 1); // 1 byte block type + 2 bytes size + 1 byte flag
orignal
if (ri.IsUnreachable ())
orignal
{
orignal
LogPrint (eLogError, "NTCP2: RouterInfo verification failed in SessionConfirmed from ", GetRemoteEndpoint ());
orignal
да ты прав там любое кривое RI
orignal
но там должна быть ошибка в логе перед этим что именно
orignal
tetrimer посмотри что перед этим в логе
tetrimer
orignal: У меня логи не очень подробные.
orignal
ну там error должно быть
tetrimer
13:23:21@925/error - NTCP2: Wrong static key in SessionConfirmed
tetrimer
13:23:31@925/error - NTCP2: Wrong static key in SessionConfirmed
tetrimer
13:24:05@925/error - NTCP2: RouterInfo verification failed in SessionConfirmed from 122.225.88.250:51976
tetrimer
В ошибках NTCP2 - нет названия туннеля, в отличие от SSU2
tetrimer
13:25:14@472/error - SSU2: Wrong static key in SessionConfirmed from ZR1x
tetrimer
13:25:20@472/error - SSU2: Non zero packet number in SessionConfirmed
tetrimer
13:25:31@472/error - SSU2: Non zero packet number in SessionConfirmed
tetrimer
13:26:00@472/error - SSU2: RouterInfo in SessionConfirmed is from future for 11754 seconds
orignal
надо смотреть ошибки RouterInfo
nnm
Wrong static key
orignal
ну вот этот как раз попытка атаки
nnm
отаке онотелей!!
nnm
пыщ пыщ
orignal
так это старая атака
orignal
попытка забивать сеть левыми роутерами
onon
А SSU2 так и не починили
orignal
ну если дед не хочет упорно то что я сдеоаю?
orignal
приходится костыли городить
onon
Делаешь свою несовместимую реализацию
onon
Для i2pd
tetrimer
И процесс SSU2 жрет ресурсы: wcpu=8,51% i2pd-g2.57.0{SSU2}
onon
А с явой пусть NTCP2 коннктит
orignal
tetrimer а NTCP2 сколько жрет?
tetrimer
2.62%
tetrimer
До 3.6 изредка
orignal
ну и что не так?
tetrimer
Не знаю: просто обратил внимание, что процессом SSU2 нагрузка больше.
orignal
она всегда больше
tetrimer
Сейчас общая за 20 процентов вылетает, а раньше - как-то было ощутимо меньше.
orignal
потому что меньше дропать стали
Vort
"<~orignal> ну там error должно быть" Wrong static key в цитате на полминуты раньше чем RouterInfo verification failed
Vort
не может между созданием объекта ri и проверкой ri.IsUnreachable пройти столько времени
orignal
нет конечно
orignal
worng static key это про другое
Vort
тогда почему RouterInfo verification failed есть, а соответствующего error с причиной нету?
orignal
потому что он не показал
orignal
там должна быть ошибка RouterInfo:
Vort
думаю там не было. у меня тоже нету
Vort
[03/Jun/2025:14:16:36 +0300]@144/error - NetDb: DatabaseLookup for zero ident. Ignored
Vort
[03/Jun/2025:14:16:50 +0300]@460/error - NTCP2: RouterInfo verification failed in SessionConfirmed from 103.1.185.106:50879
Vort
[03/Jun/2025:14:17:10 +0300]@136/error - SSU2: RouterInfo in SessionConfirmed is from future for 5677 seconds
orignal
LogPrint (eLogError, "RouterInfo: Signature verification failed");
Vort
"DatabaseLookup for zero ident" - это мне посчастливилось стать ответственным за нулевые ключи сегодня
orignal
LogPrint (eLogError, "RouterInfo: Malformed message");
Vort
orignal: ну вот тебе загадка почему их нету. я тоже код просмотрел и удивляюсь теперь
Vort
можешь и в своих логах перепроверить
orignal
ну вот давай искать на какой строчке ставит
Vort
я думаю эти ошибки у всех лезут
orignal
m_IsUnreachable = true;
nnm
Signature verification failed
orignal
посмотри целочку вызовов начиная с конструктора
nnm
тоже самое что worng static key
orignal
нет не то же самое
orignal
в одном случае неверная подпись
orignal
в другом ключ левый
orignal
Vort я думаю вот здесь
orignal
if (!m_Buffer)
orignal
{
orignal
m_IsUnreachable = true;
orignal
влпрос лишь почему
tetrimer
Я тоже сейчас переключал лог на уровень info и ничего членораздельного перед строкой verification failed - не увидел.
Vort
вот поэтому я и говорил что надо RI ловить
Vort
но подозреваю что для этих ошибок узел должен быть прогрет, что затрудняет отладку
Vort
orignal: а я думаю здесь: if (!m_SupportedTransports || !isNetId || !m_Version)
Vort
вспоминаю, что когда-то я уже гонялся за этой фигней
Vort
там то ли адресов в RI не было, то ли фигня типа 0.0.0.0 или 127.0.0.1
Vort
думаю, стоит расщепить это условие на 3 части и сделать 3 ошибки в лог
Vort
чтобы больше этому месту не удивляться
orignal
это какая строка?
Vort
495
orignal
вопрос в том почему не печатает ошибку если вызывается из конструктора
orignal
мне непонтяно почему ее в логе нет
orignal
а ну понятно
orignal
забей
orignal
и да надо в лог печтать
Vort
такс. и куда теперь данные сливать? privatebin.i2p NAME_NOT_RESOLVED cake.i2p NAME_NOT_RESOLVED
Vort
я хотел скинуть один из проблемных RI
tetrimer
Я уже свой privatebin поднял от безысходности. :(
orignal
на cake.i2p кидай
onon
Лежит
orignal
пни дрозда
orignal
это ж его
tetrimer
Base64 хэш для регистрации домена - это та строчка, которую в браузер вбиваю?
onon
Не в браузер ты вбиваешь b32
tetrimer
А, значит надо лезть в веб-консоль.
onon
А b64 в вебконсоли на странице с destination
onon
Дрозд предлагает попробовать это: upload.arav.i2p
tetrimer
на inr.i2p зарегистрировал paste-temp.i2p, но надо ждать, когда его зааппрувят.
orignal
так рег же работает
Vort
в Visual Studio, скорее всего, до сих пор нет фичи копирования из памяти
Vort
так что вот так...
Vort
NTCP2: RouterInfo verification failed in SessionConfirmed from 150.129.102.166:62679 скорее всего
Vort
кстати если i2pd "поставить на паузу", а потом отпустить - то валится хренова туча ошибок
Vort
в основном, SSU2: Received queue size 2560 exceeds max size2500 и NetDb: New LeaseSet2 validation failed:
Vort
ну это скорее всего не особо важно, на всякий случай говорю
Vort
ещё и крешнуло при выходе... сейчас стек скину. опять же на всякий случай
orignal
счас гляну
Vort
Exception thrown at 0x0000000077B12CA4 (ntdll.dll) in i2pd.exe: 0xC0000005: Access violation writing location 0x0000000000000024.
orignal
и что с тем роутером не так?
Vort
я думал удастся глазами увидеть. если нет, то надо в нормальный формат перегонять
orignal
а ошибок в логе не было?
orignal
может там подпись не та
Vort
только NTCP2: Wrong static key in SessionConfirmed
Vort
но это же не то?
Vort
я почти уверен, что там с адресами что-то не то
orignal
ошбки и RouterInfo
Vort
не было
Vort
их почти никогда нету
orignal
там же вроде адреса не публикуются
Vort
в основном все verification failed "тихие"
orignal
он флудфил
orignal
но без адресов
Vort
ну там какие-то ipv6 я видел
orignal
там прямые или интродьюсеры?
Vort
а блин. я наверно две штуки RI захватил
Vort
короч первый RI важен
orignal
там есть router.version и netid?
Vort
netid нету наверное
Vort
это наверно вообще огрызок какой-то. хм
onon
TCP2.@.caps=.4;.s=,HvlEg-yncm1JIoT74C8uo5Z~2ApSgqhtcKScM~H9034=;.v=.2;..........SSU2.Й.caps=.4;.i=,VAzBrLmR1oPKFl4f1hhZrDbGs72hk8e4phiiwcU-rlg=;.iexp0=
onon
Blinded message
Vort
нету netid. но почему?
onon
уzЛ.±/§ѓESDмq7#ЪЧX.Фд.Ѕ-.ЃИЌ.`.®оЂ.aш.?О.ИЙ—¬Tе,Ѓіm.zµҐ¬QЦ¦ь.б..421;.s=,2oCtDV0L8t6tMa8MWejzhbHtaiH6hCRmiid860D1L20=;.v=.2;..........SSU2.·.caps=.C;.hostОшибка:510380:2249:ffff:51cf:752:49b6:7b5f;.i=,hTjuhMaRT8BXHkrVCMY3tagxt21xMkpU6th~IOHlQYIОшибка:5091500;
onon
Blinded message
Vort
cost там 14 и 15, похоже на i2pd
Vort
вот файл в нормальном виде: upload.arav.i2p/PfEsf83osMdq5C_UBDgPtW5Trq5ewadZCRED58MVrjw/ri.dat
onon
NTCP2.@.caps=.4;.s=,HvlEg-yncm1JIoT74C8uo5Z~2ApSgqhtcKScM~H9034=;.v=.2;..........SSU2...caps=.4;.i=,VAzBrLmR1oPKFl4f1hhZrDbGs72hk8e4phiiwcU-rlg=;.iexp0=.1748960084;
onon
Blinded message
Vort
в коде создания нового RI вообще нету опции чтобы без netId его сделать:
Vort
github.com/PurpleI2P/i2pd/blob/6ad6a2501eac86623db303bceee70a1989e538e6/libi2pd/RouterContext.cpp#L236
Vort
так что похоже на хакнутый клиент. но зачем...
Vort
интересно, принимает ли java такие RI
Vort
наверное нет. в ченжлоге вот такое нашлось: "Banlist: Increase ban time again for routers without netID"
Vort
markUnreachable(peerHash);
Vort
_context.banlist().banlistRouter(peerHash, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
Vort
ахаха. не ожидал такое увидеть:
Vort
github.com/i2p/i2p.i2p/blob/71e2e8d5aa415f4c2ffedfb1b9d1e96d8b554564/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java#L1265
orignal
что там?
Vort
разработчики java знают о багах i2pd больше, чем мы? )
Vort
"// old i2pd bug, possibly at startup, don't ban forever"
Vort
только вот нифига это не "at startup", тот узел - 150.129.102.* долбится ко мне уже несколько суток
Vort
короч логирование явно надо доработать. хотя бы чтоб понять, как часто косяки с адресами, а как часто - с netId
orignal
ну так я же с дедом осбужадаю
orignal
с netid точно нету
orignal
с адресами это старая тема
orignal
роутеры без netid это точно не наш i2pd
Vort
ну по cost`ам похоже на i2pd
Vort
я просто логики не вижу в такой модификации клиента
Vort
зачем? чтобы вся сеть забанила? а дальше что?
orignal
ну мало ли какие у людей идеи
orignal
факт что i2pd всегда ставит netid
onon
Кто-то в Китае запускает i2p, китайский майор видит это, берёт его RI и пытается выдавая себя за него забанить его на всех узлах i2p
onon
Как вам такое?
orignal
а откуда китайский майор берет его ключ?
onon
Так у нас ошибка что ключ не верный
onon
Или это про другое
Vort
ошибка просто из-за того что нету netid
onon
Тогда ерунду написал
orignal
onon это другой ключ
orignal
сначала то проверяется подпись
tetrimer
В логе же пишет:"confirmed session", т.е. сессии создаются и потребляют какой то ресурс.
orignal
там напитаешь SessionConfirmed
orignal
это сообщние такое
tetrimer
Ресурс такой коннекшен потребляет? Значит есть потенциальный ddos.
orignal
нет
orignal
соединение сразу закрывается
Vort
любая активность потребляет ресурсы
Vort
у атакующего задача потратить поменьше, нагадить побольше
Vort
вот и ищет подходящие методы
orignal
ну да оно отжирает x25519
Vort
а если искать не хочет, тогда просто гадит трафиком и всё
orignal
нет ну раз до SessionConfirmed доходит то не просто гадит
Vort
да я имею в виду через SAM
Vort
просто туннели с мусором гоняет
Vort
самое простое
Vort
а вот такой анализ как я говорю вполне вероятно что вообще никто не делал
Vort
разве что когда атака на флудфилы была
Vort
когда один гадящий узел всю сеть тормозил
orignal
а ну такое само собой
segfault
когда следующий релиз планируется?
R4SAS
orignal: тут центось 8 не хочет везде собираться
R4SAS
Found Boost: /usr/include (found version "1.66.0")
R4SAS
Found OpenSSL: /usr/lib64/libcrypto.so (found version "1.1.1k")
R4SAS
RouterInfo.cpp:253:65: error: no matching function for call to 'make_address...
R4SAS
orignal: paste.debian.net/hidden/d74b24bb
orignal
а как предыдущий собирался?
Vort
std::string(value) будет норм?
orignal
да привести надо
R4SAS
собирался вроде
R4SAS
я тогда выгружал
orignal
ну вот поправь как Vort говорит
orignal
ну или не выгржуай а только 9 ))
R4SAS
ну дык ты коммитов уже напихал
orignal
так не собирай 8 и все
orignal
кто ж думал что там кривой буст
orignal
и вообще она же eol вроде
onon
Откатываем коммиты, фиксим, двигаем таг, релизим, снова накатываем коммиты
onon
Так?
R4SAS
нет конечно
R4SAS
можно просто ветку сделать
R4SAS
значит центось полностью заброшена?
onon
А можно просто забить на центосов
R4SAS
попробую 10 поставить собираться
orignal
8 уже eol
orignal
ее фтопку
orignal
оставь федю и хватит
segfault
xp с 2014 eol. её тоже в топку?
Vort
интересно выходит, что для винды 24 летней давности сборку сделать проще чем для 6 летнего линукса
orignal
на 6 летний линукс можно поставить новый компилятор
orignal
а для винды MSYS
Vort
так в чём тогда проблема с centos ?
orignal
там какой то компилятор старый
orignal
в 8-ой
orignal
8 или 9
orignal
в стандартной
orignal
у нас на работе когда то был редхат 8
Vort
если есть возможность поставить новый, специально для сборки, то почему бы этого не сделать?
Vort
другое дело если там буст прибит гвоздями как-то
Vort
но тут уже не знаю
Vort
может статически прилинковать можно
orignal
вряд ли там в билд системе есть
orignal
да нет там проблема не в бусте а в компиляторе
R4SAS
если билдать статикой, то можно везде запустить
R4SAS
с хрюшей то же самое, там приходится пересобирать библиотеки чтобы собрать правильно
Vort
да там авторы MSYS2 фигню творят
Vort
заморозить версии и ещё долго норм будет
R4SAS
в линях это glibc, а в msys2 это хедеры и crt
Vort
вообще не хватает оффлайн сборок компиляторов, я уже даже подумывал свою сделать, для сборок под старые версии винды
Vort
чтобы не зависеть от произвола мейнтейнеров репозиториев
Vort
по типу DJGPP
R4SAS
mingw
R4SAS
и всё
Vort
нигде не нашёл инструкции для его установки. можно плохо искал
Vort
просто кучу архивов навалили и всё. может когда-то и разгребу.. хз
orignal
самая первая версия i2pd под винду была собрана mingw
orignal
MSYS стали использовать позднее
Vort
ну так там по аналогии с MSYS2 есть установщик, который качает последние версии. похоже
Vort
а если надо не последние?
Vort
допустим, мне надо не под i686, а под i486
Vort
ну да не важно. мне просто надо этим заняться. явно решение есть, просто не на поверхности
orignal
так mingw это тот же gcc
orignal
что в параметрах укажешь под то и соберет
Vort
либы там уже пред-собранные
Vort
и в либах напихано несовместимых инструкций
Vort
то есть, это надо всё пересобрать. или найти старую версию
orignal
я полагаю там есть под всех поддерживаемые архитектуры
Vort
а для "всё пересобрать" тем более гайд найти сложно будет
Vort
ах да, ещё одна мелочь: "под то и соберёт" означает, что это надо собирать на другом компе
Vort
так что тут двойная проблема. бегать от компа к компу вариант не супер
orignal
там можно в параметрах указать под что хочешь
Vort
имеешь в виду сборку самого gcc+либ или прикладной софтины с их помощью?
R4SAS
10й тоже не собрался, надо фиксить spec файл
R4SAS
в отдельной ветке сделаю
R4SAS
скоро деб и убунту залью
Vort
то есть, у меня была вот такая проблема: запускаю msys2-i686-20160205.exe - получаю креш потому что нет поддержки некоторых инструкций на старом компе
orignal
да зачем?
orignal
лучше под роки тогда сборку
Vort
следующая идея - скачать mingw, но подозреваю что с его онлайн установщиком будет та же самая проблема
orignal
Vort кстати msys2 на восьмерке отлично работает
R4SAS
а где оно собирается?
orignal
там какой то двуядерный амд
orignal
R4SAS полагаю там же где редхат
orignal
по сути это и есть редхат
R4SAS
в fedora copr нет его
orignal
ну нет значит
orignal
кстати заметь под федю все собирается
orignal
а редхаты это же просто версии федоры
orignal
нынче
Vort
orignal: хех. я думал они дропнули поддержку 8ки. но они дропнули 8.0, а 8.1 оставили. интересно
orignal
ну разумеется 8.1
orignal
не 8.0
orignal
8.1 вообще много что поддерживает кстати
R4SAS
8.0 это капитальная порнуха
R4SAS
её и не надо тащить
orignal
я больше скажу я там поставил вируталбокс
Vort
хотя не совсем так. там только со старым инсталлятором можно на 8.1 поставить
orignal
и в нем запустил беос ))
orignal
ну так поставил старым а потом сделал апдейт
orignal
до последних версий
Vort
кстати, ещё один вариант для старых ОС - это кросс компиляция
Vort
так что до невозможности поддержки ситуация далека
Vort
даже для DOS можно с помощью GCC 9 собирать (а может и выше)
Vort
правда в случае i2pd портировать для DOS смысла мало
orignal
под досом тредов нет
orignal
villain в свое время интересовался ))
Vort
ну хедер есть. надо будет попробовать
WebClient21
> там какой то двуядерный амд
WebClient21
а я думаю, почему сборки появляются через 12 часов после релиза
WebClient21
неужли нет денег на впску нормальную?
R4SAS
а ты готов донатить на нормальную машину?
R4SAS
впс не пойдет для таких дел
R4SAS
плюс для armhf и arm64 нужна нормальная машина на минимум arm64
R4SAS
ни каких qemu
WebClient21
у лося 3к в битках. можно бу комп на ксеоне с 20 ядрами найти меньше чем за 100 баксов
orignal
у меня где то валяетс i7 подобранный на помойке
R4SAS
ну так у меня не совсем дохлый сет
orignal
проблем с железками нету
R4SAS
просто я обычно ставлю собирать и ухожу по делам
R4SAS
а потом прихожу и всё компаную, заливаю в репу и тд и тп
WebClient21
а что за арм вы с помойки вытащили?
R4SAS
я предвкушаю что будет вопль "а че ci/cd?" - а то, что оно где то, на стороне, и не умеет arm64
WebClient21
не, просто железка интересна
R4SAS
у меня полноценная arm64 железка, на ней собирается тоже
R4SAS
апельсинка 5-я
R4SAS
к сожалению только одна
WebClient21
ебануться
R4SAS
и она собирает довольно быстро, быстрее малины 4-й
WebClient21
ну с другой стороны арм относительно новый, найти копеечный ксеон вряд ли получится
WebClient21
только недавно начали серверные процы на арме появлсяться
R4SAS
ну, сейчас нормальные машины на арме по стоймости где то 400 зеленых
Vort
погуглил я про треды в DOS: они вроде и есть, да не совсем (то есть, через жопу, просто сделать #include <thread> не достаточно). ну и ладно
R4SAS
*** пошел разбираться с ведром ***
WebClient21
на сколько я знаю, ксоены такие дешевые, потому что это китайцы покупают бу старье, возможно поломанное, от всяких гигантов типа амазона и гугла которые этими процами пользовались 10 лет назад.
WebClient21
вытаскивают че рабочее, че не рабочее у себя печатают и выходит дешевый набор с 20 ядрами + мать + 16 гигов оперативы меньше чем за 100 баксов
WebClient21
а посколько арм процы довольно новые, такого количества бу старья просто еще нет
orignal
никогда не видел тредов под досом ))
onon
Нашёл я багу которая завешивает стрим
onon
Надеюсь что она была одна
orignal
чини
onon
Там проблема была в том, что если у нас клиент Choked и именно в этот момент у нас сломался исходящий маршрут, то он не мог переключиться
onon
Потому что постоянно таймер переотправки перезапускал
onon
Да, такой вот проёб у меня в логике получился.
orignal
посмотрю позже
onon
А ещё смотри какая у нас ситуация. В случае, если у нас осталось в лизсете два лиза и они оба истекают, то мы будем переключаться между этими лизами при каждой отправке пакетов.
onon
Я вот чего надумал: добавляем переменную и пишем туда tunnelID предыдущего лиза при смене.
onon
А перед новой попыткой проверяем, если совпадает - то не меняем.
onon
Естественно при таймауте обнуляем переменную
onon
Чтобы менять лиз если нам не отвечают через этот
onon
Такая схема не будет работать если таких лизов три и больше, но я думаю это редкая ситуация.
onon
Что думаете?
orignal
да так и надо делать
orignal
но смотри что
orignal
может лиз не работать с одним исходящим и работать с другим