skew_death Опубликовано 6 ноября, 2019 · Жалоба Добрый день, в данный момент пытаюсь сделать страницу заглушку на Squid + Mikrotik, из того что есть: Mikrotik с адрес листами абонентов которые "должны" денег, есть "белые" адреса сайта и оплаты, есть DSTnat который отправляет пользователей с сайтов не из "белого" списка по портам 80,8080,443 на внутренний адрес со squid. Squid настроен ssl_bump + intercept по порту 3129. Собственно сама проблема: не работает переадресация на squid, браузер или не выдает ничего(таймаут) или ERR_CONNECTION_REFUSED. В итоге "хочецца" как у ростелекома, при минусе на балансе отправлять на страницу "дай денег", можно с матами на сертификат, ну или просто скидывать на IP адрес с уже имеющимся OV сертификатом от комодо. Кто что подскажет? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MMM Опубликовано 6 ноября, 2019 · Жалоба nginx вместо squid ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skew_death Опубликовано 6 ноября, 2019 · Жалоба Был такой вариант, но не совсем понятно, тоже использовать proxy на nginx? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
MMM Опубликовано 6 ноября, 2019 · Жалоба ну требуется же только 302 редирект на сайт с оплатой послать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skew_death Опубликовано 6 ноября, 2019 · Жалоба Вполне этого хватит, чтобы люди ввели л\с и проверили баланс. Пробовали делать это на beget, не получилось, возможно из-за ddos защиты которая у них стоит. Если я правильно понял, то через dstnat заворачиваем на внутренний сервер(mikrotik не поддерживает ссылки, только адреса), далее 302ым отправляем на страницу оплаты? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 6 ноября, 2019 · Жалоба Завернуть такой трафик на нгинкс и проксировать в личный кабинет, добавив в заголовки $remote_addr. Абонент сразу получает страницу с тарифом, балансом и кнопкой оплаты на необходимую сумму / обещаный платёж. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
murano Опубликовано 6 ноября, 2019 · Жалоба Для начала, у вас должен быть http-трафик разрешен в инет у заблокированного абонента. Только в момент установки сессии можно произвести редирект. Если вы абоненту все наглухо зарубаете, то и редирект не состоится. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
rdc Опубликовано 6 ноября, 2019 · Жалоба Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 6 ноября, 2019 · Жалоба 25 minutes ago, rdc said: Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит. Вообще, для "хочу денег - дай пароль" придумали специальный код ответа 511. В отличие от 302, броузер знает, что этот ответ генерится не сайтом, на который пошли, а системой доступа. Помню много лет назад были по этому поводу на западе дискуссии, и кто-то говорил, что порешал эту проблему. Как оно работает в целом - понятия не имею, но в самом простом случае оно редиректит, при этом клиент понимает, что не сайт свистнули, а провайдер не пускает. https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/511 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
skew_death Опубликовано 7 ноября, 2019 · Жалоба @vop captive portal это конечно хорошо, только вот не знаю как оно будет работать на 7, 10 точно поддерживает, но большинство людей все еще сидят на 7, молчу про xp, такие тоже есть. Но опять же таких уже не так много и у многих есть смартфоны. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 7 ноября, 2019 · Жалоба 5 hours ago, vop said: Вообще, для "хочу денег - дай пароль" придумали специальный код ответа 511. Придумать то придумали, а реализовать забыли. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alex39x Опубликовано 7 ноября, 2019 · Жалоба 8 часов назад, rdc сказал: Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит. Раньше на nginx 302 перенаправляли. Сейчас убрали - https. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 7 ноября, 2019 · Жалоба 9 hours ago, alexmern said: Придумать то придумали, а реализовать забыли. Не забыли, насколько я понял, а "осознали", что это таки, дыра. Поэтому убрали. :) Ну а для обычного трафика все же лучше делать 511 ошибку, нежели 302. Просто утверждается, что есть софт, который понимает ее, как задумано (понятия не имею, какой именно). А тот, который не понимает, тот делает просто редирект. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 7 ноября, 2019 (изменено) · Жалоба 16 minutes ago, vop said: Не забыли, насколько я понял, а "осознали", что это таки, дыра. Поэтому убрали. :) Ну а для обычного трафика все же лучше делать 511 ошибку, нежели 302. Просто утверждается, что есть софт, который понимает ее, как задумано (понятия не имею, какой именно). А тот, который не понимает, тот делает просто редирект. Проверил на нескольких современных Android (7/8/9) - captive portal только на 302 отрабатывает. На 511 - тишина. Изменено 7 ноября, 2019 пользователем alexmern Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 7 ноября, 2019 · Жалоба 511 это мертвая теория. Я вообще ни разу не видел переадресации (хотспот, нет денег, блокировка) на 511. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 7 ноября, 2019 · Жалоба 2 minutes ago, alexmern said: Проверил на нескольких современных Android (7/8) - captive portal только на 302 отрабатывает. На 511 - тишина. Только что андроидом проверил - нормально отредиректил. Там же надо в тексте страницы делать редирект через meta http-equiv="refresh", насколько я помню... Попробую через Location, хотя это не правильно. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 7 ноября, 2019 (изменено) · Жалоба 4 minutes ago, vop said: meta http-equiv="refresh" Это костыль "микротика" который не может нормально отдать http код. Вы по сути отдали 200 со страницей в которой уже методами http идет редирект. Как разтаки Location и есть тру-метод. На nginx рабочая конфигурация так: server { listen 80 default_server; return 302 https://portal.xxxx.uz; } Изменено 7 ноября, 2019 пользователем alexmern Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 7 ноября, 2019 · Жалоба ну, судя по описанию, 511 это не редирект на денех дай, ... Там должна быть сама страница денех дай. https://tools.ietf.org/html/rfc6585 Цитата 511 Network Authentication Required The 511 status code indicates that the client needs to authenticate to gain network access. The response representation SHOULD contain a link to a resource that allows the user to submit credentials (e.g., with an HTML form). Note that the 511 response SHOULD NOT contain a challenge or the login interface itself, because browsers would show the login interface as being associated with the originally requested URL, which may cause confusion. The 511 status SHOULD NOT be generated by origin servers; it is intended for use by intercepting proxies that are interposed as a means of controlling access to the network. Responses with the 511 status code MUST NOT be stored by a cache. Nottingham & Fielding Standards Track [Page 4]6.1. The 511 Status Code and Captive Portals The 511 status code is designed to mitigate problems caused by "captive portals" to software (especially non-browser agents) that is expecting a response from the server that a request was made to, not the intervening network infrastructure. It is not intended to encourage deployment of captive portals -- only to limit the damage caused by them. A network operator wishing to require some authentication, acceptance of terms, or other user interaction before granting access usually does so by identifying clients who have not done so ("unknown clients") using their Media Access Control (MAC) addresses. Unknown clients then have all traffic blocked, except for that on TCP port 80, which is sent to an HTTP server (the "login server") dedicated to "logging in" unknown clients, and of course traffic to the login server itself. For example, a user agent might connect to a network and make the following HTTP request on TCP HTTP/1.1 511 Network Authentication Required Content-Type: text/html <html> <head> <title>Network Authentication Required</title> <meta http-equiv="refresh" content="0; url=https://login.example.net/"> </head> <body> <p>You need to <a href="https://login.example.net/"> authenticate with the local network</a> in order to gain access.</p> </body> </html> Here, the 511 status code assures that non-browser clients will not interpret the response as being from the origin server, and the META HTML element redirects the user agent to the login server. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alexmern Опубликовано 7 ноября, 2019 · Жалоба зачем делать meta http-equiv="refresh" если это всё можно сделать через 302 (а он в любом случае нужен чтобы эту страницу показать)? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 7 ноября, 2019 · Жалоба 2 minutes ago, st_re said: ну, судя по описанию, 511 это не редирект на денех дай, ... Там должна быть сама страница денех дай. "Дай денех" - это бульварно-вульгарная интерпретация более общего случая "в интернет низя - иди туда, где тебе разрешат, или сделай то, что бы открыли доступ". В общем случае это авторизация. В частном может быть и денег дай. В еще более частном никуда не редиректим, а просим сходит в местный гастроном и купить карточку оплаты. :) 1 minute ago, alexmern said: зачем делать meta http-equiv="refresh" если это всё можно сделать через 302 (а он в любом случае нужен чтобы эту страницу показать)? Ну видимо, потому, что этот refresh идет с 511-й ошибкой, которая отдается не сайтом, куда чел пришел, а строгим провайдером, который хочет денег. :) Т.е. клиент должен понимать, что не сайт с голыми тётями переехал в ваш биллинг, а до тёть он еще не доехал.:) PS Реально да, без специального механизма для https особого смысла в этом нет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Saab95 Опубликовано 21 ноября, 2019 · Жалоба На микротике есть web-proxy, его и используйте, сделав на порт редирект средствами микротика. А уже прокси запросит нужную вам страницу, на которой будет кнопка захода в личный кабинет. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...