#1
|
|||
|
|||
captive portal
Anton Gorlov написал(а) к All в Oct 18 22:33:16 по местному времени:
Привет All! Понадиблосбь тут изобразить Captive portal. Взял связку из nginx+ iptables... но что-то невыходит каменный цветок. Нужна помощь зала. Завёл на стенде тестовую сеть, на шлюзе сделал (192.168.11.3 выдаётся для wifi клиентов как def gw по dhcp) -A PREROUTING ! -d 192.168.11.3/32 -i ens4 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.11.3 Далее в nginx заведено 2 виртуальных хоста: === server { # # Listening on IP Address. # # This is the website iptables redirects to listen 80 default_server; root /var/www/html/portal; access_log /var/log/nginx/access1.log atop; portinredirect off; keepalive_timeout 0; location / { return 302 http://test.ppcom:82; } } server { listen 82; server_name test.ppcom; root /var/www/html/portal; access_log /var/log/nginx/access2.log atop; add_header Cache-Control no-cache; # set the Expires header to 31 December 2037 23:59:59 GMT, and the Cache-Control max-age to 10 years expires 0; location / { try_files $uri $uri/ /index.html; } } === Локальный DNS резолвит test.ppcom так же в 192.168.11.3. Но не выходит каменный цветок. Но если портал повесить на 80 порт сразу,куда заворачивает трафик iptables то на андроидах всё таки рисуется страница от портала. Вопрос - что упускаю их вида,что не отрабатывает вариант с редиректом из nginx на страницу портала? Да..если 1 вхост повесить на 82 порт и сюда заворачивать iptables-ами,а портал перевесить на 80 порт,то не работает с точно такой же диагностикой. До 2 Vhost-а с порталом запросов вообще нет и это виднр в дампе трафика. Причём в дампе я вижу, что nginx отдаёт Нypertext Transfer Protocol НTTP/1.1 302 Moved Temporarily\r\n Server: nginx/1.14.0\r\n Date: Sun, 14 Oct 2018 17:07:54 GMT\r\n Content-Type: text/html\r\n Content-Length: 161\r\n Connection: close\r\n Location: http://test.ppcom:82\r\n \r\n правда при этом вижу в дампе ещё ниже Line-based text data: text/html (7 lines) <head><title>302 Found</title></head>\r\n <body bgcolor="white">\r\n <center><h1>302 Found</h1></center>\r\n <hr><center>nginx/1.14.0</center>\r\n </body>\r\n </html>\r\n Вопрос - что я упускаю из вида и откуда тут берётся '302 Found'? С уважением. Anton aka Stalker Linux Registered User #386476 [#TEAM:*#] [#Злой СисОп_#] [*Нeavy Metal!*] [*_Усачи] --- GoldED+/LNX 1.1.5-b20160322 |
#2
|
|||
|
|||
captive portal
Anton Gorlov написал(а) к All в Oct 18 00:01:02 по местному времени:
Привет All! Так..подампил трафик с микротика.. там в 302 ответе тоже тело есть: Line-based text data: text/html (6 lines) <html>\n <head><title>Error 302: Нotspot login required</title></head>\n <body>\n <h1>Error 302: Нotspot login required</h1>\n </body>\n </html>\n В общем голову сломал почему портал отрабатывает только при прямом заворачивании трафика на него,а вот если редирект в пути...то фиг. При этом вижу что на микроитке сначала делается редирект на внутренинй домен,в рамках которого уже работает каптив портал 17 окт 18 года (а было тогда 22:33) Anton Gorlov в своем письме к All писал: AG> Понадиблосбь тут изобразить Captive portal. Взял связку из nginx+ AG> iptables... но что-то невыходит каменный цветок. Нужна помощь зала. AG> Завёл на стенде тестовую сеть, на шлюзе сделал (192.168.11.3 выдаётся AG> для wifi клиентов как def gw по dhcp) -A PREROUTING ! -d AG> 192.168.11.3/32 -i ens4 -p tcp -m tcp --dport 80 -j DNAT AG> --to-destination 192.168.11.3 AG> Далее в nginx заведено 2 виртуальных хоста: AG> === AG> server { AG> # # Listening on IP Address. AG> # # This is the website iptables redirects to AG> listen 80 default_server; AG> root /var/www/html/portal; AG> access_log /var/log/nginx/access1.log atop; AG> portinredirect off; AG> keepalive_timeout 0; AG> location / { AG> return 302 http://test.ppcom:82; AG> } AG> } AG> server { AG> listen 82; AG> server_name test.ppcom; AG> root /var/www/html/portal; AG> access_log /var/log/nginx/access2.log atop; AG> add_header Cache-Control no-cache; AG> # set the Expires header to 31 December 2037 23:59:59 GMT, and the AG> Cache-Control max-age to 10 years expires 0; AG> location / { AG> try_files $uri $uri/ /index.html; AG> } AG> } AG> === AG> Локальный DNS резолвит test.ppcom так же в 192.168.11.3. AG> Но не выходит каменный цветок. Но если портал повесить на 80 порт AG> сразу,куда заворачивает трафик iptables то на андроидах всё таки AG> рисуется страница от портала. Вопрос - что упускаю их вида,что не AG> отрабатывает вариант с редиректом из nginx на страницу портала? AG> Да..если 1 вхост повесить на 82 порт и сюда заворачивать AG> iptables-ами,а портал перевесить на 80 порт,то не работает с точно AG> такой же диагностикой. До 2 Vhost-а с порталом запросов вообще нет и AG> это виднр в дампе трафика. AG> Причём в дампе я вижу, что nginx отдаёт AG> Нypertext Transfer Protocol AG> НTTP/1.1 302 Moved Temporarily\r\n AG> Server: nginx/1.14.0\r\n AG> Date: Sun, 14 Oct 2018 17:07:54 GMT\r\n AG> Content-Type: text/html\r\n AG> Content-Length: 161\r\n AG> Connection: close\r\n AG> Location: http://test.ppcom:82\r\n AG> \r\n AG> правда при этом вижу в дампе ещё ниже AG> Line-based text data: text/html (7 lines) AG> <head><title>302 Found</title></head>\r\n AG> <body bgcolor="white">\r\n AG> <center><h1>302 Found</h1></center>\r\n AG> <hr><center>nginx/1.14.0</center>\r\n AG> </body>\r\n AG> </html>\r\n AG> Вопрос - что я упускаю из вида и откуда тут берётся '302 Found'? AG> С уважением. Anton aka Stalker AG> Linux Registered User #386476 AG> [#TEAM:*#] [#Злой СисОп_#] [*Нeavy Metal!*] [*_Усачи] AG> --- GoldED+/LNX 1.1.5-b20160322 AG> * Origin: Amicus certus in re incerta cernitur (2:5059/37) С уважением. Anton aka Stalker Linux Registered User #386476 [#TEAM:*#] [#Злой СисОп_#] [*Нeavy Metal!*] [*_Усачи] --- GoldED+/LNX 1.1.5-b20160322 |