Jump to content

UweStrich

Forum Members
  • Content Count

    17
  • Joined

  • Last visited

Community Reputation

2 Neutral

About UweStrich

  • Rank
    Member
  • Birthday October 26

Equipment

  • Keenetic
    Ultra Rev.A

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. UweStrich

    entware

    Нет, к сожалению, не работает: сейчас проверяю на телефоне через сотовое соединение, и без включенной безусловной переадресации на роутере телефон отказывается подключаться к прокси-серверу по такой ссылке. UPD: буквально только что на хабре наткнулся на статью по теме. Её пока не читал, но упоминаемый ещё в самом начале sslh имеется в списках пакетов Entware, так что завтра попытаюсь ознакомиться с материалом. UPD2: вчера решил подойти к проблеме с другого конца, и разобраться, что именно занимало порт на прослушивание. Оказалось - прошивочная служба для использования облака и ssl-подключения к роутеру. Т.к. я ими не пользуюсь - решил снести их и отключить службу через CLI (спасибо @KorDen за подтверждение в другой ветке, что нужная команда - 'no ip http ssl enable'). Внимание: непосредственно через CLI отключение через "no ip http ssl enable" может не произойти (у меня, например, происходило зависание терминала, и роутер в панике от неё начинал грузить одно из ядер), поэтому может понадобиться править startup-config прошивки (доступен в списке файлов в "Общих настройках системы" веб-интерфейса), где нужная строка примет вид "ip http ssl no enable". После этих манипуляций и смены порта mtprotoproxy на 443 всё завелось, как надо: и прокси работает с минимально возможными пингами, и роутер не жалуется на недоступность обновлений.
  2. UweStrich

    entware

    Т.е., если правильно понял, поднять поддомен tg на example.keendns.net на 443 порту, и выдавать ссылки формата "tg://proxy?server=tg.example.keendns.net&port=54321&secret=<КЛЮЧ>"? В таком виде пробовал: работало, но вплоть до подключения к "фашистскому" публичному вайфаю, на котором перекрыты все TCP-порты кроме 443-го, т.е. указанный в ссылке порт является также и портом для исходящего соединения от клиента. Наоборот (т.е. вешаем домен на порт Телеграма, а клиенту велим использовать порт 443) также не выйдет: соединения тогда не будет совсем. И сразу упреждая следующий вопрос: нет, часть "&port=<ПОРТ>" в ссылке обязательна - Телеграм ссылку без неё не распознаёт как ссылку на прокси-сервер, и задать проксик в настройках вручную, без указания порта, также не позволяет.
  3. UweStrich

    entware

    Создать внутренний интерфейс, который будет слушать mtprotoproxy на 443 порту (IP-адрес интерфейса можно задать в настройках версии master проксика), и на этот интерфейс устроить проброс по домену... Есть сомнения (формально ведь - то же перенаправление, только в профиль), но может и стоит попробовать. Впрочем, всё равно кажется что от правил фильтрации в iptables был бы больший прок - жаль, что я смыслю в них ещё меньше, чем в баше.
  4. UweStrich

    entware

    Небольшое обновление через неделю "тестирования": безусловное перенаправление с порта 443 на порт mtprotoproxy, которое я описал ранее, и правда оказалось "топорным". Конечно, в быту оно редко даёт о себе знать, но при перезагрузке роутера оно начинает конфликтовать с запуском установленного у меня dnscrypt2, плюс не даёт получить список обновления для прошивки NDM. Если кто-то сможет предложить способ фильтровать обращения на порт 443 для mtprotoproxy без проброса по NAT - буду признателен. Между делом, попытался научить mtprotoproxy запускаться автоматически, т.к. файл автозапуска из шапки темы у меня при перезагрузке не срабатывал. В баше не силён, поэтому пришёл к костыльному, но рабочему решению - запуску скрипта в терминале screen. Если он ещё не установлен - ставим: opkg install screen И вставляем приложенный файл в /opt/etc/init.d/ Код скрипта с комментариями: S98mtprotoproxy
  5. UweStrich

    entware

    Добавлю парочку дополнительных пунктов, улучшающих quality of life использования прокси. Для начала - случай с публичными вайфаями, которые блокируют нестандартные порты и, тем самым, перекрывают доступ к прокси. Поначалу пытался обойти напрямую, подняв MTProto на порту 443, и ожидаемо получил отказ от роутера по причине "место занято". После этого решил воспользоваться другим, простым как топор, решением - и оно таки сработало: провести переадресацию с порта 443 интерфейса выхода в интернет на порт, который занимает MTProto: Соответственно, ссылка для клиента меняется с tg://proxy?server=<АДРЕС-СЕРВЕРА>&port=54321&secret=<КЛЮЧ> на tg://proxy?server=<АДРЕС-СЕРВЕРА>&port=443&secret=<КЛЮЧ> Результат в "фашиствующем вай-фае": Далее - про помянутый в инструкции AAAA-hostname: для него воспользовался другим топорным решением - хостом от No-IP. Судя по наблюдению, прок от него таки есть - зачастую соединение по буквенной ссылке идёт быстрее, чем по ip-адресу, ну и для роутеров с динамическим ip использование подобного сервиса - единственный вариант. От себя добавлю пару вопросов: возможно ли как-то дополнительно прописать фильтрацию (через iptables/ip6tables и/или acl для ipv4 и ipv6 в CLI-роутера, например) для 443 порта, чтобы на MTProto шли только обращения для него, а не безусловно все конкретно для этого порта, и имеет ли смысл дополнительно прописывать хост от No-IP в настройках DNS-прокси роутера (в моём случае - dnscrypt2)?
  6. Одна из возможных причин - серьёзный рассинхрон системного времени на роутере с фактическим, т.е. скорее всего понадобится в веб-интерфейсе включить автоматическую синхронизацию, плюс через telnet заставить роутер чаще обновлять время (не раз в неделю, как по умолчанию, а допустим каждые четыре часа), введя следующие команды: ntp sync-period 240 copy running-config startup-config
  7. Хм... попробуйте установить пакет ca-certificates - может, он поможет. В ином случае - стоит спросить в топике с инструкцией.
  8. Походу, провайдер производит блокировку через подмену DNS; подтвердить подозрение можно через утилиту blockcheck (ссылка на релизы), а бороться с подменой DNS - при помощи dnscrypt-proxy:
  9. Насколько понимаю, пытаетесь настроить для работы клиентов Telegram на компьютерах и телефонах? Попробуйте прописать аналогичные правила для других подсетей телеграмма (на вскидку - 149.154.160.0/20, 149.154.164.0/22, 91.108.4.0/22, 91.108.56.0/22, и 91.108.8.0/22) - может, поможет.
  10. Ну, всё равно было полезно - что мне, что вам Жаль, правда, что так и не выяснили, что барахлило - tor или curl... *** Как и обещал на прошлой неделе - текущий конфиг; как я заметил, 3proxy почему-то не любит комментарии в той же строке, что и работающий параметр (или отбивку этих комментариев табуляцией), поэтому в этом конфиге строк будет больше: Особое внимание на строки "monitor /tmp/currentip" и "socks -4 -n -p63128 -i$/tmp/currentip -e127.0.0.1 -S8192" - в файле по пути /tmp/currentip хранится ip-адрес, принадлежащий интерфейсу для выхода в интернет. Этот файл можно создавать и модифицировать при помощи скрипта в папке /opt/etc/ndm/wan.d - Выставляем исполняемые права скрипту, введя в консоли следующую команду: chmod +x /opt/etc/ndm/wan.d/01-current-ip.sh Благодаря такой связке можно конкретно указать программе, какой интерфейс она должна прослушивать. Для постоянного же подключения к роутеру, даже при изменении его белого ip (разумеется, если динамические ip от провайдера белые), можно использовать DynDNS (статья в базе знаний). Ну, и обязательный дисклеймер о том, что способ выше вполне можно считать "стрельбой по воробьям из пушки" - с тем же успехом вместо конкретного ip интерфейса можно указать прослушивать все интерфейсы, т.е. строка конфига, поднимающая socks-прокси, примет следующий вид: socks -4 -n -p63128 -i0.0.0.0 -e127.0.0.1 -S8192
  11. Что ж, тогда продолжим выяснять. Для начала - что tor пишет в лог-файле /opt/var/log/tor/notices.log? Что пишет журнал в веб-интерфейсе роутера? Далее - время: тор может быть весьма чувствительным к серьёзным расхождениям по времени, а значит - может понадобиться синхронизация (можно настроить в веб-интерфейсе роутера). Ну, и ещё одна догадка: могут дополнительно потребоваться пакеты ca-bundle и ca-certificates. Ну, и ещё один вопрос разряда "вы пробовали выключить и потом заново включить": правки в файл конфигурации вносились через родные для роутера текстовые редакторы (vi, nano, или mcedit), не через виндовский "Блокнот"?
  12. Не удивлюсь, если дело и правда в каких-то ранее установленных пакетах, не упомянутых в шаге два из-за неочевидности, но чтобы просто удостовериться: порт тора в запросе curl такой же, как в файле конфигурации? Просто, как уже упоминал в комментариях к примеру файла torrc, мне когда-то пришлось поменять значение "SOCKSPort" со значения по умолчанию 9050 на 9055; если у вас тор работает на 9050, то и запрос к curl придётся подправить. P.S.: всё ещё пытаюсь нормализовать конфиг 3proxy, и уже внёс в него кое-какие изменения согласно документации. Возможность редактировать шапку темы потерял, поэтому добавлю его в отдельном посте.
  13. Подводка простая: для обхода блокировок понадобился выход через Tor в приложении на мобильном, причём не только в домашней локалке через Socks5 от самого тора, но и через подключение от сотового оператора. VPN отпал, т.к. телефон требует включать его вручную, подключение сбрасывается через пять минут простоя, и оно очень быстро расходует батарейку. Проброс портов в NAT – тоже: открывать полный доступ к Tor из внешней сети без какой-либо авторизации мне показалось неразумным. Оставался один вариант: установить прокси-привратник и настроить его на проверку логина с паролем, с дальнейшей переадресацией соединения на Tor. Выбор пал на 3proxy. (Убью интригу сразу: после упорных вкуриваний мануалов вместе с выдачей гугла у меня всё завелось, и дальнейший текст больше похож на ещё один мануал, нежели на просьбу о помощи. Однако ж, для темы в "Каталоге готовых решений" материал годится слабо, и в лучшем случае скорее является наброском: конфигурация наверняка неидеальная, работает она менее недели, кейсы вроде "серого провайдерского ip" или "упаковки логов в архив" она не предусматривает, да и объяснений где-то будет слишком мало, а где-то – слишком много.) Подготовительный шаг: создаём правило в файерволе роутера, открывающее порт в интерфейсе для доступа в интернет (PPPoE в моём случае) – именно его прокси-привратник и будет слушать. Для себя я открыл порт 63128 на ip-адресе назначения, который роутер получает при подключению к провайдеру: Устанавливаем нужные пакеты: opkg install 3proxy tor tor-geoip curl Если с 3proxy и tor всё ясно, то tor-geoip нужен для ограничения выходных нод в файле конфигурации по пути "/opt/etc/tor/torrc". Собственно, выглядит он примерно таким образом: Проверить же, что Tor работает как надо, можно при помощи команды curl: curl --socks5 localhost:9055 --socks5-hostname localhost:9055 -s https://check.torproject.org/ | cat | grep -m 1 Congratulations | xargs Если в ответ мы получим "Congratulations. This browser is configured to use Tor." – значит, всё окей; curl потом можно удалить, т.к. для работы прокси он нам не понадобится: opkg remove curl Теперь настраиваем файл конфигурации 3proxy – "/opt/etc/3proxy/3proxy.cfg". Важно помнить, что доступ к нашему "привратнику" будет идти из внешнего интернета, а значит "внутренний интерфейс" будет на ip-адресе от провайдера, а "внешний" – локалхостом, на котором работает Tor. Минимальная рабочая конфигурация выглядит примерно так: Запускаем прокси /opt/etc/init.d/S23proxy start Указываем в настройках прокси приложения на телефоне адрес, порт, логин, и пароль: После этого телефон подключается к роутеру по сотовому интернету и отправляет данные по Tor. При настройке в основном оглядывался на инструкции с официального сайта проекта, и в частности – .rtf-документ "Настройка 3proxy для чайников" (копию дополнительно добавлю в приложения к посту на случай недоступности по ссылке). Также довольно сильно выручил небольшой топик на linux.org.ru – пускай объяснения для конфига оттуда и пришлось искать той же документации. Как уже упоминал, текст выше может содержать ошибки – любые исправления и уточнения приветствуются. 3proxy_for_dummies.rtf
  14. UweStrich

    Радикально, но сработало. Благодарю.
  15. UweStrich

    Попробовал настроить блокировку рекламы через Privoxy (топик), настраивал по инструкциям в шапке с использованием конфигов и скриптов из этого поста. Хочу сразу сказать большое спасибо пользователям @Sunix и @Dorik1972 за инструкции по настройке, и @zyxmon - за советы по отладке правил маршрутизации: фильтр поднялся, и в текущем состоянии блокирует большую часть рекламы (в т.ч в некоторых приложениях на iOS после указания прокси в настройках WiFi). Теперь - к проблеме, с которой я столкнулся: скрипт от @Dorik1972 для обновления фильтров отказывается выполняться, жалуясь на отсутствующий модуль: ~ # ../etc/privoxy/privoxy-bl-upd.pl Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: /opt/lib/perl5/5.24 .) at ../etc/privoxy/privoxy-bl-upd.pl line 28. BEGIN failed--compilation aborted at ../etc/privoxy/privoxy-bl-upd.pl line 28. Были подозрения, что где-то напортачил при установке/распаковке архива или не задал нужные права на исполнение, но поиск "strict.pm" по системе результатов не дал, т.е. нужный файл, похоже, и правда отсутствует. Пожалуйста, помогите. Пациент - Keenetic Ultra rev.A v2.08(AAGJ.0)C2, система - Entware-3x, список установленных пакетов - под катом. Если потребуется ещё какая-то информация - буду готов предоставить. privoxy_conf_v.2.tar.gz
×