Перейти к содержимому
Калькуляторы

Страница "дай денег"

Добрый день, в данный момент пытаюсь сделать страницу заглушку на Squid + Mikrotik, из того что есть: Mikrotik с адрес листами абонентов которые "должны" денег, есть "белые" адреса сайта и оплаты, есть DSTnat который отправляет пользователей с сайтов не из "белого" списка по портам 80,8080,443 на внутренний адрес со squid. Squid настроен ssl_bump + intercept по порту 3129. Собственно сама проблема: не работает переадресация на squid, браузер или не выдает ничего(таймаут) или ERR_CONNECTION_REFUSED. В итоге "хочецца" как у ростелекома, при минусе на балансе отправлять на страницу "дай денег", можно с матами на сертификат, ну или просто скидывать на IP адрес с уже имеющимся OV сертификатом от комодо. Кто что подскажет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Был такой вариант, но не совсем понятно, тоже использовать proxy на nginx?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну требуется же только 302 редирект на сайт с оплатой послать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вполне этого хватит, чтобы люди ввели л\с и проверили баланс. Пробовали делать это на beget, не получилось, возможно из-за ddos защиты которая у них стоит. 

Если я правильно понял, то через dstnat заворачиваем на внутренний сервер(mikrotik не поддерживает ссылки, только адреса), далее 302ым отправляем на страницу оплаты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Завернуть такой трафик на нгинкс и проксировать в личный кабинет, добавив в заголовки $remote_addr. Абонент сразу получает страницу с тарифом, балансом и кнопкой оплаты на необходимую сумму / обещаный платёж.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

25 minutes ago, rdc said:

Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит.

Вообще, для "хочу денег - дай пароль" придумали специальный код ответа 511. В отличие от 302, броузер знает, что этот ответ генерится не сайтом, на который пошли, а системой доступа. Помню много лет назад  были по этому поводу на западе дискуссии, и кто-то говорил, что порешал эту проблему. Как оно работает в целом - понятия не имею, но в самом простом случае оно редиректит, при этом клиент понимает, что не сайт свистнули, а провайдер не пускает.

 

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/511

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@vop captive portal это конечно хорошо, только вот не знаю как оно будет работать на 7, 10 точно поддерживает, но большинство людей все еще сидят на 7, молчу про xp, такие тоже есть. Но опять же таких уже не так много и у многих есть смартфоны. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 
 
 
 
5 hours ago, vop said:

Вообще, для "хочу денег - дай пароль" придумали специальный код ответа 511.

Придумать то придумали, а реализовать забыли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8 часов назад, rdc сказал:

Идея неживая уже, все сайты давно на https и ничего кроме ругани на сертификат абонент не увидит.

Раньше на nginx 302 перенаправляли. Сейчас убрали -  https. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

9 hours ago, alexmern said:

Придумать то придумали, а реализовать забыли.

Не забыли, насколько я понял, а "осознали", что это таки, дыра. Поэтому убрали.  :)

 

Ну а для обычного трафика все же лучше делать 511 ошибку, нежели 302. Просто утверждается, что есть софт, который понимает ее, как задумано (понятия не имею, какой именно). А тот, который не понимает, тот делает просто редирект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

16 minutes ago, vop said:

Не забыли, насколько я понял, а "осознали", что это таки, дыра. Поэтому убрали.  :)

 

Ну а для обычного трафика все же лучше делать 511 ошибку, нежели 302. Просто утверждается, что есть софт, который понимает ее, как задумано (понятия не имею, какой именно). А тот, который не понимает, тот делает просто редирект.

Проверил на нескольких современных Android (7/8/9) - captive portal только на 302 отрабатывает. На 511 - тишина.

Изменено пользователем alexmern

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

511 это мертвая теория. Я вообще ни разу не видел переадресации (хотспот, нет денег, блокировка) на 511.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 minutes ago, alexmern said:

Проверил на нескольких современных Android (7/8) - captive portal только на 302 отрабатывает. На 511 - тишина.

Только что андроидом проверил - нормально отредиректил.  Там же надо в тексте страницы делать редирект через meta http-equiv="refresh", насколько я помню...

 

Попробую через Location, хотя это не правильно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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;
}

 

Изменено пользователем alexmern

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну, судя по описанию, 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.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

зачем делать meta http-equiv="refresh"
если это всё можно сделать через 302 (а он в любом случае нужен чтобы эту страницу показать)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 minutes ago, st_re said:

ну, судя по описанию, 511 это не редирект на денех дай, ... Там должна быть сама страница денех дай.

 

"Дай денех" - это бульварно-вульгарная интерпретация более общего случая "в интернет низя - иди туда, где тебе разрешат, или сделай то, что бы открыли доступ". В общем случае это авторизация. В частном может быть и денег дай. В еще более частном никуда не редиректим, а просим сходит в местный гастроном и купить карточку оплаты. :)

 

1 minute ago, alexmern said:

зачем делать meta http-equiv="refresh"
если это всё можно сделать через 302 (а он в любом случае нужен чтобы эту страницу показать)?

Ну видимо, потому, что этот refresh идет с 511-й ошибкой, которая отдается не сайтом, куда чел пришел, а строгим провайдером, который хочет денег. :) Т.е. клиент должен понимать, что не сайт с голыми тётями переехал в ваш биллинг, а до тёть он еще не доехал.:)

 

PS Реально да, без специального механизма для https особого смысла в этом нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На микротике есть web-proxy, его и используйте, сделав на порт редирект средствами микротика. А уже прокси запросит нужную вам страницу, на которой будет кнопка захода в личный кабинет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.