linux captive portal
A captive portal is a web page accessed with a web browser that is displayed to newly connected users of a Wi-Fi or wired network before they are granted broader access to network resources. . The captive portal is presented to the client and is stored either at the gateway or on a web server hosting the web page.
How do I turn on captive portal?
- Open Manage.
- Select Configuration > Device Configuration > SSID Profiles.
- Select an existing SSID profile or create a new profile.
- Expand the Captive Portal section.
- Select the Enable Captive Portal check box to display a portal page to be shown to clients on the guest network.
Where is the captive portal URL?
1 Answer. From this answer on Stack Overflow, Captive Portal is triggered only when you’re trying to make a request. So the answer is: Open an arbitrary web page in your favorite browser, and you’ll get redirected to the Captive Portal login page.
How does WiFi captive portal work?
When an unauthenticated client opens a Web browser and tries to connect to network, the captive portal redirects all the HTTP/HTTPS traffic from unauthenticated clients to the authenticating server on the switch. A captive portal Web page is sent back to the unauthenticated client. The client can authenticate.
What is the captive portal app?
Android captive is where your Android all connected services do their exchange, sometimes it’s called drop box in some sumsung Galaxy phones. What does Captiveportallogin mean? A captive portal login is a web page where the users have to input their login information or accept the displayed terms of use.
Solus
How do I download Solus?Is Solus good for gaming?Is Solus a good distro?Is Solus good for beginners?Which Solus version is best?What bootloader does S.
Python
What are classes in Python?What is class in Python with example?Is a Python file a class?What is the method inside the class in Python language?Do you.
Ping
Unblock Ping Request To unblock the ping requests, again run the same command by changing the parameter value to default ‘0’. Alternatively, you can b.
Latest news, practical advice, detailed reviews and guides. We have everything about the Linux operating system
Captive Portal для самых маленьких
Здравствуйте мои маленькие любители авиационного спирта =) !
Последние пару дней занимался настройкой Wi-Fi, да не простого, а стильного-модного-молодёжного, со своим Captive Portal. Для тех, кто в танке: это когда ты подключаешься к Wi-Fi сети, но прежде чем допускать тебя к интернетам и ЛОРу в частности, нужно пройти какую-никакую дополнительную авторизацию на веб-страничке, third-party так сказать.
Такой подход я считаю более секурным, потому как, доступ каждого клиента по Wi-Fi регулируется лично через iptables, а не тупо форвардится всё подряд. Какой простор для творчества! Во-вторых, авторизация происходит через веб-страничку, а не WPA и прочие нативные механизмы wireless-сетей, которые как и всё в нашем мире, не вечны и надёжность их хромает.
После вступления, приступим.
Рассказывать о настройке NAT лишний раз не буду, думаю, у вас уже должна быть настроена раздача Wi-Fi, и всё, что вам ненужно, это только Captive Portal.
wlan0 — имя интерфейса Wi-Fi
eth0 — имя интерфейса с интернетами
192.168.0.0/24 — локалка
# создаём кольцо iptables -t mangle -N captive # все пакеты из ви-фи отправляем в это кольцо iptables -t mangle -A PREROUTING -i wlan0 -j captive # доверенные клиенты из кольца выходят сразу же (адреса инсертим в начало списка) # фильтр хоть по MAC, хоть по IP # этот список должен редактироваться через сайт (Captive Portal) # iptables -t mangle -I captive -m mac --mac-source 00:00:00:00:00:00 -j RETURN # iptables -t mangle -I captive -s 192.168.0.137 -j RETURN # если ты всё ещё в кольце, тогда ставим метку iptables -t mangle -A captive -j MARK --set-mark 1 # всех с меткой перенаправляем к себе, когда они открывают сайты 80 # про 443 забудьте iptables -t nat -A PREROUTING -i wlan0 -m mark --mark 1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1 # всех с меткой при прочем трафике просто дропаем iptables -t filter -A FORWARD -i wlan0 -m mark --mark 1 -j DROP # успешно натим оставшихся доверенных iptables -t filter -A FORWARD -i wlan0 -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
Вот и всё. Здесь включена проверка через -i wlan0, таким образом это не вызовет никаких конфликтов с другими сетями, т.к. у меня в продакшене под кроватью очень много правил iptables и я знаю, о чём говорю.
Подводные камни, на которые я наткнулся и спешу поделиться с вами. В соседнем треде мне научно-популярно объяснили, что тщетно пытаться настроить редирект по HTTPS на свой Captive Portal, это просто не сработает, это уже MitM атака. Не очень-то и хотелось! ;p
Если у вас используются личные DNS, то наверняка у вас есть правило, разрешающее локальные запросы к серверу (tcp/53 udp/53). Не забудьте разрешить запросы и к локальному веб-серверу (tcp/80). Но а если вы сообщаете Wi-Fi клиентам какие-то публичные NS, то не забудьте разрешить доступ клиентам к ним: iptables -t filter -I FORWARD -i wlan0 -s 192.168.0.0/24 -d 8.8.8.8/32 -j ACCEPT . А суть такова. Когда клиент подключается к Wi-Fi, он проверяет доступность интернета в целом, для этого смартфоны качают со своих серверов файлы и проверяют корректность полученных данных. Если оно не сможет резолвить хост запрашиваемого сайта, то на этом и споткнётся и проверка на наличие Captive Portal в сети не пройдёт.
Собственно, теперь к механизму Captive Portal.
Как уже замечено, это личная прерогатива каждого клиента, проверять доступность интернета, и если в результате проверки что-то пошло не так, — значит либо интернета нет, либо Captive Portal.
Мы перенаправили все запросы на 80 порт к себе, на свой локальный сервер. Теперь nginx должен в ответ на все HTTP запросы отвечать кодом 302. Не 200, не 301, не 511, а именно 302, а затем перенаправлять вас на страничку с third-party авторизацией, и только таким макаром например мой Андрюша-9 смог обнаружить, что у меня таки Captive Portal, а не какой-то сломанный интернет. В результате сразу после подключения к Wi-Fi сети должно появиться Push-уведомление: Скриншот #1, при нажатии которого откроется страничка, куда редиректит nginx Скриншот #2.
Сам скрипт странички я оставляю вам на откуп: думаю, вам не составит никакого труда наслюнявить однострочник на php добавляющий $_SERVER[‘REMOTE_ADDR’] в iptables через shell_exec(); или типа того. Да? Да. Ваш Captive Portal полностью в ваших руках.
Вот и весь механизм работы Captive Portal. Спрашивайте ответы.