Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Добавить возможность в конфиге i2pd менять юзерагента (UA) при проксировании из i2p в http. #1668

Closed
click0 opened this issue Jun 23, 2021 · 8 comments

Comments

@click0
Copy link

click0 commented Jun 23, 2021

Добавить возможность в конфиге i2pd менять юзерагента (UA) при проксировании из i2p в http.

https://github.com/PurpleI2P/i2pd/blob/openssl/libi2pd_client/HTTPProxy.cpp#L236

Например, на "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36"

@r4sas
Copy link
Member

r4sas commented Jun 23, 2021

Outproxy?

if(m_ClientRequest.method != "CONNECT")
m_ClientRequest.UpdateHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:60.0) Gecko/20100101 Firefox/60.0");

Зачем это надо на прокси смотрящем в i2p?

@click0
Copy link
Author

click0 commented Jun 23, 2021

Зачем это надо на прокси смотрящем в i2p?

Не во все системы статистики-аналитики вот так можно добавить новый UA.
Хотя скорее это нужно добавлять не глобально, а в настройки туннеля (tunnels.d).

Туда же хочется добавлять новые http хидеры, например i2p-proxy1
И переменную для host алиасов. У Апача - это аналог Serveralias, а у nginx - server_name.
Я не знаю, можно ли в hostoverride добавлять несколько доменов и использовать регулярку вида .example2.i2p или *.example3.i2p?
Также непонятно, можно ли отправлять траффик на несколько IP и/или портов. Эдакий балансировщик типа nginx или haproxy?

@r4sas
Copy link
Member

r4sas commented Jun 23, 2021

Я думаю что всё это за рамками назначения приложения...

Определиться бы для начала, о чем идет речь? О httpproxy клиентском, или http серверном?
А то не вопрос, а каша какая-та.

Туда же хочется добавлять новые http хидеры, например i2p-proxy1

Добавлять где? На серверной стороне туннеля, или клиентской?

И переменную для host алиасов. У Апача - это аналог Serveralias, а у nginx - server_name.

Каких алиасов? На основании чего?
Веб-серверу передается нужный заголовок - Host. Зачем чего либо еще? Мысль не раскрыта.
Если веб-сервер слушает сайт на отдельном порте (что настоятельно рекомендуется для минимизации риска вычисления расположения сайтов на одной машине), то никакие serveralias и server_name не нужны.
На клиентской стороне что либо другое не передать, кроме действительного Host заголовка, иначе запрос просто на просто не уйдет куда надо.

Я не знаю, можно ли в hostoverride добавлять несколько доменов и использовать регулярку вида .example2.i2p или *.example3.i2p?

hostoverride только перезаписывает заголовок Host прилетающий с серверного http туннеля веб-серверу, ничего больше. Регулярками там и пахнуть не может. Зачем их несколько?

Также непонятно, можно ли отправлять траффик на несколько IP и/или портов. Эдакий балансировщик типа nginx или haproxy?

Откуда? Куда? Более конкретно пожалуйста.

@click0
Copy link
Author

click0 commented Jun 23, 2021

Я думаю, вам стоит посмотреть настройки других веб-серверов.
Дадите знать, когда это реализуете.
Пока что сайты в i2p будут выглядеть как "привет из начала 90-х".

@r4sas
Copy link
Member

r4sas commented Jun 24, 2021

При чем здесь веб-сервера и внутрисетевой туннель?
Как было сказано ранее, никакой конкретики в вопросе не видно. Что, куда, каким образом должно писаться, а так же что должны получить в итоге и где.

Зачем прикручивать прокси серверу (клиентский httpproxy) и транспортному протоколу (то есть туннелю) то, чего они не должны делать?
В i2pd нет веб-сервера. Веб-сервером выступают выбранные администратором сервера программы, а не четвертый и пятый уровень модели OSI.

О том как работает nginx я прекрасно знаю, и не вижу никаких проблем при взаимодействии с пользователями приходящими с серверного http туннеля в текущей реализации.

Для изучения: https://geti2p.net/spec/proposals/140-invisible-multihoming и https://geti2p.net/en/blog/post/2019/06/02/mirroring-guide. Принцип тот же самый.

@wipedlifepotato
Copy link
Contributor

Можно подключаться через Socks, а user-agent менять в браузере. Всё же не понятно, зачем?

@wipedlifepotato
Copy link
Contributor

@r4sas он утверждает, что сайты должны знать что за браузеры с ними работают, что бы были хорошие сайты, а не сайты из 90. Тк типа там обрезается юзер агент.
Вроде я так понял. И добавить в конфиг по желанию обрезания данных о браузере. Но тогда, конечно, это может нарушить, некоторую, анонимность и принципы сети. Но видимо вот просят.
@click0, я правильно понял?

@r4sas
Copy link
Member

r4sas commented Jun 25, 2021

Если требуется что либо из перечисленного в постах выше, то возможность делать Pull Request открыта.

@r4sas r4sas closed this as completed Jun 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants