Temat: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Cześć,

Tak jak w temacie i na zdjęciu poniżej...

https://images92.fotosik.pl/293/981cb693d8f24d6agen.png

Jak można dokonać tego na OpenWRT pomijając instalację Captive Portalów?
Jak ręcznie wymusić na systemie lub przeglądarce klienta routera OpenWRT wyświetlenie takiego komunikatu?
Jakie mechanizmy za to odpowiadają?

W przyszłości chciałbym napisać skrypt, który w razie braku Internetu wyświetliłby taki komunikat, a po jego wybraniu "Zaloguj się do sieci" przekierowałoby użytkownika na stronę www routera LuCi.

2

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Cały ruch przekieruj na swój lokalny serwer www. Androidy/ios/przeglądarka sprawdza określony adres, jak się połączy ale nie dostaje tego co powinna to myśli ze dostaje stronę captive portali i drze się o zalogowanie.

BTW: jest też pakiet fakeinternet: https://forum.openwrt.org/t/fakeinterne … ackage/924 który robi w drugą stronę, ale  ideologicznie możesz zobaczyć co i jak.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Rozumiem, że w grę wchodzi iptables?
Pomożesz z napisaniem komendy?

4

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

iptables -t nat -I PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -j DNAT --to 192.168.1.1

tylko pamiętaj żeby wyłączyć w uhttpd przekierowanie http na https oraz obsłużyć wszystkie strony które captive portale będą chciały bo inaczej serwer www rzuci tekstem że strony nie znaleziono. No i jak nie masz internetu to musisz tez samodzielnie obsłużyć wszystkie domeny które chcą systemy.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Byłem blisko, ale... Teraz pod http://domena.pl mam stronę LuCi, tutaj powinno chyba być przekierowanie (bez maskowania adresu). Oczywiście strony z SSL (port 443) działają prawidłowo. Komunikat o zalogowanie nie wyskakuje.

iptables -t nat -I PREROUTING -s 192.168.212.0/25 -p tcp --dport 80 -j DNAT --to 192.168.212.1

6

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Oczywiście strony https (443) musisz przekierować osobno. Tak samo jak 8080 i co tam jeszcze będzie.

I nie, nie powinno być przekierowania na domena.pl bo przecież sam napisałeś że nie będzie internetu więc to nie będzie działać bo i jak. Na lokalną siec masz przekierowania zrobić.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Zobacz o co mi chodzi...

https://i.ibb.co/6m1z2fX/qqqqq.png

Strona LuCi jest maskowana pod domeną "domena.pl" zamiast przekierowywana.
Być może dlatego nie wyskakuje mi komunikat "Zaloguj się do sieci".
Takie rozwiązanie ma też problem z keszowaniem się danych w przeglądarce

8

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

To tylko nazwa. W iptables i tak jak podasz domenę to zostanie to przekonwertowane na adres ip a ten musi być lokalny jak nie ma internetu, prawda?
Nawet jeżeli domena.pl uczyniłeś sobie na 192.168.x.x w sieci lokalnej.

I tak, nic nie poradzisz na to że androidy cachują stonę po otwarciu przeglądarki.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Pod adresem LuCi 192.168.212.1 kryje się...

<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci" />

Czy to tutaj jest problem?

10

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Jak problem? To normalna strona html przecież.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11 (edytowany przez tinware 2019-12-15 17:22:21)

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Tutaj jest problem:
Jeśli używam Aero2 i uruchamiam stronę domena.pl zostaje przekierowany na http://bdi.free.aero2.net.pl:8080/.
Jeśli używam iptables i uruchamiam stronę domena.pl zostaje przekierowany na domena.pl a pod nią LuCi.

Czy to tylko kwestia wykrycia, że na stronę LuCi wchodzę z 192.168.212.1 czy innego adresu i ewentualnie przekierowaniu go?
Czy po prostu regułka iptables powinna być inna?

Komunikat o zalogowanie się do sieci cały czas nie wyskakuje...

12

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Aero2 zawsze przed zalogowaniem wysyła na swoją stronę.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

13 (edytowany przez tinware 2019-12-15 17:31:11)

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Tak, na swoją stronę zamiast na stronę domena.pl a na niej zawartość strony Aero2.
O tym cały czas mówię...

14

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

No bo system myśli że domena.pl jest publicznym adresem i idzie na internet który jest blokowany przez aero2.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

15

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

A jak mogę zrobić samemu takie przekierowanie?

16

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Zrób tak żeby pytanie o domena.pl nie wychodziło na internet.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

17 (edytowany przez tinware 2019-12-15 19:22:08)

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Rozwiązałem ten problem po stronie uhttpd.

18

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

nano /etc/config/uhttpd

# Server configuration
config uhttpd main

        # Page Not Found
        option error_page               /cgi-bin/index.html

        (...)

/etc/init.d/uhttpd restart



nano /www/index.html

<meta http-equiv="refresh" content="0; URL=/cgi-bin/" />
(...)
<a   (...)   href="/cgi-bin/">LuCI - Lua Configuration Interface</a>



nano /www/cgi-bin/index.html

#!/bin/bash

IP=$( /sbin/uci get network.lan.ipaddr )

if [ "$IP" != "" ]; then
  LOCATION="http://"$IP"/cgi-bin/luci"
else
  LOCATION="/cgi-bin/luci"
fi

echo "Status: 302 Found"
echo "Location: "$LOCATION""
echo ""

19

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Ok, tak włączam skryptem, kiedy nie ma Internetu

iptables -t nat -I PREROUTING -s 192.168.212.0/25 -p tcp --dport 80 -j DNAT --to 192.168.212.1

Jak teraz usunąć taki wpis?

20

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

iptables -t nat -D PREROUTING -s 192.168.212.0/25 -p tcp --dport 80 -j DNAT --to 192.168.212.1

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21 (edytowany przez tinware 2019-12-16 00:04:37)

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

W przypadku Firefoxa przeglądarka musi parsować treść tej strony
http://detectportal.firefox.com/success.txt
https://detectportal.firefox.com/success.txt

Na Win10 komunikat o zalogowaniu wyszedł po ok. 1 min, tylko raz, na androidzie wcale.
Po wywołaniu adresu 1.2.3.4 działa perfekcyjnie, po wywołaniu nazwy domenowej - działa bardzo ociężale.
Wydaje mi się, aby to włączyć powinienem dodać wpis iptables, a po drugie serwer dns skonfigurować tak, aby nie keszował oraz zawsze odpowiadał adresem lokalnym routera. Co o tym sądzisz?

22

Odp: Ta sieć wymaga zalogowania, aby uzyskać dostęp do Internetu...

Pisałem żebyś zobaczył co robi pakiet fakeinternet, on właśnie bawi się dnsami.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.