Pull to refresh

Comments 85

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

А в чем преимущество данного способа перед сокс5 прокси поднимаемое средствами "голого" ssh за 5 секунд?

Как минимум отпадает нужда в ерунде типа доменных имен.

SSH сегодня работает, а завтра обновят DPI и уже не будет работать, или оставят 33.6 Kbps на соединение. Тот же l2tp, sstp уже некоторые операторы или блокируют или ограничивают. А HTTPS пока ещё свободен.

UFO just landed and posted this here
UFO just landed and posted this here

SSTP можно выявлять средствами обычного микротика. Достаточно проверять наличие sni заголовка в clienthello пакете. Если его нет, перед нами скорее всего sstp

Те кто поставили минусы, поднимете sstp с самопопидсанными сертификатом без домена и посмотрите трафик через wireshark (как мне кажется 95% sstp настроено именно так )

UFO just landed and posted this here

Или перед нами старый браузер/не очень старая Java. Ну или примерно любая заточенная под безопасность штуковина, которая решила куда-то сходить (считай всё, что касается банков, не посылает SNI - и сами банки приходят без SNI на хост).

Да и SSTP-клиентов уже сильно больше одного, некоторые SNI шлют.

UFO just landed and posted this here

У некоторых провайдеров с таким socks5 proxy какая то фигня творится — скорость не выше 2 мегабит и все тут.

Сокс блокировали, только https можно было использовать.

Для голого SSH, кстати, у меня тоже был rsp, который много параллельных SSH-сессий держит и в целом работает намного быстрее, чем обычный ssh -D

Если нет свободного доменного имени, то можно воспользоваться сервисом https://sslip.io/ , который автоматически формирует домен по ip адресу, например, у вас есть сервер с айпишником 1.2.3.4 , тогда можете считать, что у вас уже есть домены 1.2.3.4.ssip.io , www.1.2.3.4.ssip.io , www.1-2-3-4.sslip.io и www-1-2-3-4.sslip.io .


Здравствуйте! Я пробовал такое же с nip.io и скажу вам, что плохо получается. Рейтлимиты (https://letsencrypt.org/docs/rate-limits/) выпуска сертификатов общие на весь sslip.io и nip.io. Чтобы такого не было, владельцы этих доменов должны были добавиться в public suffix list и тогда рейтлимиты на каждый поддомен считались бы отдельно, но они этого не сделали.

На nip.io я по итогу получал вот такую ошибку:

Sep 09 20:23:35 clockinstall dumbproxy[3371]: HTTPSRV : 2022/09/09 20:23:35 server.go:3228: http: TLS handshake error from 46.250.24.40:45570: 429 urn:ietf:params:acme:error:rateLimited: Error creating new order :: too many certificates already issued for: nip.io: see https://letsencrypt.org/docs/rate-limits/

Если кто нибудь напишет вариант подключения для iOS и Safari под MacOS, буду премного благодарен. Про PAC файлы в курсе, но хотелось бы что-то с более удобным включением/выключением и желательно с возможностью составлять списки сайтов для проксирования.

Может покопать в сторону платных proxy клиентов типа ShadowRocket/LanceX/Pharos Pro

Плюс что они регулярно обновляются и функциональны. Но надо разбираться.

UFO just landed and posted this here

Нет, Вы не правы, потому что в SNI передаётся домен запрашиваемого сертификата прокси, а не самого запроса. Фильтр настраивается на выдачу 407 на секретный домен в запросе, который может и не существовать.

Учите матчасть.

UFO just landed and posted this here

Если вы через HTTPS-прокси запрашиваете HTTPS-сайт, что там будет два разных TLS-хэндшейка, один между браузером и прокси, и второй между браузером и уже конечным сайтом. Снаружи просматривается SNI первого, внешнего TLS-соединения. Но дело не в них.

Скажем, если я поднял прокси на mycoolproxy.myvps.net и включил опцию прятать 407, то на все запросы без авторизации прокси будет отвечать 400. Браузеру будет невдомёк, что нужно запросить у пользователя логин и пароль и отправить его заголовком авторизации. Для этого опция поддерживает секретный "домен", который если запросить через прокси, то прокси ответит 407 и тогда триггернётся авторизация в браузере и он будет уже дальше благополучно всегда слать заголовок Proxy-Authorization. Скажем, если я настроил там какой-то несуществующий домен afdgfesrgsdfgdfsgsdf.com и запрошу его через браузер, это приведёт авторизацию в браузере в порядке.

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

UFO just landed and posted this here

Можно научить, но особо не вижу полезного юзкейса. Если считаете, что нужно - пуллреквесты велкам!

не вижу особого смысла брать этот продукт, среди других которые уже всё это умеют

Аналогичную задачу можно решить поставив Nginx + Let's Encrypt перед HTTP-proxy.

Nginx слушает внешний порт по HTTPS и пересылает все на поднятый на localhost Squid уже в дешифрованном виде. Squid авторизует и делает все, для чего он обычно предназначен.

Такой вариант несколько лет вместе со Squid использую в задаче удаленного доступа к подписным ресурсам организации по IP, проблем не было.

для nginx есть модуль, который поддерживает connect метод

А можно чуть подробнее?
Не слышал, чтобы Nginx использовали в качестве прокси, так как умеет только в реверс-прокси. Дак таки можно и проксей?

Реверс или не реверс зависит просто от того куда коннектится сам прокси, правильно? точнее можно ли ему динамически сказать куда. В этом плане nginx очень гибкий, можно в proxy_pass указать куда коннектиться и в Host заголовке подправить, если что.
В стандартной установке nginx уже может работать как прокси, но только через URL. Но для https по-нормальному нужен CONNECT метод. Вот тут то модуль этот и помогает: https://github.com/chobits/ngx_http_proxy_connect_module

Что-то мне представляется не все таким простым.

Надо же не просто узнать куда за страницей сходить (это да), надо авторизовать (возможно из ldap или еще откуда), поднять на проксе сессию, закрыть сессию по таймауту, ACL многим хочется.

Вроде все по отдельности можно сделать, но хотелось бы увидеть конфиг Nginx, как это может выглядеть. Нет случаем такого?

Я сам не пользовался, просто рассматривал в какой-то момент варианты. Но в общем nginx достаточно гибкий, просто конфигурация там не очень всегда интуитивная или легко читаемая.

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

В свое время несколько дней с ним провозился, так и не получилось заставить работать.
UFO just landed and posted this here

А я пытался. Но если кто-то не только пытался, но и таки смог (и чтоб с браузером совместимо, конечно), хотелось бы увидеть конфиг Nginx.

За 10 минут можно в докере поднять V2Ray / vmess, безо всяких доменных имён и возни с сертификатами. Эту связку даже китайцы заблокировать не могут.

Да, это как раз моя статья. Этот метод полностью перестанет работать в 28 ноября, потому что Heroku закрывает бесплатные продукты.

Надо заметить, что упомянутую возню с доменами и сертификатами берёт на себя PaaS - а так они всё равно требуются. В статье выше описано как всё проделать за минуты, при том без завязки на какой-то конкретный PaaS.

Есть ли инструкция на этот счет?

Любопытно, надо будет попробовать
В букмарки

При https-proxy схеме голым остаётся процесс пересылки сертификатов и SNI, по этим данным провайдеры уже давно фильтруют твитеры и линкедины всякие.

А разве у описаной схеме не получается https over https?

Получается. Но если прокся в России стоит, то уже ее соединение под блокировку попадёт.

UFO just landed and posted this here

А кто в здравом уме прокси для хождения в Интернет будет держать в РФ?

Если понимать, что такой способ не анонимный, а всего лишь для обхода блокировок — то, вай нот?

Если живёшь за границей, то бывает нужно и такое:

  1. Европа блокирует некоторые российские сайты.

  2. Некоторые российские сайты закрылись от заграницы из-за DDOS'а.

  3. Пиратствовать тоже лучше не напрямую из той страны, где живёшь.

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

Здравствуйте. В описании к steady-tun написано, Supports TLS SNI (server name indication) spoof. Как это сделать?

hidden_domain возможно использовать только с браузером? Я так понимаю, пустить телеграм или другую программу через прокси с таким флагом не получится?

Здравствуйте! Опция -tls-servername задаёт то, что будет отправлено в SNI.

Это я уже пробовал. Получаю ошибку: Upstream connection error: x509: certificate is valid for мой домен.com, not имя домена в tls-servername

так а сертификат тоже должен соответствовать, иначе смысл теряется - в Client Hello поменяли, а в Server Hello будет как есть. как вы хотите, чтобы было по итогу?

Понятно. Я просто ожидал, что это как в shsdowsocks + cloak. Задаёшь на сервере и клиенте любой домен, который не фильтруют.

hidden_domain возможно использовать только с браузером? Я так понимаю, пустить телеграм или другую программу через прокси с таким флагом не получится?

Получится, так как другие проги априори отправляют логин и пароль, если заданы - им не нужно триггерить 407 ответ, чтобы понять, что "пора".

Вопрос. Как hidden_domain правильно использовать в настройках dumbproxy ? И как в той же мозилле строка должна выглядеть в настройках прокси в "URL автоматической настройки прокси" c hidden domain? Заранее спасибо за ответ.

Надо наверное сделать чтобы, коннектиться можно было на один домен, отправлять в SNI другой, а ожидать в сертификате третий. Добавлю себе заметку, чтобы сделать.

А где на клиенте указывается логин-пароль, который вписывается в конфиг?

Если в браузере, или на всю систему, то в браузере всплывёт запрос логина и пароля. Если расширение для браузера, то в нём. Если Android, то в настройках прокси в адгарде.

На андроиде ни одно приложение для VPN не безопасно. Причина в том, что у андроида есть одна неприятная фича. Это именно фича, а не баг, так что жаловаться некуда. Помощи от Гугла не ждите. Фича заключается в том, что для освобождения памяти система останавливает приложения. Это не отключается и не настраивается. Приложения для VPN тоже попадают под раздачу. Так что в процессе просмотра сайта есть риск увидеть ошибку тика "контент недоступен в вашей стране", говорящую, что ваш трафик уже несколько секунд идет на прямую, и ваш айпи засвечен. Так-то вот

В андроиде есть встроенный VPN, который не является приложением. Вот его система без вашей команды не остановит. К сожалению, среди поддерживаемых им протоколов нет SSL/TLS

Да ладно, как раз в андроиде это все настраивается. Выставить для клиента «не закрывать», «не ограничивать память», «не экономить энергию» — и он будет неубиваемым. Да и при современных количествах памяти, когда ее не меньше, чем на среднем ноуте — это уже не актуально

Еще можно соединяться по встроенному в систему протоколу — его уже ничего из памяти не выгрузит

А вот на айфоне — система может вышибить из памяти любую прогу и настроить это абсолютно невозможно.

Прогу - возможно, но если это грамотно написанный VPN клиент, который еще и регистрируется в системе - то с чего?

На андроиде у меня никогда не вылетал впн клиент, никакой, ни шс, ни вг. А на айфоне полно было случаев, когда нужная мне в фоне прога — закрывалась системой. И это никак не исправить

Еще раз, VPN клиент это условно интерфейс и сетевая библиотека. Интерфейс может и выгружается (он фактически всегда в памяти и не нужен), сетевая библиотека остается.
Посмотри Настройки - Основные - VPN - там перечислены все VPNы, даже с нестандартными протоколами. Ни разу не слышал и не видел, чтобы именно VPN выдавливался и трафик начинал идти через оператора.

Я точно также не слышал о таких проблемах на андроиде

оратор выше прав. все эти настройки, которые вы привели, помогают лишь отчасти. в андроиде вот эта как раз "фича" зашита изначально в самые корни ОС и решить проблему выгрузки из памяти с гарантией и на 100% нереально. некоторые приложения по тем или иным причинам с теми или иными ухищрениями более устойчивы к выгрузки из памяти, некоторые выгружаются по первому чиху. и объëм оперативки тут не причëм и проблемы не решает.

На андроиде галочки в настройках VPN Постоянная VPN (не отключатся от VPN)/Блокировать соединение без VPN разве не для решения этой проблемы придуманы?

  1. А можно поменять порт на другой?
    При выполнении вашей инструкции с другим портом, выдает ошибку

HTTPSRV : 2022/09/11 16:36:12 server.go:3228: http: TLS handshake error from urn:ietf:params:acme:error:rateLimited: Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/failed-validation-limit/

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

  1. Если нет, то что можно сделать, если 443 порт занимает nginx?

UFO just landed and posted this here

Можно поменять на другой, за это отвечает опция -bind-address. По умолчанию выпуск серта идёт через валидацию домена по "tls-alpn-01", для чего нужно отвечать на порту 443. Если это не возможно, то можно валидироваться по "http-01" и тогда нужно, отвечая на запросы на порту 80. Для этого укажите опцию -autocert-http :80, и тогда демон будет слушать ещё порт 80 для ответа на челленджи на нём. Если и это не подходит и этот порт тоже занят, тогда выпускайте сертификаты как-то по-своему и указывайте путь к fullchain через опции -cert и -key.

Проблема в том, что провайдер отлично видит SNI. По сути смысла в проксях сейчас не много.

UFO just landed and posted this here

На любой домен, который у вас привязан к виртуалке и через который вы запросили соединение. В руководстве как одна из возможностей используется домен, полученный через freemyip.

Возможно ли использование на т.н. NAT VPS, где имеется лишь ограниченный диапазон портов? Типа 17200-17220.

В целом будет на другом порту, но сертификат автоматически выпустить не получится - придётся как-то иначе придумывать.

А мне видимо не повезло (( Не запускается.
На последнем шаге в статье - проверка. Висит и нет ответа.
curl: (28) SSL connection timeout либо

curl: (28) Operation timed out after 300000 milliseconds with 0 out of 0 bytes received

Все этапы вроде по статье сделал. На впске с Убунту запускал. До этого крутится 3proxy, через него все открывается на клиенте. Но в начале сентября началась эта беда с Гуглом (lh6.googleusercontent.com и т.д.) и пару инстаграмных серверов.
Остановил 3proxy, думал ваш способ проверить.

Можно и нужно ли как то сделать защиту от bruteforse? Имею ввиду перебор пароля прокси

Sign up to leave a comment.

Articles